]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliAODHeader.cxx
More corrections in return code (trying to make the return code of the GRP private...
[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"
24
25ClassImp(AliAODHeader)
26
27//______________________________________________________________________________
28AliAODHeader::AliAODHeader() :
9ae2e5e6 29 AliVHeader(),
df9db588 30 fMagneticField(-999.),
6b6f8d32 31 fMuonMagFieldScale(-999.),
df9db588 32 fCentrality(-999.),
6b6f8d32 33 fZDCN1Energy(-999.),
34 fZDCP1Energy(-999.),
35 fZDCN2Energy(-999.),
36 fZDCP2Energy(-999.),
ff254193 37 fNQTheta(0),
38 fQTheta(0x0),
df9db588 39 fTriggerMask(0),
df9db588 40 fRunNumber(-999),
41 fRefMult(-999),
42 fRefMultPos(-999),
43 fRefMultNeg(-999),
9333290e 44 fEventType(0),
45 fOrbitNumber(0),
46 fPeriodNumber(0),
47 fBunchCrossNumber(0),
df9db588 48 fTriggerCluster(0)
49{
50 // default constructor
9ae2e5e6 51
52 SetName("header");
a85132e7 53 for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
df9db588 54}
55
56//______________________________________________________________________________
31fd97b2 57AliAODHeader::AliAODHeader(Int_t nRun,
58 UShort_t nBunchX,
59 UInt_t nOrbit,
89cf15db 60 UInt_t nPeriod,
df9db588 61 Char_t *title) :
9ae2e5e6 62 AliVHeader(),
df9db588 63 fMagneticField(-999.),
6b6f8d32 64 fMuonMagFieldScale(-999.),
df9db588 65 fCentrality(-999.),
6b6f8d32 66 fZDCN1Energy(-999.),
67 fZDCP1Energy(-999.),
68 fZDCN2Energy(-999.),
69 fZDCP2Energy(-999.),
ff254193 70 fNQTheta(0),
71 fQTheta(0x0),
df9db588 72 fTriggerMask(0),
ff254193 73 fRunNumber(nRun),
df9db588 74 fRefMult(-999),
75 fRefMultPos(-999),
76 fRefMultNeg(-999),
9333290e 77 fEventType(0),
78 fOrbitNumber(nOrbit),
79 fPeriodNumber(nPeriod),
80 fBunchCrossNumber(nBunchX),
df9db588 81 fTriggerCluster(0)
82{
83 // constructor
9ae2e5e6 84
85 SetName("header");
86 SetTitle(title);
a85132e7 87 for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
df9db588 88}
89
90//______________________________________________________________________________
31fd97b2 91AliAODHeader::AliAODHeader(Int_t nRun,
92 UShort_t nBunchX,
93 UInt_t nOrbit,
89cf15db 94 UInt_t nPeriod,
df9db588 95 Int_t refMult,
96 Int_t refMultPos,
97 Int_t refMultNeg,
98 Double_t magField,
6b6f8d32 99 Double_t muonMagFieldScale,
df9db588 100 Double_t cent,
6b6f8d32 101 Double_t n1Energy,
102 Double_t p1Energy,
103 Double_t n2Energy,
104 Double_t p2Energy,
a85132e7 105 Double_t *emEnergy,
6b6f8d32 106 ULong64_t trigMask,
df9db588 107 UChar_t trigClus,
108 UInt_t evttype,
109 Char_t *title) :
9ae2e5e6 110 AliVHeader(),
df9db588 111 fMagneticField(magField),
6b6f8d32 112 fMuonMagFieldScale(muonMagFieldScale),
df9db588 113 fCentrality(cent),
6b6f8d32 114 fZDCN1Energy(n1Energy),
115 fZDCP1Energy(p1Energy),
116 fZDCN2Energy(n2Energy),
117 fZDCP2Energy(p2Energy),
ff254193 118 fNQTheta(0),
119 fQTheta(0x0),
df9db588 120 fTriggerMask(trigMask),
df9db588 121 fRunNumber(nRun),
122 fRefMult(refMult),
123 fRefMultPos(refMultPos),
124 fRefMultNeg(refMultNeg),
9333290e 125 fEventType(evttype),
126 fOrbitNumber(nOrbit),
127 fPeriodNumber(nPeriod),
128 fBunchCrossNumber(nBunchX),
df9db588 129 fTriggerCluster(trigClus)
130{
131 // constructor
9ae2e5e6 132
133 SetName("header");
134 SetTitle(title);
a85132e7 135 for(int j=0; j<2; j++) fZDCEMEnergy[j] = emEnergy[j];
df9db588 136}
137
138//______________________________________________________________________________
139AliAODHeader::~AliAODHeader()
140{
141 // destructor
ff254193 142
143 RemoveQTheta();
df9db588 144}
145
146//______________________________________________________________________________
147AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
9ae2e5e6 148 AliVHeader(hdr),
df9db588 149 fMagneticField(hdr.fMagneticField),
6b6f8d32 150 fMuonMagFieldScale(hdr.fMuonMagFieldScale),
df9db588 151 fCentrality(hdr.fCentrality),
6b6f8d32 152 fZDCN1Energy(hdr.fZDCN1Energy),
153 fZDCP1Energy(hdr.fZDCP1Energy),
154 fZDCN2Energy(hdr.fZDCN2Energy),
155 fZDCP2Energy(hdr.fZDCP2Energy),
ff254193 156 fNQTheta(0),
157 fQTheta(0x0),
df9db588 158 fTriggerMask(hdr.fTriggerMask),
df9db588 159 fRunNumber(hdr.fRunNumber),
160 fRefMult(hdr.fRefMult),
161 fRefMultPos(hdr.fRefMultPos),
162 fRefMultNeg(hdr.fRefMultNeg),
9333290e 163 fEventType(hdr.fEventType),
164 fOrbitNumber(hdr.fOrbitNumber),
165 fPeriodNumber(hdr.fPeriodNumber),
166 fBunchCrossNumber(hdr.fBunchCrossNumber),
df9db588 167 fTriggerCluster(hdr.fTriggerCluster)
168{
169 // Copy constructor.
9ae2e5e6 170
171 SetName(hdr.fName);
172 SetTitle(hdr.fTitle);
ff254193 173 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
a85132e7 174 SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
df9db588 175}
176
177//______________________________________________________________________________
178AliAODHeader& AliAODHeader::operator=(const AliAODHeader& hdr)
179{
180 // Assignment operator
181 if(this!=&hdr) {
6b6f8d32 182
9ae2e5e6 183 AliVHeader::operator=(hdr);
df9db588 184
31fd97b2 185 fMagneticField = hdr.fMagneticField;
6b6f8d32 186 fMuonMagFieldScale= hdr.fMuonMagFieldScale;
31fd97b2 187 fCentrality = hdr.fCentrality;
6b6f8d32 188 fZDCN1Energy = hdr.fZDCN1Energy;
189 fZDCP1Energy = hdr.fZDCP1Energy;
190 fZDCN2Energy = hdr.fZDCN2Energy;
191 fZDCP2Energy = hdr.fZDCP2Energy;
31fd97b2 192 fTriggerMask = hdr.fTriggerMask;
31fd97b2 193 fRunNumber = hdr.fRunNumber;
194 fRefMult = hdr.fRefMult;
195 fRefMultPos = hdr.fRefMultPos;
196 fRefMultNeg = hdr.fRefMultNeg;
9333290e 197 fEventType = hdr.fEventType;
198 fOrbitNumber = hdr.fOrbitNumber;
199 fPeriodNumber = hdr.fPeriodNumber;
200 fBunchCrossNumber = hdr.fBunchCrossNumber;
31fd97b2 201 fTriggerCluster = hdr.fTriggerCluster;
ff254193 202
203 SetName(hdr.fName);
204 SetTitle(hdr.fTitle);
205 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
a85132e7 206 SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
df9db588 207 }
208
9ae2e5e6 209
df9db588 210 return *this;
211}
212
ff254193 213//______________________________________________________________________________
214void AliAODHeader::SetQTheta(Double_t *QTheta, UInt_t size)
215{
216 if (QTheta && size>0) {
217 if (size != (UInt_t)fNQTheta) {
218 RemoveQTheta();
219 fNQTheta = size;
220 fQTheta = new Double_t[fNQTheta];
221 }
222
223 for (Int_t i = 0; i < fNQTheta; i++) {
224 fQTheta[i] = QTheta[i];
225 }
226 } else {
227 RemoveQTheta();
228 }
229
230 return;
231}
232
233//______________________________________________________________________________
234Double_t AliAODHeader::GetQTheta(UInt_t i) const
235{
236 if (fQTheta && i < (UInt_t)fNQTheta) {
237 return fQTheta[i];
238 } else {
239 return -999.;
240 }
241}
242
243//______________________________________________________________________________
244void AliAODHeader::RemoveQTheta()
245{
246 delete[] fQTheta;
247 fQTheta = 0x0;
248 fNQTheta = 0;
249
250 return;
251}
252
df9db588 253//______________________________________________________________________________
254void AliAODHeader::Print(Option_t* /*option*/) const
255{
256 // prints event information
257
df9db588 258 printf("Run # : %d\n", fRunNumber);
31fd97b2 259 printf("Bunch Crossing # : %d\n", fBunchCrossNumber);
260 printf("Orbit Number # : %d\n", fOrbitNumber);
89cf15db 261 printf("Period Number # : %d\n", fPeriodNumber);
df9db588 262 printf("Trigger mask : %lld\n", fTriggerMask);
263 printf("Trigger cluster : %d\n", fTriggerCluster);
264 printf("Event Type : %d\n", fEventType);
265 printf("Magnetic field : %f\n", fMagneticField);
6b6f8d32 266 printf("Muon mag. field scale : %f\n", fMuonMagFieldScale);
df9db588 267
268 printf("Centrality : %f\n", fCentrality);
6b6f8d32 269 printf("ZDC N1 Energy : %f\n", fZDCN1Energy);
270 printf("ZDC P1 Energy : %f\n", fZDCP1Energy);
271 printf("ZDC N2 Energy : %f\n", fZDCN2Energy);
272 printf("ZDC P2 Energy : %f\n", fZDCP2Energy);
a85132e7 273 printf("ZDC EM1 Energy : %f\n", fZDCEMEnergy[0]);
274 printf("ZDC EM2 Energy : %f\n", fZDCEMEnergy[1]);
df9db588 275 printf("ref. Multiplicity : %d\n", fRefMult);
276 printf("ref. Multiplicity (pos) : %d\n", fRefMultPos);
277 printf("ref. Multiplicity (neg) : %d\n", fRefMultNeg);
278
ff254193 279 if (fQTheta) {
280 for (UInt_t i = 0; i<(UInt_t)fNQTheta; i++) {
281 printf("QTheta[%d] : %d\n", i, GetQTheta(i));
282 }
283 }
284
285 return;
df9db588 286}