#include "AliESDZDC.h"
#include "AliESDACORDE.h"
#include "AliESDAD.h"
+#include "AliMultiplicity.h"
// AliESDtrack has to be included so that the compiler
// knows its inheritance tree (= that it is a AliVParticle).
#include "AliESDVZERO.h"
#include "AliESDTrdTrack.h"
-#include "AliESDTOFcluster.h"
+#include "AliESDTOFCluster.h"
+#include "AliESDTOFHit.h"
+#include "AliESDTOFMatch.h"
+#include "AliESDfriend.h"
+#include "AliESDv0.h"
-
-class AliESDfriend;
+class AliESDkink;
class AliESDHLTtrack;
class AliESDVertex;
class AliESDPmdTrack;
class AliESDFMD;
class AliESDkink;
class AliESDv0;
-class AliMultiplicity;
class AliRawDataErrorLog;
class AliESDRun;
class AliESDTrdTrigger;
kESDAD,
kTOFHeader,
kCosmicTracks,
+ kTOFclusters,
+ kTOFhit,
+ kTOFmatch,
kESDListN
};
// Delegated methods for fHeader
void SetTriggerMask(ULong64_t n) {if(fHeader) fHeader->SetTriggerMask(n);}
+ void SetTriggerMaskNext50(ULong64_t n) {if(fHeader) fHeader->SetTriggerMaskNext50(n);}
void SetOrbitNumber(UInt_t n) {if(fHeader) fHeader->SetOrbitNumber(n);}
void SetTimeStamp(UInt_t timeStamp){if(fHeader) fHeader->SetTimeStamp(timeStamp);}
void SetEventType(UInt_t eventType){if(fHeader) fHeader->SetEventType(eventType);}
void SetTriggerCluster(UChar_t n) {if(fHeader) fHeader->SetTriggerCluster(n);}
ULong64_t GetTriggerMask() const {return fHeader?fHeader->GetTriggerMask():0;}
- TString GetFiredTriggerClasses() const {return (fESDRun&&fHeader)?fESDRun->GetFiredTriggerClasses(fHeader->GetTriggerMask()):"";}
- Bool_t IsTriggerClassFired(const char *name) const {return (fESDRun&&fHeader)?fESDRun->IsTriggerClassFired(fHeader->GetTriggerMask(),name):kFALSE;}
+ ULong64_t GetTriggerMaskNext50() const {return fHeader?fHeader->GetTriggerMaskNext50():0;}
+ //TString GetFiredTriggerClasses() const {return (fESDRun&&fHeader)?fESDRun->GetFiredTriggerClasses(fHeader->GetTriggerMask()):"";}
+ TString GetFiredTriggerClasses() const {return (fESDRun&&fHeader)?fESDRun->GetFiredTriggerClasses(fHeader->GetTriggerMask(),fHeader->GetTriggerMaskNext50()):"";}
+ //Bool_t IsTriggerClassFired(const char *name) const {return (fESDRun&&fHeader)?fESDRun->IsTriggerClassFired(fHeader->GetTriggerMask(),name):kFALSE;}
+ Bool_t IsTriggerClassFired(const char *name) const {return (fESDRun&&fHeader)?fESDRun->IsTriggerClassFired(fHeader->GetTriggerMask(),fHeader->GetTriggerMaskNext50(),name):kFALSE;}
Bool_t IsEventSelected(const char *trigExpr) const;
TObject* GetHLTTriggerDecision() const;
TString GetHLTTriggerDescription() const;
void SetESDfriend(const AliESDfriend *f) const;
void GetESDfriend(AliESDfriend *f) const;
-
-
+ virtual AliESDfriend* FindFriend() const;
void SetPrimaryVertexTPC(const AliESDVertex *vertex);
const AliESDVertex *GetPrimaryVertexTPC() const {return fTPCVertex;}
const AliESDVertex *GetPrimaryVertex() const;
+ //getters for calibration
+ Int_t GetPrimaryVertex (AliESDVertex &v) const {
+ if(!GetPrimaryVertex()) return -1;
+ v=*GetPrimaryVertex();
+ return 0;
+ }
+
+ Int_t GetPrimaryVertexTPC (AliESDVertex &v) const {
+ if(!GetPrimaryVertexTPC()) return -1;
+ v=*GetPrimaryVertexTPC();
+ return 0;
+ }
+
+ Int_t GetPrimaryVertexSPD (AliESDVertex &v) const {
+ if(!GetPrimaryVertexSPD()) return -1;
+ v=*GetPrimaryVertexSPD();
+ return 0;
+ }
+
+ Int_t GetPrimaryVertexTracks (AliESDVertex &v) const {
+ if(!GetPrimaryVertexTracks()) return -1;
+ v=*GetPrimaryVertexTracks();
+ return 0;
+ }
void SetTOFHeader(const AliTOFHeader * tofEventTime);
AliTOFHeader *GetTOFHeader() const {return fTOFHeader;}
Float_t GetEventTimeSpread() const {if (fTOFHeader) return fTOFHeader->GetT0spread(); else return 0.;}
Float_t GetTOFTimeResolution() const {if (fTOFHeader) return fTOFHeader->GetTOFResolution(); else return 0.;}
- TObjArray *GetTOFcluster() const {return fTOFcluster;}
- void SetTOFcluster(Int_t ntofclusters,AliESDTOFcluster *cluster,Int_t *mapping=NULL);
- void SetTOFcluster(Int_t ntofclusters,AliESDTOFcluster *cluster[],Int_t *mapping=NULL);
- Int_t GetNTOFclusters() const {return fNTOFclusters;}
+ TClonesArray *GetESDTOFClusters() const {return fESDTOFClusters;}
+ TClonesArray *GetESDTOFHits() const {return fESDTOFHits;}
+ TClonesArray *GetESDTOFMatches() const {return fESDTOFMatches;}
+
+ void SetTOFcluster(Int_t ntofclusters,AliESDTOFCluster *cluster,Int_t *mapping=NULL);
+ void SetTOFcluster(Int_t ntofclusters,AliESDTOFCluster *cluster[],Int_t *mapping=NULL);
+ Int_t GetNTOFclusters() const {return fESDTOFClusters ? fESDTOFClusters->GetEntriesFast() : 0;}
+
+ Int_t GetNumberOfITSClusters(Int_t lr) const {return fSPDMult ? fSPDMult->GetNumberOfITSClusters(lr) : 0;}
void SetMultiplicity(const AliMultiplicity *mul);
- const AliMultiplicity *GetMultiplicity() const {return fSPDMult;}
+ AliMultiplicity *GetMultiplicity() const {return fSPDMult;}
void EstimateMultiplicity(Int_t &tracklets,Int_t &trITSTPC,Int_t &trITSSApure,
Double_t eta=1.,Bool_t useDCAFlag=kTRUE,Bool_t useV0Flag=kTRUE) const;
virtual Bool_t IsPileupFromSPDInMultBins() const;
- AliESDtrack *GetTrack(Int_t i) const {
- if (!fTracks) return 0;
- AliESDtrack* track = (AliESDtrack*) fTracks->At(i);
- if (track) track->SetESDEvent(this);
- return track;
- }
+ void ConnectTracks();
+ Bool_t AreTracksConnected() const {return fTracksConnected;}
+
+ AliESDtrack *GetTrack(Int_t i) const {return (fTracks)?(AliESDtrack*)fTracks->At(i) : 0;}
Int_t AddTrack(const AliESDtrack *t);
+ AliESDtrack *GetVTrack(Int_t i) const {return GetTrack(i);}
+
/// add new track at the end of tracks array and return instance
AliESDtrack* NewTrack();
void AddTrdTracklet(const AliESDTrdTracklet *trkl);
void AddTrdTracklet(UInt_t trackletWord, Short_t hcid, Int_t label = -1);
+ using AliVEvent::GetV0;
AliESDv0 *GetV0(Int_t i) const {
return (AliESDv0*)(fV0s?fV0s->At(i):0x0);
}
+
+ Int_t GetV0(AliESDv0 &v0dum, Int_t i) const {
+ if(!GetV0(i)) return -1;
+ v0dum=*GetV0(i);
+ return 0;}
+
Int_t AddV0(const AliESDv0 *v);
AliESDcascade *GetCascade(Int_t i) const {
void SetDAQAttributes(UInt_t attributes) {fDAQAttributes = attributes;}
UInt_t GetDAQDetectorPattern() const {return fDAQDetectorPattern;}
UInt_t GetDAQAttributes() const {return fDAQAttributes;}
-
+
+ virtual AliVEvent::EDataLayoutType GetDataLayoutType() const;
+
protected:
AliESDEvent(const AliESDEvent&);
static Bool_t ResetWithPlacementNew(TObject *pObject);
AliESDCaloCells *fEMCALCells; //! EMCAL cell info
AliESDCaloCells *fPHOSCells; //! PHOS cell info
TClonesArray *fCosmicTracks; //! Tracks created by cosmics finder
+ TClonesArray *fESDTOFClusters; //! TOF clusters
+ TClonesArray *fESDTOFHits; //! TOF hits (used for clusters)
+ TClonesArray *fESDTOFMatches; //! TOF matching info (with the reference to tracks)
TClonesArray *fErrorLogs; //! Raw-data reading error messages
Bool_t fOldMuonStructure; //! Flag if reading ESD with old MUON structure
AliESDfriend *fESDFriendOld; //! Old friend esd Structure
Bool_t fConnected; //! flag if leaves are alreday connected
Bool_t fUseOwnList; //! Do not use the list from the esdTree but use the one created by this class
+ Bool_t fTracksConnected; //! flag if tracks have already pointer to event set
static const char* fgkESDListName[kESDListN]; //!
UInt_t fDAQDetectorPattern; // Detector pattern from DAQ: bit 0 is SPD, bit 4 is TPC, etc. See event.h
UInt_t fDAQAttributes; // Third word of attributes from DAQ: bit 7 corresponds to HLT decision
- Int_t fNTOFclusters; //! N TOF clusters matchable
- TObjArray *fTOFcluster; //! TOF clusters
-
- ClassDef(AliESDEvent,21) //ESDEvent class
+ ClassDef(AliESDEvent,23) //ESDEvent class
};
#endif