]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliAODHeader.h
Getting rid of obsolete objects.
[u/mrichter/AliRoot.git] / STEER / AliAODHeader.h
1 #ifndef AliAODHeader_H
2 #define AliAODHeader_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //     AOD event header class
10 //     Author: Markus Oldenburg, CERN
11 //-------------------------------------------------------------------------
12
13 #include "AliVHeader.h"
14 #include "AliAODVertex.h"
15
16 class TGeoHMatrix;
17
18 class AliAODHeader : public AliVHeader {
19
20  public :
21   AliAODHeader();
22  
23   AliAODHeader(Int_t nRun, UShort_t nBunchX, UInt_t nOrbit, UInt_t nPeriod, const Char_t *title="");
24   AliAODHeader(Int_t nRun, 
25                UShort_t nBunchX,
26                UInt_t nOrbit,
27                UInt_t nPeriod,
28                Int_t refMult,
29                Int_t refMultPos,
30                Int_t refMultNeg,
31                Double_t magField,
32                Double_t muonMagFieldScale,
33                Double_t cent,
34                Double_t n1Energy,
35                Double_t p1Energy,
36                Double_t n2Energy,
37                Double_t p2Energy,
38                Double_t *emEnergy,
39                ULong64_t fTriggerMask,
40                UChar_t   fTriggerCluster,
41                UInt_t    fEventType,
42                const Char_t *title="");
43   
44   virtual ~AliAODHeader();
45   AliAODHeader(const AliAODHeader& evt); 
46   AliAODHeader& operator=(const AliAODHeader& evt);
47   
48   Int_t     GetRunNumber()          const { return fRunNumber; }
49   UShort_t  GetBunchCrossNumber()   const { return fBunchCrossNumber; }
50   UInt_t    GetOrbitNumber()        const { return fOrbitNumber; }
51   UInt_t    GetPeriodNumber()       const { return fPeriodNumber; }
52   ULong64_t GetTriggerMask()        const { return fTriggerMask; }
53   UChar_t   GetTriggerCluster()     const { return fTriggerCluster; }
54   UInt_t    GetEventType()          const { return fEventType; }
55   Double_t  GetMagneticField()      const { return fMagneticField; }
56   Double_t  GetMuonMagFieldScale()  const { return fMuonMagFieldScale; }
57   
58   Double_t  GetCentrality()         const { return fCentrality; }
59   Double_t  GetZDCN1Energy()        const { return fZDCN1Energy; }
60   Double_t  GetZDCP1Energy()        const { return fZDCP1Energy; }
61   Double_t  GetZDCN2Energy()        const { return fZDCN2Energy; }
62   Double_t  GetZDCP2Energy()        const { return fZDCP2Energy; }
63   Double_t  GetZDCEMEnergy(Int_t i) const { return fZDCEMEnergy[i]; }
64   Int_t     GetRefMultiplicity()    const { return fRefMult; }
65   Int_t     GetRefMultiplicityPos() const { return fRefMultPos; }
66   Int_t     GetRefMultiplicityNeg() const { return fRefMultNeg; }
67
68   Double_t  GetQTheta(UInt_t i) const;
69   UInt_t    GetNQTheta() const { return (UInt_t)fNQTheta; }
70
71   Double_t GetDiamondX() const {return fDiamondXY[0];}
72   Double_t GetDiamondY() const {return fDiamondXY[1];}
73   Double_t GetSigma2DiamondX() const {return fDiamondCovXY[0];}
74   Double_t GetSigma2DiamondY() const {return fDiamondCovXY[2];}
75   void GetDiamondCovXY(Float_t cov[3]) const {
76     for(Int_t i=0;i<3;i++) cov[i]=fDiamondCovXY[i]; return;
77   }
78   
79   void SetRunNumber(Int_t nRun)                { fRunNumber = nRun; }
80   void SetBunchCrossNumber(UShort_t nBx)       { fBunchCrossNumber = nBx; }
81   void SetOrbitNumber(UInt_t nOr)              { fOrbitNumber = nOr; }
82   void SetPeriodNumber(UInt_t nPer)            { fPeriodNumber = nPer; }
83   void SetTriggerMask(ULong64_t trigMsk)       { fTriggerMask = trigMsk; }
84   void SetTriggerCluster(UChar_t trigClus)     { fTriggerCluster = trigClus; }
85   void SetEventType(UInt_t evttype)            { fEventType = evttype; }
86   void SetMagneticField(Double_t magFld)       { fMagneticField = magFld; }
87   void SetMuonMagFieldScale(Double_t magFldScl){ fMuonMagFieldScale = magFldScl; }
88   
89   void SetCentrality(Double_t cent)            { fCentrality = cent; }
90   void SetZDCN1Energy(Double_t n1Energy)       { fZDCN1Energy = n1Energy; }
91   void SetZDCP1Energy(Double_t p1Energy)       { fZDCP1Energy = p1Energy; }
92   void SetZDCN2Energy(Double_t n2Energy)       { fZDCN2Energy = n2Energy; }
93   void SetZDCP2Energy(Double_t p2Energy)       { fZDCP2Energy = p2Energy; }
94   void SetZDCEMEnergy(Double_t emEnergy1, Double_t emEnergy2)      
95         { fZDCEMEnergy[0] = emEnergy1; fZDCEMEnergy[1] = emEnergy2;}
96   void SetRefMultiplicity(Int_t refMult)       { fRefMult = refMult; }
97   void SetRefMultiplicityPos(Int_t refMultPos) { fRefMultPos = refMultPos; }
98   void SetRefMultiplicityNeg(Int_t refMultNeg) { fRefMultNeg = refMultNeg; }
99   
100   void SetQTheta(Double_t *QTheta, UInt_t size = 5);  
101   void RemoveQTheta();
102
103   void SetDiamond(Float_t xy[2],Float_t cov[3]) { 
104     for(Int_t i=0;i<3;i++) {if(i<2) fDiamondXY[i]=xy[i]; fDiamondCovXY[i]=cov[i];}
105   }
106
107   void Print(Option_t* option = "") const;
108
109   void    SetPHOSMatrix(TGeoHMatrix*matrix, Int_t i) {
110       if ((i >= 0) && (i < kNPHOSMatrix)) fPHOSMatrix[i] = matrix;
111   }
112   const TGeoHMatrix* GetPHOSMatrix(Int_t i) const {
113       return ((i >= 0) && (i < kNPHOSMatrix)) ? fPHOSMatrix[i] : NULL;
114   }
115   
116   void    SetEMCALMatrix(TGeoHMatrix*matrix, Int_t i) {
117       if ((i >= 0) && (i < kNEMCALMatrix)) fEMCALMatrix[i] = matrix;
118   }
119   const TGeoHMatrix* GetEMCALMatrix(Int_t i) const {
120       return ((i >= 0) && (i < kNEMCALMatrix)) ? fEMCALMatrix[i] : NULL;
121   }
122   
123   enum {kNPHOSMatrix = 5};
124   enum {kNEMCALMatrix = 12};
125   
126  private :
127   
128   Double32_t  fMagneticField;       // Solenoid Magnetic Field in kG
129   Double32_t  fMuonMagFieldScale;   // magnetic field scale of muon arm magnet
130   Double32_t  fCentrality;          // Centrality
131   Double32_t  fZDCN1Energy;         // reconstructed energy in the neutron1 ZDC
132   Double32_t  fZDCP1Energy;         // reconstructed energy in the proton1 ZDC
133   Double32_t  fZDCN2Energy;         // reconstructed energy in the neutron2 ZDC
134   Double32_t  fZDCP2Energy;         // reconstructed energy in the proton2 ZDC
135   Double32_t  fZDCEMEnergy[2];      // reconstructed energy in the electromagnetic ZDCs
136   Int_t       fNQTheta;             // number of QTheta elements
137   Double32_t *fQTheta;              // [fNQTheta] values to store Lee-Yang-Zeros
138   ULong64_t   fTriggerMask;         // Trigger Type (mask)
139   Int_t       fRunNumber;           // Run Number
140   Int_t       fRefMult;             // reference multiplicity
141   Int_t       fRefMultPos;          // reference multiplicity of positive particles
142   Int_t       fRefMultNeg;          // reference multiplicity of negative particles
143   UInt_t      fEventType;           // Type of Event
144   UInt_t      fOrbitNumber;         // Orbit Number
145   UInt_t      fPeriodNumber;        // Period Number
146   UShort_t    fBunchCrossNumber;    // BunchCrossingNumber
147   UChar_t     fTriggerCluster;      // Trigger cluster (mask)
148
149   Double32_t      fDiamondXY[2];    // Interaction diamond (x,y) in RUN
150   Double32_t      fDiamondCovXY[3]; // Interaction diamond covariance (x,y) in RUN
151   TGeoHMatrix*    fPHOSMatrix[kNPHOSMatrix];   //PHOS module position and orientation matrices
152   TGeoHMatrix*    fEMCALMatrix[kNEMCALMatrix]; //EMCAL supermodule position and orientation matrices
153
154   ClassDef(AliAODHeader,8);
155 };
156
157 #endif