]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliMCEvent.h
Getting rid of obsolete objects.
[u/mrichter/AliRoot.git] / STEER / AliMCEvent.h
index ba7afc59669d3ad757be4f347d41b7f58d25fc3a..aabdae664693ae39d6254cc21cf4415611227c6d 100644 (file)
 
 #include <TTree.h>
 #include <TRefArray.h>
+#include <TClonesArray.h>
 
 #include <AliVEvent.h>
 #include "AliVHeader.h"
+#include "AliVParticle.h"
 #include "AliMCParticle.h"
 
 class AliStack;
@@ -26,6 +28,7 @@ class AliHeader;
 class AliGenEventHeader;
 
 class TClonesArray;
+class TList;
 
 class AliMCEvent : public AliVEvent {
 
@@ -44,8 +47,8 @@ public:
     virtual TList* GetList() const                         {return 0;}
     virtual void CreateStdContent()                        {;} 
     virtual void GetStdContent()                           {;}
-    virtual void ReadFromTree(TTree * /*tree*/)            {;}
-    virtual const void WriteToTree(TTree* /*tree*/)  const {;}
+    virtual void ReadFromTree(TTree * /*tree*/, Option_t* /*opt*/) {;}
+    virtual void WriteToTree(TTree* /*tree*/)  const {;}
 
     virtual void SetStdNames()                             {;}
     virtual void Print(Option_t */*option=""*/)  const     {;}
@@ -62,7 +65,7 @@ public:
     
   
     virtual Int_t    GetRunNumber()          const         {return 0;}
-    virtual UInt_t   GetPeriodNumber()       const {return 0;}
+    virtual UInt_t   GetPeriodNumber()       const         {return 0;}
     virtual Double_t GetMagneticField()      const         {return 0.;}
 
     // Setters not needed
@@ -72,10 +75,10 @@ public:
     virtual void      SetTriggerMask(ULong64_t /*n*/)      {;}
     virtual void      SetTriggerCluster(UChar_t /*n*/)     {;} 
 
-    virtual UInt_t    GetOrbitNumber()       const {return 0;}
-    virtual UShort_t  GetBunchCrossNumber()  const {return 0;}
+    virtual UInt_t    GetOrbitNumber()        const {return 0;}
+    virtual UShort_t  GetBunchCrossNumber()   const {return 0;}
     
-    virtual UInt_t    GetEventType()         const {return 0;}
+    virtual UInt_t    GetEventType()          const {return 0;}
 
     virtual ULong64_t GetTriggerMask()        const {return 0;}
     virtual UChar_t   GetTriggerCluster()     const {return 0;}
@@ -86,8 +89,10 @@ public:
     virtual Double_t  GetZDCEMEnergy(Int_t /*i*/) 
                                               const {return 0.;}
     // Tracks
-    virtual AliMCParticle *GetTrack(Int_t i) const;
+    virtual AliVParticle *GetTrack(Int_t i) const;
     virtual Int_t     GetNumberOfTracks()    const {return fNparticles;}
+    virtual Int_t     GetNumberOfV0s()       const {return -1;}
+    virtual Int_t     GetNumberOfCascades()  const {return -1;}
 
     //
     // MC Specific methods
@@ -101,25 +106,46 @@ public:
     virtual void      ConnectTreeK (TTree* tree);
     virtual void      ConnectTreeTR(TTree* tree);
     virtual void      Clean();
+    virtual void      InitEvent();
     virtual void      FinishEvent();
     virtual Int_t     GetParticleAndTR(Int_t i, TParticle*& particle, TClonesArray*& trefs);
     virtual void      DrawCheck(Int_t i, Int_t search);
-private:
-    virtual void      ReorderAndExpandTreeTR();
+    virtual void      AddSubsidiaryEvent(AliMCEvent* event);
+    virtual Int_t     GetNumberOfPrimaries() {return fNprimaries;}
+    virtual Int_t     GetPrimaryOffset()    const {return fPrimaryOffset;}
+    virtual Int_t     GetSecondaryOffset()  const {return fSecondaryOffset;}    
+    virtual void      SetPrimaryOffset(Int_t ioff)    {fPrimaryOffset = ioff;}
+    virtual void      SetSecondaryOffset(Int_t ioff)  {fSecondaryOffset = ioff;}    
+    virtual Bool_t    IsPhysicalPrimary(Int_t i);
+    virtual Int_t     BgLabelToIndex(Int_t label);
+    static  Int_t     BgLabelOffset() {return fgkBgLabelOffset;}
+    // External particle array
+    virtual void      SetParticleArray(TClonesArray* mcParticles) 
+       {fMCParticles = mcParticles; fNparticles = fMCParticles->GetEntries(); fExternal = kTRUE;}
     
+     
 private:
-    AliStack         *fStack;           //! Current pointer to stack
-    TClonesArray     *fMCParticles;     //! Pointer to list of particles
-    TRefArray        *fMCParticleMap;   //! Map of MC Particles
-    AliHeader        *fHeader;          //! Current pointer to header
-    TClonesArray     *fTRBuffer;        //! Track reference buffer    
-    TClonesArray     *fTrackReferences; //! Array of track references
-    TTree            *fTreeTR;          //! Pointer to Track Reference Tree
-    TTree            *fTmpTreeTR;       //! Temporary tree TR to read old format
-    TFile            *fTmpFileTR;       //! Temporary file with TreeTR to read old format
-    Int_t             fNprimaries;      //! Number of primaries
-    Int_t             fNparticles;      //! Number of particles
-    ClassDef(AliMCEvent, 0)  // AliVEvent realisation for MC data
+    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
+    AliHeader        *fHeader;           // Current pointer to header
+    TClonesArray     *fTRBuffer;         // Track reference buffer    
+    TClonesArray     *fTrackReferences;  // Array of track references
+    TTree            *fTreeTR;           // Pointer to Track Reference Tree
+    TTree            *fTmpTreeTR;        // Temporary tree TR to read old format
+    TFile            *fTmpFileTR;        // Temporary file with TreeTR to read old format
+    Int_t             fNprimaries;       // Number of primaries
+    Int_t             fNparticles;       // Number of particles
+    TList            *fSubsidiaryEvents; // List of possible subsidiary events (for example merged underlying event) 
+    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
 };