]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - STEER/AliAODHeader.cxx
Checks for bin change and resets the buffer status.
[u/mrichter/AliRoot.git] / STEER / AliAODHeader.cxx
... / ...
CommitLineData
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() :
29 AliVHeader(),
30 fMagneticField(-999.),
31 fMuonMagFieldScale(-999.),
32 fCentrality(-999.),
33 fZDCN1Energy(-999.),
34 fZDCP1Energy(-999.),
35 fZDCN2Energy(-999.),
36 fZDCP2Energy(-999.),
37 fNQTheta(0),
38 fQTheta(0x0),
39 fTriggerMask(0),
40 fRunNumber(-999),
41 fRefMult(-999),
42 fRefMultPos(-999),
43 fRefMultNeg(-999),
44 fEventType(0),
45 fOrbitNumber(0),
46 fPeriodNumber(0),
47 fBunchCrossNumber(0),
48 fTriggerCluster(0)
49{
50 // default constructor
51
52 SetName("header");
53 for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
54}
55
56//______________________________________________________________________________
57AliAODHeader::AliAODHeader(Int_t nRun,
58 UShort_t nBunchX,
59 UInt_t nOrbit,
60 UInt_t nPeriod,
61 const Char_t *title) :
62 AliVHeader(),
63 fMagneticField(-999.),
64 fMuonMagFieldScale(-999.),
65 fCentrality(-999.),
66 fZDCN1Energy(-999.),
67 fZDCP1Energy(-999.),
68 fZDCN2Energy(-999.),
69 fZDCP2Energy(-999.),
70 fNQTheta(0),
71 fQTheta(0x0),
72 fTriggerMask(0),
73 fRunNumber(nRun),
74 fRefMult(-999),
75 fRefMultPos(-999),
76 fRefMultNeg(-999),
77 fEventType(0),
78 fOrbitNumber(nOrbit),
79 fPeriodNumber(nPeriod),
80 fBunchCrossNumber(nBunchX),
81 fTriggerCluster(0)
82{
83 // constructor
84
85 SetName("header");
86 SetTitle(title);
87 for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
88}
89
90//______________________________________________________________________________
91AliAODHeader::AliAODHeader(Int_t nRun,
92 UShort_t nBunchX,
93 UInt_t nOrbit,
94 UInt_t nPeriod,
95 Int_t refMult,
96 Int_t refMultPos,
97 Int_t refMultNeg,
98 Double_t magField,
99 Double_t muonMagFieldScale,
100 Double_t cent,
101 Double_t n1Energy,
102 Double_t p1Energy,
103 Double_t n2Energy,
104 Double_t p2Energy,
105 Double_t *emEnergy,
106 ULong64_t trigMask,
107 UChar_t trigClus,
108 UInt_t evttype,
109 const Char_t *title) :
110 AliVHeader(),
111 fMagneticField(magField),
112 fMuonMagFieldScale(muonMagFieldScale),
113 fCentrality(cent),
114 fZDCN1Energy(n1Energy),
115 fZDCP1Energy(p1Energy),
116 fZDCN2Energy(n2Energy),
117 fZDCP2Energy(p2Energy),
118 fNQTheta(0),
119 fQTheta(0x0),
120 fTriggerMask(trigMask),
121 fRunNumber(nRun),
122 fRefMult(refMult),
123 fRefMultPos(refMultPos),
124 fRefMultNeg(refMultNeg),
125 fEventType(evttype),
126 fOrbitNumber(nOrbit),
127 fPeriodNumber(nPeriod),
128 fBunchCrossNumber(nBunchX),
129 fTriggerCluster(trigClus)
130{
131 // constructor
132
133 SetName("header");
134 SetTitle(title);
135 for(int j=0; j<2; j++) fZDCEMEnergy[j] = emEnergy[j];
136}
137
138//______________________________________________________________________________
139AliAODHeader::~AliAODHeader()
140{
141 // destructor
142
143 RemoveQTheta();
144}
145
146//______________________________________________________________________________
147AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
148 AliVHeader(hdr),
149 fMagneticField(hdr.fMagneticField),
150 fMuonMagFieldScale(hdr.fMuonMagFieldScale),
151 fCentrality(hdr.fCentrality),
152 fZDCN1Energy(hdr.fZDCN1Energy),
153 fZDCP1Energy(hdr.fZDCP1Energy),
154 fZDCN2Energy(hdr.fZDCN2Energy),
155 fZDCP2Energy(hdr.fZDCP2Energy),
156 fNQTheta(0),
157 fQTheta(0x0),
158 fTriggerMask(hdr.fTriggerMask),
159 fRunNumber(hdr.fRunNumber),
160 fRefMult(hdr.fRefMult),
161 fRefMultPos(hdr.fRefMultPos),
162 fRefMultNeg(hdr.fRefMultNeg),
163 fEventType(hdr.fEventType),
164 fOrbitNumber(hdr.fOrbitNumber),
165 fPeriodNumber(hdr.fPeriodNumber),
166 fBunchCrossNumber(hdr.fBunchCrossNumber),
167 fTriggerCluster(hdr.fTriggerCluster)
168{
169 // Copy constructor.
170
171 SetName(hdr.fName);
172 SetTitle(hdr.fTitle);
173 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
174 SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
175}
176
177//______________________________________________________________________________
178AliAODHeader& AliAODHeader::operator=(const AliAODHeader& hdr)
179{
180 // Assignment operator
181 if(this!=&hdr) {
182
183 AliVHeader::operator=(hdr);
184
185 fMagneticField = hdr.fMagneticField;
186 fMuonMagFieldScale= hdr.fMuonMagFieldScale;
187 fCentrality = hdr.fCentrality;
188 fZDCN1Energy = hdr.fZDCN1Energy;
189 fZDCP1Energy = hdr.fZDCP1Energy;
190 fZDCN2Energy = hdr.fZDCN2Energy;
191 fZDCP2Energy = hdr.fZDCP2Energy;
192 fTriggerMask = hdr.fTriggerMask;
193 fRunNumber = hdr.fRunNumber;
194 fRefMult = hdr.fRefMult;
195 fRefMultPos = hdr.fRefMultPos;
196 fRefMultNeg = hdr.fRefMultNeg;
197 fEventType = hdr.fEventType;
198 fOrbitNumber = hdr.fOrbitNumber;
199 fPeriodNumber = hdr.fPeriodNumber;
200 fBunchCrossNumber = hdr.fBunchCrossNumber;
201 fTriggerCluster = hdr.fTriggerCluster;
202
203 SetName(hdr.fName);
204 SetTitle(hdr.fTitle);
205 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
206 SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
207 }
208
209
210 return *this;
211}
212
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
253//______________________________________________________________________________
254void AliAODHeader::Print(Option_t* /*option*/) const
255{
256 // prints event information
257
258 printf("Run # : %d\n", fRunNumber);
259 printf("Bunch Crossing # : %d\n", fBunchCrossNumber);
260 printf("Orbit Number # : %d\n", fOrbitNumber);
261 printf("Period Number # : %d\n", fPeriodNumber);
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);
266 printf("Muon mag. field scale : %f\n", fMuonMagFieldScale);
267
268 printf("Centrality : %f\n", fCentrality);
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);
273 printf("ZDC EM1 Energy : %f\n", fZDCEMEnergy[0]);
274 printf("ZDC EM2 Energy : %f\n", fZDCEMEnergy[1]);
275 printf("ref. Multiplicity : %d\n", fRefMult);
276 printf("ref. Multiplicity (pos) : %d\n", fRefMultPos);
277 printf("ref. Multiplicity (neg) : %d\n", fRefMultNeg);
278
279 if (fQTheta) {
280 for (UInt_t i = 0; i<(UInt_t)fNQTheta; i++) {
281 printf("QTheta[%d] : %13.3e\n", i, GetQTheta(i));
282 }
283 }
284
285 return;
286}