Make the EMCal trigger 1024 adc bug rejection optional (now *disabled* by default...
authorsaiola <salvatore.aiola@cern.ch>
Wed, 5 Nov 2014 20:11:01 +0000 (15:11 -0500)
committerhristov <Peter.Hristov@cern.ch>
Thu, 6 Nov 2014 10:15:30 +0000 (11:15 +0100)
PWG/EMCAL/AliEmcalPhysicsSelection.cxx
PWG/EMCAL/AliEmcalPhysicsSelection.h
PWG/EMCAL/macros/AddTaskEmcalPhysicsSelection.C

index d44fcba..e7404ec 100644 (file)
@@ -263,27 +263,29 @@ UInt_t AliEmcalPhysicsSelection::GetSelectionMask(const TObject* obj)
     }
   }
 
-  // Check for trigger patches with 1024 bug
-  // event declared bad if at least one found
-  AliVCaloTrigger *emcaltriggers = ev->GetCaloTrigger(eev == NULL ? "EMCALTrigger" : "emcalTrigger");
-  if(emcaltriggers){
-    emcaltriggers->Reset();
-    Int_t adc;
-    Bool_t isBad = false;
-    while(emcaltriggers->Next()){
-      emcaltriggers->GetL1TimeSum(adc);
-      isBad = false;
-      // check for multiples of 1024
-      for(int i = 0; i < 20; i++){
-        if(adc == 1024 * i){
-          isBad = true;
+  if (fSkip1024Bug) {
+    // Check for trigger patches with 1024 bug
+    // event declared bad if at least one found
+    AliVCaloTrigger *emcaltriggers = ev->GetCaloTrigger(eev == NULL ? "EMCALTrigger" : "emcalTrigger");
+    if(emcaltriggers){
+      emcaltriggers->Reset();
+      Int_t adc;
+      Bool_t isBad = false;
+      while(emcaltriggers->Next()){
+        emcaltriggers->GetL1TimeSum(adc);
+        isBad = false;
+        // check for multiples of 1024
+        for(int i = 0; i < 20; i++){
+          if(adc == 1024 * i){
+            isBad = true;
+            break;
+          }
+        }
+        if(isBad){
+          fIsGoodEvent = kFALSE;
           break;
         }
       }
-      if(isBad){
-        fIsGoodEvent = kFALSE;
-        break;
-      }
     }
   }
 
index 1ca1a5c..7e6d5a7 100644 (file)
@@ -1,8 +1,6 @@
 #ifndef ALIEMCALPHYSICSSELECTION_H
 #define ALIEMCALPHYSICSSELECTION_H
 
-// $Id$
-
 #include "AliPhysicsSelection.h"
 
 class AliEmcalPhysicsSelection: public AliPhysicsSelection
@@ -27,6 +25,7 @@ class AliEmcalPhysicsSelection: public AliPhysicsSelection
   void           SetMarkLedEvent(Bool_t b)     { fMarkLedEvent = b; }
   void           SetSkipFastOnly(Bool_t b)     { fSkipFastOnly = b; }
   void           SetSkipLedEvent(Bool_t b)     { fSkipLedEvent = b; }
+  void           SetSkip1024Bug(Bool_t b)      { fSkip1024Bug  = b; }
   void           SetTrackMinPt(Double_t p)     { fTrackMinPt   = p; }
   void           SetTriggers(UInt_t t)         { fTriggers     = t; }
   void           SetZVertex(Double_t z=10)     { fZvertex      = z; }
@@ -44,6 +43,7 @@ class AliEmcalPhysicsSelection: public AliPhysicsSelection
   Bool_t         fMarkLedEvent;      //=true then mark Led events (only for LHC11a)
   Bool_t         fSkipFastOnly;      //=true then skip FastOnly events (only for LHC11a)
   Bool_t         fSkipLedEvent;      //=true then skip Led events (only for LHC11a)
+  Bool_t         fSkip1024Bug;       //=true then skip 1024 EMC trigger bug (only for LHC11h)
   Double_t       fCellMinE;          //minimum cell energy (<0 -> do not compute)
   Double_t       fClusMinE;          //minimum clus energy (<0 -> do not compute)
   Double_t       fTrackMinPt;        //minimum track pt    (<0 -> do not compute)
@@ -61,6 +61,6 @@ class AliEmcalPhysicsSelection: public AliPhysicsSelection
   Double_t       fClusMaxE;          //!maximum clus energy in event
   Double_t       fTrackMaxPt;        //!maximum track pt in event
 
-  ClassDef(AliEmcalPhysicsSelection, 4); // Emcal physics selection
+  ClassDef(AliEmcalPhysicsSelection, 5); // Emcal physics selection
 };
 #endif
index bca86d2..804d011 100644 (file)
@@ -1,5 +1,3 @@
-// $Id$
-
 AliEmcalPhysicsSelectionTask* AddTaskEmcalPhysicsSelection(
   Bool_t exFOnly, 
   Bool_t wHistos   = kTRUE,
@@ -12,7 +10,8 @@ AliEmcalPhysicsSelectionTask* AddTaskEmcalPhysicsSelection(
   Double_t cmax    = -1,
   Double_t minCellTrackScale = -1,
   Double_t maxCellTrackScale = -1,
-  Bool_t byPassPhysSelTask = kFALSE
+  Bool_t byPassPhysSelTask = kFALSE,
+  Bool_t skip1024Bug = kFALSE
 )
 {
   if(byPassPhysSelTask)
@@ -46,6 +45,7 @@ AliEmcalPhysicsSelectionTask* AddTaskEmcalPhysicsSelection(
     physSel->SetZVertex(vz);
     physSel->SetCheckZvertexDiff(vzdiff);
     physSel->SetCellTrackScale(minCellTrackScale,maxCellTrackScale);
+    physSel->SetSkip1024Bug(skip1024Bug);
   } else {
     ::Error("AddTaskEmcalPhysicsSelection", "No AliEmcalPhysicsSelection object found.");
   }