]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDtrack.h
Initial commit of an abstract Poisson calculator
[u/mrichter/AliRoot.git] / STEER / AliESDtrack.h
index ea9f5c2019cee917b5d25c7177a66f75916adb14..835b39f45538b0a3d6a0c7b62fe23b691ec6a0f5 100644 (file)
@@ -42,29 +42,6 @@ class TPolyMarker3D;
 
 class AliESDtrack : public AliExternalTrackParam {
 public:
-  enum {
-    kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008,
-    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,
-    kTRDbackup =0x80000,
-    kTRDStop=0x20000000,
-    kESDpid=0x40000000,
-    kTIME=0x80000000,
-    kGlobalMerge=0x08000000,
-    kITSpureSA=0x10000000,
-    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,
-    kEMCALNoMatch = -4096
-  };
   AliESDtrack();
   AliESDtrack(const AliESDtrack& track);
   AliESDtrack(const AliVTrack* track);
@@ -200,10 +177,10 @@ public:
                                Float_t &xloc,Float_t &zloc) const;
   Int_t   GetITSLabel() const {return fITSLabel;}
   void    SetITStrack(AliKalmanTrack * track){
-     fFriendTrack->SetITStrack(track);
+    if (fFriendTrack) fFriendTrack->SetITStrack(track);
   }
   AliKalmanTrack *GetITStrack(){
-     return fFriendTrack->GetITStrack();
+    return fFriendTrack!=NULL?fFriendTrack->GetITStrack():NULL;
   }
   Bool_t  HasPointOnITSLayer(Int_t i) const {return TESTBIT(fITSClusterMap,i);}
   Bool_t  HasSharedPointOnITSLayer(Int_t i) const {return TESTBIT(fITSSharedMap,i);}
@@ -287,10 +264,10 @@ public:
   Int_t   GetTRDLabel() const {return fTRDLabel;}
 
   void    SetTRDtrack(AliKalmanTrack * track){
-     fFriendTrack->SetTRDtrack(track);
+    if (fFriendTrack) fFriendTrack->SetTRDtrack(track);
   }
   AliKalmanTrack *GetTRDtrack(){
-     return fFriendTrack->GetTRDtrack();
+    return fFriendTrack!=NULL?fFriendTrack->GetTRDtrack():NULL;
   }
 
   void    SetTOFsignal(Double_t tof) {fTOFsignal=tof;}
@@ -358,10 +335,10 @@ public:
 
 
   void SetTrackPointArray(AliTrackPointArray *points) {
-    fFriendTrack->SetTrackPointArray(points);
+    if (fFriendTrack) fFriendTrack->SetTrackPointArray(points);
   }
   const AliTrackPointArray *GetTrackPointArray() const {
-    return fFriendTrack->GetTrackPointArray()
+    return fFriendTrack!=NULL?fFriendTrack->GetTrackPointArray():NULL
   }
   Bool_t RelateToVertexTPC(const AliESDVertex *vtx, Double_t b, Double_t maxd,
                            AliExternalTrackParam *cParam=0);
@@ -391,6 +368,14 @@ public:
   //
   void FillPolymarker(TPolyMarker3D *pol, Float_t magf, Float_t minR, Float_t maxR, Float_t stepR);
 
+  //
+  // online mode Matthias.Richter@cern.ch
+  // in order to optimize AliESDtrack for usage in the online HLT,
+  // some functionality is disabled
+  // - creation of AliESDfriendTrack
+  // - set lengt of bit fields fTPCClusterMap and fTPCSharedMap to 0
+  static void OnlineMode(bool mode) {fgkOnlineMode=mode;}
+  static bool OnlineMode() {return fgkOnlineMode;}
 protected:
   
   AliExternalTrackParam *fCp; // Track parameters constrained to the primary vertex
@@ -507,6 +492,7 @@ protected:
   AliESDEvent*   fESDEvent; //!Pointer back to event to which the track belongs
   
  private:
+  static bool fgkOnlineMode; //! indicate the online mode to skip some of the functionality
 
   AliESDtrack & operator=(const AliESDtrack & );
   ClassDef(AliESDtrack,59)  //ESDtrack