]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliRecoParam.cxx
The total mult in V0 became float number.
[u/mrichter/AliRoot.git] / STEER / AliRecoParam.cxx
index 9da24f92c726531f07f357dd9d0fa9dd21499c57..df851cd10b8af7de12099500137d6dbd5648732c 100644 (file)
@@ -28,6 +28,7 @@
 #include "TClass.h"
 #include "TObjArray.h"
 #include "TMath.h"
+#include "THashTable.h"
 #include "AliDetectorRecoParam.h"
 
 #include "AliLog.h"
@@ -189,10 +190,11 @@ void  AliRecoParam::Print(Option_t *option) const {
   }
 }
 
-void AliRecoParam::SetEventSpecie(const AliRunInfo *runInfo, const AliEventInfo &evInfo)
+void AliRecoParam::SetEventSpecie(const AliRunInfo *runInfo, const AliEventInfo &evInfo,
+                                 const THashTable *cosmicTriggersList)
 {
-  // To be implemented
-  // Here we return always kDefault!!
+  // Implemented according to the discussions
+  // and meetings with physics and trigger coordination
 
   fEventSpecie = kDefault;
 
@@ -202,6 +204,13 @@ void AliRecoParam::SetEventSpecie(const AliRunInfo *runInfo, const AliEventInfo
     return;
   }
 
+  // Special DAQ events considered as calibration events
+  if (evInfo.GetEventType() != 7) {
+    // START_OF_*, END_OF_*, CALIBRATION etc events
+    fEventSpecie = kCalib;
+    return;
+  }
+
   if (strcmp(runInfo->GetLHCState(),"STABLE_BEAMS") == 0) {
     // In case of stable beams
     if ((strcmp(runInfo->GetBeamType(),"A-A") == 0) ||
@@ -231,14 +240,7 @@ void AliRecoParam::SetEventSpecie(const AliRunInfo *runInfo, const AliEventInfo
 
     // Now we look into the trigger type in order to decide
     // on the remaining cases (cosmic event within LHC run,
-    // calibration, for example TPC laser, triggers within physics run,
-    // special DAQ events considered as calibration etc...)
-    if (evInfo.GetEventType() != 7) {
-      // START_OF_*, END_OF_*, CALIBRATION etc events
-      fEventSpecie = kCalib;
-      return;
-    }
-
+    // calibration, for example TPC laser, triggers within physics run
     TString triggerClasses = evInfo.GetTriggerClasses();
     TObjArray* trClassArray = triggerClasses.Tokenize(" ");
     Int_t nTrClasses = trClassArray->GetEntriesFast();
@@ -254,27 +256,18 @@ void AliRecoParam::SetEventSpecie(const AliRunInfo *runInfo, const AliEventInfo
        continue;
       }
 
-      TObjArray* tmp = trClass.Tokenize("-");
-      TObjString* bcName = (TObjString*)tmp->At(1);
-      if (bcName) {
-       if ((bcName->String().CompareTo("ABCE") == 0) ||
-           (bcName->String().CompareTo("E")    == 0) ||
-           (bcName->String().CompareTo("NONE") == 0)) {
-         // Cosmic triggers are identified by empty bunch-crossing mask
-         // The naming comvention is:
-         // A  filled bunch from A side, empty from C side
-         // B  filled bunch from both sides
-         // C  filled bunch from C side, empty from A side
-         // E  empty bunch from both sides
+      if (cosmicTriggersList) {
+       if (cosmicTriggersList->FindObject(trClass.Data())) {
+         // Cosmic trigger accorind to the table
+         // provided in OCDB
          cosmicTrigger = kTRUE;
-         delete tmp;
-         continue;
+         AliDebug(1,Form("Trigger %s identified as cosmic according to the list defined in OCDB.",
+                         trClass.Data()));
        }
       }
       else {
-       AliWarning(Form("Trigger class %s doesn't comply with the naming convention!",trClass.Data()));
+       AliDebug(1,"Cosmic trigger list is not provided, cosmic event specie is effectively disabled!");
       }
-      delete tmp;
 
       otherTrigger = kTRUE;
     }