]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - STEER/AliESDHeader.cxx
Fixing (again) bug #59345
[u/mrichter/AliRoot.git] / STEER / AliESDHeader.cxx
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 1998-1999, 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//-------------------------------------------------------------------------
17// Implementation of Class AliESDHeader
18// Header data
19// for the ESD
20// Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch
21//-------------------------------------------------------------------------
22
23#include "AliESDHeader.h"
24#include "AliTriggerScalersESD.h"
25#include "AliTriggerScalersRecordESD.h"
26#include "AliTriggerIR.h"
27#include "AliLog.h"
28
29ClassImp(AliESDHeader)
30
31//______________________________________________________________________________
32AliESDHeader::AliESDHeader() :
33 AliVHeader(),
34 fTriggerMask(0),
35 fOrbitNumber(0),
36 fTimeStamp(0),
37 fEventType(0),
38 fPeriodNumber(0),
39 fEventNumberInFile(0),
40 fBunchCrossNumber(0),
41 fTriggerCluster(0),
42 fL0TriggerInputs(0),
43 fL1TriggerInputs(0),
44 fL2TriggerInputs(0),
45 fTriggerScalers()
46{
47 // default constructor
48
49 SetName("AliESDHeader");
50 for(Int_t i = 0; i<kNMaxIR ; i++) fIRArray[i] = 0;
51
52}
53AliESDHeader::~AliESDHeader()
54{
55 // destructor
56 for(Int_t i=0;i<kNMaxIR;i++)if(fIRArray[i])delete fIRArray[i];
57}
58
59
60AliESDHeader::AliESDHeader(const AliESDHeader &header) :
61 AliVHeader(header),
62 fTriggerMask(header.fTriggerMask),
63 fOrbitNumber(header.fOrbitNumber),
64 fTimeStamp(header.fTimeStamp),
65 fEventType(header.fEventType),
66 fPeriodNumber(header.fPeriodNumber),
67 fEventNumberInFile(header.fEventNumberInFile),
68 fBunchCrossNumber(header.fBunchCrossNumber),
69 fTriggerCluster(header.fTriggerCluster),
70 fL0TriggerInputs(header.fL0TriggerInputs),
71 fL1TriggerInputs(header.fL1TriggerInputs),
72 fL2TriggerInputs(header.fL2TriggerInputs),
73 fTriggerScalers(header.fTriggerScalers)
74{
75 // copy constructor
76 SetName(header.fName);
77 SetTitle(header.fTitle);
78 for(Int_t i = 0; i<kNMaxIR ; i++) {
79 if(header.fIRArray[i])fIRArray[i] = new AliTriggerIR(*header.fIRArray[i]);
80 else fIRArray[i]=0;
81 }
82}
83
84AliESDHeader& AliESDHeader::operator=(const AliESDHeader &header)
85{
86 // assigment operator
87 if(this!=&header) {
88 AliVHeader::operator=(header);
89 fTriggerMask = header.fTriggerMask;
90 fOrbitNumber = header.fOrbitNumber;
91 fTimeStamp = header.fTimeStamp;
92 fEventType = header.fEventType;
93 fPeriodNumber = header.fPeriodNumber;
94 fEventNumberInFile = header.fEventNumberInFile;
95 fBunchCrossNumber = header.fBunchCrossNumber;
96 fTriggerCluster = header.fTriggerCluster;
97 fL0TriggerInputs = header.fL0TriggerInputs;
98 fL1TriggerInputs = header.fL1TriggerInputs;
99 fL2TriggerInputs = header.fL2TriggerInputs;
100 fTriggerScalers = header.fTriggerScalers;
101 for(Int_t i = 0; i<kNMaxIR ; i++) {
102 if(header.fIRArray[i])fIRArray[i] = new AliTriggerIR(*header.fIRArray[i]);
103 else fIRArray[i]=0;
104 }
105 SetName(header.fName);
106 SetTitle(header.fTitle);
107
108 }
109 return *this;
110}
111
112void AliESDHeader::Copy(TObject &obj) const
113{
114 // this overwrites the virtual TOBject::Copy()
115 // to allow run time copying without casting
116 // in AliESDEvent
117
118 if(this==&obj)return;
119 AliESDHeader *robj = dynamic_cast<AliESDHeader*>(&obj);
120 if(!robj)return; // not an AliESDHeader
121 *robj = *this;
122
123}
124//______________________________________________________________________________
125void AliESDHeader::Reset()
126{
127 // reset all data members
128 fTriggerMask = 0;
129 fOrbitNumber = 0;
130 fTimeStamp = 0;
131 fEventType = 0;
132 fPeriodNumber = 0;
133 fEventNumberInFile = 0;
134 fBunchCrossNumber = 0;
135 fTriggerCluster = 0;
136 fL0TriggerInputs = 0;
137 fL1TriggerInputs = 0;
138 fL2TriggerInputs = 0;
139 fTriggerScalers.Reset();
140 for(Int_t i=0;i<kNMaxIR;i++)if(fIRArray[i]){
141 delete fIRArray[i];
142 fIRArray[i]=0;
143 }
144}
145//______________________________________________________________________________
146Bool_t AliESDHeader::AddTriggerIR(const AliTriggerIR* ir)
147{
148 // Adds trigger interaction record to array
149 for(Int_t i=0;i<kNMaxIR;i++){
150 if(!fIRArray[i]){
151 fIRArray[i]=const_cast<AliTriggerIR*>(ir);
152 return 0;
153 }
154 }
155 //AliErrorClass("Attempt to add # of IRs > kNMaxIR \n");
156 return 1;
157}
158//______________________________________________________________________________
159void AliESDHeader::Print(const Option_t *) const
160{
161 // Print some data members
162 printf("Event # %d in file Bunch crossing # %d Orbit # %d Trigger %lld \n",
163 GetEventNumberInFile(),
164 GetBunchCrossNumber(),
165 GetOrbitNumber(),
166 GetTriggerMask());
167}
168