]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliVEvent.h
New class AliTriggerUtils to solve the cirular dependency between libESD and libSTEER...
[u/mrichter/AliRoot.git] / STEER / AliVEvent.h
index 966337c08a300710e460169e4a8b82051a278883..0c283a5569137b7dfeab634dd3becbebef16eee7 100644 (file)
 
 #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() { } 
@@ -30,7 +49,7 @@ public:
 
   // 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;
@@ -39,7 +58,7 @@ public:
   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;
 
@@ -89,67 +108,41 @@ public:
   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