Status flag added.
authoroldi <oldi@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 25 Mar 2008 15:10:02 +0000 (15:10 +0000)
committeroldi <oldi@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 25 Mar 2008 15:10:02 +0000 (15:10 +0000)
STEER/AliAODTrack.cxx
STEER/AliAODTrack.h

index dc6351a..caed996 100644 (file)
@@ -33,6 +33,7 @@ AliAODTrack::AliAODTrack() :
   AliVParticle(),
   fChi2perNDF(-999.),
   fChi2MatchTrigger(0.),
+  fFlags(0),
   fLabel(-999),
   fITSMuonClusterMap(0),
   fFilterMap(0),
@@ -69,6 +70,7 @@ AliAODTrack::AliAODTrack(Short_t id,
   AliVParticle(),
   fChi2perNDF(-999.),
   fChi2MatchTrigger(0.),
+  fFlags(0),
   fLabel(label),
   fITSMuonClusterMap(itsClusMap),
   fFilterMap(selectInfo),
@@ -109,6 +111,7 @@ AliAODTrack::AliAODTrack(Short_t id,
   AliVParticle(),
   fChi2perNDF(-999.),
   fChi2MatchTrigger(0.),
+  fFlags(0),
   fLabel(label),
   fITSMuonClusterMap(itsClusMap),
   fFilterMap(selectInfo),
@@ -142,6 +145,7 @@ AliAODTrack::AliAODTrack(const AliAODTrack& trk) :
   AliVParticle(trk),
   fChi2perNDF(trk.fChi2perNDF),
   fChi2MatchTrigger(trk.fChi2MatchTrigger),
+  fFlags(trk.fFlags),
   fLabel(trk.fLabel),
   fITSMuonClusterMap(trk.fITSMuonClusterMap),
   fFilterMap(trk.fFilterMap),
@@ -178,12 +182,14 @@ AliAODTrack& AliAODTrack::operator=(const AliAODTrack& trk)
     fChi2perNDF = trk.fChi2perNDF;
     fChi2MatchTrigger = trk.fChi2MatchTrigger;
 
-    fID = trk.fID;
+    fFlags = trk.fFlags;
     fLabel = trk.fLabel;    
     
     fITSMuonClusterMap = trk.fITSMuonClusterMap;
     fFilterMap = trk.fFilterMap;
 
+    fID = trk.fID;
+
     fCharge = trk.fCharge;
     fType = trk.fType;
 
index 590e3c5..6b62eae 100644 (file)
@@ -127,6 +127,10 @@ class AliAODTrack : public AliVParticle {
     if(pid) for(Int_t i=0; i<10; ++i) fPID[i]=pid[i];
     else {for(Int_t i=0; i<10; fPID[i++]=0.); fPID[AliAODTrack::kUnknown]=1.;}}
 
+  Bool_t IsOn(Int_t mask) const {return (fFlags&mask)>0;}
+  ULong_t GetStatus() const { return GetFlags(); }
+  ULong_t GetFlags() const { return fFlags; }
+
   Short_t GetID() const { return fID; }
   Int_t   GetLabel() const { return fLabel; } 
   Char_t  GetType() const { return fType;}
@@ -165,8 +169,12 @@ class AliAODTrack : public AliVParticle {
   void  Print(const Option_t *opt = "") const;
 
   // setters
+  void SetFlags(ULong_t flags) { fFlags = flags; }
+  void SetStatus(ULong_t flags) { fFlags|=flags; }
+  void ResetStatus(ULong_t flags) { fFlags&=~flags; }
+
   void SetID(Short_t id) { fID = id; }
-  void SetLabel(Int_t label) {fLabel = label; }
+  void SetLabel(Int_t label) { fLabel = label; }
 
   template <class T> void SetPosition(const T *x, Bool_t isDCA = kFALSE);
   void SetDCA(Double_t d, Double_t z);
@@ -222,6 +230,7 @@ class AliAODTrack : public AliVParticle {
   Double32_t    fChi2MatchTrigger;  // chi2 of trigger/track matching
   Double32_t    fPID[10];           // [0.,1.,8] pointer to PID object
 
+  ULong_t       fFlags;             // reconstruction status flags 
   Int_t         fLabel;             // track label, points back to MC track
   
   UInt_t        fITSMuonClusterMap; // map of ITS and muon clusters, one bit per layer (ITS: bit 1-8, muon: bit 17-32) 
@@ -236,7 +245,7 @@ class AliAODTrack : public AliVParticle {
   AliAODPid    *fDetPid;            // more detailed or detector specific pid information
   TRef          fProdVertex;        // vertex of origin
 
-  ClassDef(AliAODTrack,6);
+  ClassDef(AliAODTrack,7);
 };
 
 #endif