#include "AliTriggerScalersESD.h"
#include "AliTriggerScalersRecordESD.h"
#include "AliTriggerIR.h"
+#include "AliLog.h"
ClassImp(AliESDHeader)
fL0TriggerInputs(0),
fL1TriggerInputs(0),
fL2TriggerInputs(0),
- fTriggerScalers(),
- fIRArray("AliTriggerIR",3)
+ 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];
}
fL0TriggerInputs(header.fL0TriggerInputs),
fL1TriggerInputs(header.fL1TriggerInputs),
fL2TriggerInputs(header.fL2TriggerInputs),
- fTriggerScalers(header.fTriggerScalers),
- fIRArray(*((TClonesArray*)header.fIRArray.Clone()))
+ 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)
fL1TriggerInputs = header.fL1TriggerInputs;
fL2TriggerInputs = header.fL2TriggerInputs;
fTriggerScalers = header.fTriggerScalers;
- fIRArray = header.fIRArray;
+ 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);
fL1TriggerInputs = 0;
fL2TriggerInputs = 0;
fTriggerScalers.Reset();
- fIRArray.Clear();
+ for(Int_t i=0;i<kNMaxIR;i++)if(fIRArray[i]){
+ delete fIRArray[i];
+ fIRArray[i]=0;
+ }
}
//______________________________________________________________________________
-void AliESDHeader::AddTriggerIR(const AliTriggerIR* ir)
+Bool_t AliESDHeader::AddTriggerIR(const AliTriggerIR* ir)
{
// Adds trigger interaction record to array
- new(fIRArray[fIRArray.GetEntriesFast()]) AliTriggerIR(*ir);
+ 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