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