#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;
//
// 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;}
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);
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
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
};