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.;
54 for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
55 fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
59 //______________________________________________________________________________
60 AliAODHeader::AliAODHeader(Int_t nRun,
64 const Char_t *title) :
66 fMagneticField(-999.),
67 fMuonMagFieldScale(-999.),
82 fPeriodNumber(nPeriod),
83 fBunchCrossNumber(nBunchX),
90 for(int j=0; j<2; j++) fZDCEMEnergy[j] = -999.;
91 for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
92 fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
96 //______________________________________________________________________________
97 AliAODHeader::AliAODHeader(Int_t nRun,
105 Double_t muonMagFieldScale,
115 const Char_t *title) :
117 fMagneticField(magField),
118 fMuonMagFieldScale(muonMagFieldScale),
120 fZDCN1Energy(n1Energy),
121 fZDCP1Energy(p1Energy),
122 fZDCN2Energy(n2Energy),
123 fZDCP2Energy(p2Energy),
126 fTriggerMask(trigMask),
129 fRefMultPos(refMultPos),
130 fRefMultNeg(refMultNeg),
132 fOrbitNumber(nOrbit),
133 fPeriodNumber(nPeriod),
134 fBunchCrossNumber(nBunchX),
135 fTriggerCluster(trigClus)
141 for(int j=0; j<2; j++) fZDCEMEnergy[j] = emEnergy[j];
142 for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
143 fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
147 //______________________________________________________________________________
148 AliAODHeader::~AliAODHeader()
155 //______________________________________________________________________________
156 AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
158 fMagneticField(hdr.fMagneticField),
159 fMuonMagFieldScale(hdr.fMuonMagFieldScale),
160 fCentrality(hdr.fCentrality),
161 fZDCN1Energy(hdr.fZDCN1Energy),
162 fZDCP1Energy(hdr.fZDCP1Energy),
163 fZDCN2Energy(hdr.fZDCN2Energy),
164 fZDCP2Energy(hdr.fZDCP2Energy),
167 fTriggerMask(hdr.fTriggerMask),
168 fRunNumber(hdr.fRunNumber),
169 fRefMult(hdr.fRefMult),
170 fRefMultPos(hdr.fRefMultPos),
171 fRefMultNeg(hdr.fRefMultNeg),
172 fEventType(hdr.fEventType),
173 fOrbitNumber(hdr.fOrbitNumber),
174 fPeriodNumber(hdr.fPeriodNumber),
175 fBunchCrossNumber(hdr.fBunchCrossNumber),
176 fTriggerCluster(hdr.fTriggerCluster)
181 SetTitle(hdr.fTitle);
182 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
183 SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
184 for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
185 for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];
188 //______________________________________________________________________________
189 AliAODHeader& AliAODHeader::operator=(const AliAODHeader& hdr)
191 // Assignment operator
194 AliVHeader::operator=(hdr);
196 fMagneticField = hdr.fMagneticField;
197 fMuonMagFieldScale= hdr.fMuonMagFieldScale;
198 fCentrality = hdr.fCentrality;
199 fZDCN1Energy = hdr.fZDCN1Energy;
200 fZDCP1Energy = hdr.fZDCP1Energy;
201 fZDCN2Energy = hdr.fZDCN2Energy;
202 fZDCP2Energy = hdr.fZDCP2Energy;
203 fTriggerMask = hdr.fTriggerMask;
204 fRunNumber = hdr.fRunNumber;
205 fRefMult = hdr.fRefMult;
206 fRefMultPos = hdr.fRefMultPos;
207 fRefMultNeg = hdr.fRefMultNeg;
208 fEventType = hdr.fEventType;
209 fOrbitNumber = hdr.fOrbitNumber;
210 fPeriodNumber = hdr.fPeriodNumber;
211 fBunchCrossNumber = hdr.fBunchCrossNumber;
212 fTriggerCluster = hdr.fTriggerCluster;
215 SetTitle(hdr.fTitle);
216 SetQTheta(hdr.fQTheta, hdr.fNQTheta);
217 SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
218 for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
219 for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];
226 //______________________________________________________________________________
227 void AliAODHeader::SetQTheta(Double_t *QTheta, UInt_t size)
229 if (QTheta && size>0) {
230 if (size != (UInt_t)fNQTheta) {
233 fQTheta = new Double_t[fNQTheta];
236 for (Int_t i = 0; i < fNQTheta; i++) {
237 fQTheta[i] = QTheta[i];
246 //______________________________________________________________________________
247 Double_t AliAODHeader::GetQTheta(UInt_t i) const
249 if (fQTheta && i < (UInt_t)fNQTheta) {
256 //______________________________________________________________________________
257 void AliAODHeader::RemoveQTheta()
266 //______________________________________________________________________________
267 void AliAODHeader::Print(Option_t* /*option*/) const
269 // prints event information
271 printf("Run # : %d\n", fRunNumber);
272 printf("Bunch Crossing # : %d\n", fBunchCrossNumber);
273 printf("Orbit Number # : %d\n", fOrbitNumber);
274 printf("Period Number # : %d\n", fPeriodNumber);
275 printf("Trigger mask : %lld\n", fTriggerMask);
276 printf("Trigger cluster : %d\n", fTriggerCluster);
277 printf("Event Type : %d\n", fEventType);
278 printf("Magnetic field : %f\n", fMagneticField);
279 printf("Muon mag. field scale : %f\n", fMuonMagFieldScale);
281 printf("Centrality : %f\n", fCentrality);
282 printf("ZDC N1 Energy : %f\n", fZDCN1Energy);
283 printf("ZDC P1 Energy : %f\n", fZDCP1Energy);
284 printf("ZDC N2 Energy : %f\n", fZDCN2Energy);
285 printf("ZDC P2 Energy : %f\n", fZDCP2Energy);
286 printf("ZDC EM1 Energy : %f\n", fZDCEMEnergy[0]);
287 printf("ZDC EM2 Energy : %f\n", fZDCEMEnergy[1]);
288 printf("ref. Multiplicity : %d\n", fRefMult);
289 printf("ref. Multiplicity (pos) : %d\n", fRefMultPos);
290 printf("ref. Multiplicity (neg) : %d\n", fRefMultNeg);
293 for (UInt_t i = 0; i<(UInt_t)fNQTheta; i++) {
294 printf("QTheta[%d] : %13.3e\n", i, GetQTheta(i));