Line data Source code
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 : class AliGenEventHeader;
15 :
16 : #include "AliVHeader.h"
17 : #include "TList.h"
18 :
19 : class AliAODMCHeader: public AliVHeader {
20 : public:
21 : AliAODMCHeader();
22 : virtual ~AliAODMCHeader();
23 : AliAODMCHeader(const AliAODMCHeader& header);
24 : AliAODMCHeader& operator=(const AliAODMCHeader& header);
25 : virtual void Copy(TObject &obj) const;
26 :
27 0 : virtual void SetGeneratorName(const char* c){fGenerator = c;}
28 : virtual void AddGeneratorName(const char* c);
29 0 : virtual const char* GetGeneratorName() const {return fGenerator.Data();}
30 :
31 : virtual void SetVertex(Double_t *vtx){
32 0 : fVertex[0] = vtx[0]; fVertex[1] = vtx[1]; fVertex[2] = vtx[2];
33 0 : }
34 : virtual void SetVertex(Double_t x,Double_t y,Double_t z){
35 8 : fVertex[0] = x; fVertex[1] = y; fVertex[2] = z;
36 4 : }
37 : virtual void GetVertex(Double_t *vtx) const {
38 0 : vtx[0] = fVertex[0]; vtx[1] = fVertex[1]; vtx[2] = fVertex[2];
39 0 : }
40 :
41 0 : virtual Double_t GetVtxX() const { return fVertex[0]; }
42 0 : virtual Double_t GetVtxY() const { return fVertex[1]; }
43 0 : virtual Double_t GetVtxZ() const { return fVertex[2]; }
44 :
45 :
46 0 : virtual void SetImpactParameter(Double_t b){fImpactPar = b;}
47 0 : virtual Double_t GetImpactParameter() const {return fImpactPar;}
48 :
49 0 : virtual void SetPtHard(Double_t f){fPtHard = f;}
50 0 : virtual Double_t GetPtHard() const {return fPtHard;}
51 :
52 0 : virtual void SetCrossSection(Double_t f){fXsection = f;}
53 0 : virtual Double_t GetCrossSection() const {return fXsection;}
54 :
55 0 : virtual void AddTrial(Int_t i) {fTrials+=i;}
56 0 : virtual void SetTrials(Int_t f){fTrials = f;}
57 0 : virtual Int_t GetTrials() const {return fTrials;}
58 :
59 0 : virtual void SetReactionPlaneAngle(Double_t b){fReactionPlaneAngle = b;}
60 0 : virtual Double_t GetReactionPlaneAngle() const {return fReactionPlaneAngle;}
61 :
62 0 : virtual void SetEventType(UInt_t eventType){fEventType = eventType;}
63 0 : virtual UInt_t GetEventType() const {return fEventType;}
64 :
65 : virtual void Reset();
66 : virtual void Print(const Option_t *opt=0) const;
67 :
68 : // needed to make class non virtual
69 0 : virtual UShort_t GetBunchCrossNumber() const {return 0;}
70 0 : virtual UInt_t GetOrbitNumber() const {return 0;}
71 0 : virtual UInt_t GetPeriodNumber() const {return 0;}
72 0 : virtual ULong64_t GetTriggerMask() const {return 0;}
73 0 : virtual UChar_t GetTriggerCluster() const {return 0;}
74 : //
75 :
76 : // Access to header informations
77 :
78 : virtual void AddCocktailHeader(const AliGenEventHeader* header);
79 : virtual void AddCocktailHeaders(AliGenEventHeader* header);
80 : virtual AliGenEventHeader* GetCocktailHeader(Int_t i);
81 0 : virtual TList* GetCocktailHeaders(){return fHeaders;}
82 : virtual UInt_t GetNCocktailHeaders(){
83 0 : if(fHeaders)return fHeaders->GetEntries();
84 0 : return 0;
85 0 : }
86 :
87 26 : static const char* StdBranchName(){return fgkStdBranchName.Data();}
88 :
89 : private:
90 :
91 : static TString fgkStdBranchName; // Standard branch name
92 :
93 : // General event information
94 :
95 : TString fGenerator; // Name of the generator, combination of names in case of gen cocktail
96 : Double32_t fVertex[3]; // MC vertex
97 : Double32_t fImpactPar; // Impact parameter in case of Pb+Pb
98 : Double32_t fPtHard; // [0,0,12] Pt hard for jet events
99 : Double32_t fXsection; // Cross section for particlar process
100 : UInt_t fTrials; // Number of trials
101 : UInt_t fEventType; // MC Process Type of Event
102 : Double32_t fReactionPlaneAngle;// MC Reaction Plane Angle
103 :
104 : // more details in the headers
105 : TList *fHeaders; // List of all MC Headers
106 :
107 184 : ClassDef(AliAODMCHeader,6)
108 :
109 : };
110 :
111 : #endif
|