]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AOD/AliAODMCHeader.h
Additional fixes
[u/mrichter/AliRoot.git] / STEER / AOD / AliAODMCHeader.h
CommitLineData
dce1b636 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
08078824 14class AliGenEventHeader;
15
dce1b636 16#include "AliVHeader.h"
08078824 17#include "TList.h"
dce1b636 18
19class AliAODMCHeader: public AliVHeader {
20public:
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 virtual void SetGeneratorName(const char* c){fGenerator = c;}
08078824 28 virtual void AddGeneratorName(const char* c);
dce1b636 29 virtual const char* GetGeneratorName() const {return fGenerator.Data();}
30
31 virtual void SetVertex(Double_t *vtx){
32 fVertex[0] = vtx[0]; fVertex[1] = vtx[1]; fVertex[2] = vtx[2];
33 }
34 virtual void SetVertex(Double_t x,Double_t y,Double_t z){
35 fVertex[0] = x; fVertex[1] = y; fVertex[2] = z;
36 }
37 virtual void GetVertex(Double_t *vtx) const {
38 vtx[0] = fVertex[0]; vtx[1] = fVertex[1]; vtx[2] = fVertex[2];
39 }
40
41 virtual Double_t GetVtxX() const { return fVertex[0]; }
42 virtual Double_t GetVtxY() const { return fVertex[1]; }
43 virtual Double_t GetVtxZ() const { return fVertex[2]; }
44
45
46 virtual void SetImpactParameter(Double_t b){fImpactPar = b;}
47 virtual Double_t GetImpactParameter() const {return fImpactPar;}
48
0fd37a1f 49 virtual void SetPtHard(Double_t f){fPtHard = f;}
50 virtual Double_t GetPtHard() const {return fPtHard;}
51
210dd0f3 52 virtual void SetCrossSection(Double_t f){fXsection = f;}
53 virtual Double_t GetCrossSection() const {return fXsection;}
54
69786dcc 55 virtual void AddTrial(Int_t i) {fTrials+=i;}
56 virtual void SetTrials(Int_t f){fTrials = f;}
08078824 57 virtual Int_t GetTrials() const {return fTrials;}
210dd0f3 58
34477296 59 virtual void SetReactionPlaneAngle(Double_t b){fReactionPlaneAngle = b;}
60 virtual Double_t GetReactionPlaneAngle() const {return fReactionPlaneAngle;}
61
dce1b636 62 virtual void SetEventType(UInt_t eventType){fEventType = eventType;}
63 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 virtual UShort_t GetBunchCrossNumber() const {return 0;}
70 virtual UInt_t GetOrbitNumber() const {return 0;}
71 virtual UInt_t GetPeriodNumber() const {return 0;}
72 virtual ULong64_t GetTriggerMask() const {return 0;}
73 virtual UChar_t GetTriggerCluster() const {return 0;}
74 //
75
08078824 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 virtual TList* GetCocktailHeaders(){return fHeaders;}
82 virtual UInt_t GetNCocktailHeaders(){
83 if(fHeaders)return fHeaders->GetEntries();
84 return 0;
85 }
86
dce1b636 87 static const char* StdBranchName(){return fgkStdBranchName.Data();}
88
89private:
90
91 static TString fgkStdBranchName; // Standard branch name
92
08078824 93 // General event information
94
dce1b636 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
0fd37a1f 98 Double32_t fPtHard; // [0,0,12] Pt hard for jet events
210dd0f3 99 Double32_t fXsection; // Cross section for particlar process
69786dcc 100 UInt_t fTrials; // Number of trials
dce1b636 101 UInt_t fEventType; // MC Process Type of Event
34477296 102 Double32_t fReactionPlaneAngle;// MC Reaction Plane Angle
08078824 103
104 // more details in the headers
105 TList *fHeaders; // List of all MC Headers
106
107 ClassDef(AliAODMCHeader,6)
dce1b636 108
109};
110
111#endif