Line data Source code
1 : #ifndef ALIAODZDC_H
2 : #define ALIAODZDC_H
3 :
4 : //-------------------------------------------------------------------------
5 : // Class for AOD ZDC data
6 : // Author: Chiara Oppedisano
7 : // Chiara.Oppedisano@cern.ch March 2011
8 : //-------------------------------------------------------------------------
9 :
10 : #include <AliVZDC.h>
11 :
12 : class AliAODZDC : public AliVZDC {
13 : public:
14 :
15 : AliAODZDC();
16 : AliAODZDC(const AliAODZDC& zdcAOD);
17 : AliAODZDC &operator=(const AliAODZDC& zdcAOD);
18 :
19 0 : virtual ~AliAODZDC() {};
20 :
21 : // Getters
22 :
23 0 : virtual Short_t GetZDCParticipants() const {return fZDCParticipants;}
24 0 : virtual Short_t GetZDCPartSideA() const {return fZDCPartSideA;}
25 0 : virtual Short_t GetZDCPartSideC() const {return fZDCPartSideC;}
26 0 : virtual Double_t GetImpactParameter() const {return fImpactParameter;}
27 0 : virtual Double_t GetImpactParamSideA() const {return fImpactParamSideA;}
28 0 : virtual Double_t GetImpactParamSideC() const {return fImpactParamSideC;}
29 :
30 0 : virtual Double_t GetZNCEnergy() const {return fZNCEnergy;}
31 0 : virtual Double_t GetZPCEnergy() const {return fZPCEnergy;}
32 0 : virtual Double_t GetZNAEnergy() const {return fZNAEnergy;}
33 0 : virtual Double_t GetZPAEnergy() const {return fZPAEnergy;}
34 0 : virtual Double_t GetZEM1Energy() const {return fZEM1Energy;}
35 0 : virtual Double_t GetZEM2Energy() const {return fZEM2Energy;}
36 :
37 0 : virtual const Double_t *GetZNCTowerEnergy() const {return fZNCTowerEnergy;}
38 0 : virtual const Double_t *GetZNATowerEnergy() const {return fZNATowerEnergy;}
39 0 : virtual const Double_t *GetZPCTowerEnergy() const {return fZPCTowerEnergy;}
40 0 : virtual const Double_t *GetZPATowerEnergy() const {return fZPATowerEnergy;}
41 0 : virtual const Double_t *GetZNCTowerEnergyLR() const {return fZNCTowerEnergyLR;}
42 0 : virtual const Double_t *GetZNATowerEnergyLR() const {return fZNATowerEnergyLR;}
43 0 : virtual const Double_t *GetZPCTowerEnergyLR() const {return fZPCTowerEnergyLR;}
44 0 : virtual const Double_t *GetZPATowerEnergyLR() const {return fZPATowerEnergyLR;}
45 :
46 : virtual Bool_t GetZNCentroidInPbPb(Float_t beamEne, Double_t centrZNC[2], Double_t centrZNA[2]);
47 : virtual Bool_t GetZNCentroidInpp(Double_t centrZNC[2], Double_t centrZNA[2]);
48 :
49 : // Setters dealing only with the 1st stored TDC hit
50 0 : virtual Float_t GetZNCTime() const {return fZNCTDC;}
51 0 : virtual Float_t GetZNATime() const {return fZNATDC;}
52 0 : virtual Float_t GetZPCTime() const {return fZPCTDC;}
53 0 : virtual Float_t GetZPATime() const {return fZPATDC;}
54 : //
55 0 : virtual Float_t GetZDCTimeSum() const {return fZDCTDCSum;}
56 0 : virtual Float_t GetZDCTimeDiff() const {return fZDCTDCDifference;}
57 :
58 : // Jan.2016: propagating multi-hit structure of TDC hits to AODs
59 0 : virtual Float_t GetZNCTDCm(Int_t i) const {return fZNCTDCm[i];}
60 0 : virtual Float_t GetZNATDCm(Int_t i) const {return fZNATDCm[i];}
61 0 : virtual Float_t GetZPCTDCm(Int_t i) const {return fZPCTDCm[i];}
62 0 : virtual Float_t GetZPATDCm(Int_t i) const {return fZPATDCm[i];}
63 : //
64 : virtual Bool_t GetTDCSum(Float_t sum[4]);
65 : virtual Bool_t GetTDCDiff(Float_t diff[4]);
66 : //
67 0 : virtual Bool_t IsZNAfired() {return fIsZNAfired;}
68 0 : virtual Bool_t IsZNCfired() {return fIsZNCfired;}
69 0 : virtual Bool_t IsZNANDfired() {if(IsZNAfired() &&IsZNCfired()) return kTRUE;
70 0 : else return kFALSE;}
71 :
72 : // Setters
73 :
74 16 : void SetZEM1Energy(const Double_t zem1) {fZEM1Energy = zem1;}
75 16 : void SetZEM2Energy(const Double_t zem2) {fZEM2Energy = zem2;}
76 : void SetZNCTowers(const Double_t value[5], const Double_t valueLG[5]);
77 : void SetZNATowers(const Double_t value[5], const Double_t valueLG[5]);
78 : void SetZPCTowers(const Double_t value[5], const Double_t valueLG[5]);
79 : void SetZPATowers(const Double_t value[5], const Double_t valueLG[5]);
80 :
81 : void SetZDCParticipants(Int_t npart, Int_t npartA, Int_t npartC)
82 16 : {fZDCParticipants=npart; fZDCPartSideA=npartA; fZDCPartSideC=npartC;}
83 : void SetZDCImpactParameter(Float_t b, Float_t bA, Float_t bC)
84 16 : {fImpactParameter=b; fImpactParamSideA=bA; fImpactParamSideC=bC;}
85 :
86 : // Setters dealing only with the 1st stored TDC hit
87 16 : void SetZDCTDCSum(Float_t tdc) {fZDCTDCSum = tdc;}
88 16 : void SetZDCTDCDiff(Float_t tdc) {fZDCTDCDifference = tdc;}
89 : //
90 0 : void SetZNCTDC(Float_t tdc) {fZNCTDC = tdc;}
91 0 : void SetZNATDC(Float_t tdc) {fZNATDC = tdc;}
92 0 : void SetZPCTDC(Float_t tdc) {fZPCTDC = tdc;}
93 0 : void SetZPATDC(Float_t tdc) {fZPATDC = tdc;}
94 :
95 : // Jan.2016: propagating multi-hit structure of TDC hits to AODs
96 0 : void SetZNCTDCm(Int_t i, Float_t tdc) {fZNCTDCm[i] = tdc;}
97 0 : void SetZNATDCm(Int_t i, Float_t tdc) {fZNATDCm[i] = tdc;}
98 0 : void SetZPCTDCm(Int_t i, Float_t tdc) {fZPCTDCm[i] = tdc;}
99 0 : void SetZPATDCm(Int_t i, Float_t tdc) {fZPATDCm[i] = tdc;}
100 : //
101 0 : void SetZNAfired() {fIsZNAfired = kTRUE;}
102 0 : void SetZNCfired() {fIsZNCfired = kTRUE;}
103 0 : void SetZPAfired() {fIsZPAfired = kTRUE;}
104 0 : void SetZPCfired() {fIsZPCfired = kTRUE;}
105 :
106 : protected:
107 :
108 : mutable Double32_t fZNCEnergy; //!E in ZNC
109 : mutable Double32_t fZNAEnergy; //!E in ZNA
110 : mutable Double32_t fZPCEnergy; //!E in ZPC
111 : mutable Double32_t fZPAEnergy; //!E in ZPA
112 : Double32_t fZEM1Energy; // E in ZEM1
113 : Double32_t fZEM2Energy; // E in ZEM2
114 : Double32_t fZNCTowerEnergy[5]; // E in 5 ZNC sectors - high gain chain
115 : Double32_t fZNATowerEnergy[5]; // E in 5 ZNA sectors - high gain chain
116 : Double32_t fZPCTowerEnergy[5]; // E in 5 ZPC sectors - high gain chain
117 : Double32_t fZPATowerEnergy[5]; // E in 5 ZPA sectors - high gain chain
118 : Double32_t fZNCTowerEnergyLR[5]; // E in 5 ZNC sectors - low gain chain
119 : Double32_t fZNATowerEnergyLR[5]; // E in 5 ZNA sectors - low gain chain
120 : Double32_t fZPCTowerEnergyLR[5]; // E in 5 ZPC sectors - low gain chain
121 : Double32_t fZPATowerEnergyLR[5]; // E in 5 ZPA sectors - low gain chain
122 : //
123 : Int_t fZDCParticipants; // number of participants estimated by the ZDC (ONLY in A-A)
124 : Int_t fZDCPartSideA; // number of participants estimated by the ZDC (ONLY in A-A)
125 : Int_t fZDCPartSideC; // number of participants estimated by the ZDC (ONLY in A-A)
126 : //
127 : Double32_t fImpactParameter; // impact parameter estimated by the ZDC (ONLY in A-A)
128 : Double32_t fImpactParamSideA; // impact parameter estimated by the ZDC (ONLY in A-A)
129 : Double32_t fImpactParamSideC; // impact parameter estimated by the ZDC (ONLY in A-A)
130 : //
131 : // These data members deals only with the 1st stored TDC hit
132 : Float_t fZDCTDCSum; // ZDC TDC sum in ns corrected 4 phase shift
133 : Float_t fZDCTDCDifference; // ZDC TDC diff. in ns corrected 4 phase shift
134 : Float_t fZNCTDC; // ZNC TDC in ns corrected 4 phase shift
135 : Float_t fZNATDC; // ZNA TDC in ns corrected 4 phase shift;
136 : Float_t fZPCTDC; // ZNC TDC in ns corrected 4 phase shift
137 : Float_t fZPATDC; // ZNA TDC in ns corrected 4 phase shift;
138 : //
139 : // Jan.2016: propagating multi-hit structure of TDC hits to AODs
140 : Float_t fZNCTDCm[4]; // true if ZNC TDC has at least 1 hit
141 : Float_t fZNATDCm[4]; // true if ZNA TDC has at least 1 hit
142 : Float_t fZPCTDCm[4]; // true if ZPC TDC has at least 1 hit
143 : Float_t fZPATDCm[4]; // true if ZPA TDC has at least 1 hit
144 : //
145 : Bool_t fIsZNAfired; // if true ZNA is fired in the event
146 : Bool_t fIsZNCfired; // if true ZNC is fired in the event
147 : Bool_t fIsZPAfired; // if true ZPA is fired in the event
148 : Bool_t fIsZPCfired; // if true ZPC is fired in the event
149 :
150 :
151 290 : ClassDef(AliAODZDC,4)
152 : };
153 :
154 : #endif
|