3 #include "FairMCPoint.h" 
    9 #include "TClonesArray.h" 
   34        fprintf(MACRO,
"TGaxis *Assex = new  TGaxis(%f,%f,%f,%f,%f,%f,505);\n",xmin,0.,xmax,0.,xmin,xmax);
 
   35        fprintf(MACRO,
"Assex->SetTitle(\"X\");\n");
 
   36        fprintf(MACRO,
"Assex->SetTitleOffset(1.5);\n");
 
   37        fprintf(MACRO,
"Assex->Draw();\n");
 
   38        fprintf(MACRO,
"TGaxis *Assey = new  TGaxis(%f,%f,%f,%f,%f,%f,505);\n", 0.,ymin,0.,ymax,ymin,ymax);
 
   39        fprintf(MACRO,
"Assey->SetTitle(\"Y\");\n");
 
   40        fprintf(MACRO,
"Assey->SetTitleOffset(1.5);\n");
 
   41        fprintf(MACRO,
"Assey->Draw();\n");
 
   64         double  x1,x2,y1,y2,
L,Rr, RR;
 
   71         Rr = 
sqrt(posx*posx+posy*posy);
 
   72         x1 = posx + posy*L/Rr;
 
   73         x2 = posx - posy*L/Rr;
 
   74         y1 = posy - posx*L/Rr;
 
   75         y2 = posy + posx*L/Rr;
 
   82         RR = posx*posx+posy*posy;
 
   84         x1 = posx + posy*L/Rr;
 
   86         x2 = posx - posy*L/Rr;
 
   88         y1 = posy - posx*L/Rr;
 
   90         y2 = posy + posx*L/Rr;
 
   94         fprintf(MACRO,
"TLine *Tile%d = new TLine(%f,%f,%f,%f);\n",ScitilHit,x1,y1,x2,y2);
 
   95         fprintf(MACRO,
"Tile%d->SetLineColor(%d);\n",ScitilHit,colorcode);
 
  100                 fprintf(MACRO,
"Tile%d->SetLineWidth(2);\n",ScitilHit);
 
  101         } 
