]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Method to check if the detector was readout in given event (Francesco Prino)
authorshahoian <shahoian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 10 Jan 2013 13:34:28 +0000 (13:34 +0000)
committershahoian <shahoian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 10 Jan 2013 13:34:28 +0000 (13:34 +0000)
STEER/ESD/AliESDEvent.cxx
STEER/ESD/AliESDEvent.h

index 2e734278d18f5784242391428e39d3a3d89bf6a7..58fd248f59028a85dbbbbd7863f68b5612f53fa8 100644 (file)
@@ -72,6 +72,9 @@
 #include "AliESDHLTDecision.h"
 #include "AliCentrality.h"
 #include "AliESDCosmicTrack.h"
+#include "AliTriggerConfiguration.h"
+#include "AliTriggerClass.h"
+#include "AliTriggerCluster.h"
 #ifdef MFT_UPGRADE
 #include "AliESDMFT.h"
 #endif
@@ -548,6 +551,24 @@ Int_t AliESDEvent::AddV0(const AliESDv0 *v) {
   return idx;
 }  
 
+//______________________________________________________________________________
+Bool_t AliESDEvent::IsDetectorInTriggerCluster(TString detector, AliTriggerConfiguration* trigConf) const {
+  // Check if a given detector was read-out in the analyzed event
+  const TObjArray& classesArray=trigConf->GetClasses();
+  ULong64_t trigMask=GetTriggerMask();
+  Int_t nclasses = classesArray.GetEntriesFast();
+  for(Int_t iclass=0; iclass < nclasses; iclass++ ) {
+    AliTriggerClass* trclass = (AliTriggerClass*)classesArray.At(iclass);
+    Int_t classMask=trclass->GetMask();
+    if(trigMask & classMask){
+      TString detList=trclass->GetCluster()->GetDetectorsInCluster();
+      if(detList.Contains(detector.Data())){
+       return kTRUE;
+      }
+    }
+  }
+  return kFALSE; 
+}
 //______________________________________________________________________________
 void AliESDEvent::Print(Option_t *) const 
 {
index fb2046feb68b0bda6965129d640f3148ec92f8b5..5f81e2cf281ef633b8a93806eb3b006df39faec2 100644 (file)
@@ -202,7 +202,7 @@ public:
   Int_t     GetEventNumberInFile() const {return fHeader?fHeader->GetEventNumberInFile():-1;}
   UShort_t  GetBunchCrossNumber() const {return fHeader?fHeader->GetBunchCrossNumber():0;}
   UChar_t   GetTriggerCluster() const {return fHeader?fHeader->GetTriggerCluster():0;}
-
+  Bool_t IsDetectorInTriggerCluster(TString detector, AliTriggerConfiguration* trigConf) const;
   // ZDC CKB: put this in the header?
   AliESDZDC*    GetESDZDC()  const {return fESDZDC;}
   AliESDZDC*    GetZDCData() const {return fESDZDC;}
@@ -502,6 +502,7 @@ public:
   ULong_t GetDetectorStatus() const {return fDetectorStatus;}
   Bool_t IsDetectorOn(ULong_t detMask) const {return (fDetectorStatus&detMask)>0;}
 
+  
 protected:
   AliESDEvent(const AliESDEvent&);
   static Bool_t ResetWithPlacementNew(TObject *pObject);