Adding AODMCHeader, new class and in the Filter and Handler
[u/mrichter/AliRoot.git] / STEER / AliAODMCHeader.h
1 // -*- mode: C++ -*- 
2 #ifndef ALIAODMCHEADER_H
3 #define ALIAODMCHEADER_H
4
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7
8 //-------------------------------------------------------------------------
9 //                      Class AliAODMCHeader
10 //   Some MC specific inforamtion for filtering KINE infomration to the AOD   
11 //   Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch 
12 //-------------------------------------------------------------------------
13
14 #include "AliVHeader.h"
15
16 class AliAODMCHeader: public AliVHeader {
17 public:
18   AliAODMCHeader();
19   virtual ~AliAODMCHeader();
20   AliAODMCHeader(const AliAODMCHeader& header);
21   AliAODMCHeader& operator=(const AliAODMCHeader& header);
22   virtual void Copy(TObject &obj) const;
23
24   virtual void      SetGeneratorName(const char* c){fGenerator = c;}
25   virtual void      AddGeneratorName(const char* c){fGenerator += c;}
26   virtual const char* GetGeneratorName() const {return fGenerator.Data();}
27
28   virtual void SetVertex(Double_t *vtx){
29     fVertex[0] = vtx[0]; fVertex[1] = vtx[1]; fVertex[2] = vtx[2];
30   }
31   virtual void SetVertex(Double_t x,Double_t y,Double_t z){
32     fVertex[0] = x; fVertex[1] = y; fVertex[2] = z;
33   }
34   virtual void GetVertex(Double_t *vtx) const {
35     vtx[0] = fVertex[0]; vtx[1] = fVertex[1]; vtx[2] = fVertex[2];
36   }
37
38   virtual Double_t GetVtxX() const { return fVertex[0]; }
39   virtual Double_t GetVtxY() const { return fVertex[1]; }
40   virtual Double_t GetVtxZ() const { return fVertex[2]; }
41
42   
43   virtual void      SetImpactParameter(Double_t b){fImpactPar = b;}
44   virtual Double_t  GetImpactParameter() const {return fImpactPar;}
45
46   virtual void      SetEventType(UInt_t eventType){fEventType = eventType;}
47   virtual UInt_t    GetEventType() const {return fEventType;}
48
49   virtual void      Reset();
50   virtual void      Print(const Option_t *opt=0) const;
51
52   // needed to make class non virtual
53   virtual UShort_t  GetBunchCrossNumber()   const {return 0;}
54   virtual UInt_t    GetOrbitNumber()        const {return 0;}
55   virtual UInt_t    GetPeriodNumber()       const {return 0;}
56   virtual ULong64_t GetTriggerMask()        const {return 0;}
57   virtual UChar_t   GetTriggerCluster()     const {return 0;}
58   // 
59   
60   static const char* StdBranchName(){return fgkStdBranchName.Data();}
61
62 private:
63
64   static TString fgkStdBranchName;      // Standard branch name
65
66   TString      fGenerator;         // Name of the generator, combination of names in case of gen cocktail 
67   Double32_t   fVertex[3];         // MC vertex
68   Double32_t   fImpactPar;         // Impact parameter in case of Pb+Pb
69   UInt_t       fEventType;         // MC Process Type of Event
70
71   
72   ClassDef(AliAODMCHeader,1)
73
74 };
75
76 #endif