]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDtrack.h
Protection against div. by 0 in the Set(xyz,p..) for tracks with momentum along X...
[u/mrichter/AliRoot.git] / STEER / AliESDtrack.h
index fb0fbb9f30e420cf02b2bda9d1a60a505225c727..ea9f5c2019cee917b5d25c7177a66f75916adb14 100644 (file)
@@ -47,6 +47,7 @@ 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,
+    kTOFmismatch=0x100000,
     kHMPIDout=0x10000,kHMPIDpid=0x20000,
     kEMCALmatch=0x40000,
     kPHOSmatch=0x200000,
@@ -56,7 +57,9 @@ public:
     kTIME=0x80000000,
     kGlobalMerge=0x08000000,
     kITSpureSA=0x10000000,
-    kMultPrimary=0x4000000 //BIT(26): assumed to be primary for multiplicity estimates
+    kMultInV0 =0x2000000,    //BIT(25): assumed to be belong to V0 in multiplicity estimates
+    kMultSec  =0x4000000,     //BIT(26): assumed to be secondary (due to the DCA) in multiplicity estimates
+    kEmbedded =0x8000000     // BIT(27), 1<<27: Is a track that has been embedded into the event      
   }; 
   enum {
     kTRDnPlanes = 6,
@@ -76,7 +79,7 @@ public:
   void AddCalibObject(TObject * object);     // add calib object to the list
   TObject *  GetCalibObject(Int_t index);    // return calib objct at given position
   void MakeMiniESDtrack();
-  void SetID(Int_t id) { fID =id;}
+  void SetID(Short_t id) { fID =id;}
   Int_t GetID() const { return fID;}
   void SetVertexID(Char_t id) { fVertexID=id;}
   Char_t GetVertexID() const { return fVertexID;}
@@ -186,6 +189,11 @@ public:
   Double_t GetITSchi2() const {return fITSchi2;}
   Char_t   GetITSclusters(Int_t *idx) const;
   UChar_t GetITSClusterMap() const {return fITSClusterMap;}
+  UChar_t GetITSSharedMap() const {return fITSSharedMap;}
+  void    SetITSSharedFlag(int lr) {fITSSharedMap |= 0x1<<lr;}
+  Bool_t  GetITSFakeFlag()   const {return (fITSSharedMap&BIT(7))!=0;}
+  void    SetITSFakeFlag(Bool_t v=kTRUE)  {if (v) fITSSharedMap|=BIT(7); else fITSSharedMap&=~BIT(7);}  
+  void    SetITSSharedMap(UChar_t map) {fITSSharedMap=map;}
   void    SetITSModuleIndex(Int_t ilayer,Int_t idx) {fITSModule[ilayer]=idx;}
   Int_t   GetITSModuleIndex(Int_t ilayer) const {return fITSModule[ilayer];}
   Bool_t  GetITSModuleIndexInfo(Int_t ilayer,Int_t &idet,Int_t &status,
@@ -198,6 +206,7 @@ public:
      return fFriendTrack->GetITStrack();
   }
   Bool_t  HasPointOnITSLayer(Int_t i) const {return TESTBIT(fITSClusterMap,i);}
+  Bool_t  HasSharedPointOnITSLayer(Int_t i) const {return TESTBIT(fITSSharedMap,i);}
 
   void    SetTPCpid(const Double_t *p);
   void    GetTPCpid(Double_t *p) const;
@@ -211,6 +220,7 @@ public:
   UShort_t   GetTPCNclsIter1() const { return fTPCnclsIter1;}
   UShort_t   GetTPCNclsFIter1() const { return fTPCnclsFIter1;}
   UShort_t   GetTPCnclsS(Int_t i0=0,Int_t i1=159) const;
+  UShort_t   GetTPCncls(Int_t row0=0,Int_t row1=159) const;
   Double_t GetTPCPoints(Int_t i) const {return fTPCPoints[i];}
   void    SetKinkIndexes(Int_t points[3]) {
      for (Int_t i=0;i<3;i++) fKinkIndexes[i] = points[i];
@@ -224,9 +234,10 @@ public:
   Double_t GetTPCsignal() const {return fTPCsignal;}
   Double_t GetTPCsignalSigma() const {return fTPCsignalS;}
   UShort_t GetTPCsignalN() const {return fTPCsignalN;}
+  Double_t GetTPCmomentum() const {return fIp?fIp->GetP():GetP();}
   Double_t GetTPCchi2() const {return fTPCchi2;}
   Double_t GetTPCchi2Iter1() const {return fTPCchi2Iter1;}
-  UShort_t   GetTPCclusters(Int_t *idx) const;
+  UShort_t GetTPCclusters(Int_t *idx) const;
   Double_t GetTPCdensity(Int_t row0, Int_t row1) const;
   Int_t   GetTPCLabel() const {return fTPCLabel;}
   Int_t   GetKinkIndex(Int_t i) const { return fKinkIndexes[i];}
@@ -235,9 +246,11 @@ public:
   const TBits& GetTPCSharedMap() const {return fTPCSharedMap;}
   void    SetTPCClusterMap(const TBits amap) {fTPCClusterMap = amap;}
   void    SetTPCSharedMap(const TBits amap) {fTPCSharedMap = amap;}
-
-  void    SetTRDpid(const Double_t *p);
+  Float_t GetTPCClusterInfo(Int_t nNeighbours=3, Int_t type=0, Int_t row0=0, Int_t row1=159) const;
   
+  void    SetTRDpid(const Double_t *p);
+  void    SetTRDsignal(Double_t sig) {fTRDsignal = sig;}
+         
 // A.Bercuci
   void    SetTRDntracklets(UChar_t q){fTRDntracklets = q;}
   UChar_t GetTRDntracklets() const {return (fTRDntracklets>>3)&7;}
@@ -246,7 +259,7 @@ public:
   // 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;
   void     SetTRDslice(Double_t q, Int_t plane, Int_t slice);
@@ -329,7 +342,8 @@ public:
   }
   Bool_t  IsHMPID() const {return fFlags&kHMPIDpid;}
   Bool_t  IsPureITSStandalone() const {return fFlags&kITSpureSA;}
-  Bool_t  IsMultPrimary() const {return fFlags&kMultPrimary;}
+  Bool_t  IsMultPrimary() const {return !(fFlags&kMultSec);}
+  Bool_t  IsMultSecondary() const {return (fFlags&kMultSec);}
 
   Int_t GetEMCALcluster() {return fCaloIndex;}
   void SetEMCALcluster(Int_t index) {fCaloIndex=index;}
@@ -480,6 +494,7 @@ protected:
 
   Char_t  fITSncls;        // number of clusters assigned in the ITS
   UChar_t fITSClusterMap;  // map of clusters, one bit per a layer
+  UChar_t fITSSharedMap;   // map of shared 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 fTRDntracklets;  // number of TRD tracklets used for tracking/PID
@@ -494,7 +509,7 @@ protected:
  private:
 
   AliESDtrack & operator=(const AliESDtrack & );
-  ClassDef(AliESDtrack,57)  //ESDtrack 
+  ClassDef(AliESDtrack,59)  //ESDtrack 
 };