//-------------------------------------------------------------------------
#include "AliESDHeader.h"
-
+#include "AliTriggerScalersESD.h"
+#include "AliTriggerScalersRecordESD.h"
+#include "AliTriggerIR.h"
+#include "AliLog.h"
ClassImp(AliESDHeader)
fPeriodNumber(0),
fEventNumberInFile(0),
fBunchCrossNumber(0),
- fTriggerCluster(0)
+ fTriggerCluster(0),
+ fL0TriggerInputs(0),
+ fL1TriggerInputs(0),
+ fL2TriggerInputs(0),
+ fTriggerScalers()
{
// default constructor
SetName("AliESDHeader");
-}
-
+ for(Int_t i = 0; i<kNMaxIR ; i++) fIRArray[i] = 0;
+}
AliESDHeader::~AliESDHeader()
{
// destructor
+ for(Int_t i=0;i<kNMaxIR;i++)if(fIRArray[i])delete fIRArray[i];
}
fPeriodNumber(header.fPeriodNumber),
fEventNumberInFile(header.fEventNumberInFile),
fBunchCrossNumber(header.fBunchCrossNumber),
- fTriggerCluster(header.fTriggerCluster)
+ fTriggerCluster(header.fTriggerCluster),
+ fL0TriggerInputs(header.fL0TriggerInputs),
+ fL1TriggerInputs(header.fL1TriggerInputs),
+ fL2TriggerInputs(header.fL2TriggerInputs),
+ fTriggerScalers(header.fTriggerScalers)
{
// copy constructor
-
SetName(header.fName);
SetTitle(header.fTitle);
+ for(Int_t i = 0; i<kNMaxIR ; i++) {
+ if(header.fIRArray[i])fIRArray[i] = new AliTriggerIR(*header.fIRArray[i]);
+ else fIRArray[i]=0;
+ }
}
AliESDHeader& AliESDHeader::operator=(const AliESDHeader &header)
fEventNumberInFile = header.fEventNumberInFile;
fBunchCrossNumber = header.fBunchCrossNumber;
fTriggerCluster = header.fTriggerCluster;
+ fL0TriggerInputs = header.fL0TriggerInputs;
+ fL1TriggerInputs = header.fL1TriggerInputs;
+ fL2TriggerInputs = header.fL2TriggerInputs;
+ fTriggerScalers = header.fTriggerScalers;
+ for(Int_t i = 0; i<kNMaxIR ; i++) {
+ if(header.fIRArray[i])fIRArray[i] = new AliTriggerIR(*header.fIRArray[i]);
+ else fIRArray[i]=0;
+ }
SetName(header.fName);
SetTitle(header.fTitle);
return *this;
}
+void AliESDHeader::Copy(TObject &obj) const
+{
+ // this overwrites the virtual TOBject::Copy()
+ // to allow run time copying without casting
+ // in AliESDEvent
+ if(this==&obj)return;
+ AliESDHeader *robj = dynamic_cast<AliESDHeader*>(&obj);
+ if(!robj)return; // not an AliESDHeader
+ *robj = *this;
+}
//______________________________________________________________________________
void AliESDHeader::Reset()
{
fEventNumberInFile = 0;
fBunchCrossNumber = 0;
fTriggerCluster = 0;
+ fL0TriggerInputs = 0;
+ fL1TriggerInputs = 0;
+ fL2TriggerInputs = 0;
+ fTriggerScalers.Reset();
+ for(Int_t i=0;i<kNMaxIR;i++)if(fIRArray[i]){
+ delete fIRArray[i];
+ fIRArray[i]=0;
+ }
+}
+//______________________________________________________________________________
+Bool_t AliESDHeader::AddTriggerIR(const AliTriggerIR* ir)
+{
+ // Adds trigger interaction record to array
+ for(Int_t i=0;i<kNMaxIR;i++){
+ if(!fIRArray[i]){
+ fIRArray[i]=const_cast<AliTriggerIR*>(ir);
+ return 0;
+ }
+ }
+ //AliErrorClass("Attempt to add # of IRs > kNMaxIR \n");
+ return 1;
}
-
//______________________________________________________________________________
void AliESDHeader::Print(const Option_t *) const
{