]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliAODHeader.cxx
correct for warnings
[u/mrichter/AliRoot.git] / STEER / AliAODHeader.cxx
CommitLineData
df9db588 1/**************************************************************************
2 * Copyright(c) 1998-2007, 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
16/* $Id$ */
17
18//-------------------------------------------------------------------------
19// AOD event base class
20// Author: Markus Oldenburg, CERN
21//-------------------------------------------------------------------------
22
23#include "AliAODHeader.h"
1aa76f71 24#include <TGeoMatrix.h>
27346f69 25#include <TObjString.h>
df9db588 26
27ClassImp(AliAODHeader)
28
29//______________________________________________________________________________
30AliAODHeader::AliAODHeader() :
9ae2e5e6 31 AliVHeader(),
df9db588 32 fMagneticField(-999.),
6b6f8d32 33 fMuonMagFieldScale(-999.),
df9db588 34 fCentrality(-999.),
6b6f8d32 35 fZDCN1Energy(-999.),
36 fZDCP1Energy(-999.),
37 fZDCN2Energy(-999.),
38 fZDCP2Energy(-999.),
ff254193 39 fNQTheta(0),
40 fQTheta(0x0),
df9db588 41 fTriggerMask(0),
27346f69 42 fFiredTriggers(),
df9db588 43 fRunNumber(-999),
44 fRefMult(-999),
45 fRefMultPos(-999),
46 fRefMultNeg(-999),
dba4ebde 47 fNMuons(0),
48 fNDimuons(0),
9333290e 49 fEventType(0),
50 fOrbitNumber(0),
51 fPeriodNumber(0),
52 fBunchCrossNumber(0),
65b25288 53 fTriggerCluster(0),
54 fDiamondZ(0.),
55 fDiamondSig2Z(0.)
df9db588 56{
57 // default constructor
9ae2e5e6 58
59 SetName("header");
a85132e7 60 for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
613fc341 61 for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
62 fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
63 fDiamondCovXY[1]=0.;
1aa76f71 64 for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
65 for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
df9db588 66}
67
68//______________________________________________________________________________
31fd97b2 69AliAODHeader::AliAODHeader(Int_t nRun,
70 UShort_t nBunchX,
71 UInt_t nOrbit,
89cf15db 72 UInt_t nPeriod,
abfce367 73 const Char_t *title) :
9ae2e5e6 74 AliVHeader(),
df9db588 75 fMagneticField(-999.),
6b6f8d32 76 fMuonMagFieldScale(-999.),
df9db588 77 fCentrality(-999.),
6b6f8d32 78 fZDCN1Energy(-999.),
79 fZDCP1Energy(-999.),
80 fZDCN2Energy(-999.),
81 fZDCP2Energy(-999.),
ff254193 82 fNQTheta(0),
83 fQTheta(0x0),
df9db588 84 fTriggerMask(0),
27346f69 85 fFiredTriggers(),
ff254193 86 fRunNumber(nRun),
df9db588 87 fRefMult(-999),
88 fRefMultPos(-999),
89 fRefMultNeg(-999),
dba4ebde 90 fNMuons(0),
91 fNDimuons(0),
9333290e 92 fEventType(0),
93 fOrbitNumber(nOrbit),
94 fPeriodNumber(nPeriod),
95 fBunchCrossNumber(nBunchX),
65b25288 96 fTriggerCluster(0),
97 fDiamondZ(0.),
98 fDiamondSig2Z(0.)
df9db588 99{
100 // constructor
9ae2e5e6 101
102 SetName("header");
103 SetTitle(title);
a85132e7 104 for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
613fc341 105 for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
106 fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
107 fDiamondCovXY[1]=0.;
1aa76f71 108 for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
109 for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
df9db588 110}
111
112//______________________________________________________________________________
31fd97b2 113AliAODHeader::AliAODHeader(Int_t nRun,
114 UShort_t nBunchX,
115 UInt_t nOrbit,
89cf15db 116 UInt_t nPeriod,
df9db588 117 Int_t refMult,
118 Int_t refMultPos,
119 Int_t refMultNeg,
120 Double_t magField,
6b6f8d32 121 Double_t muonMagFieldScale,
df9db588 122 Double_t cent,
6b6f8d32 123 Double_t n1Energy,
124 Double_t p1Energy,
125 Double_t n2Energy,
126 Double_t p2Energy,
a85132e7 127 Double_t *emEnergy,
6b6f8d32 128 ULong64_t trigMask,
df9db588 129 UChar_t trigClus,
130 UInt_t evttype,
fa8b0e56 131 const Char_t *title,
132 Int_t nMuons,
133 Int_t nDimuons) :
9ae2e5e6 134 AliVHeader(),
df9db588 135 fMagneticField(magField),
6b6f8d32 136 fMuonMagFieldScale(muonMagFieldScale),
df9db588 137 fCentrality(cent),
6b6f8d32 138 fZDCN1Energy(n1Energy),
139 fZDCP1Energy(p1Energy),
140 fZDCN2Energy(n2Energy),
141 fZDCP2Energy(p2Energy),
ff254193 142 fNQTheta(0),
143 fQTheta(0x0),
df9db588 144 fTriggerMask(trigMask),
27346f69 145 fFiredTriggers(),
df9db588 146 fRunNumber(nRun),
147 fRefMult(refMult),
148 fRefMultPos(refMultPos),
149 fRefMultNeg(refMultNeg),
dba4ebde 150 fNMuons(nMuons),
151 fNDimuons(nDimuons),
9333290e 152 fEventType(evttype),
153 fOrbitNumber(nOrbit),
154 fPeriodNumber(nPeriod),
155 fBunchCrossNumber(nBunchX),
65b25288 156 fTriggerCluster(trigClus),
157 fDiamondZ(0.),
158 fDiamondSig2Z(0.)
fa8b0e56 159
df9db588 160{
161 // constructor
9ae2e5e6 162
163 SetName("header");
164 SetTitle(title);
a85132e7 165 for(int j=0; j<2; j++) fZDCEMEnergy[j] = emEnergy[j];
613fc341 166 for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
167 fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
168 fDiamondCovXY[1]=0.;
1aa76f71 169 for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
170 for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
df9db588 171}
172
173//______________________________________________________________________________
174AliAODHeader::~AliAODHeader()
175{
176 // destructor
ff254193 177
178 RemoveQTheta();
df9db588 179}
180
181//______________________________________________________________________________
182AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
9ae2e5e6 183 AliVHeader(hdr),
df9db588 184 fMagneticField(hdr.fMagneticField),
6b6f8d32 185 fMuonMagFieldScale(hdr.fMuonMagFieldScale),
df9db588 186 fCentrality(hdr.fCentrality),
6b6f8d32 187 fZDCN1Energy(hdr.fZDCN1Energy),
188 fZDCP1Energy(hdr.fZDCP1Energy),
189 fZDCN2Energy(hdr.fZDCN2Energy),
190 fZDCP2Energy(hdr.fZDCP2Energy),
ff254193 191 fNQTheta(0),
192 fQTheta(0x0),
df9db588 193 fTriggerMask(hdr.fTriggerMask),
27346f69 194 fFiredTriggers(hdr.fFiredTriggers),
df9db588 195 fRunNumber(hdr.fRunNumber),
196 fRefMult(hdr.fRefMult),
197 fRefMultPos(hdr.fRefMultPos),
198 fRefMultNeg(hdr.fRefMultNeg),
dba4ebde 199 fNMuons(hdr.fNMuons),
200 fNDimuons(hdr.fNDimuons),
9333290e 201 fEventType(hdr.fEventType),
202 fOrbitNumber(hdr.fOrbitNumber),
203 fPeriodNumber(hdr.fPeriodNumber),
204 fBunchCrossNumber(hdr.fBunchCrossNumber),
dba4ebde 205 fTriggerCluster(hdr.fTriggerCluster)
fa8b0e56 206
df9db588 207{
208 // Copy constructor.
9ae2e5e6 209
210 SetName(hdr.fName);
211 SetTitle(hdr.fTitle);
ff254193 212 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
a85132e7 213 SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
613fc341 214 for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
215 for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];
1aa76f71 216
217
218 for(Int_t m=0; m<kNPHOSMatrix; m++){
219 if(hdr.fPHOSMatrix[m])
220 fPHOSMatrix[m]=new TGeoHMatrix(*(hdr.fPHOSMatrix[m])) ;
221 else
222 fPHOSMatrix[m]=0;
223 }
224
225 for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
226 if(hdr.fEMCALMatrix[sm])
227 fEMCALMatrix[sm]=new TGeoHMatrix(*(hdr.fEMCALMatrix[sm])) ;
228 else
229 fEMCALMatrix[sm]=0;
230 }
231
df9db588 232}
233
234//______________________________________________________________________________
235AliAODHeader& AliAODHeader::operator=(const AliAODHeader& hdr)
236{
237 // Assignment operator
238 if(this!=&hdr) {
6b6f8d32 239
9ae2e5e6 240 AliVHeader::operator=(hdr);
df9db588 241
31fd97b2 242 fMagneticField = hdr.fMagneticField;
6b6f8d32 243 fMuonMagFieldScale= hdr.fMuonMagFieldScale;
31fd97b2 244 fCentrality = hdr.fCentrality;
6b6f8d32 245 fZDCN1Energy = hdr.fZDCN1Energy;
246 fZDCP1Energy = hdr.fZDCP1Energy;
247 fZDCN2Energy = hdr.fZDCN2Energy;
248 fZDCP2Energy = hdr.fZDCP2Energy;
31fd97b2 249 fTriggerMask = hdr.fTriggerMask;
27346f69 250 fFiredTriggers = hdr.fFiredTriggers;
31fd97b2 251 fRunNumber = hdr.fRunNumber;
252 fRefMult = hdr.fRefMult;
253 fRefMultPos = hdr.fRefMultPos;
254 fRefMultNeg = hdr.fRefMultNeg;
9333290e 255 fEventType = hdr.fEventType;
256 fOrbitNumber = hdr.fOrbitNumber;
257 fPeriodNumber = hdr.fPeriodNumber;
258 fBunchCrossNumber = hdr.fBunchCrossNumber;
31fd97b2 259 fTriggerCluster = hdr.fTriggerCluster;
fa8b0e56 260 fNMuons = hdr.fNMuons;
261 fNDimuons = hdr.fNDimuons;
262
ff254193 263
264 SetName(hdr.fName);
265 SetTitle(hdr.fTitle);
266 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
a85132e7 267 SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
613fc341 268 for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
269 for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];
1aa76f71 270
271 for(Int_t m=0; m<kNPHOSMatrix; m++){
272 if(hdr.fPHOSMatrix[m])
273 fPHOSMatrix[m]=new TGeoHMatrix(*(hdr.fPHOSMatrix[m])) ;
274 else
275 fPHOSMatrix[m]=0;
276 }
277
278 for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
279 if(hdr.fEMCALMatrix[sm])
280 fEMCALMatrix[sm]=new TGeoHMatrix(*(hdr.fEMCALMatrix[sm])) ;
281 else
282 fEMCALMatrix[sm]=0;
283 }
284
df9db588 285 }
286
9ae2e5e6 287
df9db588 288 return *this;
289}
290
ff254193 291//______________________________________________________________________________
292void AliAODHeader::SetQTheta(Double_t *QTheta, UInt_t size)
293{
294 if (QTheta && size>0) {
295 if (size != (UInt_t)fNQTheta) {
296 RemoveQTheta();
297 fNQTheta = size;
298 fQTheta = new Double_t[fNQTheta];
299 }
300
301 for (Int_t i = 0; i < fNQTheta; i++) {
302 fQTheta[i] = QTheta[i];
303 }
304 } else {
305 RemoveQTheta();
306 }
307
308 return;
309}
310
311//______________________________________________________________________________
312Double_t AliAODHeader::GetQTheta(UInt_t i) const
313{
314 if (fQTheta && i < (UInt_t)fNQTheta) {
315 return fQTheta[i];
316 } else {
317 return -999.;
318 }
319}
320
321//______________________________________________________________________________
322void AliAODHeader::RemoveQTheta()
323{
324 delete[] fQTheta;
325 fQTheta = 0x0;
326 fNQTheta = 0;
327
328 return;
329}
330
df9db588 331//______________________________________________________________________________
332void AliAODHeader::Print(Option_t* /*option*/) const
333{
334 // prints event information
335
df9db588 336 printf("Run # : %d\n", fRunNumber);
31fd97b2 337 printf("Bunch Crossing # : %d\n", fBunchCrossNumber);
338 printf("Orbit Number # : %d\n", fOrbitNumber);
89cf15db 339 printf("Period Number # : %d\n", fPeriodNumber);
df9db588 340 printf("Trigger mask : %lld\n", fTriggerMask);
341 printf("Trigger cluster : %d\n", fTriggerCluster);
342 printf("Event Type : %d\n", fEventType);
343 printf("Magnetic field : %f\n", fMagneticField);
6b6f8d32 344 printf("Muon mag. field scale : %f\n", fMuonMagFieldScale);
df9db588 345
346 printf("Centrality : %f\n", fCentrality);
6b6f8d32 347 printf("ZDC N1 Energy : %f\n", fZDCN1Energy);
348 printf("ZDC P1 Energy : %f\n", fZDCP1Energy);
349 printf("ZDC N2 Energy : %f\n", fZDCN2Energy);
350 printf("ZDC P2 Energy : %f\n", fZDCP2Energy);
a85132e7 351 printf("ZDC EM1 Energy : %f\n", fZDCEMEnergy[0]);
352 printf("ZDC EM2 Energy : %f\n", fZDCEMEnergy[1]);
df9db588 353 printf("ref. Multiplicity : %d\n", fRefMult);
354 printf("ref. Multiplicity (pos) : %d\n", fRefMultPos);
355 printf("ref. Multiplicity (neg) : %d\n", fRefMultNeg);
fa8b0e56 356 printf("number of muons : %d\n", fNMuons);
357 printf("number of dimuons : %d\n", fNDimuons);
df9db588 358
ff254193 359 if (fQTheta) {
360 for (UInt_t i = 0; i<(UInt_t)fNQTheta; i++) {
d067f357 361 printf("QTheta[%d] : %13.3e\n", i, GetQTheta(i));
ff254193 362 }
363 }
364
365 return;
df9db588 366}