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.),
50 // default constructor
53 for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
56 //______________________________________________________________________________
57 AliAODHeader::AliAODHeader(Int_t nRun,
61 const Char_t *title) :
63 fMagneticField(-999.),
64 fMuonMagFieldScale(-999.),
79 fPeriodNumber(nPeriod),
80 fBunchCrossNumber(nBunchX),
87 for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
90 //______________________________________________________________________________
91 AliAODHeader::AliAODHeader(Int_t nRun,
99 Double_t muonMagFieldScale,
109 const Char_t *title) :
111 fMagneticField(magField),
112 fMuonMagFieldScale(muonMagFieldScale),
114 fZDCN1Energy(n1Energy),
115 fZDCP1Energy(p1Energy),
116 fZDCN2Energy(n2Energy),
117 fZDCP2Energy(p2Energy),
120 fTriggerMask(trigMask),
123 fRefMultPos(refMultPos),
124 fRefMultNeg(refMultNeg),
126 fOrbitNumber(nOrbit),
127 fPeriodNumber(nPeriod),
128 fBunchCrossNumber(nBunchX),
129 fTriggerCluster(trigClus)
135 for(int j=0; j<2; j++) fZDCEMEnergy[j] = emEnergy[j];
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),
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)
172 SetTitle(hdr.fTitle);
173 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
174 SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
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 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;
204 SetTitle(hdr.fTitle);
205 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
206 SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
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 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);
280 for (UInt_t i = 0; i<(UInt_t)fNQTheta; i++) {
281 printf("QTheta[%d] : %13.3e\n", i, GetQTheta(i));