X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliESDtrack.h;h=9704e0b8c5ab5f40771bc5a6b260212241169aa5;hb=d338b6798b2853459e36279af540974e37d3e1fc;hp=e2667f8c0c12920fdf28f5edb0b413df46c2c2e6;hpb=31923a9f6cd0b208516bc751d3eff67d4a0b78fe;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliESDtrack.h b/STEER/AliESDtrack.h index e2667f8c0c1..9704e0b8c5a 100644 --- a/STEER/AliESDtrack.h +++ b/STEER/AliESDtrack.h @@ -1,4 +1,3 @@ - #ifndef ALIESDTRACK_H #define ALIESDTRACK_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * @@ -30,6 +29,7 @@ #include #include "AliExternalTrackParam.h" +#include "AliVTrack.h" #include "AliPID.h" #include "AliESDfriendTrack.h" @@ -46,12 +46,13 @@ public: kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080, kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800, kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000, - kHMPIDpid=0x20000, + kHMPIDout=0x10000,kHMPIDpid=0x20000, kEMCALmatch=0x40000, kTRDbackup=0x80000, kTRDStop=0x20000000, kESDpid=0x40000000, - kTIME=0x80000000 + kTIME=0x80000000, + kGlobalMerge=0x08000000 }; enum { kTRDnPlanes = 6, @@ -59,6 +60,7 @@ public: }; AliESDtrack(); AliESDtrack(const AliESDtrack& track); + AliESDtrack(const AliVTrack* track); AliESDtrack(TParticle * part); virtual ~AliESDtrack(); virtual void Copy(TObject &obj) const; @@ -72,6 +74,8 @@ public: void MakeMiniESDtrack(); void SetID(Int_t id) { fID =id;} Int_t GetID() const { return fID;} + void SetVertexID(Char_t id) { fVertexID=id;} + Char_t GetVertexID() const { return fVertexID;} void SetStatus(ULong_t flags) {fFlags|=flags;} void ResetStatus(ULong_t flags) {fFlags&=~flags;} Bool_t UpdateTrackParams(const AliKalmanTrack *t, ULong_t flags); @@ -79,7 +83,8 @@ public: void SetIntegratedTimes(const Double_t *times); void SetESDpid(const Double_t *p); void GetESDpid(Double_t *p) const; - + virtual const Double_t *PID() const { return fR; } + Bool_t IsOn(Int_t mask) const {return (fFlags&mask)>0;} ULong_t GetStatus() const {return fFlags;} Int_t GetLabel() const {return fLabel;} @@ -110,7 +115,9 @@ public: Double_t GetConstrainedChi2() const {return fCchi2;} // - + // global track chi2 + void SetGlobalChi2(Double_t chi2) {fGlobalChi2 = chi2;} + Double_t GetGlobalChi2() const {return fGlobalChi2;} Bool_t GetInnerPxPyPz(Double_t *p) const { if (!fIp) return kFALSE; @@ -118,7 +125,7 @@ public: } const AliExternalTrackParam * GetInnerParam() const { return fIp;} const AliExternalTrackParam * GetTPCInnerParam() const {return fTPCInner;} - const Bool_t FillTPCOnlyTrack(AliESDtrack &track); + Bool_t FillTPCOnlyTrack(AliESDtrack &track); Bool_t GetInnerXYZ(Double_t *r) const { if (!fIp) return kFALSE; return fIp->GetXYZ(r); @@ -127,26 +134,51 @@ public: (Double_t &alpha, Double_t &x, Double_t p[5]) const; Bool_t GetInnerExternalCovariance(Double_t cov[15]) const; + void SetOuterParam(const AliExternalTrackParam *p, ULong_t flags); + + void SetOuterHmpParam(const AliExternalTrackParam *p, ULong_t flags); + const AliExternalTrackParam * GetOuterParam() const { return fOp;} + + const AliExternalTrackParam * GetOuterHmpParam() const { return fHMPIDp;} + Bool_t GetOuterPxPyPz(Double_t *p) const { if (!fOp) return kFALSE; return fOp->GetPxPyPz(p); } + Bool_t GetOuterHmpPxPyPz(Double_t *p) const { + if (!fHMPIDp) return kFALSE; + return fHMPIDp->GetPxPyPz(p); + } + Bool_t GetOuterXYZ(Double_t *r) const { if (!fOp) return kFALSE; return fOp->GetXYZ(r); } + Bool_t GetOuterHmpXYZ(Double_t *r) const { + if (!fHMPIDp) return kFALSE; + return fHMPIDp->GetXYZ(r); + } + Bool_t GetOuterExternalParameters (Double_t &alpha, Double_t &x, Double_t p[5]) const; Bool_t GetOuterExternalCovariance(Double_t cov[15]) const; + Bool_t GetOuterHmpExternalParameters + (Double_t &alpha, Double_t &x, Double_t p[5]) const; + Bool_t GetOuterHmpExternalCovariance(Double_t cov[15]) const; + Int_t GetNcls(Int_t idet) const; Int_t GetClusters(Int_t idet, Int_t *idx) const; void SetITSpid(const Double_t *p); void GetITSpid(Double_t *p) const; + Double_t GetITSsignal() const {return fITSsignal;} + void SetITSdEdxSamples(const Double_t s[4]); + void GetITSdEdxSamples(Double_t *s) const; + Double_t GetITSchi2() const {return fITSchi2;} Char_t GetITSclusters(Int_t *idx) const; UChar_t GetITSClusterMap() const {return fITSClusterMap;} @@ -198,14 +230,20 @@ public: void SetTRDpid(const Double_t *p); // A.Bercuci - void SetTRDpidQuality(UChar_t q){fTRDpidQuality = q;} - UChar_t GetTRDpidQuality() const {return fTRDpidQuality;} + void SetTRDntracklets(UChar_t q){fTRDntracklets = q;} + UChar_t GetTRDntracklets() const {return (fTRDntracklets>>3)&7;} + UChar_t GetTRDntrackletsPID() const {return fTRDntracklets&7;} + // TEMPORARY alias asked by the HFE group to allow + // reading of the v4-16-Release data with TRUNK related software (A.Bercuci@Apr 30th 09) + UChar_t GetTRDpidQuality() const {return GetTRDntrackletsPID();} // end A.Bercuci void SetNumberOfTRDslices(Int_t n); - Int_t GetNumberOfTRDslices() const {return fTRDnSlices/kTRDnPlanes;} + Int_t GetNumberOfTRDslices() const; void SetTRDslice(Double_t q, Int_t plane, Int_t slice); + void SetTRDmomentum(Double_t p, Int_t plane, Double_t *sp=0x0); Double_t GetTRDslice(Int_t plane, Int_t slice=-1) const; + Double_t GetTRDmomentum(Int_t plane, Double_t *sp=0x0) const; void SetTRDQuality(Float_t quality){fTRDQuality=quality;} Double_t GetTRDQuality()const {return fTRDQuality;} @@ -241,6 +279,8 @@ public: Double_t GetTOFsignalRaw() const {return fTOFsignalRaw;} void SetTOFsignalDz(Double_t dz) {fTOFsignalDz=dz;} Double_t GetTOFsignalDz() const {return fTOFsignalDz;} + void SetTOFsignalDx(Double_t dx) {fTOFsignalDx=dx;} + Double_t GetTOFsignalDx() const {return fTOFsignalDx;} Double_t GetTOFchi2() const {return fTOFchi2;} void SetTOFpid(const Double_t *p); void SetTOFLabel(const Int_t *p); @@ -287,12 +327,22 @@ public: const AliTrackPointArray *GetTrackPointArray() const { return fFriendTrack->GetTrackPointArray(); } - Bool_t RelateToVertexTPC(const AliESDVertex *vtx, Double_t b, Double_t maxd); + Bool_t RelateToVertexTPC(const AliESDVertex *vtx, Double_t b, Double_t maxd, + AliExternalTrackParam *cParam=0); + Bool_t + RelateToVertexTPCBxByBz(const AliESDVertex *vtx, Double_t b[3],Double_t maxd, + AliExternalTrackParam *cParam=0); void GetImpactParametersTPC(Float_t &xy,Float_t &z) const {xy=fdTPC; z=fzTPC;} void GetImpactParametersTPC(Float_t p[2], Float_t cov[3]) const { p[0]=fdTPC; p[1]=fzTPC; cov[0]=fCddTPC; cov[1]=fCdzTPC; cov[2]=fCzzTPC; } - Bool_t RelateToVertex(const AliESDVertex *vtx, Double_t b, Double_t maxd); + Double_t GetConstrainedChi2TPC() const {return fCchi2TPC;} + + Bool_t RelateToVertex(const AliESDVertex *vtx, Double_t b, Double_t maxd, + AliExternalTrackParam *cParam=0); + Bool_t + RelateToVertexBxByBz(const AliESDVertex *vtx, Double_t b[3], Double_t maxd, + AliExternalTrackParam *cParam=0); void GetImpactParameters(Float_t &xy,Float_t &z) const {xy=fD; z=fZ;} void GetImpactParameters(Float_t p[2], Float_t cov[3]) const { p[0]=fD; p[1]=fZ; cov[0]=fCdd; cov[1]=fCdz; cov[2]=fCzz; @@ -306,9 +356,10 @@ public: protected: AliExternalTrackParam *fCp; // Track parameters constrained to the primary vertex - AliExternalTrackParam *fIp; // Track parameters at the first measured point (TPC) - AliExternalTrackParam *fTPCInner; // Track parameters at the first measured point (TPC) - first itteration - AliExternalTrackParam *fOp; // Track parameters at the last measured point (TPC or TRD) + AliExternalTrackParam *fIp; // Track parameters estimated at the inner wall of TPC + AliExternalTrackParam *fTPCInner; // Track parameters estimated at the inner wall of TPC using the TPC stand-alone + AliExternalTrackParam *fOp; // Track parameters estimated at the point of maximal radial coordinate reached during the tracking + AliExternalTrackParam *fHMPIDp; // Track parameters at HMPID AliESDfriendTrack *fFriendTrack; //! All the complementary information TBits fTPCClusterMap; // Map of clusters, one bit per padrow; 1 if has a cluster on given padrow @@ -348,22 +399,28 @@ protected: Double32_t fTrackTime[AliPID::kSPECIES]; // TOFs estimated by the tracking Double32_t fTrackLength; // Track length + Double32_t fdTPC; // TPC-only impact parameter in XY plane Double32_t fzTPC; // TPC-only impact parameter in Z Double32_t fCddTPC,fCdzTPC,fCzzTPC; // Covariance matrix of the TPC-only impact parameters + Double32_t fCchi2TPC; // [0.,0.,8] TPC-only chi2 at the primary vertex + Double32_t fD; // Impact parameter in XY plane Double32_t fZ; // Impact parameter in Z Double32_t fCdd,fCdz,fCzz; // Covariance matrix of the impact parameters - Double32_t fCchi2; // [0.,0.,8] chi2 at the primary vertex + Double32_t fITSchi2; // [0.,0.,8] chi2 in the ITS Double32_t fTPCchi2; // [0.,0.,8] chi2 in the TPC Double32_t fTRDchi2; // [0.,0.,8] chi2 in the TRD Double32_t fTOFchi2; // [0.,0.,8] chi2 in the TOF Double32_t fHMPIDchi2; // [0.,0.,8] chi2 in the HMPID + Double32_t fGlobalChi2; // [0.,0.,8] chi2 of the global track Double32_t fITSsignal; // [0.,0.,10] detector's PID signal + Double32_t fITSdEdxSamples[4]; // [0.,0.,10] ITS dE/dx samples + Double32_t fTPCsignal; // [0.,0.,10] detector's PID signal Double32_t fTPCsignalS; // [0.,0.,10] RMS of dEdx measurement Double32_t fTPCPoints[4]; // [0.,0.,10] TPC points -first, max. dens, last and max density @@ -376,6 +433,7 @@ protected: Double32_t fTOFsignalToT; // detector's ToT signal Double32_t fTOFsignalRaw; // detector's uncorrected time signal Double32_t fTOFsignalDz; // local z of track's impact on the TOF pad + Double32_t fTOFsignalDx; // local x of track's impact on the TOF pad Double32_t fTOFInfo[10]; //! TOF informations Double32_t fHMPIDtrkX; // x of the track impact, LORS @@ -392,19 +450,21 @@ protected: UChar_t fITSClusterMap; // map of clusters, one bit per a layer UChar_t fTRDncls; // number of clusters assigned in the TRD UChar_t fTRDncls0; // number of clusters assigned in the TRD before first material cross - UChar_t fTRDpidQuality; // TRD PID quality according to number of planes. 6 is the best + UChar_t fTRDntracklets; // number of TRD tracklets used for tracking/PID Int_t fTRDnSlices; // number of slices used for PID in the TRD Double32_t *fTRDslices; //[fTRDnSlices] Char_t fTRDTimBin[kTRDnPlanes]; // Time bin of Max cluster from all six planes + Char_t fVertexID; // ID of the primary vertex this track belongs to private: AliESDtrack & operator=(const AliESDtrack & ); - - ClassDef(AliESDtrack,45) //ESDtrack + ClassDef(AliESDtrack,53) //ESDtrack }; + + #endif