1 /**************************************************************************
2 * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 //-------------------------------------------------------------------------
19 // AOD event base class
20 // Author: Markus Oldenburg, CERN
21 //-------------------------------------------------------------------------
23 #include "AliAODHeader.h"
25 ClassImp(AliAODHeader)
27 //______________________________________________________________________________
28 AliAODHeader::AliAODHeader() :
30 fMagneticField(-999.),
31 fMuonMagFieldScale(-999.),
51 // default constructor
56 //______________________________________________________________________________
57 AliAODHeader::AliAODHeader(Int_t nRun,
63 fMagneticField(-999.),
64 fMuonMagFieldScale(-999.),
80 fPeriodNumber(nPeriod),
81 fBunchCrossNumber(nBunchX),
90 //______________________________________________________________________________
91 AliAODHeader::AliAODHeader(Int_t nRun,
99 Double_t muonMagFieldScale,
111 fMagneticField(magField),
112 fMuonMagFieldScale(muonMagFieldScale),
114 fZDCN1Energy(n1Energy),
115 fZDCP1Energy(p1Energy),
116 fZDCN2Energy(n2Energy),
117 fZDCP2Energy(p2Energy),
118 fZDCEMEnergy(emEnergy),
121 fTriggerMask(trigMask),
124 fRefMultPos(refMultPos),
125 fRefMultNeg(refMultNeg),
127 fOrbitNumber(nOrbit),
128 fPeriodNumber(nPeriod),
129 fBunchCrossNumber(nBunchX),
130 fTriggerCluster(trigClus)
138 //______________________________________________________________________________
139 AliAODHeader::~AliAODHeader()
146 //______________________________________________________________________________
147 AliAODHeader::AliAODHeader(const AliAODHeader& 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 fZDCEMEnergy(hdr.fZDCEMEnergy),
159 fTriggerMask(hdr.fTriggerMask),
160 fRunNumber(hdr.fRunNumber),
161 fRefMult(hdr.fRefMult),
162 fRefMultPos(hdr.fRefMultPos),
163 fRefMultNeg(hdr.fRefMultNeg),
164 fEventType(hdr.fEventType),
165 fOrbitNumber(hdr.fOrbitNumber),
166 fPeriodNumber(hdr.fPeriodNumber),
167 fBunchCrossNumber(hdr.fBunchCrossNumber),
168 fTriggerCluster(hdr.fTriggerCluster)
173 SetTitle(hdr.fTitle);
174 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
177 //______________________________________________________________________________
178 AliAODHeader& AliAODHeader::operator=(const AliAODHeader& hdr)
180 // Assignment operator
183 AliVHeader::operator=(hdr);
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 fZDCEMEnergy = hdr.fZDCEMEnergy;
193 fTriggerMask = hdr.fTriggerMask;
194 fRunNumber = hdr.fRunNumber;
195 fRefMult = hdr.fRefMult;
196 fRefMultPos = hdr.fRefMultPos;
197 fRefMultNeg = hdr.fRefMultNeg;
198 fEventType = hdr.fEventType;
199 fOrbitNumber = hdr.fOrbitNumber;
200 fPeriodNumber = hdr.fPeriodNumber;
201 fBunchCrossNumber = hdr.fBunchCrossNumber;
202 fTriggerCluster = hdr.fTriggerCluster;
205 SetTitle(hdr.fTitle);
206 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
213 //______________________________________________________________________________
214 void AliAODHeader::SetQTheta(Double_t *QTheta, UInt_t size)
216 if (QTheta && size>0) {
217 if (size != (UInt_t)fNQTheta) {
220 fQTheta = new Double_t[fNQTheta];
223 for (Int_t i = 0; i < fNQTheta; i++) {
224 fQTheta[i] = QTheta[i];
233 //______________________________________________________________________________
234 Double_t AliAODHeader::GetQTheta(UInt_t i) const
236 if (fQTheta && i < (UInt_t)fNQTheta) {
243 //______________________________________________________________________________
244 void AliAODHeader::RemoveQTheta()
253 //______________________________________________________________________________
254 void AliAODHeader::Print(Option_t* /*option*/) const
256 // prints event information
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);
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 EM Energy : %f\n", fZDCEMEnergy);
274 printf("ref. Multiplicity : %d\n", fRefMult);
275 printf("ref. Multiplicity (pos) : %d\n", fRefMultPos);
276 printf("ref. Multiplicity (neg) : %d\n", fRefMultNeg);
279 for (UInt_t i = 0; i<(UInt_t)fNQTheta; i++) {
280 printf("QTheta[%d] : %d\n", i, GetQTheta(i));