//
// The default ESD constructor
//
- Int_t i;
+ Int_t i, j;
for (i=0; i<AliPID::kSPECIES; i++) {
fTrackTime[i]=0.;
fR[i]=1.;
for (i=0; i<3; i++) { fKinkIndexes[i]=0;}
for (i=0; i<3; i++) { fV0Indexes[i]=-1;}
- for (i=0;i<kNPlane;i++) {fTRDsignals[i]=0.; fTRDTimBin[i]=-1;}
+ for (i=0;i<kNPlane;i++) {
+ for (j=0;j<kNSlice;j++) {
+ fTRDsignals[i][j]=0.;
+ }
+ fTRDTimBin[i]=-1;
+ }
for (i=0;i<4;i++) {fTPCPoints[i]=-1;}
for (i=0;i<3;i++) {fTOFLabel[i]=-1;}
for (i=0;i<10;i++) {fTOFInfo[i]=-1;}
fRICHmipX(track.fRICHmipX),
fRICHmipY(track.fRICHmipY),
fPoints(0),
- fFriendTrack(new AliESDfriendTrack(*(track.fFriendTrack)))
+ fFriendTrack(0)
{
//
//copy constructor
for (Int_t i=0; i<3;i++) { fV0Indexes[i]=track.fV0Indexes[i];}
//
for (Int_t i=0;i<kNPlane;i++) {
- fTRDsignals[i]=track.fTRDsignals[i];
- fTRDTimBin[i]=track.fTRDTimBin[i];
+ for (Int_t j=0;j<kNSlice;j++) {
+ fTRDsignals[i][j]=track.fTRDsignals[i][j];
+ }
+ fTRDTimBin[i]=track.fTRDTimBin[i];
}
for (Int_t i=0;i<AliPID::kSPECIES;i++) fTRDr[i]=track.fTRDr[i];
for (Int_t i=0;i<AliPID::kSPECIES;i++) fTOFr[i]=track.fTOFr[i];
if (track.fOp) fOp=new AliExternalTrackParam(*track.fOp);
if (track.fPoints) fPoints=new AliTrackPointArray(*(track.fPoints));
+ if (track.fFriendTrack) fFriendTrack=new AliESDfriendTrack(*(track.fFriendTrack));
}
//_______________________________________________________________________
delete fPoints;
}
+void AliESDtrack::AddCalibObject(TObject * object){
+ //
+ // add calib object to the list
+ //
+ if (!fFriendTrack) fFriendTrack = new AliESDfriendTrack;
+ fFriendTrack->AddCalibObject(object);
+}
+
+TObject * AliESDtrack::GetCalibObject(Int_t index){
+ //
+ // return calib objct at given position
+ //
+ if (!fFriendTrack) return 0;
+ return fFriendTrack->GetCalibObject(index);
+}
+
+
//_______________________________________________________________________
void AliESDtrack::MakeMiniESDtrack(){
// Resets everything except
// fD: Impact parameter in XY-plane
// fZ: Impact parameter in Z
// fR[AliPID::kSPECIES]: combined "detector response probability"
- // Running track parameters
- // fRalpha: track rotation angle
- // fRx: X-coordinate of the track reference plane
- // fRp[5]: external track parameters
- // fRc[15]: external cov. matrix of the track parameters
+ // Running track parameters in the base class (AliExternalTrackParam)
fTrackLength = 0;
for (Int_t i=0;i<AliPID::kSPECIES;i++) fTrackTime[i] = 0;
fTRDncls0 = 0;
fTRDsignal = 0;
for (Int_t i=0;i<kNPlane;i++) {
- fTRDsignals[i] = 0;
- fTRDTimBin[i] = 0;
+ for (Int_t j=0;j<kNSlice;j++) {
+ fTRDsignals[i][j] = 0;
+ }
+ fTRDTimBin[i] = 0;
}
for (Int_t i=0;i<AliPID::kSPECIES;i++) fTRDr[i] = 0;
fTRDLabel = 0;
fRICHphi = 0;
fRICHdx = 0;
fRICHdy = 0;
+ fRICHmipX = 0;
+ fRICHmipY = 0;
delete fFriendTrack; fFriendTrack = 0;
delete fPoints; fPoints = 0;
// In the case of success, the returned value is kTRUE
// (otherwise, it's kFALSE)
//
+
+ if (!vtx) return kFALSE;
+
Double_t alpha=GetAlpha();
Double_t sn=TMath::Sin(alpha), cs=TMath::Cos(alpha);
Double_t x=GetX(), y=GetParameter()[0], snp=GetParameter()[2];
if (d > maxd) return kFALSE;
//Propagate to the DCA
- Double_t crv=0.299792458e-3*b*GetParameter()[4];
+ Double_t crv=kB2C*b*GetParameter()[4];
+ if (TMath::Abs(b) < kAlmost0Field) crv=0.;
+
Double_t tgfv=-(crv*x - snp)/(crv*y + TMath::Sqrt(1.-snp*snp));
sn=tgfv/TMath::Sqrt(1.+ tgfv*tgfv);
if (TMath::Abs(tgfv)>0.) cs = sn/tgfv;