else if (tipo==1) {
 
  103                 fprintf(MACRO,
"Tile%d->SetLineWidth(3);\n",ScitilHit);
 
  106                 fprintf(MACRO,
"Tile%d->SetLineWidth(3);\n",ScitilHit);
 
  110         fprintf(MACRO,
"Tile%d->Draw();\n",ScitilHit);
 
  132                 side_x[] = { -vgap/2.,  -Ama ,  -Ama,   -vgap/2.,       -vgap/2.,       -Ami,
 
  133                                         -Ami,   -vgap/2.,       -vgap/2.},
 
  134                 side_y[] = {(-0.5*vgap+2.*Ama)/
sqrt(3.),        Ama/
sqrt(3.),   -Ama/
sqrt(3.),
 
  135                             -(-0.5*vgap+2.*Ama)/
sqrt(3.),       -(-0.5*vgap+2.*Ami)/
sqrt(3.),
 
  136                             -Ami/
sqrt(3.),      Ami/
sqrt(3.),   (-0.5*vgap+2.*Ami)/
sqrt(3.),
 
  137                             (-0.5*vgap+2.*Ama)/
sqrt(3.) };
 
  140         for(iside=0;iside<8;iside++){
 
  142                 "TLine* %sL%d = new TLine(%f,%f,%f,%f);\n",name,
 
  143                         iside,side_x[iside],side_y[iside],side_x[iside+1],side_y[iside+1]);
 
  144                 fprintf(MACRO,
"%sL%d->SetLineColor(%d);\n",name,iside,color);
 
  145                 fprintf(MACRO,
"%sL%d->SetLineStyle(2);\n",name,iside);
 
  146                 fprintf(MACRO,
"%sL%d->Draw();\n",name,iside);
 
  150         for(iside=0;iside<8;iside++){
 
  152                 "TLine* %sR%d = new TLine(%f,%f,%f,%f);\n",name,
 
  153                         iside,-side_x[iside],side_y[iside],-side_x[iside+1],side_y[iside+1]);
 
  154                 fprintf(MACRO,
"%sR%d->SetLineColor(%d);\n",name,iside,color);
 
  155                 fprintf(MACRO,
"%sR%d->SetLineStyle(2);\n",name,iside);
 
  156                 fprintf(MACRO,
"%sR%d->Draw();\n",name,iside);
 
  179         const double PI=3.141592654;
 
  182         Double_t side_x[] = {   -GAP/2., -GAP/2. , -ApotemaMin, -ApotemaMin, -GAP/2., -GAP/2. },
 
  183                  side_y[] = {   
sqrt(Rma*Rma-GAP*GAP/4.),  (2.*ApotemaMin-0.5*GAP)/
sqrt(3.),
 
  185                                 -ApotemaMin/
sqrt(3.),
 
  186                                 -(2.*ApotemaMin-0.5*GAP)/
sqrt(3.), -
sqrt(Rma*Rma-GAP*GAP/4.)};
 
  190         for(iside=0;iside<5;iside++){
 
  192                 "TLine* %sL%d = new TLine(%f,%f,%f,%f);\n",name,
 
  193                         iside,side_x[iside],side_y[iside],side_x[iside+1],side_y[iside+1]);
 
  194                 fprintf(MACRO,
"%sL%d->SetLineColor(%d);\n",name,iside,color);
 
  195                 fprintf(MACRO,
"%sL%d->SetLineStyle(2);\n",name,iside);
 
  196                 fprintf(MACRO,
"%sL%d->Draw();\n",name,iside);
 
  200         for(iside=0;iside<5;iside++){
 
  202                 "TLine* %sR%d = new TLine(%f,%f,%f,%f);\n",name,
 
  203                         iside,-side_x[iside],side_y[iside],-side_x[iside+1],side_y[iside+1]);
 
  204                 fprintf(MACRO,
"%sR%d->SetLineColor(%d);\n",name,iside,color);
 
  205                 fprintf(MACRO,
"%sR%d->SetLineStyle(2);\n",name,iside);
 
  206                 fprintf(MACRO,
"%sR%d->Draw();\n",name,iside);
 
  211         angle1 = 
atan2 ( side_y[0], side_x[0])*180./
PI;
 
  212         angle2 = 360. + 
atan2 ( side_y[4], side_x[4])*180./
PI;
 
  213         fprintf(MACRO,
"TEllipse* %sCircleL = new TEllipse(0.,0.,%f,%f,%f,%f);\n",
 
  214                         name,Rma,Rma,angle1,angle2);
 
  215         fprintf(MACRO,
"%sCircleL->SetFillStyle(0);\n",name);
 
  216         fprintf(MACRO,
"%sCircleL->SetLineColor(%d);\n",name,color);
 
  217         fprintf(MACRO,
"%sCircleL->Draw(\"only\");\n",name);
 
  221         angle2 = 
atan2 ( side_y[0], -side_x[0])*180./
PI;
 
  222         angle1 = 
atan2 ( side_y[4], -side_x[4])*180./
PI;
 
  223                 fprintf(MACRO,
"TEllipse* %sCircleR = new TEllipse(0.,0.,%f,%f,%f,%f);\n",
 
  224                         name,Rma,Rma,angle1,angle2);
 
  225         fprintf(MACRO,
"%sCircleR->SetFillStyle(0);\n",name);
 
  226         fprintf(MACRO,
"%sCircleR->SetLineColor(%d);\n",name,color);
 
  227         fprintf(MACRO,
"%sCircleR->Draw(\"only\");\n",name);
 
  256    vers[0] = Oxx - info->
at(infopar*7+0);
 
  257    vers[1] = Oyy - info->
at(infopar*7+1);
 
  258    norm = 
sqrt( vers[0]*vers[0] + vers[1]*vers[1] );
 
  261      Posiz[0] = -999999999.;
 
  265    if( 
fabs( Rr - 
fabs( norm - info->
at(infopar*7+3) ) ) 
 
  267                 fabs( Rr - (norm + info->
at(infopar*7+3)) )  ) {
 
  269         Posiz[0] = info->
at(infopar*7+0) + info->
at(infopar*7+3)*vers[0]/norm;
 
  270         Posiz[1] = info->
at(infopar*7+1) + info->
at(infopar*7+3)*vers[1]/norm;
 
  274         Posiz[0] = info->
at(infopar*7+0) - info->
at(infopar*7+3)*vers[0]/norm;
 
  275         Posiz[1] = info->
at(infopar*7+1) - info->
at(infopar*7+3)*vers[1]/norm;
 
  285    if( 
fabs(KAPPA)<1.e-20 ){
 
  286      Posiz[2] = -888888888.;
 
  291    fi = 
atan2(-vers[1],-vers[0]);
 
  292    if(fi<0.)  fi += 2.*
PI;
 
  295     if(fi > FI0 )  FI0 += 2.*
PI;
 
  298     if(fi < FI0 )  fi += 2.*
PI;
 
  300     Posiz[2] = (fi-FI0)/KAPPA;
 
  333  double const PI = 3.141592654;
 
  335  FairMCPoint *puntator;
 
  350         int dime = MAXSTTHITSINTRACK+MAXMVDPIXELHITSINTRACK+
 
  351                                 MAXMVDSTRIPHITSINTRACK+MAXSCITILHITSINTRACK;
 
  375         int IVOLTE = In_Put.
IVOLTE;
 
  462         Int_t    nSttHit = In_Put.
nSttHit;
 
  512  Double_t ultimoang[nTotalCandidates];
 
  513  Double_t primoang[nTotalCandidates];
 
  518  Vec<Double_t> ultimoangolo(ultimoang,nTotalCandidates,
"ultimoangolo");
 
  519  Vec<Double_t> primoangolo(primoang,nTotalCandidates,
"primoangolo");
 
  528         WriteMacroSttParallelExternal(In_Put);
 
  529         WriteMacroSttParallel(In_Put);
 
  537  for(  i= 0, k=-1; i< nTotalCandidates; i++){
 
  538         Double_t esseSciTil[nSciTilHitsinTrack.
at(i)];
 
  539                 if(!keepit.
at(i)) 
continue;
 
  540                 for(j=0;j< nSciTilHitsinTrack.
at(i);j++){
 
  543                         posizSciTil.
at(ListSciTilHitsinTrack.
at(i*MAXSCITILHITSINTRACK+j)*3+0),
 
  544                         posizSciTil.
at(ListSciTilHitsinTrack.
at(i*MAXSCITILHITSINTRACK+j)*3+1),
 
  557                         esseSciTil[j] = 
atan2(YintersectionList[0]-Oy.
at(i),
 
  558                                         XintersectionList[0]-Ox.
at(i));
 
  561                         esseSciTil[j] = 
atan2( 0.5*(YintersectionList[0]+YintersectionList[1])
 
  562                         -Oy.
at(i),0.5*(XintersectionList[0]+XintersectionList[1])-Ox.
at(i));
 
  564                 if ( esseSciTil[j]<0.) esseSciTil[j] += 2.*
PI;
 
  573         if(!keepit.
at(i)) 
continue;
 
  591             if ( esseSciTilAlone[j]<0.) esseSciTilAlone[j] += 2.*
PI;
 
  601         int npunti=-1+nSttParHitsinTrack.
at(i)+nSttSkewHitsinTrack.
at(i)+
 
  602                 nMvdPixelHitsinTrack.
at(i)+nMvdStripHitsinTrack.
at(i)+nSciTilHitsinTrack.
at(i);
 
  604                 if (ListTrackCandHitType.
at(i*dime+npunti) == 0){  
 
  605                         ultimoangolo[
i] = 
atan2( YMvdPixel.
at( ListTrackCandHit.
at(i*dime+npunti) )-Oy.
at(i),
 
  606                                                  XMvdPixel.
at( ListTrackCandHit.
at(i*dime+npunti) )-Ox.
at(i));
 
  607                 } 
else if (ListTrackCandHitType.
at(i*dime+npunti) == 1){  
 
  608                         ultimoangolo[
i] = 
atan2( YMvdStrip.
at( ListTrackCandHit.
at(i*dime+npunti) )-Oy.
at(i),
 
  609                                                  XMvdStrip.
at( ListTrackCandHit.
at(i*dime+npunti) )-Ox.
at(i));
 
  610                 } 
else if( ListTrackCandHitType.
at(i*dime+npunti) == 2 ){  
 
  615                                 ListTrackCandHit.
at(i*dime+npunti),
 
  627                         ultimoangolo[
i] = 
atan2( Posiz1[1]-Oy.
at(i),Posiz1[0]-Ox.
at(i));
 
  629                 } 
else if ( ListTrackCandHitType.
at(i*dime+npunti) == 3 ){  
 
  632                          SchosenSkew.
at(i*MAXSTTHITS +ListTrackCandHit.
at(i*dime+npunti) );
 
  633                 } 
else  if ( ListTrackCandHitType.
at(i*dime+npunti) == 1001){  
 
  635                                 atan2(posizSciTil.
at(ListTrackCandHit.
at(i*dime+npunti)*3+1)-Oy.
at(i),
 
  636                                 posizSciTil.
at(ListTrackCandHit.
at(i*dime+npunti)*3+0)-Ox.
at(i));
 
  638                 if( ultimoangolo[i]<0.) ultimoangolo[
i]+= 2.*
PI;
 
  643         primoangolo[
i] = fmod(FI0.
at(i),2.*
PI);
 
  645                 if( ultimoangolo[i]> primoangolo[i]) ultimoangolo[
i]-=2.*
PI;
 
  646                 primo=ultimoangolo[
i]*180./
PI;
 
  647                 ultimoangolo[
i]=primoangolo[
i]*180./
PI;
 
  648                 primoangolo[
i]=primo;
 
  651                 if( ultimoangolo[i]<primoangolo[i]) ultimoangolo[
i]+=2.*
PI;
 
  652                 ultimoangolo[
i]=ultimoangolo[
i]*180./
PI;
 
  653                 primoangolo[
i]=primoangolo[
i]*180./
PI;
 
  657         if( nSttParHitsinTrack.
at(i)+nMvdPixelHitsinTrack.
at(i)+
 
  658                 nMvdStripHitsinTrack.
at(i)>0 &&  doMcComparison) {
 
  660            for( j=0;j<nMCSkewAlone.
at(i);j++){
 
  661                 puntator  = (FairMCPoint*) fSttPointArray->At(MCSkewAloneList.
at(i*nSttHit+j));
 
  662                 MCSkewAloneX.
at( MCSkewAloneList.
at(i*nSttHit+j) )=puntator->GetX();
 
  663                 MCSkewAloneY.
at( MCSkewAloneList.
at(i*nSttHit+j) )=puntator->GetY();
 
  667                 WriteMacroSttParallelAssociatedHitsandMvdwithMC(
 
  674                         nSttParHitsinTrack.
at(i),
 
  677                 daTrackFoundaTrackMC.
at(i),
 
  678                 nMvdPixelHitsinTrack.
at(i),
 
  679                 nMvdStripHitsinTrack.
at(i),
 
  680                 nSttSkewHitsinTrack.
at(i)
 
  687       if(  nSttSkewHitsinTrack.
at(i)+nMvdPixelHitsinTrack.
at(i)+
 
  688         nMvdStripHitsinTrack.
at(i)>0 &&  doMcComparison){
 
  689             WriteMacroSkewAssociatedHitswithMC(
 
  697             WriteMacroSkewAssociatedHitswithMC_Degree(
 
  712  WriteMacroParallelHitsGeneral(
 
  713         APOTEMAMAXINNERPARSTRAW,
 
  715         APOTEMAMINOUTERPARSTRAW,
 
  739         APOTEMASTRAWDETECTORMIN,
 
  754  WriteMacroParallelHitsGeneralConformalwithMC(
 
  755         APOTEMAMAXINNERPARSTRAW,
 
  757         APOTEMAMINOUTERPARSTRAW,
 
  781         APOTEMASTRAWDETECTORMIN,
 
  797  WriteMacroParallel_MvdHitsGeneralConformalwithMC(
 
  798         APOTEMAMAXINNERPARSTRAW,
 
  800         APOTEMAMINOUTERPARSTRAW,
 
  824         APOTEMASTRAWDETECTORMIN,
 
  839  WriteMacroAllHitsRestanti(
 
  840         APOTEMAMAXINNERPARSTRAW,
 
  842         APOTEMAMINOUTERPARSTRAW,
 
  844         &InclusionListSciTil,
 
  850         &ListTrackCandHitType,
 
  852         MAXMVDPIXELHITSINTRACK,
 
  854         MAXMVDSTRIPHITSINTRACK,
 
  855         MAXSCITILHITSINTRACK,
 
  869         APOTEMASTRAWDETECTORMIN,
 
  909         int MAXMVDPIXELHITSINTRACK,
 
  911         int MAXMVDSTRIPHITSINTRACK,
 
  912         int MAXSCITILHITSINTRACK,
 
  916         Short_t nMvdPixelHit,
 
  917         Short_t nMvdStripHit,
 
  922         Short_t nSttTrackCand,
 
  940  bool   exclusionStt[MAXSTTHITS],
 
  941                 exclusionPixel[MAXMVDPIXELHITS],
 
  942                 exclusionStrip[MAXMVDSTRIPHITS];
 
  959  int dime = MAXSTTHITSINTRACK+MAXMVDPIXELHITSINTRACK+
 
  960                 MAXMVDSTRIPHITSINTRACK+MAXSCITILHITSINTRACK;
 
  964         for(i=0;i<nSttHit;i++){
 
  965                 exclusionStt[
i]=
false;
 
  967         for(i=0;i<nMvdPixelHit;i++){
 
  968                 exclusionPixel[
i]=
false;
 
  970         for(i=0;i<nMvdStripHit;i++){
 
  971                 exclusionStrip[
i]=
false;
 
  976         for(i=0;i<nSttTrackCand;i++){
 
  977                 if(!keepit->
at(i)) 
continue;
 
  979                 for(j=0;j<nTrackCandHit->
at(i);j++){
 
  981                      switch (ListTrackCandHitType->
at(i*dime+j)){
 
  983                            exclusionPixel[ ListTrackCandHit->
at(i*dime+j) ] = 
true;
 
  986                            exclusionStrip[ ListTrackCandHit->
at(i*dime+j) ] = 
true;
 
  989                            exclusionStt[ ListTrackCandHit->
at(i*dime+j) ] = 
true;
 
 1004       sprintf(nome,
"MacroSttMvdHitsRestantiEvent%d", IVOLTE);
 
 1005       sprintf(nome2,
"%s.C",nome);
 
 1006       FILE * MACRO = fopen(nome2,
"w");
 
 1007       fprintf(MACRO,
"void %s()\n{\n",nome);
 
 1008       fprintf(MACRO,
"TCanvas* my= new TCanvas();\nmy->Range(%f,%f,%f,%f);\n",xmin,ymin,xmax,ymax);
 
 1011         disegnaAssiXY(MACRO,xmin,xmax,ymin,ymax);
 
 1016         sprintf(myname,
"InnerPar");
 
 1017         DrawBiHexagonInMacro(
 
 1020                                 APOTEMASTRAWDETECTORMIN,
 
 1021                                 APOTEMAMAXINNERPARSTRAW,
 
 1027         sprintf(myname,
"Skew");
 
 1028         DrawBiHexagonInMacro(
 
 1031                                 APOTEMAMINSKEWSTRAW,
 
 1032                                 APOTEMAMAXSKEWSTRAW,
 
 1038         sprintf(myname,
"OuterPar");
 
 1039         DrawHexagonCircleInMacro(
 
 1042                                 APOTEMAMINOUTERPARSTRAW,
 
 1049        for( i=0; i< nSttHit; i++) {
 
 1050          if( (!exclusionStt[i])  && InclusionListStt->
at(i) ) {     
 
 1051          if( info->
at(i*7+5) == 1 ) {     
 
 1052             fprintf(MACRO,
"TEllipse* E%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nE%d->SetFillStyle(0);\nE%d->Draw();\n",
 
 1053                      i,info->
at(i*7+0),info->
at(i*7+1),info->
at(i*7+3),info->
at(i*7+3),
i,
i);
 
 1055             fprintf(MACRO,
"TMarker* SS%d = new TMarker(%f,%f,%d);\nSS%d->SetMarkerColor(1);\nSS%d->Draw();\n",
 
 1056                 i,info->
at(i*7+0),info->
at(i*7+1),28,
i,
i);
 
 1060        for( i=0; i< nMvdPixelHit; i++) {
 
 1061          if( !exclusionPixel[i]) {     
 
 1063 "TMarker* Pixel%d = new TMarker(%f,%f,%d);\nPixel%d->SetMarkerColor(1);\nPixel%d->Draw();\n",
 
 1064                     i,XMvdPixel->
at(i),YMvdPixel->
at(i),26,
i,
i);
 
 1067        for( i=0; i< nMvdStripHit; i++) {
 
 1068          if( !exclusionStrip[i]) {     
 
 1070 "TMarker* Strip%d = new TMarker(%f,%f,%d);\nStrip%d->SetMarkerColor(1);\nStrip%d->Draw();\n",
 
 1071                     i,XMvdStrip->
at(i),YMvdStrip->
at(i),25,
i,
i);
 
 1075        for( i=0; i< nSciTilHits; i++) {
 
 1076          if( InclusionListSciTil->
at(i)) {     
 
 1078 "TMarker* SciT%d = new TMarker(%f,%f,%d);\nSciT%d->SetMarkerColor(1);\nSciT%d->Draw();\n",
 
 1079                     i,posizSciTil->
at(i*3+0),posizSciTil->
at(i*3+1),30,
i,
i);
 
 1082       fprintf(MACRO,
"}\n");
 
 1106         bool doMcComparison,
 
 1107         TClonesArray *fMCTrackArray,
 
 1113         Short_t nMvdPixelHit,
 
 1114         Short_t nMvdStripHit,
 
 1115         Short_t nSciTilHits,
 
 1116         Short_t nTracksFoundSoFar,
 
 1161       char nome[300], nome2[300];
 
 1163  const double PI = 3.141592654;
 
 1169       sprintf(nome,
"MacroSttMvdAllHitsEvent%d", IVOLTE);
 
 1170       sprintf(nome2,
"%s.C",nome);
 
 1171       FILE * MACRO = fopen(nome2,
"w");
 
 1172       fprintf(MACRO,
"void %s()\n{\n",nome);
 
 1181        fprintf(MACRO,
"TCanvas* my= new TCanvas();\nmy->Range(%f,%f,%f,%f);\n",xmin,ymin,xmax,ymax);
 
 1183         disegnaAssiXY(MACRO,xmin,xmax,ymin,ymax);
 
 1188         sprintf(myname,
"InnerPar");
 
 1189         DrawBiHexagonInMacro(
 
 1192                                 APOTEMASTRAWDETECTORMIN,
 
 1193                                 APOTEMAMAXINNERPARSTRAW,
 
 1199         sprintf(myname,
"Skew");
 
 1200         DrawBiHexagonInMacro(
 
 1203                                 APOTEMAMINSKEWSTRAW,
 
 1204                                 APOTEMAMAXSKEWSTRAW,
 
 1210         sprintf(myname,
"OuterPar");
 
 1211         DrawHexagonCircleInMacro(
 
 1214                                 APOTEMAMINOUTERPARSTRAW,
 
 1221        for( i=0; i< Nhits; i++) {
 
 1223          if( info->
at(i*7+5) == 1 ) {     
 
 1224 fprintf(MACRO,
"TEllipse* Paral%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nParal%d->SetFillStyle(0);\nParal%d->Draw();\n",
 
 1225                      i,info->
at(i*7+0),info->
at(i*7+1),info->
at(i*7+3),info->
at(i*7+3),
i,
i);
 
 1227 fprintf(MACRO,
"TMarker* Skew%d = new TMarker(%f,%f,%d);\nSkew%d->SetMarkerColor(1);\nSkew%d->Draw();\n",
 
 1228                 i,info->
at(i*7+0),info->
at(i*7+1),28,
i,
i);
 
 1232        for( ii=0; ii< nMvdStripHit; ii++) {
 
 1234             x2= XMvdStrip->
at(ii)+sigmaXMvdStrip->
at(ii);
 
 1236             y2= YMvdStrip->
at(ii)+sigmaYMvdStrip->
at(ii);
 
 1238  "TMarker* Strip%d = new TMarker(%f,%f,%d);\nStrip%d->SetMarkerColor(1);\nStrip%d->Draw();\n",
 
 1239                     ii,XMvdStrip->
at(ii),YMvdStrip->
at(ii),25,ii,ii);
 
 1243        for( ii=0; ii< nMvdPixelHit; ii++) {
 
 1245             x2= XMvdPixel->
at(ii)+sigmaXMvdPixel->
at(ii);
 
 1247             y2= YMvdPixel->
at(ii)+sigmaYMvdPixel->
at(ii);
 
 1249 "TMarker* Pixel%d = new TMarker(%f,%f,%d);\nPixel%d->SetMarkerColor(1);\nPixel%d->Draw();\n",
 
 1250                     ii,XMvdPixel->
at(ii),YMvdPixel->
at(ii),26,ii,ii);
 
 1257  for( i=0; i< nSciTilHits; i++) {
 
 1262                 posizSciTil->
at(i*3+0),
 
 1263                 posizSciTil->
at(i*3+1),
 
 1273     for(i=0, ii=0; i<nTracksFoundSoFar; i++){
 
 1275         if(!keepit->
at(i)) 
continue;
 
 1281 "TEllipse* ris%d=new TEllipse(%f,%f,%f,%f,%f,%f);\nris%d->SetFillStyle(0);\nris%d->SetLineColor(2);\nris%d->Draw(\"only\");\n",
 
 1282                 ii,aaa,bbb,rrr,rrr,primoangolo->
at(i),ultimoangolo->
at(i),ii,ii,ii);
 
 1290       fprintf(MACRO,
"}\n");
 
 1295  if(!doMcComparison) 
return;
 
 1299       sprintf(nome,
"MacroSttMvdAllHitswithMCEvent%d", IVOLTE);
 
 1300       sprintf(nome2,
"%s.C",nome);
 
 1301       MACRO = fopen(nome2,
"w");
 
 1302       fprintf(MACRO,
"void %s()\n{\n",nome);
 
 1305        fprintf(MACRO,
"TCanvas* my= new TCanvas();\nmy->Range(%f,%f,%f,%f);\n",xmin,ymin,xmax,ymax);
 
 1308         disegnaAssiXY(MACRO,xmin,xmax,ymin,ymax);
 
 1311         sprintf(myname,
"InnerPar");
 
 1312         DrawBiHexagonInMacro(
 
 1315                                 APOTEMASTRAWDETECTORMIN,
 
 1316                                 APOTEMAMAXINNERPARSTRAW,
 
 1322         sprintf(myname,
"Skew");
 
 1323         DrawBiHexagonInMacro(
 
 1326                                 APOTEMAMINSKEWSTRAW,
 
 1327                                 APOTEMAMAXSKEWSTRAW,
 
 1333         sprintf(myname,
"OuterPar");
 
 1334         DrawHexagonCircleInMacro(
 
 1337                                 APOTEMAMINOUTERPARSTRAW,
 
 1344        for( i=0; i< Nhits; i++) {
 
 1348          if( info->
at(i*7+5) == 1 ) {     
 
 1349 fprintf(MACRO,
"TEllipse* Paral%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nParal%d->SetFillStyle(0);\nParal%d->Draw();\n",
 
 1350                      i,info->
at(i*7+0),info->
at(i*7+1),info->
at(i*7+3),info->
at(i*7+3),
i,
i);
 
 1352 fprintf(MACRO,
"TMarker* Skew%d = new TMarker(%f,%f,%d);\nSkew%d->SetMarkerColor(1);\nSkew%d->Draw();\n",
 
 1353                 i,info->
at(i*7+0),info->
at(i*7+1),28,
i,
i);
 
 1357        for( ii=0; ii< nMvdStripHit; ii++) {
 
 1359             x2= XMvdStrip->
at(ii)+sigmaXMvdStrip->
at(ii);
 
 1361             y2= YMvdStrip->
at(ii)+sigmaYMvdStrip->
at(ii);
 
 1363  "TMarker* Strip%d = new TMarker(%f,%f,%d);\nStrip%d->SetMarkerColor(1);\nStrip%d->Draw();\n",
 
 1364                     ii,XMvdStrip->
at(ii),YMvdStrip->
at(ii),25,ii,ii);
 
 1368        for( ii=0; ii< nMvdPixelHit; ii++) {
 
 1370             x2= XMvdPixel->
at(ii)+sigmaXMvdPixel->
at(ii);
 
 1372             y2= YMvdPixel->
at(ii)+sigmaYMvdPixel->
at(ii);
 
 1374 "TMarker* Pixel%d = new TMarker(%f,%f,%d);\nPixel%d->SetMarkerColor(1);\nPixel%d->Draw();\n",
 
 1375                     ii,XMvdPixel->
at(ii),YMvdPixel->
at(ii),26,ii,ii);
 
 1380  for( i=0; i< nSciTilHits; i++) {
 
 1387                 posizSciTil->
at(i*3+0),
 
 1388                 posizSciTil->
at(i*3+1),
 
 1403     for(i=0, ii=0; i<nTracksFoundSoFar; i++){
 
 1405         if(!keepit->
at(i)) 
continue;
 
 1411 "TEllipse* ris%d=new TEllipse(%f,%f,%f,%f,%f,%f);\nris%d->SetFillStyle(0);\nris%d->SetLineColor(2);\nris%d->Draw(\"only\");\n",
 
 1412                 ii,aaa,bbb,rrr,rrr,primoangolo->
at(i),ultimoangolo->
at(i),ii,ii,ii);
 
 1418   for(i=0; i<nMCTracks;i++) {
 
 1420                 Double_t alfa0, newalfa, newx, newy,primo, ultimo ;
 
 1421          Double_t Rr, Oxx, Oyy, Cx, Cy, Px, Py, carica  ;
 
 1424                 TDatabasePDG *fdbPDG= TDatabasePDG::Instance();
 
 1427                 TParticlePDG *
fParticle= fdbPDG->GetParticle(icode);
 
 1428                 if (icode>1000000000) carica = 1.;
 
 1429                 else  carica = fParticle->Charge()/3. ;    
 
 1434                         aaa = 
sqrt( Px*Px + Py*Py);
 
 1435                 if( 
fabs(carica) > 0.1 ){
 
 1436                         Rr =   aaa*1000./(BFIELD*
CVEL); 
 
 1438                         Cx = Oxx + Py*1000./(BFIELD*CVEL*carica);
 
 1439                         Cy = Oyy - Px*1000./(BFIELD*CVEL*carica);
 
 1442                 primo=alfa0 = 
atan2(Oyy-Cy, Oxx-Cx);
 
 1445                         newalfa = alfa0 - carica*j*PI/45;
 
 1446                         newx = Cx + Rr*
cos(newalfa);
 
 1447                         newy = Cy + Rr*
sin(newalfa);
 
 1448                         if(newx > xmax || newx < xmin || newy>ymax||newy<ymin){
 
 1450                                 if(primo > ultimo ) { primo = ultimo; ultimo = alfa0;};
 
 1461 "TEllipse* MC%d = new TEllipse(%f,%f,%f,%f,%f,%f);\nMC%d->SetFillStyle(0);\nMC%d->SetLineColor(3);\nMC%d->Draw(\"only\");\n",
 
 1462                         i,Cx,Cy,Rr,Rr,primo*180./PI,ultimo*180./PI,i,i,i);
 
 1468                         if( Oxx < xmin || Oxx > xmax || Oyy < ymin || Oyy > ymax) 
continue;
 
 1469                         double time, time1, time2;
 
 1470                         if(
fabs(Px) >1.e-10 ){
 
 1471                                 time2 = (xmax-Oxx)/Px;
 
 1472                                 time1 = (xmin-Oxx)/Px;
 
 1473                                 if(time1<0. && time2<0.) {
 
 1475                                 }
else if(time2>0.&&time1<0.){
 
 1478                                 }
else if (time1>0. && time2<0.) {
 
 1491                                 fprintf(MACRO,
"TLine* MCneut%d = new TLine(%f,%f,%f,%f);\n",
 
 1493                                 fprintf(MACRO,
"MCneut%d->SetLineStyle(2);\n",i);
 
 1494                                 fprintf(MACRO,
"MCneut%d->SetLineColor(3);\nMCneut%d->Draw(\"only\");\n" 
 1496                         } 
else if( 
fabs(Px) >1.e-10 ) {
 
 1497                                 if( 
fabs(Py) >1.e-10 ) 
continue;
 
 1498                                 time2 = (ymax-Oyy)/Py;
 
 1499                                 time1 = (ymin-Oyy)/Py;
 
 1500                                 if(time1<0. && time2<0.) {
 
 1502                                 }
else if(time2>0.&&time1<0.){
 
 1504                                 }
else if (time1>0. && time2<0.) {
 
 1507                                         y2= time2>time1 ? ymax : ymin ;
 
 1509                                 fprintf(MACRO,
"TLine* MCneut%d = new TLine(%f,%f,%f,%f);\n",
 
 1511                                 fprintf(MACRO,
"MCneut%d->SetLineStyle(2);\n",i);
 
 1512                                 fprintf(MACRO,
"MCneut%d->SetLineColor(3);\nMCneut%d->Draw(\"only\");\n" 
 1529       fprintf(MACRO,
"}\n");
 
 1559         bool doMcComparison,
 
 1568         Short_t nSciTilHits,
 
 1569         Short_t nTracksFoundSoFar,
 
 1599            delta, deltax, deltay, 
 
 1613       char nome[300], nome2[300];
 
 1615  const double PI = 3.141592654;
 
 1623   Double_t  oX[Nhits], oY[Nhits], Radi[Nhits];
 
 1628   Double_t  ALF[nTracksFoundSoFar],BET[nTracksFoundSoFar],
 
 1629                 GAMM[nTracksFoundSoFar];
 
 1637       sprintf(nome,
"MacroSttAllHitsConformalwithMCEvent%d", IVOLTE);
 
 1638       sprintf(nome2,
"%s.C",nome);
 
 1639       FILE * MACRO = fopen(nome2,
"w");
 
 1640       fprintf(MACRO,
"void %s()\n{\n",nome);
 
 1650         for( i=0; i< nSciTilHits; i++) {
 
 1651                 Double_t erre = posizSciTil->
at(i*3+0)*posizSciTil->
at(i*3+0)+
 
 1652                                 posizSciTil->
at(i*3+1)*posizSciTil->
at(i*3+1);
 
 1653             USciTil[
i] = posizSciTil->
at(i*3+0)/erre;
 
 1654             VSciTil[
i] = posizSciTil->
at(i*3+1)/erre;
 
 1655             if (USciTil[i] < xmin)   xmin = USciTil[
i];
 
 1656             if (USciTil[i] > xmax)   xmax = USciTil[
i];
 
 1657             if (VSciTil[i] < ymin)   ymin = VSciTil[
i];
 
 1658             if (VSciTil[i] > ymax)   ymax = VSciTil[
i];
 
 1663        for( i=0; i< Nhits; i++) {
 
 1665          if( info->
at(i*7+5) == 1 ) {     
 
 1667             gamma = info->
at(i*7+0)*info->
at(i*7+0) +
 
 1668                 info->
at(i*7+1)*info->
at(i*7+1) - info->
at(i*7+3)*info->
at(i*7+3);
 
 1669             Ox[
i] = info->
at(i*7+0) / gamma;
 
 1670             Oy[
i] = info->
at(i*7+1) / gamma;
 
 1671             Radius[
i] = info->
at(i*7+3)/gamma;
 
 1672             if (Ox[i]-Radius[i] < xmin)   xmin = Ox[
i]-Radius[
i];
 
 1673             if (Ox[i]+Radius[i] > xmax)   xmax = Ox[
i]+Radius[
i];
 
 1674             if (Oy[i]-Radius[i] < ymin)   ymin = Oy[
i]-Radius[
i];
 
 1675             if (Oy[i]+Radius[i] > ymax)   ymax = Oy[
i]+Radius[
i];
 
 1679        if( xmin > 0. ) xmin = 0.;
 
 1680        if( xmax < 0.)  xmax = 0.;
 
 1681        if( ymin > 0. ) ymin = 0.;
 
 1682        if( ymax < 0.)  ymax = 0.;
 
 1685        deltay = ymax - ymin;
 
 1687        if( deltax > deltay) {
 
 1688          ymin -=  0.5*(deltax-deltay);
 
 1689          ymax = ymin+ deltax;
 
 1692          xmin -=  0.5*(deltay-deltax);
 
 1693          xmax = xmin+ deltay;
 
 1697        xmax = xmax + delta*0.15;
 
 1698        xmin = xmin - delta*0.15;
 
 1700        ymax = ymax + delta*0.15;
 
 1701        ymin = ymin - delta*0.15;
 
 1705        fprintf(MACRO,
"TCanvas* my= new TCanvas();\nmy->Range(%f,%f,%f,%f);\n",
 
 1706                 xmin,ymin,xmax,ymax);
 
 1711  "TEllipse* Griglia%d = new TEllipse(0.,0.,%f,%f,0.,360.);\nGriglia%d->SetLineColor(4);\nGriglia%d->Draw();\n",
 
 1712         In_Put.
NRDIVCONFORMAL,1./APOTEMASTRAWDETECTORMIN,1./APOTEMASTRAWDETECTORMIN,
 
 1717   "TEllipse* Griglia%d = new TEllipse(0.,0.,%f,%f,0.,360.);\nGriglia%d->SetLineColor(4);\nGriglia%d->Draw();\n",
 
 1730 "TLine* Seg%d = new TLine(%f,%f,%f,%f);\nSeg%d->SetLineColor(4);\nSeg%d->Draw();\n",
 
 1736         double RMAXSCITIL=50.; 
 
 1739             x1=
cos(ff)/RMAXSCITIL;
 
 1740             y1=
sin(ff)/RMAXSCITIL;
 
 1743  fprintf(MACRO,
"TLine* Seg%d = new TLine(%f,%f,%f,%f);\nSeg%d->SetLineColor(6);\nSeg%d->Draw();\n",
 
 1748        fprintf(MACRO,
"TGaxis *Assex = new  TGaxis(%f,%f,%f,%f,%f,%f,510);\n",xmin,0.,xmax,0.,xmin,xmax);
 
 1749        fprintf(MACRO,
"Assex->SetTitle(\"U    \");\n");
 
 1750        fprintf(MACRO,
"Assex->SetTitleOffset(1.5);\n");
 
 1751        fprintf(MACRO,
"Assex->Draw();\n");
 
 1752        fprintf(MACRO,
"TGaxis *Assey = new  TGaxis(%f,%f,%f,%f,%f,%f,510);\n", 0.,ymin,0.,ymax,ymin,ymax);
 
 1753        fprintf(MACRO,
"Assey->SetTitle(\"V    \");\n");
 
 1754        fprintf(MACRO,
"Assey->SetTitleOffset(1.5);\n");
 
 1755        fprintf(MACRO,
"Assey->Draw();\n");
 
 1759        for( i=0; i< Nhits; i++) {
 
 1761          if( info->
at(i*7+5) == 1 ) {     
 
 1763 "TEllipse* E%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nE%d->SetFillStyle(0);\nE%d->Draw();\n",
 
 1764                   i,Ox[i],Oy[i],Radius[i],Radius[i],i,i);
 
 1771         for( i=0; i< nSciTilHits; i++) {
 
 1778                         posizSciTil->
at(i*3+0),
 
 1779                         posizSciTil->
at(i*3+1),
 
 1791     for(i=0; i<nTracksFoundSoFar; i++){
 
 1792         if(!keepit->
at(i)) 
continue;
 
 1794         ALFA[
i] = -2.*Oxxx->
at(i);
 
 1795         BETA[
i] = -2.*Oyyy->
at(i);
 
 1796         GAMMA[
i]= Oxxx->
at(i)*Oxxx->
at(i)+Oyyy->
at(i)*Oyyy->
at(i)
 
 1797                  - R->
at(i) * R->
at(i);
 
 1798       if( 
fabs(GAMMA[i]) > 1.e-10) {
 
 1799        aaa = -0.5*ALFA[
i]/GAMMA[
i];
 
 1800        bbb = -0.5*BETA[
i]/GAMMA[
i];
 
 1801        rrr = 
sqrt( aaa*aaa+bbb*bbb-1./GAMMA[i]);
 
 1802        if( 
fabs(rrr/GAMMA[i]) < 30.) {
 
 1804 "TEllipse* ris%d=new TEllipse(%f,%f,%f,%f,0.,360.);\nris%d->SetFillStyle(0);\nris%d->SetLineColor(2);\nris%d->Draw();\n",
 
 1805                      i,aaa,bbb,rrr,rrr,i,i,i);
 
 1809           yl = -xmin*ALFA[
i]/BETA[
i] - 1./BETA[
i];
 
 1810           yu = -xmax*ALFA[
i]/BETA[
i] - 1./BETA[
i];
 
 1811           fprintf(MACRO,
"TLine* ris%d = new TLine(%f,%f,%f,%f);\n",i,xmin,yl,xmax,yu);
 
 1812           fprintf(MACRO,
"ris%d->SetLineColor(2);\n",i);
 
 1813           fprintf(MACRO,
"ris%d->Draw();\n",i);
 
 1820         if(
fabs(BETA[i]) < 1.e-10){
 
 1821          if(
fabs(ALFA[i])<1.e-10) {
 
 1824           fprintf(MACRO,
"TLine* ris%d = new TLine(%f,%f,%f,%f);\n" 
 1825                         ,i,-1./ALFA[i],ymin,- 1./ALFA[i],ymax);
 
 1826           fprintf(MACRO,
"ris%d->SetLineColor(2);\n",i);
 
 1827           fprintf(MACRO,
"ris%d->Draw();\n",i);
 
 1830           yl = -xmin*ALFA[
i]/BETA[
i] - 1./BETA[
i];
 
 1831           yu = -xmax*ALFA[
i]/BETA[
i] - 1./BETA[
i];
 
 1832           fprintf(MACRO,
"TLine* ris%d = new TLine(%f,%f,%f,%f);\n",i,xmin,yl,xmax,yu);
 
 1833           fprintf(MACRO,
"ris%d->SetLineColor(2);\n",i);
 
 1834           fprintf(MACRO,
"ris%d->Draw();\n",i);
 
 1847          Double_t Rr, Oxx, Oyy, Cx, Cy, Px, Py, carica  ;
 
 1849         for(i=0;i<nMCTracks; i++){
 
 1851                 if ( ! pMC ) 
continue;
 
 1857                 aaa = 
sqrt( Px*Px + Py*Py);
 
 1858                 Rr =   aaa*1000./(BFIELD*
CVEL);    
 
 1859          TDatabasePDG *fdbPDG= TDatabasePDG::Instance();
 
 1860          TParticlePDG *
fParticle= fdbPDG->GetParticle(icode);
 
 1861        if (icode>1000000000) carica = 1.;
 
 1862        else  carica = fParticle->Charge()/3. ;    
 
 1863        if (
fabs(carica)<0.1 ) 
continue;
 
 1864            Cx = Oxx + Py*1000./(BFIELD*CVEL*carica);
 
 1865            Cy = Oyy - Px*1000./(BFIELD*CVEL*carica);
 
 1866     gamma = -Rr*Rr + Cx*Cx+Cy*Cy;
 
 1867     if(
fabs(gamma)< 0.001) {
 
 1869        yl = xmin*(-Cx/Cy) + 0.5/Cy;
 
 1870        yu = xmax*(-Cx/Cy) + 0.5/Cy;
 
 1878        fprintf(MACRO,
"TLine* MCris%d = new TLine(%f,%f,%f,%f);\n",i,xl,yl,xu,yu);
 
 1879        fprintf(MACRO,
"MCris%d->SetLineStyle(2);\n",i);
 
 1880        fprintf(MACRO,
"MCris%d->SetLineColor(3);\n",i);
 
 1881        fprintf(MACRO,
"MCris%d->SetLineWidth(1);\n",i);
 
 1882        fprintf(MACRO,
"MCris%d->Draw();\n",i);
 
 1885        if(
fabs(Rr/gamma) > 1.) {
 
 1886          if(
fabs(Cy)>0.001 ) {
 
 1887            yl = -xmin*Cx/Cy+0.5/Cy;
 
 1888            yu = -xmax*Cx/Cy+0.5/Cy;
 
 1889            fprintf(MACRO,
"TLine* MCline%d = new TLine(%f,%f,%f,%f);\n",i,xmin,yl,xmax,yu);
 
 1890            fprintf(MACRO,
"MCline%d->SetLineColor(3);\n",i);
 
 1891            fprintf(MACRO,
"MCline%d->Draw();\n",i);
 
 1893            fprintf(MACRO,
"TLine* MCline%d = new TLine(%f,%f,%f,%f);\n" 
 1894            ,i,2.*Cx,ymin,2.*Cx,ymax);
 
 1895            fprintf(MACRO,
"MCline%d->SetLineColor(2);\n",i);
 
 1896            fprintf(MACRO,
"MCline%d->Draw();\n",i);
 
 1899            fprintf(MACRO, 
"TEllipse* MCcerchio%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nMCcerchio%d->SetLineColor(3);\n",
 
 1900                      i,Cx/gamma,Cy/gamma,Rr/
fabs(gamma),Rr/
fabs(gamma),i);
 
 1902            fprintf(MACRO,
"MCcerchio%d->SetFillStyle(0);\nMCcerchio%d->SetLineStyle(2);\nMCcerchio%d->SetLineWidth(1);\nMCcerchio%d->Draw();\n",
 
 1911      fprintf(MACRO,
"}\n");
 
 1939         bool doMcComparison,
 
 1946         Short_t nMvdPixelHit,
 
 1947         Short_t nMvdStripHit,
 
 1948         Short_t nSciTilHits,
 
 1949         Short_t nTracksFoundSoFar,
 
 1979            delta, deltax, deltay,
 
 1993       char nome[300], nome2[300];
 
 1995  const double PI = 3.141592654;
 
 2003   Double_t  oX[Nhits], oY[Nhits], Radi[Nhits];
 
 2010                 VPixel[nMvdPixelHit],
 
 2011                 PRadius[nMvdPixelHit],
 
 2012                 UStrip[nMvdStripHit],
 
 2013                 VStrip[nMvdStripHit],
 
 2014                 SRadius[nMvdStripHit];
 
 2025   Double_t  ALF[nTracksFoundSoFar],BET[nTracksFoundSoFar],
 
 2026                 GAMM[nTracksFoundSoFar];
 
 2034       sprintf(nome,
"MacroSttMvdAllHitsConformalwithMCEvent%d", IVOLTE);
 
 2035       sprintf(nome2,
"%s.C",nome);
 
 2036       FILE * MACRO = fopen(nome2,
"w");
 
 2037       fprintf(MACRO,
"void %s()\n{\n",nome);
 
 2047         for( i=0; i< nSciTilHits; i++) {
 
 2048                 Double_t erre = posizSciTil->
at(i*3+0)*posizSciTil->
at(i*3+0)+
 
 2049                                 posizSciTil->
at(i*3+1)*posizSciTil->
at(i*3+1);
 
 2050             USciTil[
i] = posizSciTil->
at(i*3+0)/erre;
 
 2051             VSciTil[
i] = posizSciTil->
at(i*3+1)/erre;
 
 2052             if (USciTil[i] < xmin)   xmin = USciTil[
i];
 
 2053             if (USciTil[i] > xmax)   xmax = USciTil[
i];
 
 2054             if (VSciTil[i] < ymin)   ymin = VSciTil[
i];
 
 2055             if (VSciTil[i] > ymax)   ymax = VSciTil[
i];
 
 2060        for( i=0; i< Nhits; i++) {
 
 2062          if( info->
at(i*7+5) == 1 ) {     
 
 2064             gamma = info->
at(i*7+0)*info->
at(i*7+0) +
 
 2065                 info->
at(i*7+1)*info->
at(i*7+1) - info->
at(i*7+3)*info->
at(i*7+3);
 
 2066             Ox[
i] = info->
at(i*7+0) / gamma;
 
 2067             Oy[
i] = info->
at(i*7+1) / gamma;
 
 2068             Radius[
i] = info->
at(i*7+3)/gamma;
 
 2069             if (Ox[i]-Radius[i] < xmin)   xmin = Ox[
i]-Radius[
i];
 
 2070             if (Ox[i]+Radius[i] > xmax)   xmax = Ox[
i]+Radius[
i];
 
 2071             if (Oy[i]-Radius[i] < ymin)   ymin = Oy[
i]-Radius[
i];
 
 2072             if (Oy[i]+Radius[i] > ymax)   ymax = Oy[
i]+Radius[
i];
 
 2080                 pseudoRadius = 0.01 ; 
 
 2082      for( i=0; i< nMvdPixelHit; i++) {
 
 2086         CC = XMvdPixel->
at(i)*XMvdPixel->
at(i) + YMvdPixel->
at(i)*YMvdPixel->
at(i);
 
 2088         gamma = CC - pseudoRadius*pseudoRadius;
 
 2089         PixelU[
i] = XMvdPixel->
at(i) / gamma;
 
 2090         PixelV[
i] = YMvdPixel->
at(i) / gamma;
 
 2091         RadiusP[
i] = pseudoRadius/gamma;
 
 2092         if (PixelU[i]-RadiusP[i] < xmin)   xmin = PixelU[
i]-RadiusP[
i];
 
 2093         if (PixelU[i]+RadiusP[i] > xmax)   xmax = PixelU[
i]+RadiusP[
i];
 
 2094         if (PixelV[i]-RadiusP[i] < ymin)   ymin = PixelV[
i]-RadiusP[
i];
 
 2095         if (PixelV[i]+RadiusP[i] > ymax)   ymax = PixelV[
i]+RadiusP[
i];
 
 2100      for( i=0; i< nMvdStripHit; i++) {
 
 2104         CC = XMvdStrip->
at(i)*XMvdStrip->
at(i) + YMvdStrip->
at(i)*YMvdStrip->
at(i);
 
 2106         gamma = CC - pseudoRadius*pseudoRadius;
 
 2107         StripU[
i] = XMvdStrip->
at(i) / gamma;
 
 2108         StripV[
i] = YMvdStrip->
at(i) / gamma;
 
 2109         RadiusS[
i] = pseudoRadius/gamma;
 
 2111         if (StripU[i]-RadiusS[i] < xmin)   xmin = StripU[
i]-RadiusS[
i];
 
 2112         if (StripU[i]+RadiusS[i] > xmax)   xmax = StripU[
i]+RadiusS[
i];
 
 2113         if (StripV[i]-RadiusS[i] < ymin)   ymin = StripV[
i]-RadiusS[
i];
 
 2114         if (StripV[i]+RadiusS[i] > ymax)   ymax = StripV[
i]+RadiusS[
i];
 
 2120        if( xmin > 0. ) xmin = 0.;
 
 2121        if( xmax < 0.)  xmax = 0.;
 
 2122        if( ymin > 0. ) ymin = 0.;
 
 2123        if( ymax < 0.)  ymax = 0.;
 
 2126        deltay = ymax - ymin;
 
 2128        if( deltax > deltay) {
 
 2129          ymin -=  0.5*(deltax-deltay);
 
 2130          ymax = ymin+ deltax;
 
 2133          xmin -=  0.5*(deltay-deltax);
 
 2134          xmax = xmin+ deltay;
 
 2138        xmax = xmax + delta*0.15;
 
 2139        xmin = xmin - delta*0.15;
 
 2141        ymax = ymax + delta*0.15;
 
 2142        ymin = ymin - delta*0.15;
 
 2146        fprintf(MACRO,
"TCanvas* my= new TCanvas();\nmy->Range(%f,%f,%f,%f);\n",
 
 2147                 xmin,ymin,xmax,ymax);
 
 2152  "TEllipse* Griglia%d = new TEllipse(0.,0.,%f,%f,0.,360.);\nGriglia%d->SetLineColor(4);\nGriglia%d->Draw();\n",
 
 2153         In_Put.
NRDIVCONFORMAL,1./APOTEMASTRAWDETECTORMIN,1./APOTEMASTRAWDETECTORMIN,
 
 2158   "TEllipse* Griglia%d = new TEllipse(0.,0.,%f,%f,0.,360.);\nGriglia%d->SetLineColor(4);\nGriglia%d->Draw();\n",
 
 2171 "TLine* Seg%d = new TLine(%f,%f,%f,%f);\nSeg%d->SetLineColor(4);\nSeg%d->Draw();\n",
 
 2177         double RMAXSCITIL=50.; 
 
 2180             x1=
cos(ff)/RMAXSCITIL;
 
 2181             y1=
sin(ff)/RMAXSCITIL;
 
 2184  fprintf(MACRO,
"TLine* Seg%d = new TLine(%f,%f,%f,%f);\nSeg%d->SetLineColor(6);\nSeg%d->Draw();\n",
 
 2189        fprintf(MACRO,
"TGaxis *Assex = new  TGaxis(%f,%f,%f,%f,%f,%f,510);\n",xmin,0.,xmax,0.,xmin,xmax);
 
 2190        fprintf(MACRO,
"Assex->SetTitle(\"U    \");\n");
 
 2191        fprintf(MACRO,
"Assex->SetTitleOffset(1.5);\n");
 
 2192        fprintf(MACRO,
"Assex->Draw();\n");
 
 2193        fprintf(MACRO,
"TGaxis *Assey = new  TGaxis(%f,%f,%f,%f,%f,%f,510);\n", 0.,ymin,0.,ymax,ymin,ymax);
 
 2194        fprintf(MACRO,
"Assey->SetTitle(\"V    \");\n");
 
 2195        fprintf(MACRO,
"Assey->SetTitleOffset(1.5);\n");
 
 2196        fprintf(MACRO,
"Assey->Draw();\n");
 
 2200        for( i=0; i< Nhits; i++) {
 
 2202          if( info->
at(i*7+5) == 1 ) {     
 
 2204 "TEllipse* E%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nE%d->SetFillStyle(0);\nE%d->Draw();\n",
 
 2205                   i,Ox[i],Oy[i],Radius[i],Radius[i],i,i);
 
 2212        for( i=0; i< nMvdPixelHit; i++) {
 
 2214 "TMarker* Pixel%d = new TMarker(%f,%f,%d);\nPixel%d->SetMarkerColor(1);\nPixel%d->Draw();\n",
 
 2215                   i,PixelU[i],PixelV[i],26,i,i);
 
 2224        for( i=0; i< nMvdStripHit; i++) {
 
 2226 "TMarker* Strip%d = new TMarker(%f,%f,%d);\nStrip%d->SetMarkerColor(1);\nStrip%d->Draw();\n",
 
 2227                   i,StripU[i],StripV[i],25,i,i);
 
 2233         for( i=0; i< nSciTilHits; i++) {
 
 2240                         posizSciTil->
at(i*3+0),
 
 2241                         posizSciTil->
at(i*3+1),
 
 2253     for(i=0; i<nTracksFoundSoFar; i++){
 
 2254         if(!keepit->
at(i)) 
continue;
 
 2256         ALFA[
i] = -2.*Oxxx->
at(i);
 
 2257         BETA[
i] = -2.*Oyyy->
at(i);
 
 2258         GAMMA[
i]= Oxxx->
at(i)*Oxxx->
at(i)+Oyyy->
at(i)*Oyyy->
at(i)
 
 2259                  - R->
at(i) * R->
at(i);
 
 2260       if( 
fabs(GAMMA[i]) > 1.e-10) {
 
 2261        aaa = -0.5*ALFA[
i]/GAMMA[
i];
 
 2262        bbb = -0.5*BETA[
i]/GAMMA[
i];
 
 2263        rrr = 
sqrt( aaa*aaa+bbb*bbb-1./GAMMA[i]);
 
 2264        if( 
fabs(rrr/GAMMA[i]) < 30.) {
 
 2266 "TEllipse* ris%d=new TEllipse(%f,%f,%f,%f,0.,360.);\nris%d->SetFillStyle(0);\nris%d->SetLineColor(2);\nris%d->Draw();\n",
 
 2267                      i,aaa,bbb,rrr,rrr,i,i,i);
 
 2271           yl = -xmin*ALFA[
i]/BETA[
i] - 1./BETA[
i];
 
 2272           yu = -xmax*ALFA[
i]/BETA[
i] - 1./BETA[
i];
 
 2273           fprintf(MACRO,
"TLine* ris%d = new TLine(%f,%f,%f,%f);\n",i,xmin,yl,xmax,yu);
 
 2274           fprintf(MACRO,
"ris%d->SetLineColor(2);\n",i);
 
 2275           fprintf(MACRO,
"ris%d->Draw();\n",i);
 
 2282         if(
fabs(BETA[i]) < 1.e-10){
 
 2283          if(
fabs(ALFA[i])<1.e-10) {
 
 2286           fprintf(MACRO,
"TLine* ris%d = new TLine(%f,%f,%f,%f);\n" 
 2287                         ,i,-1./ALFA[i],ymin,- 1./ALFA[i],ymax);
 
 2288           fprintf(MACRO,
"ris%d->SetLineColor(2);\n",i);
 
 2289           fprintf(MACRO,
"ris%d->Draw();\n",i);
 
 2292           yl = -xmin*ALFA[
i]/BETA[
i] - 1./BETA[
i];
 
 2293           yu = -xmax*ALFA[
i]/BETA[
i] - 1./BETA[
i];
 
 2294           fprintf(MACRO,
"TLine* ris%d = new TLine(%f,%f,%f,%f);\n",i,xmin,yl,xmax,yu);
 
 2295           fprintf(MACRO,
"ris%d->SetLineColor(2);\n",i);
 
 2296           fprintf(MACRO,
"ris%d->Draw();\n",i);
 
 2309          Double_t Rr, Oxx, Oyy, Cx, Cy, Px, Py, carica  ;
 
 2311         for(i=0;i<nMCTracks; i++){
 
 2313                 if ( ! pMC ) 
continue;
 
 2319                 aaa = 
sqrt( Px*Px + Py*Py);
 
 2320                 Rr =   aaa*1000./(BFIELD*
CVEL);    
 
 2321          TDatabasePDG *fdbPDG= TDatabasePDG::Instance();
 
 2322          TParticlePDG *
fParticle= fdbPDG->GetParticle(icode);
 
 2323        if (icode>1000000000) carica = 1.;
 
 2324        else  carica = fParticle->Charge()/3. ;    
 
 2325        if (
fabs(carica)<0.1 ) 
continue;
 
 2326            Cx = Oxx + Py*1000./(BFIELD*CVEL*carica);
 
 2327            Cy = Oyy - Px*1000./(BFIELD*CVEL*carica);
 
 2328     gamma = -Rr*Rr + Cx*Cx+Cy*Cy;
 
 2329     if(
fabs(gamma)< 0.001) {
 
 2331        yl = xmin*(-Cx/Cy) + 0.5/Cy;
 
 2332        yu = xmax*(-Cx/Cy) + 0.5/Cy;
 
 2340        fprintf(MACRO,
"TLine* MCris%d = new TLine(%f,%f,%f,%f);\n",i,xl,yl,xu,yu);
 
 2341        fprintf(MACRO,
"MCris%d->SetLineStyle(2);\n",i);
 
 2342        fprintf(MACRO,
"MCris%d->SetLineColor(3);\n",i);
 
 2343        fprintf(MACRO,
"MCris%d->SetLineWidth(1);\n",i);
 
 2344        fprintf(MACRO,
"MCris%d->Draw();\n",i);
 
 2347        if(
fabs(Rr/gamma) > 1.) {
 
 2348          if(
fabs(Cy)>0.001 ) {
 
 2349            yl = -xmin*Cx/Cy+0.5/Cy;
 
 2350            yu = -xmax*Cx/Cy+0.5/Cy;
 
 2351            fprintf(MACRO,
"TLine* MCline%d = new TLine(%f,%f,%f,%f);\n",i,xmin,yl,xmax,yu);
 
 2352            fprintf(MACRO,
"MCline%d->SetLineColor(3);\n",i);
 
 2353            fprintf(MACRO,
"MCline%d->Draw();\n",i);
 
 2355            fprintf(MACRO,
"TLine* MCline%d = new TLine(%f,%f,%f,%f);\n" 
 2356            ,i,2.*Cx,ymin,2.*Cx,ymax);
 
 2357            fprintf(MACRO,
"MCline%d->SetLineColor(2);\n",i);
 
 2358            fprintf(MACRO,
"MCline%d->Draw();\n",i);
 
 2361            fprintf(MACRO, 
"TEllipse* MCcerchio%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nMCcerchio%d->SetLineColor(3);\n",
 
 2362                      i,Cx/gamma,Cy/gamma,Rr/
fabs(gamma),Rr/
fabs(gamma),i);
 
 2364            fprintf(MACRO,
"MCcerchio%d->SetFillStyle(0);\nMCcerchio%d->SetLineStyle(2);\nMCcerchio%d->SetLineWidth(1);\nMCcerchio%d->Draw();\n",
 
 2373      fprintf(MACRO,
"}\n");
 
 2410  Short_t charge = In_Put.
Charge[iTrack] ;
 
 2417  int IVOLTE = In_Put.
IVOLTE ;
 
 2441  Short_t nSkewCommon = In_Put.
nSkewCommon[iTrack] ;
 
 2463  TDatabasePDG *fdbPDG= TDatabasePDG::Instance();
 
 2468     Int_t 
i, j, i1, ii, iii, imc, Nmin, Nmax;
 
 2474            zmin, zmax, zmin2, zmax2, Smin, Smax, 
 
 2495       char  nome2[300],nome[300];
 
 2497       sprintf(nome,  
"MacroSttMvdSZwithMCEvent%dT%d", IVOLTE,iNome);
 
 2498       sprintf(nome2,  
"%s.C",nome);
 
 2499       MACRO = fopen(nome2,
"w");
 
 2500       fprintf(MACRO,
"{\n");
 
 2505  if( nSciTilHitsinTrack[iTrack]+nSkewHitsinTrack[iTrack]+
 
 2506         nPixelHitsinTrack[iTrack]+
 
 2507         nStripHitsinTrack[iTrack] == 1) 
 
 2520  for(i=0; i<nSciTilHitsinTrack[iTrack];i++){
 
 2521                 j=ListSciTilHitsinTrack[iTrack*MAXSCITILHITSINTRACK+
i];
 
 2522                 if( ESSE[i]>Smax ) Smax=ESSE[
i];
 
 2523                 if( ESSE[i]<Smin ) Smin=ESSE[
i];
 
 2524                 if( posizSciTil[j*3+2]>zmax ) zmax=posizSciTil[j*3+2];
 
 2525                 if( posizSciTil[j*3+2]<zmin ) zmin=posizSciTil[j*3+2];
 
 2532                 if( ESSEalone[i]>Smax ) Smax=ESSEalone[
i];
 
 2533                 if( ESSEalone[i]<Smin ) Smin=ESSEalone[
i];
 
 2534                 if( posizSciTil[j*3+2]>zmax ) zmax=posizSciTil[j*3+2];
 
 2535                 if( posizSciTil[j*3+2]<zmin ) zmin=posizSciTil[j*3+2];
 
 2547         auxZErrorafterTilt[2];  
 
 2552                 auxInfo[
i][j] = info[i*7+j];
 
 2557        for( iii=0; iii< nSkewHitsinTrack[iTrack]; iii++) {
 
 2558          i = ListSkewHitsinTrack[iTrack*MAXSTTHITSINTRACK+iii];
 
 2576        for( ii=0; ii<2; ii++){
 
 2577             if( auxZ[ii] < 999998.){
 
 2578                 if(zmin>auxZ[ii]-auxZDrift[ii]) zmin=auxZ[ii]-auxZDrift[ii];
 
 2579                 if(zmax<auxZ[ii]+auxZDrift[ii]) zmax=auxZ[ii]+auxZDrift[ii];
 
 2581                 if(Smin>auxS[ii]-auxSDrift[ii]) Smin=auxS[ii]-auxSDrift[ii];
 
 2582                 if(Smax<auxS[ii]+auxSDrift[ii]) Smax=auxS[ii]+auxSDrift[ii];
 
 2591        for( iii=0; iii< nMCSkewAlone; iii++) {
 
 2597                 MCSkewAloneList[iTrack*In_Put.
nSttHit+iii],     
 
 2615         if(auxZ[0] <999998. ) { ii = 0; dis =auxZ[0]; }
 
 2616         else if (auxZ[1] <999998. ) { ii = 1;dis =auxZ[1];}
 
 2617         else if (auxZ[0] > 999999.5 && auxZ[1]>999999.5) 
 
 2627                 if(auxZ[0]<auxZ[1])  { ii=0 ; dis=auxZ[0]-1000000.;}  
else { ii=1; dis = auxZ[1]-1000000.;}
 
 2629         } 
else if (auxZ[0] > 999999.5) {  
 
 2631                 dis=auxZ[0]-1000000.;
 
 2632         } 
else if (auxZ[1] > 999999.5) {  
 
 2634                 dis=auxZ[0]-1000000.;
 
 2639         if(zmin>dis-auxZDrift[ii]) zmin=dis-auxZDrift[ii];
 
 2640         if(zmax<dis+auxZDrift[ii]) zmax=dis+auxZDrift[ii];
 
 2654   for(i=0; i<nPixelHitsinTrack[iTrack];i++){
 
 2655         ii=ListPixelHitsinTrack[iTrack*MAXMVDPIXELHITSINTRACK+
i];
 
 2657         if( zmin > ZMvdPixel[ ii ] )
 
 2658             zmin = ZMvdPixel[ ii ];
 
 2659         if( zmax <  ZMvdPixel[ii ] )
 
 2660             zmax = ZMvdPixel[ii ];
 
 2662         esse = 
atan2( YMvdPixel[ ii ]-Oyy,
 
 2663                       XMvdPixel[ ii ]-Oxx);
 
 2664         if(esse<0.) esse +=2.*
PI;
 
 2668         if( Smin > esse ) Smin = esse;
 
 2669         if( Smax < esse ) Smax = esse;
 
 2674   for(i=0; i<nStripHitsinTrack[iTrack];i++){
 
 2675         ii=ListStripHitsinTrack[iTrack*MAXMVDSTRIPHITSINTRACK+
i];
 
 2676         if( zmin > ZMvdStrip[ ii ] )
 
 2677             zmin = ZMvdStrip[ ii ];
 
 2678         if( zmax <  ZMvdStrip[ii ] )
 
 2679             zmax = ZMvdStrip[ii ];
 
 2681         esse = 
atan2( YMvdStrip[ ii ]-Oyy,
 
 2682                       XMvdStrip[ ii ]-Oxx);
 
 2683         if(esse<0.) esse +=2.*
PI;
 
 2687         if( Smin > esse ) Smin = esse;
 
 2688         if( Smax < esse ) Smax = esse;
 
 2693   for(i=0; i<nMCMvdPixelAlone;i++){
 
 2696         if( zmin > ZMvdPixel[ ii ] )
 
 2697             zmin = ZMvdPixel[ ii ];
 
 2698         if( zmax <  ZMvdPixel[ii ] )
 
 2699             zmax = ZMvdPixel[ii ];
 
 2701         esse = 
atan2( YMvdPixel[ ii ]-Oyy,
 
 2702                       XMvdPixel[ ii ]-Oxx);
 
 2703         if(esse<0.) esse +=2.*
PI;
 
 2704         if( Smin > esse ) Smin = esse;
 
 2705         if( Smax < esse ) Smax = esse;
 
 2711   for(i=0; i<nMCMvdStripAlone;i++){
 
 2713         if( zmin > ZMvdStrip[ ii ] )
 
 2714             zmin = ZMvdStrip[ ii ];
 
 2715         if( zmax <  ZMvdStrip[ii ] )
 
 2716             zmax = ZMvdStrip[ii ];
 
 2718         esse = 
atan2( YMvdStrip[ ii ]-Oyy,
 
 2719                       XMvdStrip[ ii ]-Oxx);
 
 2720         if(esse<0.) esse +=2.*
PI;
 
 2721         if( Smin > esse ) Smin = esse;
 
 2722         if( Smax < esse ) Smax = esse;
 
 2726   if( zmax >= zmin  &&  Smax >= Smin ) {
 
 2738   if(Smax > 2.*PI) Smax = 2.*
PI;
 
 2739   if( Smin < 0.) Smin = 0.;
 
 2746   fprintf(MACRO,
"TCanvas* my= new  TCanvas();\nmy->Range(%f,%f,%f,%f);\n",
 
 2747         zmin-0.1*deltaz,Rr*(Smin-.1*deltaS),zmax+0.1*deltaz,Rr*(Smax+0.1*deltaS));
 
 2748    fprintf(MACRO,
"TGaxis *Assex = new  TGaxis(%f,%f,%f,%f,%f,%f,510);\n",
 
 2749         zmin-0.01*deltaz,Rr*(Smin+0.05*deltaS),zmax+0.01*deltaz,Rr*(Smin+0.05*deltaS),
 
 2750         zmin-0.01*deltaz,zmax+0.01*deltaz);
 
 2751    fprintf(MACRO,
"Assex->SetTitle(\"Z (cm)\");\n");
 
 2752    fprintf(MACRO,
"Assex->Draw();\n");
 
 2753    fprintf(MACRO,
"TGaxis *Assey = new  TGaxis(%f,%f,%f,%f,%f,%f,510);\n",
 
 2754        zmin+0.05*deltaz,Rr*(Smin-0.01*deltaS),zmin+0.05*deltaz,Rr*(Smax+0.01*deltaS),
 
 2755                 Rr*(Smin-0.01*deltaS),Rr*(Smax+0.01*deltaS));
 
 2756    fprintf(MACRO,
"Assey->SetTitle(\"Helix crf (cm)\");\n");
 
 2757    fprintf(MACRO,
"Assey->Draw();\n");
 
 2763         for(i=0;i<nSciTilHitsinTrack[iTrack];i++){
 
 2764                 j=ListSciTilHitsinTrack[iTrack*MAXSCITILHITSINTRACK+
i];
 
 2803        for( iii=0; iii< nSkewHitsinTrack[iTrack]; iii++) {
 
 2804          i = ListSkewHitsinTrack[iTrack*MAXSTTHITSINTRACK+iii] ;
 
 2824        for( ii=0; ii<2; ii++){
 
 2825             if( auxZ[ii] > 999998.) 
continue;   
 
 2829                 for( i1=0; i1<nSkewCommon; i1++){
 
 2830                         if ( SkewCommonList[iTrack*MAXSTTHITSINTRACK +i1] == i ){
 
 2837  "TEllipse* spurioSkew%d_%d = new TEllipse(%f,%f,%f,%f,0.,360.,%f);\nspurioSkew%d_%d->SetFillStyle(0);\n",
 
 2838                     i,ii,auxZ[ii],Rr*auxS[ii],auxZDrift[ii],Rr*auxSDrift[ii],0.,i,ii);
 
 2839            fprintf(MACRO,
"spurioSkew%d_%d->SetLineColor(2);\n",i,ii);
 
 2840            fprintf(MACRO,
"spurioSkew%d_%d->Draw();\n",i,ii);
 
 2842            fprintf(MACRO,
"TEllipse* Skew%d_%d = new TEllipse(%f,%f,%f,%f,0.,360.,%f);\nSkew%d_%d->SetFillStyle(0);\n",
 
 2843                     i,ii,auxZ[ii],Rr*auxS[ii],auxZDrift[ii],Rr*auxSDrift[ii],0.,i,ii);
 
 2844            fprintf(MACRO,
"Skew%d_%d->Draw();\n",i,ii);
 
 2856        for( iii=0; iii< nMCSkewAlone; iii++) {
 
 2857          i = MCSkewAloneList[iTrack*In_Put.
nSttHit+iii];
 
 2887         if(auxZ[0] <999998. ) { ii = 0; dis =auxZ[0]; }
 
 2888         else if (auxZ[1] <999998. ) { ii = 1;dis =auxZ[1];}
 
 2889         else if (auxZ[0] > 999999.5 && auxZ[1]>999999.5) 
 
 2899                 if(auxZ[0]<auxZ[1])  { ii=0 ; dis=auxZ[0]-1000000.;}  
else { ii=1; dis = auxZ[1]-1000000.;}
 
 2901         } 
else if (auxZ[0] > 999999.5) {  
 
 2903                 dis=auxZ[0]-1000000.;
 
 2904         } 
else if (auxZ[1] > 999999.5) {  
 
 2906                 dis=auxZ[0]-1000000.;
 
 2913         fprintf(MACRO,
"TEllipse* AloneSkew%d_%d = new TEllipse(%f,%f,%f,%f,0.,360.,%f);\nAloneSkew%d_%d->SetFillStyle(0);\n",
 
 2914                     i,ii,dis,Rr*auxS[ii],auxZDrift[ii],Rr*auxSDrift[ii],0.,i,ii);
 
 2918         fprintf(MACRO,
"AloneSkew%d_%d->SetLineColor(4);\n",i,ii);
 
 2919         fprintf(MACRO,
"AloneSkew%d_%d->Draw();\n",i,ii);
 
 2932   for(i=0; i<nPixelHitsinTrack[iTrack];i++){
 
 2933         ii=ListPixelHitsinTrack[iTrack*MAXMVDPIXELHITSINTRACK+
i];
 
 2934         if( zmin > ZMvdPixel[ ii ] )
 
 2935             zmin = ZMvdPixel[ ii ];
 
 2936         if( zmax <  ZMvdPixel[ii ] )
 
 2937             zmax = ZMvdPixel[ii ];
 
 2939         esse = 
atan2( YMvdPixel[ ii ]-Oyy,
 
 2940                       XMvdPixel[ ii ]-Oxx);
 
 2941         if(esse<0.) esse +=2.*
PI;
 
 2945         if( Smin > esse ) Smin = esse;
 
 2946         if( Smax < esse ) Smax = esse;
 
 2950                 for( 
int k=0; k<nMvdPixelCommon;k++){
 
 2951                         if( MvdPixelCommonList[iTrack*MAXMVDPIXELHITSINTRACK+k]== ii){
 
 2953                 "TMarker* CommonPixel%d = new TMarker(%f,%f,%d);\nCommonPixel%d->SetMarkerColor(1);\n",
 
 2954                                 ii,ZMvdPixel[ii],Rr*esse,26,ii);
 
 2955                 fprintf(MACRO,
"CommonPixel%d->Draw();\n",ii);
 
 2961             fprintf(MACRO,
"TMarker* SpuriousPixel%d = new TMarker(%f,%f,%d);\nSpuriousPixel%d->SetMarkerColor(2);\n",
 
 2962                     ii,ZMvdPixel[ii],Rr*esse,26,ii);
 
 2963                 fprintf(MACRO,
"SpuriousPixel%d->Draw();\n",ii);
 
 2968   for(i=0; i<nStripHitsinTrack[iTrack];i++){
 
 2969         ii=ListStripHitsinTrack[iTrack*MAXMVDSTRIPHITSINTRACK+
i];
 
 2970         if( zmin > ZMvdStrip[ ii ] )
 
 2971             zmin = ZMvdStrip[ ii ];
 
 2972         if( zmax <  ZMvdStrip[ii ] )
 
 2973             zmax = ZMvdStrip[ii ];
 
 2975         esse = 
atan2( YMvdStrip[ ii ]-Oyy,
 
 2976                       XMvdStrip[ ii ]-Oxx);
 
 2977         if(esse<0.) esse +=2.*
PI;
 
 2981         if( Smin > esse ) Smin = esse;
 
 2982         if( Smax < esse ) Smax = esse;
 
 2985                 for( 
int k=0; k<nMvdStripCommon;k++){
 
 2986                         if( MvdStripCommonList[iTrack*MAXMVDSTRIPHITSINTRACK+k]== ii){
 
 2987             fprintf(MACRO,
"TMarker* CommonStrip%d = new TMarker(%f,%f,%d);\nCommonStrip%d->SetMarkerColor(1);\n",
 
 2988                     ii,ZMvdStrip[ii],Rr*esse,25,ii);
 
 2989                 fprintf(MACRO,
"CommonStrip%d->Draw();\n",ii);
 
 2995             fprintf(MACRO,
"TMarker* SpuriousStrip%d = new TMarker(%f,%f,%d);\nSpuriousStrip%d->SetMarkerColor(2);\n",
 
 2996                     ii,ZMvdStrip[ii],Rr*esse,25,ii);
 
 2997                 fprintf(MACRO,
"SpuriousStrip%d->Draw();\n",ii);
 
 3005   for(i=0; i<nMCMvdPixelAlone;i++){
 
 3008         if( zmin > ZMvdPixel[ ii ] )
 
 3009             zmin = ZMvdPixel[ ii ];
 
 3010         if( zmax <  ZMvdPixel[ii ] )
 
 3011             zmax = ZMvdPixel[ii ];
 
 3013         esse = 
atan2( YMvdPixel[ ii ]-Oyy,
 
 3014                       XMvdPixel[ ii ]-Oxx);
 
 3015         if(esse<0.) esse +=2.*
PI;
 
 3016         if( Smin > esse ) Smin = esse;
 
 3017         if( Smax < esse ) Smax = esse;
 
 3018            fprintf(MACRO,
"TMarker* AlonePixel%d = new TMarker(%f,%f,%d);\nAlonePixel%d->SetMarkerColor(4);\n",
 
 3019                     ii,ZMvdPixel[ii],Rr*esse,26,ii);
 
 3020                 fprintf(MACRO,
"AlonePixel%d->Draw();\n",ii);
 
 3026   for(i=0; i<nMCMvdStripAlone;i++){
 
 3028         if( zmin > ZMvdStrip[ ii ] )
 
 3029             zmin = ZMvdStrip[ ii ];
 
 3030         if( zmax <  ZMvdStrip[ii ] )
 
 3031             zmax = ZMvdStrip[ii ];
 
 3033         esse = 
atan2( YMvdStrip[ ii ]-Oyy,
 
 3034                       XMvdStrip[ ii ]-Oxx);
 
 3035         if(esse<0.) esse +=2.*
PI;
 
 3036         if( Smin > esse ) Smin = esse;
 
 3037         if( Smax < esse ) Smax = esse;
 
 3039             fprintf(MACRO,
"TMarker* AloneStrip%d = new TMarker(%f,%f,%d);\nAloneStrip%d->SetMarkerColor(4);\n",
 
 3040                     ii,ZMvdStrip[ii],Rr*esse,25,ii);
 
 3041                 fprintf(MACRO,
"AloneStrip%d->Draw();\n",ii);
 
 3055         if( -KAPPA*charge>0.) { 
 
 3057                         cout<<
"da WriteMacroSkewAssociatedHitswithMC, questa traccia" 
 3058                         <<
" e' inconsistente col proprio Pz, non plottata!\n";
 
 3065                         cout<<
"da WriteMacroSkewAssociatedHitswithMC, questa traccia" 
 3066                         <<
" e' inconsistente col proprio Pz, non plottata!\n";
 
 3077      fmin = KAPPA*zmin + FI0;
 
 3078      fmax = KAPPA*zmax + FI0;
 
 3080      fmax = KAPPA*zmin + FI0;
 
 3081      fmin = KAPPA*zmax + FI0;
 
 3084     Nmax = (int) (0.5*fmax/ PI);
 
 3086     Nmax = ( (int) (0.5*fmax/ PI) ) -1;
 
 3089     Nmin = (int) (0.5*fmin/ PI);
 
 3091     Nmin = ((int) (0.5*fmin/ PI) )-1;
 
 3093    if(
fabs(KAPPA)<1.e-10) {
 
 3094         cout<<
"da WriteMacroSkewAssociatedHitswithMC, questa traccia Found da PR non plottata" 
 3095         <<
" perche' ha fabs(KAPPA)<1.e-10.\n";
 
 3097         for(i=Nmin; i<= Nmax;i++){
 
 3099                 z1 = (i*2.*PI-FI0)/KAPPA;
 
 3100                 z2 = ((i+1)*2.*PI-FI0)/KAPPA;
 
 3102 "TLine* FOUND%d = new TLine(%f,%f,%f,%f);\nFOUND%d->SetLineColor(2);\nFOUND%d->Draw();\n",
 
 3103                         i-Nmin,z1,0.,z2, Rr*2.*PI,i-Nmin,i-Nmin);
 
 3119      imc=    daTrackFoundaTrackMC ;
 
 3123          Double_t  Fifi, Kakka, o_x, o_y, Cx, Cy, Px, Py, carica  ;
 
 3132                 aaa = 
sqrt( Px*Px + Py*Py);
 
 3134                 TParticlePDG *
fParticle= fdbPDG->GetParticle(icode);
 
 3135                 if (icode>1000000000) carica = 1.;
 
 3136                 else  carica = fParticle->Charge()/3. ;    
 
 3137   if (
fabs(carica)>=0.1 ){
 
 3138                 Cx = o_x + Py*1000./(BFIELD*CVEL*carica);
 
 3139                 Cy = o_y - Px*1000./(BFIELD*CVEL*carica);
 
 3140                 Fifi = 
atan2(Cy, Cx);       
 
 3141                 if(Fifi<0.)  Fifi += 2.*
PI;
 
 3143                 else  Kakka = -carica*0.001*BFIELD*CVEL/pMC->
GetMomentum().Z();
 
 3145      FI0 = fmod(Fifi+ PI, 2.*PI);
 
 3147      fmin = KAPPA*zmin + FI0;
 
 3148      fmax = KAPPA*zmax + FI0;
 
 3150      fmax = KAPPA*zmin + FI0;
 
 3151      fmin = KAPPA*zmax + FI0;
 
 3154     Nmax = (int) (0.5*fmax/ PI);
 
 3156     Nmax = ( (int) (0.5*fmax/ PI) ) -1;
 
 3159     Nmin = (int) (0.5*fmin/ PI);
 
 3161     Nmin = ((int) (0.5*fmin/ PI) )-1;
 
 3164   for(i=Nmin; i<= Nmax;i++){
 
 3166    z1 = (i*2.*PI-FI0)/KAPPA;
 
 3167    z2 = ((i+1)*2.*PI-FI0)/KAPPA;
 
 3168    fprintf(MACRO,
"TLine* MC%d_%d = new TLine(%f,%f,%f,%f);\nMC%d_%d->SetLineColor(3);\nMC%d_%d->Draw();\n",
 
 3169                  imc,i-Nmin,z1,0.,z2,Rr* 2.*PI,imc,i-Nmin,imc,i-Nmin);
 
 3180       fprintf(MACRO,
"}\n");
 
 3212  Short_t charge = In_Put.
Charge[iTrack] ;
 
 3219  int IVOLTE = In_Put.
IVOLTE ;
 
 3243  Short_t nSkewCommon = In_Put.
nSkewCommon[iTrack] ;
 
 3265  TDatabasePDG *fdbPDG= TDatabasePDG::Instance();
 
 3270     Int_t 
i, j, i1, ii, iii, imc, Nmin, Nmax; 
 
 3276            zmin, zmax, zmin2, zmax2, Smin, Smax, 
 
 3297       char  nome2[300],nome[300];
 
 3299       sprintf(nome,  
"MacroSttMvdSZDegreewithMCEvent%dT%d", IVOLTE,iNome);
 
 3300       sprintf(nome2,  
"%s.C",nome);
 
 3301       MACRO = fopen(nome2,
"w");
 
 3302       fprintf(MACRO,
"{\n");
 
 3307  if( nSciTilHitsinTrack[iTrack]+nSkewHitsinTrack[iTrack]+
 
 3308         nPixelHitsinTrack[iTrack]+
 
 3309         nStripHitsinTrack[iTrack] == 1) 
 
 3322  for(i=0; i<nSciTilHitsinTrack[iTrack];i++){
 
 3323                 j=ListSciTilHitsinTrack[iTrack*MAXSCITILHITSINTRACK+
i];
 
 3324                 if( ESSE[i]>Smax ) Smax=ESSE[
i];
 
 3325                 if( ESSE[i]<Smin ) Smin=ESSE[
i];
 
 3326                 if( posizSciTil[j*3+2]>zmax ) zmax=posizSciTil[j*3+2];
 
 3327                 if( posizSciTil[j*3+2]<zmin ) zmin=posizSciTil[j*3+2];
 
 3334                 if( ESSEalone[i]>Smax ) Smax=ESSEalone[
i];
 
 3335                 if( ESSEalone[i]<Smin ) Smin=ESSEalone[
i];
 
 3336                 if( posizSciTil[j*3+2]>zmax ) zmax=posizSciTil[j*3+2];
 
 3337                 if( posizSciTil[j*3+2]<zmin ) zmin=posizSciTil[j*3+2];
 
 3349         auxZErrorafterTilt[2];  
 
 3354                 auxInfo[
i][j] = info[i*7+j];
 
 3359        for( iii=0; iii< nSkewHitsinTrack[iTrack]; iii++) {
 
 3360          i = ListSkewHitsinTrack[iTrack*MAXSTTHITSINTRACK+iii];
 
 3378        for( ii=0; ii<2; ii++){
 
 3379             if( auxZ[ii] < 999998.){
 
 3380                 if(zmin>auxZ[ii]-auxZDrift[ii]) zmin=auxZ[ii]-auxZDrift[ii];
 
 3381                 if(zmax<auxZ[ii]+auxZDrift[ii]) zmax=auxZ[ii]+auxZDrift[ii];
 
 3383                 if(Smin>auxS[ii]-auxSDrift[ii]) Smin=auxS[ii]-auxSDrift[ii];
 
 3384                 if(Smax<auxS[ii]+auxSDrift[ii]) Smax=auxS[ii]+auxSDrift[ii];
 
 3397        for( iii=0; iii< nMCSkewAlone; iii++) {
 
 3402                 MCSkewAloneList[iTrack*In_Put.
nSttHit+iii],     
 
 3420         if(auxZ[0] <999998. ) { ii = 0; dis =auxZ[0]; }
 
 3421         else if (auxZ[1] <999998. ) { ii = 1;dis =auxZ[1];}
 
 3422         else if (auxZ[0] > 999999.5 && auxZ[1]>999999.5) 
 
 3432                 if(auxZ[0]<auxZ[1])  { ii=0 ; dis=auxZ[0]-1000000.;}  
else { ii=1; dis = auxZ[1]-1000000.;}
 
 3434         } 
else if (auxZ[0] > 999999.5) {  
 
 3436                 dis=auxZ[0]-1000000.;
 
 3437         } 
else if (auxZ[1] > 999999.5) {  
 
 3439                 dis=auxZ[0]-1000000.;
 
 3444         if(zmin>dis-auxZDrift[ii]) zmin=dis-auxZDrift[ii];
 
 3445         if(zmax<dis+auxZDrift[ii]) zmax=dis+auxZDrift[ii];
 
 3447         if(Smin>auxS[ii]-auxSDrift[ii]) Smin=auxS[ii]-auxSDrift[ii];
 
 3448         if(Smax<auxS[ii]+auxSDrift[ii]) Smax=auxS[ii]+auxSDrift[ii];
 
 3459   for(i=0; i<nPixelHitsinTrack[iTrack];i++){
 
 3460         ii=ListPixelHitsinTrack[iTrack*MAXMVDPIXELHITSINTRACK+
i];
 
 3462         if( zmin > ZMvdPixel[ ii ] )
 
 3463             zmin = ZMvdPixel[ ii ];
 
 3464         if( zmax <  ZMvdPixel[ii ] )
 
 3465             zmax = ZMvdPixel[ii ];
 
 3467         esse = 
atan2( YMvdPixel[ ii ]-Oyy,
 
 3468                       XMvdPixel[ ii ]-Oxx);
 
 3469         if(esse<0.) esse +=2.*
PI;
 
 3473         if( Smin > esse ) Smin = esse;
 
 3474         if( Smax < esse ) Smax = esse;
 
 3479   for(i=0; i<nStripHitsinTrack[iTrack];i++){
 
 3480         ii=ListStripHitsinTrack[iTrack*MAXMVDSTRIPHITSINTRACK+
i];
 
 3481         if( zmin > ZMvdStrip[ ii ] )
 
 3482             zmin = ZMvdStrip[ ii ];
 
 3483         if( zmax <  ZMvdStrip[ii ] )
 
 3484             zmax = ZMvdStrip[ii ];
 
 3486         esse = 
atan2( YMvdStrip[ ii ]-Oyy,
 
 3487                       XMvdStrip[ ii ]-Oxx);
 
 3488         if(esse<0.) esse +=2.*
PI;
 
 3492         if( Smin > esse ) Smin = esse;
 
 3493         if( Smax < esse ) Smax = esse;
 
 3498   for(i=0; i<nMCMvdPixelAlone;i++){
 
 3501         if( zmin > ZMvdPixel[ ii ] )
 
 3502             zmin = ZMvdPixel[ ii ];
 
 3503         if( zmax <  ZMvdPixel[ii ] )
 
 3504             zmax = ZMvdPixel[ii ];
 
 3506         esse = 
atan2( YMvdPixel[ ii ]-Oyy,
 
 3507                       XMvdPixel[ ii ]-Oxx);
 
 3508         if(esse<0.) esse +=2.*
PI;
 
 3509         if( Smin > esse ) Smin = esse;
 
 3510         if( Smax < esse ) Smax = esse;
 
 3516   for(i=0; i<nMCMvdStripAlone;i++){
 
 3518         if( zmin > ZMvdStrip[ ii ] )
 
 3519             zmin = ZMvdStrip[ ii ];
 
 3520         if( zmax <  ZMvdStrip[ii ] )
 
 3521             zmax = ZMvdStrip[ii ];
 
 3523         esse = 
atan2( YMvdStrip[ ii ]-Oyy,
 
 3524                       XMvdStrip[ ii ]-Oxx);
 
 3525         if(esse<0.) esse +=2.*
PI;
 
 3526         if( Smin > esse ) Smin = esse;
 
 3527         if( Smax < esse ) Smax = esse;
 
 3531   if( zmax >= zmin  &&  Smax >= Smin ) {
 
 3543   if(Smax > 2.*PI) Smax = 2.*
PI;
 
 3544   if( Smin < 0.) Smin = 0.;
 
 3551   double TRA = 180./
PI;
 
 3553   fprintf(MACRO,
"TCanvas* my= new  TCanvas();\nmy->Range(%f,%f,%f,%f);\n",
 
 3554         zmin-0.2*deltaz,TRA*(Smin-.1*deltaS),zmax+0.1*deltaz,TRA*(Smax+0.1*deltaS));
 
 3555    fprintf(MACRO,
"TGaxis *Assex = new  TGaxis(%f,%f,%f,%f,%f,%f,510);\n",
 
 3556         zmin-0.01*deltaz,TRA*(Smin+0.05*deltaS),zmax+0.01*deltaz,TRA*(Smin+0.05*deltaS),
 
 3557         zmin-0.01*deltaz,zmax+0.01*deltaz);
 
 3558    fprintf(MACRO,
"Assex->SetTitle(\"Z (cm)\");\n");
 
 3559    fprintf(MACRO,
"Assex->Draw();\n");
 
 3560    fprintf(MACRO,
"TGaxis *Assey = new  TGaxis(%f,%f,%f,%f,%f,%f,510);\n",
 
 3561        zmin+0.05*deltaz,TRA*(Smin-0.01*deltaS),zmin+0.05*deltaz,TRA*(Smax+0.01*deltaS),
 
 3562                 TRA*(Smin-0.01*deltaS),TRA*(Smax+0.01*deltaS));
 
 3564    fprintf(MACRO,
"Assey->SetTitle(\"#phi (degrees)\");\n");
 
 3565    fprintf(MACRO,
"Assey->Draw();\n");
 
 3566    fprintf(MACRO,
"Assey->SetTitleOffset(1.5);\n");
 
 3572         for(i=0;i<nSciTilHitsinTrack[iTrack];i++){
 
 3573                 j=ListSciTilHitsinTrack[iTrack*MAXSCITILHITSINTRACK+
i];
 
 3612        for( iii=0; iii< nSkewHitsinTrack[iTrack]; iii++) {
 
 3613          i = ListSkewHitsinTrack[iTrack*MAXSTTHITSINTRACK+iii] ;
 
 3633        for( ii=0; ii<2; ii++){
 
 3634             if( auxZ[ii] > 999998.) 
continue;   
 
 3638                 for( i1=0; i1<nSkewCommon; i1++){
 
 3639                         if ( SkewCommonList[iTrack*MAXSTTHITSINTRACK +i1] == i ){
 
 3646  "TEllipse* spurioSkew%d_%d = new TEllipse(%f,%f,%f,%f,0.,360.,%f);\nspurioSkew%d_%d->SetFillStyle(0);\n",
 
 3647                     i,ii,auxZ[ii],TRA*auxS[ii],auxZDrift[ii],TRA*auxSDrift[ii],0.,i,ii);
 
 3648            fprintf(MACRO,
"spurioSkew%d_%d->SetLineColor(2);\n",i,ii);
 
 3649            fprintf(MACRO,
"spurioSkew%d_%d->Draw();\n",i,ii);
 
 3651            fprintf(MACRO,
"TEllipse* Skew%d_%d = new TEllipse(%f,%f,%f,%f,0.,360.,%f);\nSkew%d_%d->SetFillStyle(0);\n",
 
 3652                     i,ii,auxZ[ii],TRA*auxS[ii],auxZDrift[ii],TRA*auxSDrift[ii],0.,i,ii);
 
 3653            fprintf(MACRO,
"Skew%d_%d->Draw();\n",i,ii);
 
 3665        for( iii=0; iii< nMCSkewAlone; iii++) {
 
 3666          i = MCSkewAloneList[iTrack*In_Put.
nSttHit+iii];
 
 3697         if(auxZ[0] <999998. ) { ii = 0; dis =auxZ[0]; }
 
 3698         else if (auxZ[1] <999998. ) { ii = 1;dis =auxZ[1];}
 
 3699         else if (auxZ[0] > 999999.5 && auxZ[1]>999999.5) 
 
 3709                 if(auxZ[0]<auxZ[1])  { ii=0 ; dis=auxZ[0]-1000000.;}  
else { ii=1; dis = auxZ[1]-1000000.;}
 
 3711         } 
else if (auxZ[0] > 999999.5) {  
 
 3713                 dis=auxZ[0]-1000000.;
 
 3714         } 
else if (auxZ[1] > 999999.5) {  
 
 3716                 dis=auxZ[0]-1000000.;
 
 3722         fprintf(MACRO,
"TEllipse* AloneSkew%d_%d = new TEllipse(%f,%f,%f,%f,0.,360.,%f);\nAloneSkew%d_%d->SetFillStyle(0);\n",
 
 3723                     i,ii,dis,TRA*auxS[ii],auxZDrift[ii],TRA*auxSDrift[ii],0.,i,ii);
 
 3727         fprintf(MACRO,
"AloneSkew%d_%d->SetLineColor(4);\n",i,ii);
 
 3728         fprintf(MACRO,
"AloneSkew%d_%d->Draw();\n",i,ii);
 
 3741   for(i=0; i<nPixelHitsinTrack[iTrack];i++){
 
 3742         ii=ListPixelHitsinTrack[iTrack*MAXMVDPIXELHITSINTRACK+
i];
 
 3743         if( zmin > ZMvdPixel[ ii ] )
 
 3744             zmin = ZMvdPixel[ ii ];
 
 3745         if( zmax <  ZMvdPixel[ii ] )
 
 3746             zmax = ZMvdPixel[ii ];
 
 3748         esse = 
atan2( YMvdPixel[ ii ]-Oyy,
 
 3749                       XMvdPixel[ ii ]-Oxx);
 
 3750         if(esse<0.) esse +=2.*
PI;
 
 3754         if( Smin > esse ) Smin = esse;
 
 3755         if( Smax < esse ) Smax = esse;
 
 3759                 for( 
int k=0; k<nMvdPixelCommon;k++){
 
 3760                         if( MvdPixelCommonList[iTrack*MAXMVDPIXELHITSINTRACK+k]== ii){
 
 3762                 "TMarker* CommonPixel%d = new TMarker(%f,%f,%d);\nCommonPixel%d->SetMarkerColor(1);\n",
 
 3763                                 ii,ZMvdPixel[ii],TRA*esse,26,ii);
 
 3764                 fprintf(MACRO,
"CommonPixel%d->Draw();\n",ii);
 
 3770             fprintf(MACRO,
"TMarker* SpuriousPixel%d = new TMarker(%f,%f,%d);\nSpuriousPixel%d->SetMarkerColor(2);\n",
 
 3771                     ii,ZMvdPixel[ii],TRA*esse,26,ii);
 
 3772                 fprintf(MACRO,
"SpuriousPixel%d->Draw();\n",ii);
 
 3777   for(i=0; i<nStripHitsinTrack[iTrack];i++){
 
 3778         ii=ListStripHitsinTrack[iTrack*MAXMVDSTRIPHITSINTRACK+
i];
 
 3779         if( zmin > ZMvdStrip[ ii ] )
 
 3780             zmin = ZMvdStrip[ ii ];
 
 3781         if( zmax <  ZMvdStrip[ii ] )
 
 3782             zmax = ZMvdStrip[ii ];
 
 3784         esse = 
atan2( YMvdStrip[ ii ]-Oyy,
 
 3785                       XMvdStrip[ ii ]-Oxx);
 
 3786         if(esse<0.) esse +=2.*
PI;
 
 3790         if( Smin > esse ) Smin = esse;
 
 3791         if( Smax < esse ) Smax = esse;
 
 3794                 for( 
int k=0; k<nMvdStripCommon;k++){
 
 3795                         if( MvdStripCommonList[iTrack*MAXMVDSTRIPHITSINTRACK+k]== ii){
 
 3796             fprintf(MACRO,
"TMarker* CommonStrip%d = new TMarker(%f,%f,%d);\nCommonStrip%d->SetMarkerColor(1);\n",
 
 3797                     ii,ZMvdStrip[ii],TRA*esse,25,ii);
 
 3798                 fprintf(MACRO,
"CommonStrip%d->Draw();\n",ii);
 
 3804             fprintf(MACRO,
"TMarker* SpuriousStrip%d = new TMarker(%f,%f,%d);\nSpuriousStrip%d->SetMarkerColor(2);\n",
 
 3805                     ii,ZMvdStrip[ii],TRA*esse,25,ii);
 
 3806                 fprintf(MACRO,
"SpuriousStrip%d->Draw();\n",ii);
 
 3814   for(i=0; i<nMCMvdPixelAlone;i++){
 
 3817         if( zmin > ZMvdPixel[ ii ] )
 
 3818             zmin = ZMvdPixel[ ii ];
 
 3819         if( zmax <  ZMvdPixel[ii ] )
 
 3820             zmax = ZMvdPixel[ii ];
 
 3822         esse = 
atan2( YMvdPixel[ ii ]-Oyy,
 
 3823                       XMvdPixel[ ii ]-Oxx);
 
 3824         if(esse<0.) esse +=2.*
PI;
 
 3825         if( Smin > esse ) Smin = esse;
 
 3826         if( Smax < esse ) Smax = esse;
 
 3827            fprintf(MACRO,
"TMarker* AlonePixel%d = new TMarker(%f,%f,%d);\nAlonePixel%d->SetMarkerColor(4);\n",
 
 3828                     ii,ZMvdPixel[ii],TRA*esse,26,ii);
 
 3829                 fprintf(MACRO,
"AlonePixel%d->Draw();\n",ii);
 
 3835   for(i=0; i<nMCMvdStripAlone;i++){
 
 3837         if( zmin > ZMvdStrip[ ii ] )
 
 3838             zmin = ZMvdStrip[ ii ];
 
 3839         if( zmax <  ZMvdStrip[ii ] )
 
 3840             zmax = ZMvdStrip[ii ];
 
 3842         esse = 
atan2( YMvdStrip[ ii ]-Oyy,
 
 3843                       XMvdStrip[ ii ]-Oxx);
 
 3844         if(esse<0.) esse +=2.*
PI;
 
 3845         if( Smin > esse ) Smin = esse;
 
 3846         if( Smax < esse ) Smax = esse;
 
 3848             fprintf(MACRO,
"TMarker* AloneStrip%d = new TMarker(%f,%f,%d);\nAloneStrip%d->SetMarkerColor(4);\n",
 
 3849                     ii,ZMvdStrip[ii],TRA*esse,25,ii);
 
 3850                 fprintf(MACRO,
"AloneStrip%d->Draw();\n",ii);
 
 3864         if( -KAPPA*charge>0.) { 
 
 3866                         cout<<
"da WriteMacroSkewAssociatedHitswithMC_Degree, questa traccia" 
 3867                         <<
" e' inconsistente col proprio Pz, non plottata!\n";
 
 3874                         cout<<
"da WriteMacroSkewAssociatedHitswithMC_Degree, questa traccia" 
 3875                         <<
" e' inconsistente col proprio Pz, non plottata!\n";
 
 3886      fmin = KAPPA*zmin + FI0;
 
 3887      fmax = KAPPA*zmax + FI0;
 
 3889      fmax = KAPPA*zmin + FI0;
 
 3890      fmin = KAPPA*zmax + FI0;
 
 3893     Nmax = (int) (0.5*fmax/ PI);
 
 3895     Nmax = ( (int) (0.5*fmax/ PI) ) -1;
 
 3898     Nmin = (int) (0.5*fmin/ PI);
 
 3900     Nmin = ((int) (0.5*fmin/ PI) )-1;
 
 3902    if(
fabs(KAPPA)<1.e-10) {
 
 3903         cout<<
"da WriteMacroSkewAssociatedHitswithMC_Degree, questa traccia Found da PR non plottata" 
 3904         <<
" perche' ha fabs(KAPPA)<1.e-10.\n";
 
 3906         for(i=Nmin; i<= Nmax;i++){
 
 3908                 z1 = (i*2.*PI-FI0)/KAPPA;
 
 3909                 z2 = ((i+1)*2.*PI-FI0)/KAPPA;
 
 3911 "TLine* FOUND%d = new TLine(%f,%f,%f,%f);\nFOUND%d->SetLineColor(2);\nFOUND%d->Draw();\n",
 
 3912                         i-Nmin,z1,0.,z2, TRA*2.*PI,i-Nmin,i-Nmin);
 
 3928      imc=    daTrackFoundaTrackMC ;
 
 3932          Double_t Fifi, Kakka, o_x, o_y, Cx, Cy, Px, Py, carica  ;
 
 3941                 aaa = 
sqrt( Px*Px + Py*Py);
 
 3943                 TParticlePDG *
fParticle= fdbPDG->GetParticle(icode);
 
 3944                 if (icode>1000000000) carica = 1.;
 
 3945                 else  carica = fParticle->Charge()/3. ;    
 
 3946   if (
fabs(carica)>=0.1 ){
 
 3947                 Cx = o_x + Py*1000./(BFIELD*CVEL*carica);
 
 3948                 Cy = o_y - Px*1000./(BFIELD*CVEL*carica);
 
 3949                 Fifi = 
atan2(Cy, Cx);       
 
 3950                 if(Fifi<0.)  Fifi += 2.*
PI;
 
 3952                 else  Kakka = -carica*0.001*BFIELD*CVEL/pMC->
GetMomentum().Z();
 
 3954      FI0 = fmod(Fifi+ PI, 2.*PI);
 
 3956      fmin = KAPPA*zmin + FI0;
 
 3957      fmax = KAPPA*zmax + FI0;
 
 3959      fmax = KAPPA*zmin + FI0;
 
 3960      fmin = KAPPA*zmax + FI0;
 
 3963     Nmax = (int) (0.5*fmax/ PI);
 
 3965     Nmax = ( (int) (0.5*fmax/ PI) ) -1;
 
 3968     Nmin = (int) (0.5*fmin/ PI);
 
 3970     Nmin = ((int) (0.5*fmin/ PI) )-1;
 
 3973   for(i=Nmin; i<= Nmax;i++){
 
 3975    z1 = (i*2.*PI-FI0)/KAPPA;
 
 3976    z2 = ((i+1)*2.*PI-FI0)/KAPPA;
 
 3977    fprintf(MACRO,
"TLine* MC%d_%d = new TLine(%f,%f,%f,%f);\nMC%d_%d->SetLineColor(3);\nMC%d_%d->Draw();\n",
 
 3978                  imc,i-Nmin,z1,0.,z2, TRA*2.*PI,imc,i-Nmin,imc,i-Nmin);
 
 3989       fprintf(MACRO,
"}\n");
 
 4015         Short_t daSttTrackaMCTrack,
 
 4016         Short_t nMvdPixelHitsAssociatedToSttTra,
 
 4017         Short_t nMvdStripHitsAssociatedToSttTra,
 
 4018         Short_t nSkewHitsinTrack
 
 4068                         "daTrackFoundaTrackMC") ;
 
 4079         int IVOLTE = In_Put.
IVOLTE;
 
 4215       char nome[300], nome2[300];
 
 4216       sprintf(nome,
"MacroSttMvdXYwithMCEvent%dT%d", IVOLTE,iNome);
 
 4217       sprintf(nome2,
"%s.C",nome);
 
 4218       FILE * MACRO = fopen(nome2,
"w");
 
 4219       fprintf(MACRO,
"{\n");
 
 4229        fprintf(MACRO,
"TCanvas* my= new TCanvas();\nmy->Range(%f,%f,%f,%f);\n",
 
 4230                 xmin,ymin,xmax,ymax);
 
 4237         sprintf(myname, 
"InnerPar");
 
 4238         DrawBiHexagonInMacro(
 
 4241                                 APOTEMASTRAWDETECTORMIN,
 
 4242                                 APOTEMAMAXINNERPARSTRAW,
 
 4248         sprintf(myname, 
"Skew");
 
 4249         DrawBiHexagonInMacro(
 
 4252                                 APOTEMAMINSKEWSTRAW,
 
 4253                                 APOTEMAMAXSKEWSTRAW,
 
 4259         sprintf(myname, 
"OuterPar");
 
 4260         DrawHexagonCircleInMacro(
 
 4263                                 APOTEMAMINOUTERPARSTRAW,
 
 4279                         posizSciTil.
at(j*3+0),
 
 4280                         posizSciTil.
at(j*3+1),
 
 4293                         posizSciTil.
at(j*3+0),
 
 4294                         posizSciTil.
at(j*3+1),
 
 4307                         posizSciTil.
at(j*3+0),
 
 4308                         posizSciTil.
at(j*3+1),
 
 4319        fprintf(MACRO,
"TEllipse* FoundTrack = new TEllipse(%f,%f,%f,%f,%f,%f);\n" 
 4320                         ,Oxx,Oyy,Rr,Rr,primoangolo,ultimoangolo);
 
 4323        "FoundTrack->SetLineColor(2);\nFoundTrack->SetFillStyle(0);\nFoundTrack->Draw(\"only\");\n");
 
 4326         disegnaAssiXY(MACRO,xmin,xmax,ymin,ymax);
 
 4332        for( ii=0; ii< nParalCommon.
at(iTrack); ii++) {
 
 4333             i = ParalCommonList.
at(iTrack*MAXSTTHITSINTRACK+ii) ;
 
 4335   "TEllipse* CommonParalHit%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nCommonParalHit%d->SetFillStyle(0);\nCommonParalHit%d->Draw();\n",
 
 4336                      i,info[i*7+0],info.
at(i*7+1),info.
at(i*7+3),info.
at(i*7+3),
i,
i);
 
 4339        for( ii=0; ii< nSpuriParinTrack.
at(iTrack); ii++) {
 
 4340             i = ParSpuriList.
at(iTrack*MAXSTTHITSINTRACK+ii) ;
 
 4342    "TEllipse* SpurParalHit%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nSpurParalHit%d->SetFillStyle(0);\nSpurParalHit%d->SetLineColor(2);\nSpurParalHit%d->Draw();\n",
 
 4343                      i,info[i*7+0],info.
at(i*7+1),info.
at(i*7+3),info.
at(i*7+3),
i,
i,
i);
 
 4346        for( ii=0; ii< nMCParalAlone.
at(iTrack); ii++) {
 
 4347             i = MCParalAloneList.
at(iTrack*In_Put.
nSttHit+ii) ;
 
 4349    "TEllipse* AloneParalHit%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nAloneParalHit%d->SetFillStyle(0);\nAloneParalHit%d->SetLineColor(4);\nAloneParalHit%d->Draw();\n",
 
 4350                      i,info[i*7+0],info.
at(i*7+1),info.
at(i*7+3),info.
at(i*7+3),
i,
i,
i);
 
 4356        for( i=0; i< nSkewHitsinTrack; i++) {
 
 4357         ii = ListSttSkewHitsinTrack.
at(iTrack*MAXSTTHITSINTRACK+i);
 
 4358             aaa=Oxx+Rr*
cos(SchosenSkew.
at(iTrack*MAXSTTHITS+ii));
 
 4359             bbb=Oyy+Rr*
sin(SchosenSkew.
at(iTrack*MAXSTTHITS+ii));
 
 4361                 for( 
int k=0; k<nSkewCommon.
at(iTrack);k++){
 
 4362                         if( SkewCommonList.
at(iTrack*MAXSTTHITSINTRACK+k)== ii){
 
 4363         fprintf(MACRO,
"TMarker* CommonSkewHit%d = new TMarker(%f,%f,%d);\n",
 
 4365         fprintf(MACRO,
"CommonSkewHit%d->SetMarkerColor(1);\nCommonSkewHit%d->Draw();\n" 
 4372                 fprintf(MACRO,
"TMarker* SpurSkewHit%d = new TMarker(%f,%f,%d);\n",
 
 4374                 fprintf(MACRO,
"SpurSkewHit%d->SetMarkerColor(2);\nSpurSkewHit%d->Draw();\n",ii,ii);
 
 4379        for( ii=0; ii< nMCSkewAlone.
at(iTrack); ii++) {
 
 4380             i = MCSkewAloneList.
at(iTrack*In_Put.
nSttHit+ii) ;
 
 4382    "TMarker* AloneSkewHit%d = new TMarker(%f,%f,%d);\nAloneSkewHit%d->SetMarkerColor(4);\nAloneSkewHit%d->Draw();\n",
 
 4383                      i,MCSkewAloneX.
at(i),MCSkewAloneY.
at(i),28,
i,
i);
 
 4388        for( i=0; i< nMvdStripHitsAssociatedToSttTra; i++) {
 
 4396                 for( 
int k=0; k<nMvdStripCommon.
at(iTrack);k++){
 
 4398             fprintf(MACRO,
"TMarker* CommonMvdStrip%d = new TMarker(%f,%f,%d);\n",
 
 4399                     ii,XMvdStrip.
at(ii),YMvdStrip.
at(ii),25);
 
 4400                 fprintf(MACRO,
"CommonMvdStrip%d->SetMarkerColor(1);\nCommonMvdStrip%d->Draw();\n",
 
 4407             fprintf(MACRO,
"TMarker* SpurMvdStrip%d = new TMarker(%f,%f,%d);\n",
 
 4408                     ii,XMvdStrip.
at(ii),YMvdStrip.
at(ii),25);
 
 4409                 fprintf(MACRO,
"SpurMvdStrip%d->SetMarkerColor(2);\nSpurMvdStrip%d->Draw();\n",ii,ii);
 
 4416        for( ii=0; ii< nMCMvdStripAlone.
at(iTrack); ii++) {
 
 4419    "TMarker* AloneMvdStrip%d = new TMarker(%f,%f,%d);\nAloneMvdStrip%d->SetMarkerColor(4);\nAloneMvdStrip%d->Draw();\n",
 
 4420                      i,XMvdStrip.
at(i),YMvdStrip.
at(i),25,
i,
i);
 
 4424        for( i=0; i< nMvdPixelHitsAssociatedToSttTra; i++) {
 
 4425         ii = ListMvdPixelHitsinTrack.
at(iTrack*MAXMVDPIXELHITSINTRACK+i);
 
 4432                 for( 
int k=0; k<nMvdPixelCommon.
at(iTrack);k++){
 
 4434             fprintf(MACRO,
"TMarker* CommonMvdPixel%d = new TMarker(%f,%f,%d);\n",
 
 4435                     ii,XMvdPixel.
at(ii),YMvdPixel.
at(ii),26);
 
 4436  fprintf(MACRO,
"CommonMvdPixel%d->SetMarkerColor(1);\nCommonMvdPixel%d->Draw();\n",
 
 4443             fprintf(MACRO,
"TMarker* SpurMvdPixel%d = new TMarker(%f,%f,%d);\n",
 
 4444                     ii,XMvdPixel.
at(ii),YMvdPixel.
at(ii),26);
 
 4445  fprintf(MACRO,
"SpurMvdPixel%d->SetMarkerColor(2);\nSpurMvdPixel%d->Draw();\n",ii,ii);
 
 4452        for( ii=0; ii< nMCMvdPixelAlone.
at(iTrack); ii++) {
 
 4455    "TMarker* AloneMvdPixel%d = new TMarker(%f,%f,%d);\nAloneMvdPixel%d->SetMarkerColor(4);\nAloneMvdPixel%d->Draw();\n",
 
 4456                      i,XMvdPixel.
at(i),YMvdPixel.
at(i),26,
i,
i);
 
 4460        if( daSttTrackaMCTrack>-1 ) {
 
 4462          Double_t r_r, o_x, o_y, Cx, Cy, Px, Py, carica  ;
 
 4464                 im=daSttTrackaMCTrack;
 
 4472                 aaa = 
sqrt( Px*Px + Py*Py);
 
 4473                 r_r =   aaa*1000./(BFIELD*
CVEL);    
 
 4474                 TDatabasePDG *fdbPDG= TDatabasePDG::Instance();
 
 4475                 TParticlePDG *
fParticle= fdbPDG->GetParticle(icode);
 
 4476                 if (icode>1000000000) carica = 1.;
 
 4477                 else  carica = fParticle->Charge()/3. ;    
 
 4478           if (
fabs(carica)>=0.1 ){
 
 4479                 Cx = o_x + Py*1000./(BFIELD*CVEL*carica);
 
 4480                 Cy = o_y - Px*1000./(BFIELD*CVEL*carica);
 
 4482 "TEllipse* MC%d = new TEllipse(%f,%f,%f,%f,%f,%f);\nMC%d->SetFillStyle(0);\nMC%d->SetLineColor(3);\nMC%d->Draw(\"only\");\n",
 
 4483                      im,Cx,Cy,r_r,r_r,0.,360.,im,im,im);
 
 4488       fprintf(MACRO,
"}\n");
 
 4507       char nome[300], nome2[300];
 
 4508       sprintf(nome,
"MacroSttParallel");
 
 4509       sprintf(nome2,
"%s.C",nome);
 
 4510       FILE * MACRO = fopen(nome2,
"w");
 
 4511       fprintf(MACRO,
"{\n");
 
 4529        fprintf(MACRO,
"TCanvas* my= new TCanvas();\nmy->Range(%f,%f,%f,%f);\n",
 
 4530                 xmin,ymin,xmax,ymax);
 
 4535         sprintf(myname, 
"InnerPar");
 
 4536         DrawBiHexagonInMacro(
 
 4546         sprintf(myname, 
"Skew");
 
 4547         DrawBiHexagonInMacro(
 
 4557         sprintf(myname, 
"OuterPar");
 
 4558         DrawHexagonCircleInMacro(
 
 4568         disegnaAssiXY(MACRO,xmin,xmax,ymin,ymax);
 
 4576                 if(!(
fabs( wiredirection.X() )< 0.00001 && 
fabs( wiredirection.Y() )< 0.00001))
continue;
 
 4579   "TEllipse* ParalTube%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nParalTube%d->SetFillStyle(0);\nParalTube%d->Draw();\n",
 
 4580                      i+1,center.X(),center.Y(),0.5,0.5,
i+1,
i+1);
 
 4584       fprintf(MACRO,
"}\n");
 
 4599       char nome[300], nome2[300];
 
 4600       sprintf(nome,
"MacroSttParallelExternal");
 
 4601       sprintf(nome2,
"%s.C",nome);
 
 4602       FILE * MACRO = fopen(nome2,
"w");
 
 4603       fprintf(MACRO,
"{\n");
 
 4621        fprintf(MACRO,
"TCanvas* my= new TCanvas();\nmy->Range(%f,%f,%f,%f);\n",
 
 4622                 xmin,ymin,xmax,ymax);
 
 4627         sprintf(myname, 
"InnerPar");
 
 4628         DrawBiHexagonInMacro(
 
 4638         sprintf(myname, 
"Skew");
 
 4639         DrawBiHexagonInMacro(
 
 4649         sprintf(myname, 
"OuterPar");
 
 4650         DrawHexagonCircleInMacro(
 
 4660         disegnaAssiXY(MACRO,xmin,xmax,ymin,ymax);
 
 4669   "TEllipse* ParalTube%d = new TEllipse(%f,%f,%f,%f,0.,360.);\nParalTube%d->SetFillStyle(0);\nParalTube%d->Draw();\n",
 
 4670                      i+1,center.X(),center.Y(),0.5,0.5,
i+1,
i+1);
 
 4675       fprintf(MACRO,
"}\n");
 
const Double_t RSTRAWDETECTORMAX
friend F32vec4 cos(const F32vec4 &a)
void WriteMacroSkewAssociatedHitswithMC(Double_t *ESSE, Double_t *ESSEalone, PndTrkPlotMacros2_InputData In_Put, int iNome, int iTrack)
void disegnaAssiXY(FILE *MACRO, double xmin, double xmax, double ymin, double ymax)
void disegnaSciTilHit(int colorcode, Double_t DIMENSIONSCITIL, FILE *MACRO, double posx, double posy, int ScitilHit, int tipo)
friend F32vec4 sqrt(const F32vec4 &a)
friend F32vec4 sin(const F32vec4 &a)
TVector3 GetMomentum() const 
void WriteAllMacros(PndTrkPlotMacros2_InputData In_Put)
const Double_t APOTEMAMINSKEWSTRAW
void WriteMacroParallelHitsGeneral(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW, Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, bool doMcComparison, TClonesArray *fMCTrackArray, Int_t Nhits, Vec< Double_t > *info, PndTrkPlotMacros2_InputData In_Put, int IVOLTE, Short_t nMCTracks, Short_t nMvdPixelHit, Short_t nMvdStripHit, Short_t nSciTilHits, Short_t nTracksFoundSoFar, Vec< bool > *keepit, Vec< Double_t > *FI0, Vec< Double_t > *Ox, Vec< Double_t > *Oy, Vec< Double_t > *posizSciTil, Vec< Double_t > *primoangolo, Vec< Double_t > *R, Double_t RSTRAWDETECTORMAX, Double_t APOTEMASTRAWDETECTORMIN, Vec< Double_t > *sigmaXMvdPixel, Vec< Double_t > *sigmaXMvdStrip, Vec< Double_t > *sigmaYMvdPixel, Vec< Double_t > *sigmaYMvdStrip, Vec< Double_t > *ultimoangolo, Double_t VERTICALGAP, Vec< Double_t > *XMvdPixel, Vec< Double_t > *XMvdStrip, Vec< Double_t > *YMvdPixel, Vec< Double_t > *YMvdStrip)
void WriteMacroParallel_MvdHitsGeneralConformalwithMC(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW, Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, bool doMcComparison, TClonesArray *fMCTrackArray, Int_t Nhits, Vec< Double_t > *info, PndTrkPlotMacros2_InputData In_Put, int IVOLTE, Short_t nMCTracks, Short_t nMvdPixelHit, Short_t nMvdStripHit, Short_t nSciTilHits, Short_t nTracksFoundSoFar, Vec< bool > *keepit, Vec< Double_t > *FI0, Vec< Double_t > *Ox, Vec< Double_t > *Oy, Vec< Double_t > *posizSciTil, Vec< Double_t > *primoangolo, Vec< Double_t > *R, Double_t RSTRAWDETECTORMAX, Double_t APOTEMASTRAWDETECTORMIN, Vec< Double_t > *sigmaXMvdPixel, Vec< Double_t > *sigmaXMvdStrip, Vec< Double_t > *sigmaYMvdPixel, Vec< Double_t > *sigmaYMvdStrip, Vec< Double_t > *ultimoangolo, Double_t VERTICALGAP, Vec< Double_t > *XMvdPixel, Vec< Double_t > *XMvdStrip, Vec< Double_t > *YMvdPixel, Vec< Double_t > *YMvdStrip)
void WriteMacroSttParallel(PndTrkPlotMacros2_InputData In_Put)
const Double_t APOTEMAMINOUTERPARSTRAW
void SttInfoXYZParal(Vec< Double_t > *info, Short_t infopar, Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t KAPPA, Double_t FI0, Short_t Charge, Double_t *Posiz)
void WriteMacroSkewAssociatedHitswithMC_Degree(Double_t *ESSE, Double_t *ESSEalone, PndTrkPlotMacros2_InputData In_Put, int iNome, int iTrack)
void WriteMacroParallelHitsGeneralConformalwithMC(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW, Double_t BFIELD, Double_t CVEL, Double_t DIMENSIONSCITIL, bool doMcComparison, TClonesArray *fMCTrackArray, Int_t Nhits, Vec< Double_t > *info, PndTrkPlotMacros2_InputData In_Put, int IVOLTE, Short_t nMCTracks, Short_t nMvdPixelHit, Short_t nMvdStripHit, Short_t nSciTilHits, Short_t nTracksFoundSoFar, Vec< bool > *keepit, Vec< Double_t > *FI0, Vec< Double_t > *Ox, Vec< Double_t > *Oy, Vec< Double_t > *posizSciTil, Vec< Double_t > *primoangolo, Vec< Double_t > *R, Double_t RSTRAWDETECTORMAX, Double_t APOTEMASTRAWDETECTORMIN, Vec< Double_t > *sigmaXMvdPixel, Vec< Double_t > *sigmaXMvdStrip, Vec< Double_t > *sigmaYMvdPixel, Vec< Double_t > *sigmaYMvdStrip, Vec< Double_t > *ultimoangolo, Double_t VERTICALGAP, Vec< Double_t > *XMvdPixel, Vec< Double_t > *XMvdStrip, Vec< Double_t > *YMvdPixel, Vec< Double_t > *YMvdStrip)
friend F32vec4 fabs(const F32vec4 &a)
void DrawBiHexagonInMacro(Double_t vgap, FILE *MACRO, Double_t Ami, Double_t Ama, Short_t color, char *name)
void CalculateSandZ2(Double_t Oxx, Double_t Oyy, Double_t Rr, Short_t skewnum, Double_t info[][7], Double_t *WDX, Double_t *WDY, Double_t *WDZ, Double_t S[2], Double_t Sdrift[2], Double_t Z[2], Double_t Zdrift[2], Double_t Zerror[2])
const Double_t VERTICALGAP
friend F32vec4 atan2(const F32vec4 &y, const F32vec4 &x)
const Double_t APOTEMAMAXINNERPARSTRAW
const int MAXSTTHITSINTRACK
bool IntersectionSciTil_Circle(Double_t posizSciTilx, Double_t posizSciTily, Double_t Oxx, Double_t Oyy, Double_t Rr, Short_t *Nintersections, Double_t XintersectionList[2], Double_t YintersectionList[2])
void WriteMacroAllHitsRestanti(Double_t APOTEMAMAXINNERPARSTRAW, Double_t APOTEMAMAXSKEWSTRAW, Double_t APOTEMAMINOUTERPARSTRAW, Double_t APOTEMAMINSKEWSTRAW, Vec< bool > *InclusionListSciTil, Vec< bool > *InclusionListStt, Vec< Double_t > *info, int IVOLTE, Vec< bool > *keepit, Vec< Short_t > *ListTrackCandHit, Vec< Short_t > *ListTrackCandHitType, int MAXMVDPIXELHITS, int MAXMVDPIXELHITSINTRACK, int MAXMVDSTRIPHITS, int MAXMVDSTRIPHITSINTRACK, int MAXSCITILHITSINTRACK, int MAXSTTHITS, int MAXSTTHITSINTRACK, int MAXTRACKSPEREVENT, Short_t nMvdPixelHit, Short_t nMvdStripHit, Short_t nSciTilHit, Short_t nSttHit, Short_t nSttParHit, Short_t nSttSkewHit, Short_t nSttTrackCand, Vec< Short_t > *nTrackCandHit, Vec< Double_t > *posizSciTil, Double_t RSTRAWDETECTORMAX, Double_t APOTEMASTRAWDETECTORMIN, Double_t VERTICALGAP, Vec< Double_t > *XMvdPixel, Vec< Double_t > *XMvdStrip, Vec< Double_t > *YMvdPixel, Vec< Double_t > *YMvdStrip)
void DrawHexagonCircleInMacro(Double_t GAP, FILE *MACRO, Double_t ApotemaMin, Double_t Rma, Short_t color, char *name)
TVector3 GetStartVertex() const 
const Double_t APOTEMAMAXSKEWSTRAW
const Double_t APOTEMASTRAWDETECTORMIN
void WriteMacroSttParallelExternal(PndTrkPlotMacros2_InputData In_Put)
TVector3 GetWireDirection()
void WriteMacroSttParallelAssociatedHitsandMvdwithMC(PndTrkPlotMacros2_InputData In_Put, Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t primoangolo, Double_t ultimoangolo, Short_t Nhits, int iTrack, int iNome, Short_t daSttTrackaMCTrack, Short_t nMvdPixelHitsAssociatedToSttTra, Short_t nMvdStripHitsAssociatedToSttTra, Short_t nSkewHitsinTrack)
const Double_t DIMENSIONSCITIL