]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliAODHeader.cxx
Removing newling
[u/mrichter/AliRoot.git] / STEER / AliAODHeader.cxx
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
25 ClassImp(AliAODHeader)
26
27 //______________________________________________________________________________
28 AliAODHeader::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   fZDCEMEnergy(-999.),
38   fNQTheta(0),
39   fQTheta(0x0),
40   fTriggerMask(0),
41   fRunNumber(-999),  
42   fRefMult(-999),
43   fRefMultPos(-999),
44   fRefMultNeg(-999),
45   fEventType(0),
46   fOrbitNumber(0),
47   fPeriodNumber(0),
48   fBunchCrossNumber(0),
49   fTriggerCluster(0)
50 {
51   // default constructor
52
53   SetName("header");
54 }
55
56 //______________________________________________________________________________
57 AliAODHeader::AliAODHeader(Int_t nRun, 
58                            UShort_t nBunchX,
59                            UInt_t nOrbit,
60                            UInt_t nPeriod,
61                            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   fZDCEMEnergy(-999.),
71   fNQTheta(0),
72   fQTheta(0x0),
73   fTriggerMask(0),
74   fRunNumber(nRun),
75   fRefMult(-999),
76   fRefMultPos(-999),
77   fRefMultNeg(-999),
78   fEventType(0),
79   fOrbitNumber(nOrbit),
80   fPeriodNumber(nPeriod),
81   fBunchCrossNumber(nBunchX),
82   fTriggerCluster(0)
83 {
84   // constructor
85
86   SetName("header");
87   SetTitle(title);
88 }
89
90 //______________________________________________________________________________
91 AliAODHeader::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                            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   fZDCEMEnergy(emEnergy),
119   fNQTheta(0),
120   fQTheta(0x0),
121   fTriggerMask(trigMask),
122   fRunNumber(nRun),  
123   fRefMult(refMult),
124   fRefMultPos(refMultPos),
125   fRefMultNeg(refMultNeg),
126   fEventType(evttype),
127   fOrbitNumber(nOrbit),
128   fPeriodNumber(nPeriod),
129   fBunchCrossNumber(nBunchX),
130   fTriggerCluster(trigClus)
131 {
132   // constructor
133
134   SetName("header");
135   SetTitle(title);
136 }
137
138 //______________________________________________________________________________
139 AliAODHeader::~AliAODHeader() 
140 {
141   // destructor
142   
143   RemoveQTheta();
144 }
145
146 //______________________________________________________________________________
147 AliAODHeader::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   fZDCEMEnergy(hdr.fZDCEMEnergy),
157   fNQTheta(0),
158   fQTheta(0x0),
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)
169 {
170   // Copy constructor.
171   
172   SetName(hdr.fName);
173   SetTitle(hdr.fTitle);
174   SetQTheta(hdr.fQTheta, hdr.fNQTheta);
175 }
176
177 //______________________________________________________________________________
178 AliAODHeader& 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     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;
203
204     SetName(hdr.fName);
205     SetTitle(hdr.fTitle);
206     SetQTheta(hdr.fQTheta, hdr.fNQTheta);
207   }
208
209
210   return *this;
211 }
212
213 //______________________________________________________________________________
214 void 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 //______________________________________________________________________________
234 Double_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 //______________________________________________________________________________
244 void AliAODHeader::RemoveQTheta()
245 {
246   delete[] fQTheta;
247   fQTheta = 0x0;
248   fNQTheta = 0;
249
250   return;
251 }
252
253 //______________________________________________________________________________
254 void 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 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);
277
278   if (fQTheta) {
279     for (UInt_t i = 0; i<(UInt_t)fNQTheta; i++) {
280       printf("QTheta[%d]              : %d\n", i, GetQTheta(i));
281     }
282   }
283
284   return;
285 }