1 /**************************************************************************
2 * Copyright(c) 1998-1999, 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 **************************************************************************/
16 //-------------------------------------------------------------------------
17 // Implementation of Class AliESDHeader
20 // Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch
21 //-------------------------------------------------------------------------
23 #include "AliESDHeader.h"
24 #include "AliTriggerScalersESD.h"
25 #include "AliTriggerScalersRecordESD.h"
26 #include "AliTriggerIR.h"
29 ClassImp(AliESDHeader)
31 //______________________________________________________________________________
32 AliESDHeader::AliESDHeader() :
39 fEventNumberInFile(0),
48 // default constructor
50 SetName("AliESDHeader");
51 fIRArray = new AliTriggerIR *[kNMaxIR];
52 for(Int_t i = 0; i<kNMaxIR ; i++) fIRArray[i] = 0;
55 AliESDHeader::~AliESDHeader()
58 for(Int_t i=0;i<kNMaxIR;i++)if(fIRArray[i])delete fIRArray[i];
62 AliESDHeader::AliESDHeader(const AliESDHeader &header) :
64 fTriggerMask(header.fTriggerMask),
65 fOrbitNumber(header.fOrbitNumber),
66 fTimeStamp(header.fTimeStamp),
67 fEventType(header.fEventType),
68 fPeriodNumber(header.fPeriodNumber),
69 fEventNumberInFile(header.fEventNumberInFile),
70 fBunchCrossNumber(header.fBunchCrossNumber),
71 fTriggerCluster(header.fTriggerCluster),
72 fL0TriggerInputs(header.fL0TriggerInputs),
73 fL1TriggerInputs(header.fL1TriggerInputs),
74 fL2TriggerInputs(header.fL2TriggerInputs),
75 fTriggerScalers(header.fTriggerScalers),
79 SetName(header.fName);
80 SetTitle(header.fTitle);
81 fIRArray = new AliTriggerIR *[kNMaxIR];
82 for(Int_t i = 0; i<kNMaxIR ; i++) {
83 if(header.fIRArray[i])fIRArray[i] = new AliTriggerIR(*header.fIRArray[i]);
88 AliESDHeader& AliESDHeader::operator=(const AliESDHeader &header)
92 AliVHeader::operator=(header);
93 fTriggerMask = header.fTriggerMask;
94 fOrbitNumber = header.fOrbitNumber;
95 fTimeStamp = header.fTimeStamp;
96 fEventType = header.fEventType;
97 fPeriodNumber = header.fPeriodNumber;
98 fEventNumberInFile = header.fEventNumberInFile;
99 fBunchCrossNumber = header.fBunchCrossNumber;
100 fTriggerCluster = header.fTriggerCluster;
101 fL0TriggerInputs = header.fL0TriggerInputs;
102 fL1TriggerInputs = header.fL1TriggerInputs;
103 fL2TriggerInputs = header.fL2TriggerInputs;
104 fTriggerScalers = header.fTriggerScalers;
105 fIRArray = new AliTriggerIR *[kNMaxIR];
106 for(Int_t i = 0; i<kNMaxIR ; i++) {
107 if(header.fIRArray[i])fIRArray[i] = new AliTriggerIR(*header.fIRArray[i]);
110 SetName(header.fName);
111 SetTitle(header.fTitle);
117 void AliESDHeader::Copy(TObject &obj) const
119 // this overwrites the virtual TOBject::Copy()
120 // to allow run time copying without casting
123 if(this==&obj)return;
124 AliESDHeader *robj = dynamic_cast<AliESDHeader*>(&obj);
125 if(!robj)return; // not an AliESDHeader
129 //______________________________________________________________________________
130 void AliESDHeader::Reset()
132 // reset all data members
138 fEventNumberInFile = 0;
139 fBunchCrossNumber = 0;
141 fL0TriggerInputs = 0;
142 fL1TriggerInputs = 0;
143 fL2TriggerInputs = 0;
144 fTriggerScalers.Reset();
145 for(Int_t i=0;i<kNMaxIR;i++)if(fIRArray[i]){
150 //______________________________________________________________________________
151 Bool_t AliESDHeader::AddTriggerIR(const AliTriggerIR* ir)
153 // Adds trigger interaction record to array
154 for(Int_t i=0;i<kNMaxIR;i++){
156 fIRArray[i]=const_cast<AliTriggerIR*>(ir);
160 //AliErrorClass("Attempt to add # of IRs > kNMaxIR \n");
163 //______________________________________________________________________________
164 void AliESDHeader::Print(const Option_t *) const
166 // Print some data members
167 printf("Event # %d in file Bunch crossing # %d Orbit # %d Trigger %lld \n",
168 GetEventNumberInFile(),
169 GetBunchCrossNumber(),