Usage:
-.L $ALICE_ROOT/STEER/AliGenInfo.C+
+.L $ALICE_ROOT/STEER/AliGenInfo.C++g
//be sure you created genTracks file before
-.L $ALICE_ROOT/STEER/AliESDComparisonMI.C+
+.L $ALICE_ROOT/STEER/AliESDComparisonMI.C++g
//
ESDCmpTr *t2 = new ESDCmpTr("genTracks.root","cmpESDTracks.root","galice.root",-1,0,0);
fTPCAngle1[0] = TMath::ATan2(fTPCinP1[1],fTPCinP1[0]);
fTPCAngle1[1] = TMath::ATan(fTPCinP1[2]/fTPCinP1[3]);
}
- Double_t cov[15], param[5],x;
+ Double_t cov[15], param[5],x, alpha;
fESDTrack.GetInnerExternalCovariance(cov);
- fESDTrack.GetInnerExternalParameters(x,param);
+ fESDTrack.GetInnerExternalParameters(alpha, x,param);
if (x<50) return ;
//
fTPCDelta[0] = (fTPCinR0[4]-fTPCinR1[4])*fTPCinR1[3]; //delta rfi
fTreeCmpV0->AutoSave();
- fRecArray->Delete();
printf("Time spended in BuilV0Info Loop\n");
timer.Print();
if (fDebug > 2) cerr<<"end of BuildV0Info Loop"<<endl;
fITStrack(0),
fTPCchi2(0),
fTPCncls(0),
+ fTPCnclsF(0),
fTPCClusterMap(159),//number of padrows
fTPCsignal(0),
+ fTPCsignalN(0),
+ fTPCsignalS(0),
fTPCLabel(0),
fTRDchi2(0),
fTRDncls(0),
for (i=0; i<180; i++){ fTPCindex[i]=0; }
for (i=0; i<3;i++) { fKinkIndexes[i]=0;}
for (i=0; i<3;i++) { fV0Indexes[i]=-1;}
- for (i=0; i<130; i++) { fTRDindex[i]=0; }
+ for (i=0; i<180; i++) { fTRDindex[i]=0; }
for (i=0;i<kNPlane;i++) {fTRDsignals[i]=0.; fTRDTimBin[i]=-1;}
for (i=0;i<4;i++) {fTPCPoints[i]=-1;}
for (i=0;i<3;i++) {fTOFLabel[i]=-1;}
fITStrack(0), //coping separatelly - in user code
fTPCchi2(track.fTPCchi2),
fTPCncls(track.fTPCncls),
+ fTPCnclsF(track.fTPCnclsF),
fTPCClusterMap(track.fTPCClusterMap),
fTPCsignal(track.fTPCsignal),
+ fTPCsignalN(track.fTPCsignalN),
+ fTPCsignalS(track.fTPCsignalS),
fTPCLabel(track.fTPCLabel),
fTRDchi2(track.fTRDchi2),
fTRDncls(track.fTRDncls),
fRICHtheta(track.fRICHtheta),
fRICHphi(track.fRICHphi),
fRICHdx(track.fRICHdx),
- fRICHdy(track.fRICHdy),
- fPoints(track.fPoints)
+ fRICHdy(track.fRICHdy)
{
//
//copy constructor
for (Int_t i=0; i<3;i++) { fKinkIndexes[i]=track.fKinkIndexes[i];}
for (Int_t i=0; i<3;i++) { fV0Indexes[i]=track.fV0Indexes[i];}
//
- for (Int_t i=0;i<130;i++) fTRDindex[i]=track.fTRDindex[i];
+ for (Int_t i=0;i<180;i++) fTRDindex[i]=track.fTRDindex[i];
for (Int_t i=0;i<kNPlane;i++) {
fTRDsignals[i]=track.fTRDsignals[i];
fTRDTimBin[i]=track.fTRDTimBin[i];
if (track.fCp) fCp=new AliExternalTrackParam(*track.fCp);
if (track.fIp) fIp=new AliExternalTrackParam(*track.fIp);
if (track.fOp) fOp=new AliExternalTrackParam(*track.fOp);
+ fPoints =0;
+ if (track.fPoints){
+ fPoints = new AliTrackPointArray(*(track.fPoints));
+ }
}
//_______________________________________________________________________
AliESDtrack::~AliESDtrack(){
// Reset TPC related track information
fTPCchi2 = 0;
fTPCncls = 0;
+ fTPCnclsF = 0;
for (Int_t i=0;i<180;i++) fTPCindex[i] = 0;
fTPCClusterMap = 0;
fTPCsignal= 0;
+ fTPCsignalS= 0;
+ fTPCsignalN= 0;
for (Int_t i=0;i<AliPID::kSPECIES;i++) fTPCr[i]=0;
fTPCLabel=0;
for (Int_t i=0;i<4;i++) fTPCPoints[i] = 0;
fTRDchi2 = 0;
fTRDncls = 0;
fTRDncls0 = 0;
- for (Int_t i=0;i<130;i++) fTRDindex[i] = 0;
+ for (Int_t i=0;i<180;i++) fTRDindex[i] = 0;
fTRDsignal = 0;
for (Int_t i=0;i<kNPlane;i++) {
fTRDsignals[i] = 0;
}
Set(*t);
-
+
switch (flags) {
case kITSin: case kITSout: case kITSrefit:
fTPCLabel = t->GetLabel();
if (!fIp) fIp=new AliExternalTrackParam(*t);
else fIp->Set(*t);
-
case kTPCout:
-
- fTPCncls=t->GetNumberOfClusters();
+ fTPCncls=t->GetNumberOfClusters();
fTPCchi2=t->GetChi2();
{//prevrow must be declared in separate namespace, otherwise compiler cries:
// This function returns indices of the assgined TRD clusters
//---------------------------------------------------------------------
if (idx!=0)
- for (Int_t i=0; i<130; i++) idx[i]=fTRDindex[i]; // MI I prefer some constant
+ for (Int_t i=0; i<180; i++) idx[i]=fTRDindex[i]; // MI I prefer some constant
return fTRDncls;
}
void SetTPCpid(const Double_t *p);
void GetTPCpid(Double_t *p) const;
void SetTPCPoints(Float_t points[4]){for (Int_t i=0;i<4;i++) fTPCPoints[i]=points[i];}
+ void SetTPCPointsF(UChar_t findable){fTPCnclsF = findable;}
Float_t GetTPCPoints(Int_t i){return fTPCPoints[i];}
void SetKinkIndexes(Int_t points[3]) {for (Int_t i=0;i<3;i++) fKinkIndexes[i] = points[i];}
void SetV0Indexes(Int_t points[3]) {for (Int_t i=0;i<3;i++) fV0Indexes[i] = points[i];}
+ void SetTPCsignal(Float_t signal, Float_t sigma, UChar_t npoints){ fTPCsignal = signal; fTPCsignalS = sigma; fTPCsignalN = npoints;}
Float_t GetTPCsignal() const {return fTPCsignal;}
Float_t GetTPCchi2() const {return fTPCchi2;}
Int_t GetTPCclusters(Int_t *idx) const;
// TPC related track information
Float_t fTPCchi2; // chi2 in the TPC
Int_t fTPCncls; // number of clusters assigned in the TPC
+ UShort_t fTPCnclsF; // number of findable clusters in the TPC
Int_t fTPCindex[180]; //! indices of the assigned TPC clusters
TBits fTPCClusterMap; // Map of clusters, one bit per padrow; 1 if has a cluster on given padrow
Float_t fTPCsignal; // detector's PID signal
+ UShort_t fTPCsignalN; // number of points used for dEdx
+ Float_t fTPCsignalS; // RMS of dEdx measurement
Float_t fTPCr[AliPID::kSPECIES]; // "detector response probabilities" (for the PID)
Int_t fTPCLabel; // label according TPC
Float_t fTPCPoints[4]; // TPC points -first, max. dens, last and max density
Float_t fTRDchi2; // chi2 in the TRD
Int_t fTRDncls; // number of clusters assigned in the TRD
Int_t fTRDncls0; // number of clusters assigned in the TRD before first material cross
- UInt_t fTRDindex[130]; //! indices of the assigned TRD clusters
+ UInt_t fTRDindex[180]; //! indices of the assigned TRD clusters
Float_t fTRDsignal; // detector's PID signal
Float_t fTRDsignals[kNPlane]; // TRD signals from all six planes
Int_t fTRDTimBin[kNPlane]; // Time bin of Max cluster from all six planes
AliTrackPointArray *fPoints; // Array which contains the track space points in the global frame
- ClassDef(AliESDtrack,21) //ESDtrack
+ ClassDef(AliESDtrack,22) //ESDtrack
};
#endif