case kTRDout:
{ //requested by the PHOS ("temporary solution")
Double_t r=474.;
- t->PropagateTo(r,30.,0.);
- fOalpha=fRalpha;
- fOx=fRx;
- Int_t i;
- for (i=0; i<5; i++) fOp[i]=fRp[i];
- for (i=0; i<15;i++) fOc[i]=fRc[i];
+ if (t->PropagateTo(r,30.,0.)) {
+ fOalpha=t->GetAlpha();
+ t->GetExternalParameters(fOx,fOp);
+ t->GetExternalCovariance(fOc);
+ }
}
case kTRDin: case kTRDrefit:
fTRDncls=t->GetNumberOfClusters();
// This function returns the global track momentum components
// af the entrance of the TPC
//---------------------------------------------------------------------
+ if (fIx==0) {p[0]=p[1]=p[2]=0.; return;}
Double_t phi=TMath::ASin(fIp[2]) + fIalpha;
Double_t pt=1./TMath::Abs(fIp[4]);
p[0]=pt*TMath::Cos(phi); p[1]=pt*TMath::Sin(phi); p[2]=pt*fIp[3];
// This function returns the global track position
// af the entrance of the TPC
//---------------------------------------------------------------------
+ if (fIx==0) {xyz[0]=xyz[1]=xyz[2]=0.; return;}
Double_t phi=TMath::ATan2(fIp[0],fIx) + fIalpha;
Double_t r=TMath::Sqrt(fIx*fIx + fIp[0]*fIp[0]);
xyz[0]=r*TMath::Cos(phi); xyz[1]=r*TMath::Sin(phi); xyz[2]=fIp[1];
// This function returns the global track momentum components
// af the radius of the PHOS
//---------------------------------------------------------------------
+ if (fOx==0) {p[0]=p[1]=p[2]=0.; return;}
Double_t phi=TMath::ASin(fOp[2]) + fOalpha;
Double_t pt=1./TMath::Abs(fOp[4]);
p[0]=pt*TMath::Cos(phi); p[1]=pt*TMath::Sin(phi); p[2]=pt*fOp[3];
// This function returns the global track position
// af the radius of the PHOS
//---------------------------------------------------------------------
+ if (fOx==0) {xyz[0]=xyz[1]=xyz[2]=0.; return;}
Double_t phi=TMath::ATan2(fOp[0],fOx) + fOalpha;
Double_t r=TMath::Sqrt(fOx*fOx + fOp[0]*fOp[0]);
xyz[0]=r*TMath::Cos(phi); xyz[1]=r*TMath::Sin(phi); xyz[2]=fOp[1];