#include <TObject.h>
#include <TTree.h>
+#include <TGeoMatrix.h>
#include "AliVHeader.h"
#include "AliVParticle.h"
#include "AliVVertex.h"
+#include "AliVCluster.h"
+#include "AliVCaloCells.h"
+#include "TRefArray.h"
+class AliCentrality;
+class AliEventplane;
+class AliVVZERO;
class AliVEvent : public TObject {
public:
+ enum EOfflineTriggerTypes {
+ kMB = BIT(0), // Minimum bias trigger, i.e. interaction trigger, offline SPD or V0 selection
+ // empty slot
+ kMUON = BIT(2), // Muon trigger, offline SPD or V0 selection
+ kHighMult = BIT(3), // High-multiplicity trigger (threshold defined online), offline SPD or V0 selection
+ kEMC1 = BIT(4), // EMCAL trigger
+ kCINT5 = BIT(5), // Minimum bias trigger without SPD. i.e. interaction trigger, offline V0 selection
+ kCMUS5 = BIT(6), // Muon trigger, offline V0 selection
+ kFastOnly = BIT(30), // The fast cluster fired. This bit is set in to addition another trigger bit, e.g. kMB
+ kUserDefined = BIT(31), // Set when custom trigger classes are set in AliPhysicsSelection, offline SPD or V0 selection
+ kAny = 0xffffffff // to accept any trigger
+ };
AliVEvent() { }
virtual ~AliVEvent() { }
// Services
virtual void AddObject(TObject* obj) = 0;
- virtual TObject* FindListObject(const char *name) = 0;
+ virtual TObject* FindListObject(const char *name) const = 0;
virtual TList* GetList() const = 0;
virtual void CreateStdContent() = 0;
virtual void ReadFromTree(TTree *tree, Option_t* opt) = 0;
virtual void WriteToTree(TTree* tree) const = 0;
- //virtual void Reset() = 0;
+ virtual void Reset() = 0;
//virtual void ResetStdContent() = 0;
virtual void SetStdNames() = 0;
virtual Int_t GetNumberOfV0s() const = 0;
virtual Int_t GetNumberOfCascades() const = 0;
+ // Calorimeter Clusters/Cells
+ virtual AliVCluster *GetCaloCluster(Int_t) const {return 0;}
+ virtual Int_t GetNumberOfCaloClusters() const {return 0;}
+ virtual Int_t GetEMCALClusters(TRefArray *) const {return 0;}
+ virtual Int_t GetPHOSClusters (TRefArray *) const {return 0;}
+ virtual AliVCaloCells *GetEMCALCells() const {return 0;}
+ virtual AliVCaloCells *GetPHOSCells() const {return 0;}
+ const TGeoHMatrix* GetPHOSMatrix(Int_t /*i*/) const {return NULL;}
+ const TGeoHMatrix* GetEMCALMatrix(Int_t /*i*/) const {return NULL;}
+
+
// Primary vertex
virtual const AliVVertex *GetPrimaryVertex() const {return 0x0;}
-
- //---------- end of new stuff
-
-
- /* to be considered to go in here be implemented
-
- void SetPrimaryVertex(const AliESDVertex *vertex) {
- *fPrimaryVertex = *vertex;
- fPrimaryVertex->SetName("PrimaryVertex");// error prone use class wide names?
- }
-
- void SetMultiplicity(const AliMultiplicity *mul) {
- *fSPDMult = *mul;
- // CKB
- // new (&fSPDMult) AliMultiplicity(*mul);
- }
- const AliMultiplicity *GetMultiplicity() const {return fSPDMult;}
-
-
- AliESDMuonTrack *GetMuonTrack(Int_t i) const {
- return (AliESDMuonTrack *)fMuonTracks->UncheckedAt(i);
+ virtual Bool_t IsPileupFromSPD(Int_t /*minContributors*/,
+ Double_t /*minZdist*/,
+ Double_t /*nSigmaZdist*/,
+ Double_t /*nSigmaDiamXY*/,
+ Double_t /*nSigmaDiamZ*/)
+ const{
+ return kFALSE;
}
- void AddMuonTrack(const AliESDMuonTrack *t) {
- TClonesArray &fmu = *fMuonTracks;
- new(fmu[fMuonTracks->GetEntriesFast()]) AliESDMuonTrack(*t);
- }
-
- AliESDv0 *GetV0(Int_t i) const {
- return (AliESDv0*)fV0s->UncheckedAt(i);
- }
- Int_t AddV0(const AliESDv0 *v);
- AliESDcascade *GetCascade(Int_t i) const {
- return (AliESDcascade *)fCascades->UncheckedAt(i);
+ virtual Bool_t IsPileupFromSPDInMultBins() const {
+ return kFALSE;
}
- void AddCascade(const AliESDcascade *c) {
- TClonesArray &fc = *fCascades;
- new(fc[fCascades->GetEntriesFast()]) AliESDcascade(*c);
- }
-
- AliESDkink *GetKink(Int_t i) const {
- return (AliESDkink *)fKinks->UncheckedAt(i);
- }
- Int_t AddKink(const AliESDkink *c);
-
- AliESDCaloCluster *GetCaloCluster(Int_t i) const {
- return (AliESDCaloCluster *)fCaloClusters->UncheckedAt(i);
- }
- Int_t AddCaloCluster(const AliESDCaloCluster *c);
-
- Int_t GetNumberOfMuonTracks() const {return fMuonTracks->GetEntriesFast();}
- Int_t GetNumberOfV0s() const {return fV0s->GetEntriesFast();}
- Int_t GetNumberOfCascades() const {return fCascades->GetEntriesFast();}
- Int_t GetNumberOfKinks() const {return fKinks->GetEntriesFast();}
- Int_t GetNumberOfCaloClusters() const {return fCaloClusters->GetEntriesFast();}
+ virtual AliCentrality* GetCentrality() = 0;
+ virtual AliEventplane* GetEventplane() = 0;
+ virtual Int_t EventIndex(Int_t itrack) const = 0;
+ virtual Int_t EventIndexForCaloCluster(Int_t iclu) const = 0;
+ virtual Int_t EventIndexForPHOSCell(Int_t icell) const = 0;
+ virtual Int_t EventIndexForEMCALCell(Int_t icell) const = 0;
- */
+ virtual AliVVZERO *GetVZEROData() const = 0;
- ClassDef(AliVEvent,0) // base class for AliEvent data
+ ClassDef(AliVEvent,1) // base class for AliEvent data
};
#endif