]>
Commit | Line | Data |
---|---|---|
d5ebf00e | 1 | // -*- mode: C++ -*- |
2 | #ifndef ALIESDRUN_H | |
3 | #define ALIESDRUN_H | |
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //------------------------------------------------------------------------- | |
8 | // Implementation Class AliESDRun | |
9 | // Run by run data | |
10 | // for the ESD | |
11 | // Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch | |
12 | //------------------------------------------------------------------------- | |
13 | ||
14 | #include <TObject.h> | |
f009b5c1 | 15 | #include <TObjArray.h> |
16 | #include <TString.h> | |
d5ebf00e | 17 | |
8d218603 | 18 | class TGeoHMatrix; |
d5ebf00e | 19 | class AliESDVertex; |
20 | ||
21 | class AliESDRun: public TObject { | |
22 | public: | |
23 | ||
5cf76849 | 24 | enum StatusBits {kBInfoStored = BIT(14), kUniformBMap = BIT(15), kConvSqrtSHalfGeV = BIT(16)}; |
33fe5eb1 | 25 | |
d5ebf00e | 26 | AliESDRun(); |
27 | AliESDRun(const AliESDRun& esd); | |
28 | AliESDRun& operator=(const AliESDRun& esd); | |
732a24fe | 29 | virtual void Copy(TObject &obj) const; // Interface for using TOBject::Copy() |
8d218603 | 30 | virtual ~AliESDRun(); |
d5ebf00e | 31 | |
33fe5eb1 | 32 | Bool_t InitMagneticField() const; |
d5ebf00e | 33 | Int_t GetRunNumber() const {return fRunNumber;} |
34 | void SetRunNumber(Int_t n) {fRunNumber=n;} | |
35 | void SetMagneticField(Float_t mf){fMagneticField = mf;} | |
694aad0c | 36 | Double_t GetMagneticField() const {return fMagneticField;} |
37 | UInt_t GetPeriodNumber() const {return fPeriodNumber;} | |
d5ebf00e | 38 | void SetPeriodNumber(Int_t n) {fPeriodNumber=n;} |
39 | void Reset(); | |
40 | void Print(const Option_t *opt=0) const; | |
33fe5eb1 | 41 | void SetDiamond(const AliESDVertex *vertex); |
f009b5c1 | 42 | void SetTriggerClass(const char*name, Int_t index); |
33fe5eb1 | 43 | void SetCurrentL3(Float_t cur) {fCurrentL3 = cur;} |
44 | void SetCurrentDip(Float_t cur) {fCurrentDip = cur;} | |
45 | void SetBeamEnergy(Float_t be) {fBeamEnergy = be;} | |
46 | void SetBeamType(const char* bt) {fBeamType = bt;} | |
5cf76849 | 47 | void SetBeamEnergyIsSqrtSHalfGeV(Bool_t v=kTRUE) {SetBit(kConvSqrtSHalfGeV,v);} |
7b649c02 | 48 | void SetDetectorsInDAQ(UInt_t detmask) { fDetInDAQ = detmask; } |
49 | void SetDetectorsInReco(UInt_t detmask) { fDetInReco = detmask; } | |
5cf76849 | 50 | |
51 | Bool_t IsBeamEnergyIsSqrtSHalfGeV() const {return TestBit(kConvSqrtSHalfGeV);} | |
694aad0c | 52 | Double_t GetDiamondX() const {return fDiamondXY[0];} |
53 | Double_t GetDiamondY() const {return fDiamondXY[1];} | |
1c7554f9 | 54 | Double_t GetDiamondZ() const {return fDiamondZ;} |
694aad0c | 55 | Double_t GetSigma2DiamondX() const {return fDiamondCovXY[0];} |
56 | Double_t GetSigma2DiamondY() const {return fDiamondCovXY[2];} | |
1c7554f9 | 57 | Double_t GetSigma2DiamondZ() const {return fDiamondSig2Z;} |
d5ebf00e | 58 | void GetDiamondCovXY(Float_t cov[3]) const { |
59 | for(Int_t i=0;i<3;i++) cov[i]=fDiamondCovXY[i]; return; | |
60 | } | |
f009b5c1 | 61 | const char* GetTriggerClass(Int_t index) const; |
62 | TString GetActiveTriggerClasses() const; | |
63 | TString GetFiredTriggerClasses(ULong64_t mask) const; | |
64 | Bool_t IsTriggerClassFired(ULong64_t mask, const char *name) const; | |
33fe5eb1 | 65 | Float_t GetCurrentL3() const {return fCurrentL3;} |
66 | Float_t GetCurrentDip() const {return fCurrentDip;} | |
5cf76849 | 67 | Float_t GetBeamEnergy() const {return IsBeamEnergyIsSqrtSHalfGeV() ? fBeamEnergy : fBeamEnergy/2;} |
33fe5eb1 | 68 | const char* GetBeamType() const {return fBeamType.Data();} |
7b649c02 | 69 | UInt_t GetDetectorsInDAQ() const {return fDetInDAQ; } |
70 | UInt_t GetDetectorsInReco() const {return fDetInReco; } | |
71 | ||
8d218603 | 72 | void SetPHOSMatrix(TGeoHMatrix*matrix, Int_t i) { |
73 | if ((i >= 0) && (i < kNPHOSMatrix)) fPHOSMatrix[i] = matrix; | |
74 | } | |
75 | const TGeoHMatrix* GetPHOSMatrix(Int_t i) const { | |
76 | return ((i >= 0) && (i < kNPHOSMatrix)) ? fPHOSMatrix[i] : NULL; | |
77 | } | |
428557af | 78 | |
79 | void SetEMCALMatrix(TGeoHMatrix*matrix, Int_t i) { | |
80 | if ((i >= 0) && (i < kNEMCALMatrix)) fEMCALMatrix[i] = matrix; | |
81 | } | |
82 | const TGeoHMatrix* GetEMCALMatrix(Int_t i) const { | |
83 | return ((i >= 0) && (i < kNEMCALMatrix)) ? fEMCALMatrix[i] : NULL; | |
84 | } | |
85 | ||
f009b5c1 | 86 | enum {kNTriggerClasses = 50}; |
8d218603 | 87 | enum {kNPHOSMatrix = 5}; |
428557af | 88 | enum {kNEMCALMatrix = 12}; |
b671618d | 89 | // |
90 | Double_t GetMeanIntensity(int beam,int btp) const | |
91 | { return (beam>=0&&beam<2&&btp>=0&&btp<2) ? fMeanBeamInt[beam][btp]:0;} | |
92 | void SetMeanIntensity(int beam,int btp, double v=-1) | |
93 | { if (beam>=0&&beam<2&&btp>=0&&btp<2) fMeanBeamInt[beam][btp]=v;} | |
94 | Double_t GetMeanIntensityIntecting(int beam) const {return GetMeanIntensity(beam,0);} | |
95 | Double_t GetMeanIntensityNonIntecting(int beam) const {return GetMeanIntensity(beam,1);} | |
96 | // | |
97 | private: | |
33fe5eb1 | 98 | Float_t fCurrentL3; // signed current in the L3 (LHC convention: +current -> +Bz) |
99 | Float_t fCurrentDip; // signed current in the Dipole (LHC convention: +current -> -Bx) | |
100 | Float_t fBeamEnergy; // beamEnergy entry from GRP | |
694aad0c | 101 | Double32_t fMagneticField; // Solenoid Magnetic Field in kG : for compatibility with AliMagF |
b671618d | 102 | Double32_t fMeanBeamInt[2][2]; // mean intensity of interacting and non-intercting bunches per beam |
694aad0c | 103 | Double32_t fDiamondXY[2]; // Interaction diamond (x,y) in RUN |
104 | Double32_t fDiamondCovXY[3]; // Interaction diamond covariance (x,y) in RUN | |
1c7554f9 | 105 | Double32_t fDiamondZ; // Interaction diamond (z) in RUN |
106 | Double32_t fDiamondSig2Z; // Interaction diamond sigma^2 (z) in RUN | |
694aad0c | 107 | UInt_t fPeriodNumber; // PeriodNumber |
108 | Int_t fRunNumber; // Run Number | |
33fe5eb1 | 109 | Int_t fRecoVersion; // Version of reconstruction |
110 | TString fBeamType; // beam type from GRP | |
f009b5c1 | 111 | TObjArray fTriggerClasses; // array of TNamed containing the names of the active trigger classes |
7b649c02 | 112 | UInt_t fDetInDAQ; // Detector mask for detectors in datataking |
113 | UInt_t fDetInReco; // Detector mask for detectors in reconstruction | |
8d218603 | 114 | TGeoHMatrix* fPHOSMatrix[kNPHOSMatrix]; //PHOS module position and orientation matrices |
428557af | 115 | TGeoHMatrix* fEMCALMatrix[kNEMCALMatrix]; //EMCAL supermodule position and orientation matrices |
694aad0c | 116 | |
b671618d | 117 | ClassDef(AliESDRun,9) |
d5ebf00e | 118 | }; |
119 | ||
120 | #endif |