// Double_t * c1 = &fHelix[6];
//Double_t * c2 = &(h.fHelix[6]);
// Double_t c1[3] = {fHelix[5],fHelix[0],fHelix[8]};
+
+ // PH initiaziation in case of return
+ phase[0][0]=phase[0][1]=phase[1][0]=phase[1][1]=0;
+ ri[0]=ri[1]=1000000;
+
Double_t c1[3] = {0,0,fHelix[8]};
Double_t c2[3] = {h.fHelix[5]-fHelix[5],h.fHelix[0]-fHelix[0],h.fHelix[8]};
x0[0] = (d+c1[2]-c2[2])*c2[0]/(2*d)+ fHelix[5];
y0[0] = (d+c1[2]-c2[2])*c2[1]/(2*d)+ fHelix[0];
// return 0;
- phase[0][0] = GetPhase(x0[0],y0[0]);
- phase[0][1] = h.GetPhase(x0[0],y0[0]);
- ri[0] = x0[0]*x0[0]+y0[0]*y0[0];
+ phase[1][0] = phase[0][0] = GetPhase(x0[0],y0[0]);
+ phase[1][1] = phase[0][1] = h.GetPhase(x0[0],y0[0]);
+ ri[1] = ri[0] = x0[0]*x0[0]+y0[0]*y0[0];
return 1;
}
if ( (d+c2[2])<c1[2]){
//
Double_t xx = c2[0]+ c2[0]*c2[2]/d+ fHelix[5];
Double_t yy = c2[1]+ c2[1]*c2[2]/d+ fHelix[0];
- phase[0][1] = h.GetPhase(xx,yy);
+ phase[1][1] = phase[0][1] = h.GetPhase(xx,yy);
//
Double_t xx2 = c2[0]*c1[2]/d+ fHelix[5];
Double_t yy2 = c2[1]*c1[2]/d+ fHelix[0];
- phase[0][0] = GetPhase(xx2,yy2);
- ri[0] = xx*xx+yy*yy;
+ phase[1][0] = phase[0][0] = GetPhase(xx2,yy2);
+ ri[1] = ri[0] = xx*xx+yy*yy;
return 1;
}
//
Double_t xx = -c2[0]*c1[2]/d+ fHelix[5];
Double_t yy = -c2[1]*c1[2]/d+ fHelix[0];
- phase[0][1] = GetPhase(xx,yy);
+ phase[1][1] = phase[0][1] = GetPhase(xx,yy);
//
Double_t xx2 = c2[0]- c2[0]*c2[2]/d+ fHelix[5];
Double_t yy2 = c2[1]- c2[1]*c2[2]/d+ fHelix[0];
- phase[0][0] = h.GetPhase(xx2,yy2);
- ri[0] = xx*xx+yy*yy;
+ phase[1][0] = phase[0][0] = h.GetPhase(xx2,yy2);
+ ri[1] = ri[0] = xx*xx+yy*yy;
return 1;
}