]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliMCEvent.h
AliESDHeader: AliTriggerConfiguration and more trigger scalers added
[u/mrichter/AliRoot.git] / STEER / AliMCEvent.h
index aabdae664693ae39d6254cc21cf4415611227c6d..c786dfa6aa63f39744fb5b6ff28911bf697fb81b 100644 (file)
 #include <AliVEvent.h>
 #include "AliVHeader.h"
 #include "AliVParticle.h"
+#include "AliVVertex.h"
 #include "AliMCParticle.h"
 
+class AliCentrality;
+class AliEventplane;
 class AliStack;
 class AliHeader;
 class AliGenEventHeader;
@@ -43,16 +46,17 @@ public:
     //
     // Services
     virtual void AddObject(TObject* /*obj*/)               {;}
-    virtual TObject* FindListObject(const char */*name*/)  {return 0;}
+    virtual TObject* FindListObject(const char */*name*/)  const {return 0;}
     virtual TList* GetList() const                         {return 0;}
     virtual void CreateStdContent()                        {;} 
     virtual void GetStdContent()                           {;}
     virtual void ReadFromTree(TTree * /*tree*/, Option_t* /*opt*/) {;}
-    virtual void WriteToTree(TTree* /*tree*/)  const {;}
+    virtual void WriteToTree(TTree* /*tree*/)  const       {;}
 
     virtual void SetStdNames()                             {;}
     virtual void Print(Option_t */*option=""*/)  const     {;}
-    
+    virtual void PreReadAll();
+    virtual void Reset()                                   {;}
 
     // Header
     virtual AliVHeader* GetHeader()          const         {return 0;}
@@ -93,14 +97,16 @@ public:
     virtual Int_t     GetNumberOfTracks()    const {return fNparticles;}
     virtual Int_t     GetNumberOfV0s()       const {return -1;}
     virtual Int_t     GetNumberOfCascades()  const {return -1;}
-
+    // Vertex
+    virtual const AliVVertex *GetPrimaryVertex() const;
+    
     //
     // MC Specific methods
     //
     // Getters
     AliStack*    Stack()   {return fStack;}
     AliHeader*   Header()  {return fHeader;}
-    AliGenEventHeader* GenEventHeader();
+    AliGenEventHeader* GenEventHeader() const;
     // Services
     virtual void      ConnectTreeE (TTree* tree);
     virtual void      ConnectTreeK (TTree* tree);
@@ -119,19 +125,31 @@ public:
     virtual Bool_t    IsPhysicalPrimary(Int_t i);
     virtual Int_t     BgLabelToIndex(Int_t label);
     static  Int_t     BgLabelOffset() {return fgkBgLabelOffset;}
+    virtual Bool_t    IsFromBGEvent(Int_t index);
+    
     // External particle array
     virtual void      SetParticleArray(TClonesArray* mcParticles) 
        {fMCParticles = mcParticles; fNparticles = fMCParticles->GetEntries(); fExternal = kTRUE;}
     
-     
+    //Following needed only for mixed event
+  virtual Int_t        EventIndex(Int_t)       const {return 0;}
+  virtual Int_t        EventIndexForCaloCluster(Int_t) const {return 0;}
+  virtual Int_t        EventIndexForPHOSCell(Int_t)    const {return 0;}
+  virtual Int_t        EventIndexForEMCALCell(Int_t)   const {return 0;} 
+  AliCentrality*       GetCentrality()  {return 0;} 
+  AliEventplane*       GetEventplane()  {return 0;} 
+
+  virtual AliVVZERO    *GetVZEROData() const {return 0;}
+    
 private:
     virtual void      ReorderAndExpandTreeTR();
     virtual Int_t     FindIndexAndEvent(Int_t oldidx, AliMCEvent*& event) const;
+    
 private: 
     // Stanndard implementation for ESD production
     AliStack         *fStack;            // Current pointer to stack
     TClonesArray     *fMCParticles;      // Pointer to list of particles
-    TRefArray        *fMCParticleMap;    // Map of MC Particles
+    TObjArray        *fMCParticleMap;    // Map of MC Particles
     AliHeader        *fHeader;           // Current pointer to header
     TClonesArray     *fTRBuffer;         // Track reference buffer    
     TClonesArray     *fTrackReferences;  // Array of track references
@@ -144,8 +162,11 @@ private:
     Int_t             fPrimaryOffset;    // Offset for primaries
     Int_t             fSecondaryOffset;  // Offset for secondaries
     Bool_t            fExternal;         // True if external particle array
-    static Int_t      fgkBgLabelOffset;  // Standard branch name    
-    ClassDef(AliMCEvent, 1)  // AliVEvent realisation for MC data
+    static   Int_t        fgkBgLabelOffset;  // Standard branch name    
+    mutable  AliVVertex*  fVertex;           // MC Vertex
+    Int_t             fNBG;              //! Background particles in current event
+    
+    ClassDef(AliMCEvent, 2)              // AliVEvent realisation for MC data
 };