16 #define PI 3.141592654
17 #define two_pi 6.283185307
30 const Short_t maxmvdpixelhitsintrack,
31 const Short_t maxmvdstriphitsintrack,
42 Short_t &nMvdPixelHitsinTrack,
43 Short_t *ListMvdPixelHitsinTrack,
44 Short_t &nMvdStripHitsinTrack,
45 Short_t *ListMvdStripHitsinTrack
61 nMvdPixelHitsinTrack = 0;
62 for( jmvdhit=0; jmvdhit<nMvdPixelHit; jmvdhit++){
63 angle =
atan2(YMvdPixel[jmvdhit]-Oy,XMvdPixel[jmvdhit]-Ox);
64 if(angle<0.) angle += 2.*
PI;
65 if( angle>FiRangeMvdUp){
67 if( angle>FiRangeMvdUp) angle = FiRangeMvdUp;
69 }
else if (angle<FiRangeMvdLow){
71 if (angle<FiRangeMvdLow) angle = FiRangeMvdLow;
74 if(angle > FiRangeMvdLow && angle < FiRangeMvdUp)
76 dist=
fabs(
sqrt( (Ox-XMvdPixel[jmvdhit])* (Ox-XMvdPixel[jmvdhit])
77 +(Oy-YMvdPixel[jmvdhit])*(Oy-YMvdPixel[jmvdhit]))-R);
80 ListMvdPixelHitsinTrack[nMvdPixelHitsinTrack]=jmvdhit;
81 nMvdPixelHitsinTrack++;
82 if( nMvdPixelHitsinTrack == maxmvdpixelhitsintrack )
break;
89 nMvdStripHitsinTrack = 0;
90 for( jmvdhit=0; jmvdhit<nMvdStripHit; jmvdhit++){
91 angle =
atan2(YMvdStrip[jmvdhit]-Oy,XMvdStrip[jmvdhit]-Ox);
92 if(angle<0.) angle += 2.*
PI;
93 if( angle>FiRangeMvdUp){
95 if( angle>FiRangeMvdUp) angle = FiRangeMvdUp;
96 }
else if (angle<FiRangeMvdLow){
98 if (angle<FiRangeMvdLow) angle = FiRangeMvdLow;
101 if(angle > FiRangeMvdLow && angle < FiRangeMvdUp)
103 dist=
fabs(
sqrt( (Ox-XMvdStrip[jmvdhit])* (Ox-XMvdStrip[jmvdhit])
104 +(Oy-YMvdStrip[jmvdhit])*(Oy-YMvdStrip[jmvdhit]))-R);
107 ListMvdStripHitsinTrack[nMvdStripHitsinTrack]=jmvdhit;
108 nMvdStripHitsinTrack++;
109 if( nMvdStripHitsinTrack == maxmvdstriphitsintrack )
break;
130 bool* InclusionListSciTil,
132 Short_t maxscitilhitsintrack,
149 XintersectionList[2],
150 YintersectionList[2];
158 for(iScitHit=0; iScitHit<nSciTilHits; iScitHit++){
159 if(!InclusionListSciTil[iScitHit])
continue;
163 posizSciTil[iScitHit][0],
164 posizSciTil[iScitHit][1],
174 if( igoodScit == maxscitilhitsintrack)
break;
175 List[igoodScit] = iScitHit;
179 esse[igoodScit] =
atan2(YintersectionList[0]-Oyy,
180 XintersectionList[0]-Oxx);
183 esse[igoodScit] =
atan2( 0.5*(YintersectionList[0]+
184 YintersectionList[1])-Oyy,
185 0.5*(XintersectionList[0]+
186 XintersectionList[1])-Oxx);
188 if ( esse[igoodScit]<0.) esse[igoodScit] += 2.*
PI;
209 Short_t *ListSttParHitsinTrack,
210 Short_t nSttParHitsinTrack,
237 for(ihit=0;ihit<nSttParHitsinTrack;ihit++){
249 fi =
atan2( info[ ListSttParHitsinTrack[ihit] ][1]- Oyy,
250 info[ ListSttParHitsinTrack[ihit] ][0]- Oxx);
253 sinus =
sin(fi - fiCenter);
254 if (sinus > 0. ) Nright ++ ;
else Nleft ++;
258 if( Nright > Nleft) {
263 Fi_low_limit = fi_low_limit[0];
264 Fi_up_limit = fi_up_limit[0];
266 FiRangeMvdLow = fiCenter;
267 FiRangeMvdUp = Fi_low_limit;
270 FiRangeMvdUp = fmod(FiRangeMvdUp,
two_pi);
271 if( FiRangeMvdUp < FiRangeMvdLow) {
273 if( FiRangeMvdUp < FiRangeMvdLow) FiRangeMvdUp = FiRangeMvdLow;
280 if( fi_low_limit[1] < -99.) {
282 Fi_low_limit = fi_low_limit[0];
283 Fi_up_limit = fi_up_limit[0];
286 Fi_low_limit = fi_low_limit[1];
287 Fi_up_limit = fi_up_limit[1];
290 FiRangeMvdUp = fiCenter;
291 FiRangeMvdLow = Fi_up_limit;
293 FiRangeMvdLow = fmod(FiRangeMvdLow,
two_pi);
294 if( FiRangeMvdUp < FiRangeMvdLow) {
296 if( FiRangeMvdUp < FiRangeMvdLow) FiRangeMvdUp = FiRangeMvdLow;
416 nFitPoints = nSttParHitsinTrack;
419 for(j=0; j< nFitPoints ; j++){
420 Xconformal[j] =infoparalConformal[ListSttParHitsinTrack[j]][0];
421 Yconformal[j] =infoparalConformal[ListSttParHitsinTrack[j]][1];
422 ErrorDriftRadiusconformal[j]=
423 infoparalConformal[ListSttParHitsinTrack[j]][2];
424 DriftRadiusconformal[j]=
425 infoparalConformal[ListSttParHitsinTrack[j]][2];
443 DriftRadiusconformal,
444 ErrorDriftRadiusconformal,
463 if(
status < 0 )
return false;
467 Ox= -0.5*(*(InOut->
ALFA));
468 Oy= -0.5*(*(InOut->
BETA));
469 R= Ox * Ox + Oy * Oy - (*(InOut->
GAMMA));
473 if(
R < 0. )
return false;
475 aaa =
sqrt( Ox * Ox + Oy * Oy );
480 if(aaa< 0.9*InOut->apotemastrawdetectormin/2.)
return false;
483 if (
R + aaa < InOut->apotemastrawdetectormin *0.9 )
return false;
489 Short_t nSttSkewHitsinTrack[10],
490 nSciTilHitsinTrack[10];
491 Short_t ListSttSkewHitsinTrack[100];
494 nSttSkewHitsinTrack[0] = 0;
495 nSciTilHitsinTrack[0] = 0;
496 nMvdPixelHitsinTrack = 0;
497 nMvdStripHitsinTrack = 0;
499 cout<<
"\tstampa in CTFind..2.cxx, dopo FitHelixCylinder :" <<endl;
500 Print2.stampetta2(tkeepit,ListMvdPixelHitsinTrack,
501 ListMvdStripHitsinTrack,ListSttParHitsinTrack,
503 &nMvdPixelHitsinTrack,&nMvdStripHitsinTrack,&nSttParHitsinTrack,
505 nSttSkewHitsinTrack,nSciTilHitsinTrack,1,
519 GeomCalculator.FindingParallelTrackAngularRange2(
529 if(flagStt < 0)
return false;
535 fiCenter =
atan2(-Oy,-Ox);
536 if( fiCenter < 0. ) fiCenter +=
two_pi;
540 DecideWhichAngularRangeAndCharge(
571 NN = TrkAssociatedParallelHitsToHelix5(
586 if( NN < InOut->minimumhitspertrack )
return false;
592 nSttParHitsinTrack=
NN;
596 for(
i=0;
i< nSttParHitsinTrack;
i++){
597 ListSttParHitsinTrack[
i]=auxListHitsinTrack[
i];
606 Short_t nSttSkewHitsinTrack[10],
607 nSciTilHitsinTrack[10];
608 Short_t ListSttSkewHitsinTrack[100];
611 nSttSkewHitsinTrack[0] = 0;
612 nSciTilHitsinTrack[0] = 0;
614 cout<<
"\tstampa in CTFind..2.cxx, dopo TrkAssociatedParallelHitsToHelix5 :"<<endl;
615 Print2.stampetta2(tkeepit,ListMvdPixelHitsinTrack,
616 ListMvdStripHitsinTrack,ListSttParHitsinTrack,
618 &nMvdPixelHitsinTrack,&nMvdStripHitsinTrack,&nSttParHitsinTrack,
620 nSttSkewHitsinTrack,nSciTilHitsinTrack,1,
632 highqualitycut = 0.2;
635 AddMvdHitsToSttTracks(
652 nMvdPixelHitsinTrack,
653 ListMvdPixelHitsinTrack,
654 nMvdStripHitsinTrack,
655 ListMvdStripHitsinTrack
664 Short_t nSttSkewHitsinTrack[10],
665 nSciTilHitsinTrack[10];
666 Short_t ListSttSkewHitsinTrack[100];
669 nSttSkewHitsinTrack[0] = 0;
670 nSciTilHitsinTrack[0] = 0;
672 cout<<
"\tstampa in CTFind..2.cxx, dopo AddMvdHitsToSttTracks (m = "<<
m<<
", q = "<<q<<
", atan(m) = "<<atan(
m)<<
"):"<<endl;
673 Print2.stampetta2(tkeepit,ListMvdPixelHitsinTrack,
674 ListMvdStripHitsinTrack,ListSttParHitsinTrack,
676 &nMvdPixelHitsinTrack,&nMvdStripHitsinTrack,&nSttParHitsinTrack,
678 nSttSkewHitsinTrack,nSciTilHitsinTrack,1,
692 if( nMvdPixelHitsinTrack + nMvdStripHitsinTrack == 0 ){
695 *(InOut->
ALFA) = -2.* Ox ;
696 *(InOut->
BETA) = -2.* Oy ;
697 *(InOut->
GAMMA) = Ox * Ox + Oy * Oy -
R*
R;
714 for(j=0; j<nMvdPixelHitsinTrack; j++){
717 r2 = XMvdPixel[ListMvdPixelHitsinTrack[j]]*XMvdPixel[ListMvdPixelHitsinTrack[j]]+
718 YMvdPixel[ListMvdPixelHitsinTrack[j]]*YMvdPixel[ListMvdPixelHitsinTrack[j]];
719 Xconformal[j] = XMvdPixel[ListMvdPixelHitsinTrack[j]]/
r2 ;
720 Yconformal[j] = YMvdPixel[ListMvdPixelHitsinTrack[j]]/
r2 ;
723 gamma =
r2 - 0.01 * 0.01 ;
725 ErrorDriftRadiusconformal[j]= 3.*delta /
fabs(gamma);
728 DriftRadiusconformal[j]= -1;
735 for(j=0; j<nMvdStripHitsinTrack; j++){
737 r2 = XMvdStrip[ListMvdStripHitsinTrack[j]]*XMvdStrip[ListMvdStripHitsinTrack[j]]+
738 YMvdStrip[ListMvdStripHitsinTrack[j]]*YMvdStrip[ListMvdStripHitsinTrack[j]];
739 Xconformal[nFitPoints] = XMvdStrip[ListMvdStripHitsinTrack[j]]/
r2 ;
740 Yconformal[nFitPoints] = YMvdStrip[ListMvdStripHitsinTrack[j]]/
r2 ;
742 gamma =
r2 - 0.01 * 0.01 ;
743 ErrorDriftRadiusconformal[nFitPoints]= 3. * 0.01 /
fabs(gamma);
745 DriftRadiusconformal[nFitPoints]= -1;
753 for(j=0; j<nSttParHitsinTrack; j++){
755 Xconformal[nFitPoints] =infoparalConformal[(InOut->
ListHitsinTrack)[j]][0];
756 Yconformal[nFitPoints] =infoparalConformal[(InOut->
ListHitsinTrack)[j]][1];
761 gamma = r2 - 0.5 * 0.5 ;
762 ErrorDriftRadiusconformal[nFitPoints]=3.* 0.01/
fabs(gamma);
764 DriftRadiusconformal[nFitPoints]=
783 DriftRadiusconformal,
784 ErrorDriftRadiusconformal,
805 Ox= -0.5*(*(InOut->
ALFA));
806 Oy= -0.5*(*(InOut->
BETA));
807 R=
sqrt( Ox * Ox + Oy * Oy - (*(InOut->
GAMMA)) );
816 Short_t nSttSkewHitsinTrack[10],
817 nSciTilHitsinTrack[10];
818 Short_t ListSttSkewHitsinTrack[100];
821 nSttSkewHitsinTrack[0] = 0;
822 nSciTilHitsinTrack[0] = 0;
824 cout<<
"\tstampa in CTFind..2.cxx, dopo fitChi2.FitHelixCylinder(m = "<<
m<<
", q = "<<q<<
", atan(m) = "<<atan(
m)<<
"):"<<endl;
825 Print2.stampetta2(tkeepit,ListMvdPixelHitsinTrack,
826 ListMvdStripHitsinTrack,ListSttParHitsinTrack,
828 &nMvdPixelHitsinTrack,&nMvdStripHitsinTrack,&nSttParHitsinTrack,
830 nSttSkewHitsinTrack,nSciTilHitsinTrack,1,
846 GeomCalculator.FindingParallelTrackAngularRange2(
858 if(flagStt < 0)
return false;
863 fiCenter =
atan2(-Oy,-Ox);
864 if( fiCenter < 0. ) fiCenter +=
two_pi;
867 DecideWhichAngularRangeAndCharge(
897 AddMvdHitsToSttTracks(
914 nMvdPixelHitsinTrack,
915 ListMvdPixelHitsinTrack,
916 nMvdStripHitsinTrack,
917 ListMvdStripHitsinTrack
925 NN = TrkAssociatedParallelHitsToHelix6(
939 if( NN < InOut->minimumhitspertrack )
return false;
943 nSttParHitsinTrack=
NN;
947 for(
i=0;
i< nSttParHitsinTrack;
i++){
948 ListSttParHitsinTrack[
i]=auxListHitsinTrack[
i];
1009 if( R< InOut->rstrawdetectormax){
1021 ListSttParHitsinTrack
1029 ListSttParHitsinTrack
1038 Short_t nSttSkewHitsinTrack[10],
1039 nSciTilHitsinTrack[10];
1040 Short_t ListSttSkewHitsinTrack[100];
1043 nSttSkewHitsinTrack[0] = 0;
1046 cout<<
"\tstampa in CTFind..2.cxx, dopo ordering :"<<endl;
1047 Print2.stampetta2(tkeepit,ListMvdPixelHitsinTrack,
1048 ListMvdStripHitsinTrack,ListSttParHitsinTrack,
1050 &nMvdPixelHitsinTrack,&nMvdStripHitsinTrack,&nSttParHitsinTrack,
1052 nSttSkewHitsinTrack,nSciTilHitsinTrack,1,
1110 aaa =
atan2( oY, oX);
1117 if((aaa>b1&&aaa<3.*b1) || (aaa>-3.*b1&&aaa<-b1)){
1119 for (j = 0; j<
nHits; j++){
1120 U[j]= info[ListHits[j]][0]/(info[ListHits[j]][0]*info[ListHits[j]][0]+
1121 info[ListHits[j]][1]*info[ListHits[j]][1]);
1125 if((aaa>b1&&aaa<3.*b1)){
1128 for(i=0;i<
nHits;i++){
1129 tmp[
i]=ListHits[nHits-1-
i];
1131 for(i=0;i<
nHits;i++){
1138 for(i=0;i<
nHits;i++){
1139 tmp[
i]=ListHits[nHits-1-
i];
1141 for(i=0;i<
nHits;i++){
1148 for (j = 0; j<
nHits; j++){
1149 V[j]= info[ListHits[j]][1]/(info[ListHits[j]][0]*info[ListHits[j]][0]+
1150 info[ListHits[j]][1]*info[ListHits[j]][1]);
1154 if((aaa<=-3.*b1 || aaa>=3.*b1)){
1157 for(i=0;i<
nHits;i++){
1158 tmp[
i]=ListHits[nHits-1-
i];
1160 for(i=0;i<
nHits;i++){
1167 for(i=0;i<
nHits;i++){
1168 tmp[
i]=ListHits[nHits-1-
i];
1170 for(i=0;i<
nHits;i++){
1202 Short_t iaux[
nHits],
1216 Fi0 =
atan2( -oY, -oX);
1220 for (j = 0; j<
nHits; j++){
1221 fi[j]=
atan2( info[ListHits[j]][1]-oY, info[ListHits[j]][0]-oX);
1222 if( fi[j] < Fi0 ) fi[j] += 2.*
PI;
1223 if( fi[j] < Fi0 ) fi[j] = Fi0;
1229 for (j = 0; j<
nHits; j++){
1230 fi[j]=
atan2( info[ListHits[j]][1]-oY, info[ListHits[j]][0]-oX);
1231 if( fi[j] > Fi0 ) fi[j] -= 2.*
PI;
1232 if( fi[j] > Fi0 ) fi[j] = Fi0;
1236 for (j = 0; j<
nHits; j++){
1237 iaux[j] = ListHits[nHits-j-1];
1240 for (j = 0; j<
nHits; j++){
1241 ListHits[j]=iaux[j];
1280 for(i=0; i<
nHits; i++){
1282 info[ ListHits[
i] ][0]*
1283 info[ ListHits[
i] ][0]+
1284 info[ ListHits[
i] ][1]*
1285 info[ ListHits[
i] ][1];
1298 if(
fabs( auxR2[0] - auxR2[1]) < 0.1) {
1299 distq1 = (info[ListHits[0]][0]-info[ListHits[2]][0])*(info[ListHits[0]][0]-info[ListHits[2]][0])+
1300 (info[ListHits[0]][1]-info[ListHits[2]][1])*(info[ListHits[0]][1]-info[ListHits[2]][1]);
1301 distq2 = (info[ListHits[1]][0]-info[ListHits[2]][0])*(info[ListHits[1]][0]-info[ListHits[2]][0])+
1302 (info[ListHits[1]][1]-info[ListHits[2]][1])*(info[ListHits[1]][1]-info[ListHits[2]][1]);
1304 if(distq1 < distq2 ){
1306 ListHits[0] = ListHits[1];
1316 for(i=2; i<
nHits; i++){
1317 if( auxR2[i] == auxR2[i-1]){
1320 distq1 = (info[ListHits[
i]][0]-info[ListHits[i-2]][0])*(info[ListHits[i]][0]-info[ListHits[i-2]][0])+
1321 (info[ListHits[
i]][1]-info[ListHits[i-2]][1])*(info[ListHits[i]][1]-info[ListHits[i-2]][1]);
1323 distq2 = (info[ListHits[i-1]][0]-info[ListHits[i-2]][0])*(info[ListHits[i-1]][0]-info[ListHits[i-2]][0])+
1324 (info[ListHits[i-1]][1]-info[ListHits[i-2]][1])*(info[ListHits[i-1]][1]-info[ListHits[i-2]][1]);
1329 ListHits[
i] = ListHits[i-1];
1330 ListHits[i-1] = iaux;
1332 auxR2[
i]=auxR2[i-1];
1349 Short_t *auxListHitsinTrack,
1350 bool *InclusionListStt,
1354 Short_t *ListSttParHits,
1355 Int_t NhitsParallel,
1365 Short_t nAssociatedHits;
1380 for(i=0; i<NhitsParallel;i++){
1381 if( !InclusionListStt[ ListSttParHits[i] ] )
continue;
1383 dx = -Oxx+info[ListSttParHits[
i]][0];
1384 dy = -Oyy+info[ListSttParHits[
i]][1];
1386 if(angle<0.) angle += 2.*
PI;
1387 if(angle<0.) angle =0.;
1388 distance =
sqrt(dx*dx+dy*dy);
1390 if (
fabs(Rr - distance ) > NTIMES*strawradius )
continue;
1391 if(angle<Fi_low) angle += 2.*
PI;
1392 if(angle>Fi_up)
continue;
1393 auxListHitsinTrack[nAssociatedHits]= ListSttParHits[
i];
1397 return nAssociatedHits;
1409 Short_t *auxListHitsinTrack,
1410 bool *InclusionListStt,
1414 Short_t *ListSttParHits,
1415 Int_t NhitsParallel,
1425 Short_t nAssociatedHits;
1437 for(i=0; i<NhitsParallel;i++){
1438 if( !InclusionListStt[ ListSttParHits[i] ] )
continue;
1440 dx = -Oxx+info[ListSttParHits[
i]][0];
1441 dy = -Oyy+info[ListSttParHits[
i]][1];
1443 if(angle<0.) angle += 2.*
PI;
1444 if(angle<0.) angle =0.;
1445 distance =
sqrt(dx*dx+dy*dy);
1447 if (
fabs(Rr - distance ) > maximum_distance )
continue;
1448 if(angle<Fi_low) angle += 2.*
PI;
1449 if(angle>Fi_up)
continue;
1450 auxListHitsinTrack[nAssociatedHits]= ListSttParHits[
i];
1454 return nAssociatedHits;
Short_t FitHelixCylinder2(Double_t *Cosine, Short_t LEGIANDRE_NTHETADIV, Short_t LEGIANDRE_NRADIUSDIV, Short_t nHitsinTrack, Double_t *Xconformal, Double_t *Yconformal, Double_t *DriftRadiusconformal, Double_t *ErrorDriftRadiusconformal, Double_t rotationangle, Double_t *Sinus, Double_t THETAMAX, Double_t THETAMIN, Double_t trajectory_vertex[2], Short_t NMAX, Double_t *m, Double_t *q, Double_t *pAlfa, Double_t *pBeta, Double_t *pGamma, bool *Type, int istampa, int IVOLTE)
friend F32vec4 sqrt(const F32vec4 &a)
friend F32vec4 sin(const F32vec4 &a)
void AddMvdHitsToSttTracks(Double_t delta, Double_t highqualitycut, Double_t FiRangeMvdLow, Double_t FiRangeMvdUp, Short_t maxmvdpixelhitsintrack, Short_t maxmvdstriphitsintrack, Short_t nMvdPixelHit, Short_t nMvdStripHit, Double_t Ox, Double_t Oy, Double_t R, Double_t *XMvdPixel, Double_t *XMvdStrip, Double_t *YMvdPixel, Double_t *YMvdStrip, Short_t &nPixelHitsinTrack, Short_t *ListPixelHitsinTrack, Short_t &nStripHitsinTrack, Short_t *ListStripHitsinTrack)
Short_t FitHelixCylinder(Short_t nHitsinTrack, Double_t *Xconformal, Double_t *Yconformal, Double_t *DriftRadiusconformal, Double_t *ErrorDriftRadiusconformal, Double_t rotationangle, Double_t trajectory_vertex[2], Short_t NMAX, Double_t *m, Double_t *q, Double_t *pAlfa, Double_t *pBeta, Double_t *pGamma, bool *Type, int istampa, int IVOLTE)
Short_t AssociateSciTilHit(Double_t dimensionscitil, Double_t *esse, bool *InclusionListSciTil, Short_t *List, Short_t maxscitilhitsintrack, Short_t nSciTilHits, Double_t Oxx, Double_t Oyy, Double_t posizSciTil[][3], Double_t Rr)
Short_t TrkAssociatedParallelHitsToHelix5(Short_t *auxListHitsinTrack, bool *InclusionListStt, Double_t Fi_low, Double_t Fi_up, Double_t info[][7], Short_t *ListSttParHits, Int_t NhitsParallel, Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t strawradius)
Short_t TrkAssociatedParallelHitsToHelix6(Short_t *auxListHitsinTrack, bool *InclusionListStt, Double_t Fi_low, Double_t Fi_up, Double_t info[][7], Short_t *ListSttParHits, Int_t NhitsParallel, Double_t Oxx, Double_t Oyy, Double_t Rr, Double_t maximum_distance)
bool FindTrackInXYProjection(struct FindTrackInXYProjection2_InputOutputData *InOut, int istampa, int IVOLTE)
void OrderingUsingR(Double_t info[][7], Int_t nHits, Short_t *ListHits)
void Merge_Sort2(Short_t n_ele, Double_t *array, Short_t *ind)
void DecideWhichAngularRangeAndCharge(Double_t fiCenter, Double_t fi_low_limit[2], Double_t fi_up_limit[2], Double_t(*info)[7], Short_t *ListHitsinTrack, Short_t nHitsinTrack, Double_t Oxx, Double_t Oyy, Short_t &charge, Double_t &FiRangeMvdLow, Double_t &FiRangeMvdUp, Double_t &Fi_low_limit, Double_t &Fi_up_limit)
friend F32vec4 fabs(const F32vec4 &a)
friend F32vec4 atan2(const F32vec4 &y, const F32vec4 &x)
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 OrderingUsingConformal(Short_t Charge, Double_t info[][7], Int_t nHits, Double_t oX, Double_t oY, Short_t *ListHits)
void OrderingUsingFi(Short_t Charge, Double_t info[][7], Int_t nHits, Double_t oX, Double_t oY, Short_t *ListHits)