#include "AliTOFHeader.h"
#include "AliESDVZERO.h"
+#ifdef MFT_UPGRADE
+//#include "AliESDMFT.h"
+#endif
class AliESDfriend;
class AliESDHLTtrack;
class AliMultiplicity;
class AliRawDataErrorLog;
class AliESDRun;
+class AliESDTrdTrigger;
class AliESDTrdTrack;
class AliESDTrdTracklet;
class AliESDMuonTrack;
class TRefArray;
class AliESDACORDE;
class AliESDHLTDecision;
+class AliESDCosmicTrack;
class TList;
class TString;
kTracks,
kMuonTracks,
kPmdTracks,
+ kTrdTrigger,
kTrdTracks,
kTrdTracklets,
kV0s,
kErrorLogs,
kESDACORDE,
kTOFHeader,
+ kCosmicTracks,
kESDListN
+ #ifdef MFT_UPGRADE
+ // , kESDMFT
+ #endif
};
AliESDEvent();
void SetEMCALMatrix(TGeoHMatrix*matrix, Int_t i) {if(fESDRun) fESDRun->SetEMCALMatrix(matrix,i);}
const TGeoHMatrix* GetEMCALMatrix(Int_t i) const {return fESDRun?fESDRun->GetEMCALMatrix(i):0x0;}
void SetCaloTriggerType(const Int_t* type) {if (fESDRun) fESDRun->SetCaloTriggerType(type);}
- Int_t* GetCaloTriggerType() const {return fESDRun?fESDRun->GetCaloTriggerType():0x0;};
+ Int_t* GetCaloTriggerType() const {return fESDRun?fESDRun->GetCaloTriggerType():0x0;}
+ virtual const Float_t* GetVZEROEqFactors() const {return fESDRun?fESDRun->GetVZEROEqFactors():0x0;}
+ virtual Float_t GetVZEROEqMultiplicity(Int_t i) const;
//
void SetCurrentL3(Float_t cur) const {if(fESDRun) fESDRun->SetCurrentL3(cur);}
void SetCurrentDip(Float_t cur) const {if(fESDRun) fESDRun->SetCurrentDip(cur);}
void SetBeamEnergy(Float_t be) const {if(fESDRun) fESDRun->SetBeamEnergy(be);}
void SetBeamType(const char* bt) const {if(fESDRun) fESDRun->SetBeamType(bt);}
+ void SetBeamParticle(Int_t az, Int_t ibeam) {if(fESDRun) fESDRun->SetBeamParticle(az,ibeam);}
void SetUniformBMap(Bool_t val=kTRUE) const {if(fESDRun) fESDRun->SetBit(AliESDRun::kUniformBMap,val);}
void SetBInfoStored(Bool_t val=kTRUE) const {if(fESDRun) fESDRun->SetBit(AliESDRun::kBInfoStored,val);}
//
Float_t GetCurrentDip() const {return fESDRun?fESDRun->GetCurrentDip():0;}
Float_t GetBeamEnergy() const {return fESDRun?fESDRun->GetBeamEnergy():0;}
const char* GetBeamType() const {return fESDRun?fESDRun->GetBeamType():0;}
+ Int_t GetBeamParticle(Int_t ibeam) const {return fESDRun?fESDRun->GetBeamParticle(ibeam):0;}
+ Int_t GetBeamParticleA(Int_t ibeam) const {return fESDRun?fESDRun->GetBeamParticleA(ibeam):0;}
+ Int_t GetBeamParticleZ(Int_t ibeam) const {return fESDRun?fESDRun->GetBeamParticleZ(ibeam):0;}
Bool_t IsUniformBMap() const {return fESDRun?fESDRun->TestBit(AliESDRun::kUniformBMap):kFALSE;}
//
Bool_t InitMagneticField() const {return fESDRun?fESDRun->InitMagneticField():kFALSE;}
void SetT0spread(Float_t *t) const {if(fESDRun) fESDRun->SetT0spread(t);}
+ void SetVZEROEqFactors(Float_t factors[64]) const {if(fESDRun) fESDRun->SetVZEROEqFactors(factors);}
// HEADER
AliESDHeader* GetHeader() const {return fHeader;}
AliESDZDC* GetESDZDC() const {return fESDZDC;}
AliESDZDC* GetZDCData() const {return fESDZDC;}
- void SetZDCData(AliESDZDC * obj);
+ void SetZDCData(const AliESDZDC * obj);
// Delegated methods for fESDZDC
Double_t GetZDCN1Energy() const {return fESDZDC?fESDZDC->GetZDCN1Energy():0;}
// TZERO CKB: put this in the header?
const AliESDTZERO* GetESDTZERO() const {return fESDTZERO;}
- void SetTZEROData(AliESDTZERO * obj);
+ void SetTZEROData(const AliESDTZERO * obj);
// delegetated methods for fESDTZERO
Double32_t GetT0zVertex() const {return fESDTZERO?fESDTZERO->GetT0zVertex():0;}
// VZERO
AliESDVZERO *GetVZEROData() const { return fESDVZERO; }
- void SetVZEROData(AliESDVZERO * obj);
-
+ void SetVZEROData(const AliESDVZERO * obj);
+
+ #ifdef MFT_UPGRADE
+ // MFT
+// AliESDMFT *GetMFTData() const { return fESDMFT; }
+// void SetMFTData(AliESDMFT * obj);
+ #endif
+
// ACORDE
AliESDACORDE *GetACORDEData() const { return fESDACORDE;}
void SetACORDEData(AliESDACORDE * obj);
virtual Bool_t IsPileupFromSPDInMultBins() const;
AliESDtrack *GetTrack(Int_t i) const {
- return (AliESDtrack *)(fTracks?fTracks->UncheckedAt(i):0x0);
+ if (!fTracks) return 0;
+ AliESDtrack* track = (AliESDtrack*) fTracks->UncheckedAt(i);
+ track->SetESDEvent(this);
+ return track;
}
Int_t AddTrack(const AliESDtrack *t);
}
+ void SetTrdTrigger(const AliESDTrdTrigger *t);
+
+ AliESDTrdTrigger* GetTrdTrigger() const {
+ return (AliESDTrdTrigger*)(fTrdTrigger);
+ }
+
void AddTrdTrack(const AliESDTrdTrack *t);
AliESDTrdTracklet* GetTrdTracklet(Int_t idx) const {
else
return fPHOSTrigger;
}
+
+ AliESDCosmicTrack *GetCosmicTrack(Int_t i) const {
+ return fCosmicTracks ? (AliESDCosmicTrack*) fCosmicTracks->UncheckedAt(i) : 0;
+ }
+ const TClonesArray * GetCosmicTracks() const{ return fCosmicTracks;}
+
+ void AddCosmicTrack(const AliESDCosmicTrack *t);
AliRawDataErrorLog *GetErrorLog(Int_t i) const {
return (AliRawDataErrorLog *)(fErrorLogs?fErrorLogs->UncheckedAt(i):0x0);
Int_t GetNumberOfV0s() const {return fV0s?fV0s->GetEntriesFast():0;}
Int_t GetNumberOfCascades() const {return fCascades?fCascades->GetEntriesFast():0;}
Int_t GetNumberOfKinks() const {return fKinks?fKinks->GetEntriesFast():0;}
-
+
+ Int_t GetNumberOfCosmicTracks() const {return fCosmicTracks ? fCosmicTracks->GetEntriesFast():0;}
Int_t GetEMCALClusters(TRefArray *clusters) const;
Int_t GetPHOSClusters(TRefArray *clusters) const;
Int_t GetNumberOfCaloClusters() const {return fCaloClusters?fCaloClusters->GetEntriesFast():0;}
virtual Int_t EventIndexForPHOSCell(Int_t) const {return 0;}
virtual Int_t EventIndexForEMCALCell(Int_t) const {return 0;}
+ void SetDetectorStatus(ULong_t detMask) {fDetectorStatus|=detMask;}
+ void ResetDetectorStatus(ULong_t detMask) {fDetectorStatus&=~detMask;}
+ ULong_t GetDetectorStatus() const {return fDetectorStatus;}
+ Bool_t IsDetectorOn(ULong_t detMask) const {return (fDetectorStatus&detMask)>0;}
protected:
AliESDEvent(const AliESDEvent&);
AliESDCaloTrigger* fPHOSTrigger; //! PHOS Trigger information
AliESDCaloTrigger* fEMCALTrigger; //! PHOS Trigger information
AliESDACORDE *fESDACORDE; //! ACORDE ESD object caontaining bit pattern
+ AliESDTrdTrigger *fTrdTrigger; //! TRD trigger information
TClonesArray *fSPDPileupVertices;//! Pileup primary vertices reconstructed by SPD
TClonesArray *fTrkPileupVertices;//! Pileup primary vertices reconstructed using the tracks
TClonesArray *fCaloClusters; //! Calorimeter clusters for PHOS/EMCAL
AliESDCaloCells *fEMCALCells; //! EMCAL cell info
AliESDCaloCells *fPHOSCells; //! PHOS cell info
+ TClonesArray *fCosmicTracks; //! Tracks created by cosmics finder
TClonesArray *fErrorLogs; //! Raw-data reading error messages
// and T0spread as written in OCDB
AliCentrality *fCentrality; //! Centrality for AA collision
AliEventplane *fEventplane; //! Event plane for AA collision
- ClassDef(AliESDEvent,14) //ESDEvent class
+
+ ULong_t fDetectorStatus; // set detector event status bit for good event selection
+
+ ClassDef(AliESDEvent,17) //ESDEvent class
};
#endif