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);
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);}
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;}
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);
//
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
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