]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDHeader.cxx
Moved the call to StoreMCParticles to ANALYSIS/AnalysisTaskMCParticleFilter to allow...
[u/mrichter/AliRoot.git] / STEER / AliESDHeader.cxx
index 74287769f33c248c7c756804801bb63f5e7d7851..13d93d04332020c6aaa9de78e7bc4098ffd00c9c 100644 (file)
 //-------------------------------------------------------------------------
 
 #include "AliESDHeader.h"
-
+#include "AliTriggerScalersESD.h"
+#include "AliTriggerScalersRecordESD.h"
+#include "AliTriggerIR.h"
+#include "AliLog.h" 
 
 ClassImp(AliESDHeader)
 
@@ -35,17 +38,22 @@ AliESDHeader::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];
 }
 
 
@@ -58,12 +66,19 @@ AliESDHeader::AliESDHeader(const AliESDHeader &header) :
   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)
@@ -79,6 +94,14 @@ 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);
 
@@ -86,8 +109,18 @@ AliESDHeader& AliESDHeader::operator=(const AliESDHeader &header)
   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()
 {
@@ -100,8 +133,28 @@ 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
 {