Filling the trigger classes names into the ESDRun object. Initial version, could...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 25 Jan 2008 17:23:20 +0000 (17:23 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 25 Jan 2008 17:23:20 +0000 (17:23 +0000)
STEER/AliESDEvent.h
STEER/AliReconstruction.cxx

index 083f2aa..a8127b1 100644 (file)
@@ -103,6 +103,7 @@ public:
   Double_t  GetSigma2DiamondX() const {return  fESDRun->GetSigma2DiamondX();}
   Double_t  GetSigma2DiamondY() const {return  fESDRun->GetSigma2DiamondY();}
   void      GetDiamondCovXY(Float_t cov[3]) const {fESDRun->GetDiamondCovXY(cov);}   
+  void     SetTriggerClass(const char*name, Int_t index) {fESDRun->SetTriggerClass(name,index);}
   
 
   // HEADER
index 0cc8a74..0fb34bd 100644 (file)
 #include "AliAlignObj.h"
 
 #include "AliCentralTrigger.h"
+#include "AliTriggerConfiguration.h"
+#include "AliTriggerClass.h"
 #include "AliCTPRawStream.h"
 
 #include "AliAODEvent.h"
@@ -1646,6 +1648,8 @@ Bool_t AliReconstruction::FillTriggerESD(AliESDEvent*& esd)
   
   AliInfo("Filling trigger information into the ESD");
 
+  AliCentralTrigger *aCTP = NULL;
+
   if (fRawReader) {
     AliCTPRawStream input(fRawReader);
     if (!input.Next()) {
@@ -1654,6 +1658,13 @@ Bool_t AliReconstruction::FillTriggerESD(AliESDEvent*& esd)
     }
     esd->SetTriggerMask(input.GetClassMask());
     esd->SetTriggerCluster(input.GetClusterMask());
+
+    aCTP = new AliCentralTrigger();
+    TString configstr("");
+    if (!aCTP->LoadConfiguration(configstr)) { // Load CTP config from OCDB
+      AliError("No trigger configuration found in OCDB! The trigger classes information will no be stored in ESD!");
+      return kFALSE;
+    }
   }
   else {
     AliRunLoader *runloader = AliRunLoader::GetRunLoader();
@@ -1674,6 +1685,21 @@ Bool_t AliReconstruction::FillTriggerESD(AliESDEvent*& esd)
     }
   }
 
+  // Now fill the trigger class names into AliESDRun object
+  AliTriggerConfiguration *config = aCTP->GetConfiguration();
+  if (!config) {
+    AliError("No trigger configuration has been found! The trigger classes information will no be stored in ESD!");
+    return kFALSE;
+  }
+
+  const TObjArray& classesArray = config->GetClasses();
+  Int_t nclasses = classesArray.GetEntriesFast();
+  for( Int_t j=0; j<nclasses; j++ ) {
+    AliTriggerClass* trclass = (AliTriggerClass*)classesArray.At( j );
+    Int_t trindex = (Int_t)TMath::Log2(trclass->GetMask());
+    esd->SetTriggerClass(trclass->GetName(),trindex);
+  }
+
   return kTRUE;
 }