--- /dev/null
+// -*- mode: C++ -*-
+#ifndef ALIAODMCHEADER_H
+#define ALIAODMCHEADER_H
+
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+//-------------------------------------------------------------------------
+// Class AliAODMCHeader
+// Some MC specific inforamtion for filtering KINE infomration to the AOD
+// Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch
+//-------------------------------------------------------------------------
+
+#include "AliVHeader.h"
+
+class AliAODMCHeader: public AliVHeader {
+public:
+ AliAODMCHeader();
+ virtual ~AliAODMCHeader();
+ AliAODMCHeader(const AliAODMCHeader& header);
+ AliAODMCHeader& operator=(const AliAODMCHeader& header);
+ virtual void Copy(TObject &obj) const;
+
+ virtual void SetGeneratorName(const char* c){fGenerator = c;}
+ virtual void AddGeneratorName(const char* c){fGenerator += c;}
+ virtual const char* GetGeneratorName() const {return fGenerator.Data();}
+
+ virtual void SetVertex(Double_t *vtx){
+ fVertex[0] = vtx[0]; fVertex[1] = vtx[1]; fVertex[2] = vtx[2];
+ }
+ virtual void SetVertex(Double_t x,Double_t y,Double_t z){
+ fVertex[0] = x; fVertex[1] = y; fVertex[2] = z;
+ }
+ virtual void GetVertex(Double_t *vtx) const {
+ vtx[0] = fVertex[0]; vtx[1] = fVertex[1]; vtx[2] = fVertex[2];
+ }
+
+ virtual Double_t GetVtxX() const { return fVertex[0]; }
+ virtual Double_t GetVtxY() const { return fVertex[1]; }
+ virtual Double_t GetVtxZ() const { return fVertex[2]; }
+
+
+ virtual void SetImpactParameter(Double_t b){fImpactPar = b;}
+ virtual Double_t GetImpactParameter() const {return fImpactPar;}
+
+ virtual void SetPtHard(Double_t f){fPtHard = f;}
+ virtual Double_t GetPtHard() const {return fPtHard;}
+
+ virtual void SetCrossSection(Double_t f){fXsection = f;}
+ virtual Double_t GetCrossSection() const {return fXsection;}
+
+ virtual void AddTrial(Int_t i) {fTrials+=i;}
+ virtual void SetTrials(Int_t f){fTrials = f;}
+ virtual Int_t GetTrials() const {return fTrials;}
+
+ virtual void SetReactionPlaneAngle(Double_t b){fReactionPlaneAngle = b;}
+ virtual Double_t GetReactionPlaneAngle() const {return fReactionPlaneAngle;}
+
+ virtual void SetEventType(UInt_t eventType){fEventType = eventType;}
+ virtual UInt_t GetEventType() const {return fEventType;}
+
+ virtual void Reset();
+ virtual void Print(const Option_t *opt=0) const;
+
+ // needed to make class non virtual
+ virtual UShort_t GetBunchCrossNumber() const {return 0;}
+ virtual UInt_t GetOrbitNumber() const {return 0;}
+ virtual UInt_t GetPeriodNumber() const {return 0;}
+ virtual ULong64_t GetTriggerMask() const {return 0;}
+ virtual UChar_t GetTriggerCluster() const {return 0;}
+ //
+
+ static const char* StdBranchName(){return fgkStdBranchName.Data();}
+
+private:
+
+ static TString fgkStdBranchName; // Standard branch name
+
+ TString fGenerator; // Name of the generator, combination of names in case of gen cocktail
+ Double32_t fVertex[3]; // MC vertex
+ Double32_t fImpactPar; // Impact parameter in case of Pb+Pb
+ Double32_t fPtHard; // [0,0,12] Pt hard for jet events
+ Double32_t fXsection; // Cross section for particlar process
+ UInt_t fTrials; // Number of trials
+ UInt_t fEventType; // MC Process Type of Event
+ Double32_t fReactionPlaneAngle;// MC Reaction Plane Angle
+
+ ClassDef(AliAODMCHeader,5)
+
+};
+
+#endif