]>
Commit | Line | Data |
---|---|---|
1450a7cd | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all *; | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
803d1ab0 | 16 | /* $Id$ */ |
1450a7cd | 17 | |
18 | //////////////////////////////////////////////// | |
19 | // RecPoints classes for set ZDC // | |
93f80a6f | 20 | // This class reconstructs the space // |
21 | // points from digits // | |
22 | // for the ZDC calorimeter // | |
1450a7cd | 23 | //////////////////////////////////////////////// |
24 | ||
25 | ||
26 | #include "AliZDCReco.h" | |
27 | ||
28 | ClassImp(AliZDCReco) | |
29 | ||
cc2abffd | 30 | |
31 | //_____________________________________________________________________________ | |
32 | AliZDCReco::AliZDCReco() : | |
33 | ||
34 | TObject(), | |
646f1679 | 35 | // |
73bc3a3f | 36 | fNDetSpecNSideA(0), |
37 | fNDetSpecPSideA(0), | |
38 | fNDetSpecNSideC(0), | |
39 | fNDetSpecPSideC(0), | |
40 | fNTrueSpectators(0), | |
41 | fNTrueSpecSideA(0), | |
42 | fNTrueSpecSideC(0), | |
43 | fNParticipants(0), | |
44 | fNPartSideA(0), | |
45 | fNPartSideC(0), | |
46 | fImpParameter(0), | |
47 | fImpParSideA(0), | |
1e319f71 | 48 | fImpParSideC(0), |
81f09162 | 49 | fRecoFlag(0x0), |
077d2505 | 50 | fEnergyFlag(kFALSE), |
81f09162 | 51 | fIsScalerOn(kFALSE) |
cc2abffd | 52 | { |
53 | // | |
54 | // Default constructor | |
55 | // | |
c35ed519 | 56 | for(Int_t i=0; i<10; i++){ |
57 | fZN1EnTow[i] = fZP1EnTow[i] = fZN2EnTow[i] = fZP2EnTow[i] = 0.; | |
58 | if(i<2){ | |
59 | fZN1Energy[i] = fZP1Energy[i] = fZN2Energy[i] = fZP2Energy[i] = 0.; | |
60 | fZEM1signal[i] = fZEM2signal[i] = 0.; | |
61 | fPMRef1[i] = fPMRef2[i] = 0.; | |
62 | } | |
84d6255e | 63 | } |
81f09162 | 64 | |
32e2fda5 | 65 | for(Int_t i=0; i<32; i++){ |
66 | fZDCScaler[i] = 0; | |
f53e5ecb | 67 | for(Int_t ij=0; ij<4; ij++) fZDCTDCData[i][ij] = 0; |
32e2fda5 | 68 | } |
cc2abffd | 69 | } |
70 | ||
71 | ||
1450a7cd | 72 | //_____________________________________________________________________________ |
73bc3a3f | 73 | AliZDCReco::AliZDCReco( |
74 | Float_t* ezn1, Float_t* ezp1, Float_t* ezn2, Float_t* ezp2, | |
75 | Float_t* ezn1tow, Float_t* ezp1tow, Float_t* ezn2tow, Float_t* ezp2tow, | |
76 | Float_t* ezem1, Float_t* ezem2, Float_t* ref1, Float_t* ref2, | |
77 | // | |
78 | Int_t detspnSideA, Int_t detsppSideA, Int_t detspnSideC, Int_t detsppSideC, | |
79 | Int_t trsp, Int_t trspSideA,Int_t trspSideC, | |
80 | Int_t npart, Int_t npartSideA, Int_t npartSideC, | |
1e319f71 | 81 | Float_t b, Float_t bSideA, Float_t bSideC, |
077d2505 | 82 | UInt_t recoFlag, Bool_t energyFlag, Bool_t scalerOn, |
83 | UInt_t* scaler, Int_t tdcData[32][4]) : | |
cc2abffd | 84 | |
85 | TObject(), | |
646f1679 | 86 | // |
73bc3a3f | 87 | fNDetSpecNSideA(detspnSideA), |
88 | fNDetSpecPSideA(detsppSideA), | |
89 | fNDetSpecNSideC(detspnSideC), | |
90 | fNDetSpecPSideC(detsppSideC), | |
91 | fNTrueSpectators(trsp), | |
92 | fNTrueSpecSideA(trspSideA), | |
93 | fNTrueSpecSideC(trspSideC), | |
94 | fNParticipants(npart), | |
95 | fNPartSideA(npartSideA), | |
96 | fNPartSideC(npartSideC), | |
97 | fImpParameter(b), | |
98 | fImpParSideA(bSideA), | |
1e319f71 | 99 | fImpParSideC(bSideC), |
81f09162 | 100 | fRecoFlag(recoFlag), |
077d2505 | 101 | fEnergyFlag(energyFlag), |
81f09162 | 102 | fIsScalerOn(scalerOn) |
1450a7cd | 103 | { |
93f80a6f | 104 | // |
cc2abffd | 105 | // Constructor |
93f80a6f | 106 | // |
c35ed519 | 107 | for(Int_t j=0; j<10; j++){ |
646f1679 | 108 | fZN1EnTow[j] = ezn1tow[j]; |
109 | fZP1EnTow[j] = ezp1tow[j]; | |
110 | fZN2EnTow[j] = ezn2tow[j]; | |
111 | fZP2EnTow[j] = ezp2tow[j]; | |
c35ed519 | 112 | if(j<2){ |
113 | fZN1Energy[j] = ezn1[j]; | |
114 | fZP1Energy[j] = ezp1[j]; | |
115 | fZN2Energy[j] = ezn2[j]; | |
116 | fZP2Energy[j] = ezp2[j]; | |
117 | fZEM1signal[j] = ezem1[j]; | |
118 | fZEM2signal[j] = ezem2[j]; | |
119 | fPMRef1[j] = ref1[j]; | |
120 | fPMRef2[j] = ref2[j]; | |
121 | } | |
646f1679 | 122 | } |
82dffa48 | 123 | for(Int_t j=0; j<32; j++){ |
124 | fZDCScaler[j] = scaler[j]; | |
32e2fda5 | 125 | for(Int_t y=0; y<4; y++) fZDCTDCData[j][y] = tdcData[j][y]; |
82dffa48 | 126 | } |
1450a7cd | 127 | } |
93f80a6f | 128 | |
cc2abffd | 129 | //______________________________________________________________________________ |
130 | AliZDCReco::AliZDCReco(const AliZDCReco &oldreco) : | |
a718c993 | 131 | TObject(), |
73bc3a3f | 132 | fNDetSpecNSideA(oldreco.GetNDetSpecNSideA()), |
133 | fNDetSpecPSideA(oldreco.GetNDetSpecPSideA()), | |
134 | fNDetSpecNSideC(oldreco.GetNDetSpecNSideC()), | |
135 | fNDetSpecPSideC(oldreco.GetNDetSpecPSideC()), | |
136 | fNTrueSpectators(oldreco.GetNTrueSpectators()), | |
137 | fNTrueSpecSideA(oldreco.GetNTrueSpecSideA()), | |
138 | fNTrueSpecSideC(oldreco.GetNTrueSpecSideC()), | |
139 | fNParticipants(oldreco.GetNParticipants()), | |
140 | fNPartSideA(oldreco.GetNPartSideA()), | |
141 | fNPartSideC(oldreco.GetNPartSideC()), | |
142 | fImpParameter(oldreco.GetImpParameter()), | |
143 | fImpParSideA(oldreco.GetImpParSideA()), | |
1e319f71 | 144 | fImpParSideC(oldreco.GetImpParSideC()), |
81f09162 | 145 | fRecoFlag(oldreco.GetRecoFlag()), |
077d2505 | 146 | fEnergyFlag(oldreco.GetEnergyFlag()), |
81f09162 | 147 | fIsScalerOn(oldreco.IsScalerOn()) |
cc2abffd | 148 | { |
149 | // Copy constructor | |
150 | ||
c35ed519 | 151 | fZN1Energy[0] = oldreco.GetZN1HREnergy(); |
152 | fZP1Energy[0] = oldreco.GetZP1HREnergy(); | |
153 | fZN2Energy[0] = oldreco.GetZN2HREnergy(); | |
154 | fZP2Energy[0] = oldreco.GetZP2HREnergy(); | |
155 | // | |
156 | fZN1Energy[1] = oldreco.GetZN1LREnergy(); | |
157 | fZP1Energy[1] = oldreco.GetZP1LREnergy(); | |
158 | fZN2Energy[1] = oldreco.GetZN2LREnergy(); | |
159 | fZP2Energy[1] = oldreco.GetZP2LREnergy(); | |
646f1679 | 160 | // |
161 | for(Int_t i=0; i<5; i++){ | |
c35ed519 | 162 | fZN1EnTow[i] = oldreco.GetZN1HREnTow(i); |
163 | fZP1EnTow[i] = oldreco.GetZP1HREnTow(i); | |
164 | fZN2EnTow[i] = oldreco.GetZN2HREnTow(i); | |
165 | fZP2EnTow[i] = oldreco.GetZP2HREnTow(i); | |
166 | fZN1EnTow[i+5] = oldreco.GetZN1LREnTow(i); | |
167 | fZP1EnTow[i+5] = oldreco.GetZP1LREnTow(i); | |
168 | fZN2EnTow[i+5] = oldreco.GetZN2LREnTow(i); | |
169 | fZP2EnTow[i+5] = oldreco.GetZP2LREnTow(i); | |
646f1679 | 170 | } |
c35ed519 | 171 | fZEM1signal[0] = oldreco.GetZEM1HRsignal(); |
172 | fZEM1signal[1] = oldreco.GetZEM1LRsignal(); | |
173 | fZEM2signal[0] = oldreco.GetZEM2HRsignal(); | |
174 | fZEM2signal[1] = oldreco.GetZEM2LRsignal(); | |
175 | fPMRef1[0] = oldreco.GetPMRef1HRsignal(); | |
176 | fPMRef1[1] = oldreco.GetPMRef1LRsignal(); | |
177 | fPMRef2[0] = oldreco.GetPMRef2HRsignal(); | |
178 | fPMRef2[1] = oldreco.GetPMRef2LRsignal(); | |
82dffa48 | 179 | for(Int_t j=0; j<32; j++){ |
180 | fZDCScaler[j] = oldreco.GetZDCScaler(j); | |
32e2fda5 | 181 | for(Int_t y=0; y<4; y++) fZDCTDCData[j][y] = oldreco.GetZDCTDCData(j, y); |
82dffa48 | 182 | } |
cc2abffd | 183 | } |
184 | ||
be004c43 | 185 | |
186 | //______________________________________________________________________________ | |
187 | AliZDCReco &AliZDCReco::operator= (const AliZDCReco &reco) | |
188 | { | |
189 | // assignment operator | |
190 | if(&reco == this) return *this; | |
191 | ||
192 | fNDetSpecNSideA = reco.GetNDetSpecNSideA(); | |
193 | fNDetSpecPSideA = reco.GetNDetSpecPSideA(); | |
194 | fNDetSpecNSideC = reco.GetNDetSpecNSideC(); | |
195 | fNDetSpecPSideC = reco.GetNDetSpecPSideC(); | |
196 | fNTrueSpectators = reco.GetNTrueSpectators(); | |
197 | fNTrueSpecSideA = reco.GetNTrueSpecSideA(); | |
198 | fNTrueSpecSideC = reco.GetNTrueSpecSideC(); | |
199 | fNParticipants = reco.GetNParticipants(); | |
200 | fNPartSideA = reco.GetNPartSideA(); | |
201 | fNPartSideC = reco.GetNPartSideC(); | |
202 | fImpParameter = reco.GetImpParameter(); | |
203 | fImpParSideA = reco.GetImpParSideA(); | |
204 | fImpParSideC = reco.GetImpParSideC(); | |
205 | fRecoFlag = reco.GetRecoFlag(); | |
206 | fEnergyFlag = reco.GetEnergyFlag(); | |
207 | fIsScalerOn = reco.IsScalerOn(); | |
208 | ||
209 | fZN1Energy[0] = reco.GetZN1HREnergy(); | |
210 | fZP1Energy[0] = reco.GetZP1HREnergy(); | |
211 | fZN2Energy[0] = reco.GetZN2HREnergy(); | |
212 | fZP2Energy[0] = reco.GetZP2HREnergy(); | |
213 | // | |
214 | fZN1Energy[1] = reco.GetZN1LREnergy(); | |
215 | fZP1Energy[1] = reco.GetZP1LREnergy(); | |
216 | fZN2Energy[1] = reco.GetZN2LREnergy(); | |
217 | fZP2Energy[1] = reco.GetZP2LREnergy(); | |
218 | // | |
219 | for(Int_t i=0; i<5; i++){ | |
220 | fZN1EnTow[i] = reco.GetZN1HREnTow(i); | |
221 | fZP1EnTow[i] = reco.GetZP1HREnTow(i); | |
222 | fZN2EnTow[i] = reco.GetZN2HREnTow(i); | |
223 | fZP2EnTow[i] = reco.GetZP2HREnTow(i); | |
224 | fZN1EnTow[i+5] = reco.GetZN1LREnTow(i); | |
225 | fZP1EnTow[i+5] = reco.GetZP1LREnTow(i); | |
226 | fZN2EnTow[i+5] = reco.GetZN2LREnTow(i); | |
227 | fZP2EnTow[i+5] = reco.GetZP2LREnTow(i); | |
228 | } | |
229 | fZEM1signal[0] = reco.GetZEM1HRsignal(); | |
230 | fZEM1signal[1] = reco.GetZEM1LRsignal(); | |
231 | fZEM2signal[0] = reco.GetZEM2HRsignal(); | |
232 | fZEM2signal[1] = reco.GetZEM2LRsignal(); | |
233 | fPMRef1[0] = reco.GetPMRef1HRsignal(); | |
234 | fPMRef1[1] = reco.GetPMRef1LRsignal(); | |
235 | fPMRef2[0] = reco.GetPMRef2HRsignal(); | |
236 | fPMRef2[1] = reco.GetPMRef2LRsignal(); | |
237 | for(Int_t j=0; j<32; j++){ | |
238 | fZDCScaler[j] = reco.GetZDCScaler(j); | |
239 | for(Int_t y=0; y<4; y++) fZDCTDCData[j][y] = reco.GetZDCTDCData(j, y); | |
240 | } | |
241 | ||
242 | ||
243 | return *this; | |
244 | } | |
245 | ||
93f80a6f | 246 | //______________________________________________________________________________ |
247 | void AliZDCReco::Print(Option_t *) const { | |
248 | // | |
249 | // Printing Reconstruction Parameters | |
250 | // | |
73bc3a3f | 251 | printf(" ****************** AliZDCReco object ******************\n" |
252 | " --------------- side A ---------------\n" | |
c2bb665a | 253 | " E_ZN = %1.2f TeV, E_ZP = %1.2f TeV, " |
254 | " E_ZEM1 = %1.2f TeV, E_ZEM2 = %1.2f TeV\n " | |
255 | " N_spec_n = %d, N_spec_p = %d," | |
256 | " N_part = %d, b = %1.4f fm\n" | |
73bc3a3f | 257 | " --------------- side C ---------------\n" |
c2bb665a | 258 | " E_ZN = %1.2f TeV, E_ZP = %1.2f TeV, " |
259 | " N_spec_n = %d, N_spec_p = %d," | |
260 | " N_part = %d, b = %1.4f fm\n" | |
73bc3a3f | 261 | " *******************************************************\n", |
4e1fc320 | 262 | fZN2Energy[0]/1000., fZP2Energy[0]/1000., |
73bc3a3f | 263 | fZEM1signal[0]/1000.,fZEM2signal[0]/1000., |
264 | fNDetSpecNSideA,fNDetSpecPSideA, fNPartSideA,fImpParSideA, | |
265 | fZN1Energy[0]/1000.,fZP1Energy[0]/1000., | |
266 | fNDetSpecNSideC,fNDetSpecPSideC,fNPartSideC,fImpParSideC); | |
267 | ||
93f80a6f | 268 | } |