]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
set an array of trigger bits to reject or accept events that pass the physics selecti...
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 26 Jul 2013 16:00:22 +0000 (16:00 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 26 Jul 2013 16:00:22 +0000 (16:00 +0000)
PWG/CaloTrackCorrBase/AliCaloTrackReader.cxx
PWG/CaloTrackCorrBase/AliCaloTrackReader.h

index 556cd1bc1e37c21a9b6ac992f9d53dab30fd840d..c2d1289af37ae20882b5d8790454285afa10f37f 100755 (executable)
@@ -127,7 +127,8 @@ fCentralityClass(""),        fCentralityOpt(0),
 fEventPlaneMethod(""),       fImportGeometryFromFile(kFALSE), fImportGeometryFilePath(""),
 fAcceptOnlyHIJINGLabels(0),  fNMCProducedMin(0), fNMCProducedMax(0),
 fFillInputNonStandardJetBranch(kFALSE),
-fNonStandardJets(new TClonesArray("AliAODJet",100)),fInputNonStandardJetBranchName("jets")
+fNonStandardJets(new TClonesArray("AliAODJet",100)),fInputNonStandardJetBranchName("jets"),
+fAcceptEventsWithBit(0),     fRejectEventsWithBit(0)
 {
   //Ctor
   
@@ -190,6 +191,9 @@ AliCaloTrackReader::~AliCaloTrackReader()
     delete fNonStandardJets ;
   }
   
+  fRejectEventsWithBit.Reset();
+  fAcceptEventsWithBit.Reset();
+  
   //  Pointers not owned, done by the analysis frame
   //  if(fInputEvent)  delete fInputEvent ;
   //  if(fOutputEvent) delete fOutputEvent ;
@@ -213,6 +217,61 @@ Bool_t  AliCaloTrackReader::AcceptDCA(const Float_t pt, const Float_t dca)
   
 }
 
+//_____________________________________________________
+Bool_t  AliCaloTrackReader::AcceptEventWithTriggerBit()
+{
+  // Accept events that pass the physics selection
+  // depending on an array of trigger bits set during the configuration
+  
+  Int_t nAccept = fAcceptEventsWithBit.GetSize();
+  
+  //printf("N accept %d\n", nAccept);
+  
+  if( nAccept <= 0 )
+    return kTRUE ; // accept the event
+  
+  UInt_t trigFired = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
+  
+  for(Int_t ibit = 0; ibit < nAccept; ibit++)
+  {
+    Bool_t accept = (trigFired & fAcceptEventsWithBit.At(ibit));
+    
+    //printf("accept %d, ibit %d, bit %d \n",accept, ibit,fAcceptEventsWithBit.At(ibit));
+    if(accept) return kTRUE ; // accept the event
+  }
+  
+  return kFALSE ; // reject the event
+  
+}
+
+//_____________________________________________________
+Bool_t  AliCaloTrackReader::RejectEventWithTriggerBit()
+{
+  // Reject events that pass the physics selection
+  // depending on an array of trigger bits set during the configuration
+
+  Int_t nReject = fRejectEventsWithBit.GetSize();
+  
+  //printf("N reject %d\n", nReject);
+  
+  if( nReject <= 0 )
+    return kTRUE ; // accept the event
+  
+  UInt_t trigFired = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
+  
+  for(Int_t ibit = 0; ibit < nReject; ibit++)
+  {
+    Bool_t reject = (trigFired & fRejectEventsWithBit.At(ibit));
+    
+    //printf("reject %d, ibit %d, bit %d \n",reject, ibit,fRejectEventsWithBit.At(ibit));
+    if(reject) return kFALSE ; // reject the event
+  }
+  
+  return kTRUE ; // accept the event
+  
+}
+
+
 //________________________________________________
 Bool_t AliCaloTrackReader::ComparePtHardAndJetPt()
 {
@@ -938,9 +997,22 @@ Bool_t AliCaloTrackReader::FillInputEvent(const Int_t iEntry,
     if(reject) return kFALSE;
   }// Remove LED events
   
-  //------------------------
-  // Reject pure LED events?
-  //-------------------------
+  //-------------------------------------------------------------------------------------
+  // Reject or accept events depending on the trigger bit
+  //-------------------------------------------------------------------------------------
+  
+  //printf("AliCaloTrackReader::FillInputEvent() - FiredTriggerClass <%s>\n", GetFiredTriggerClasses().Data());
+  
+  Bool_t okA = AcceptEventWithTriggerBit();
+  Bool_t okR = RejectEventWithTriggerBit();
+
+  //printf("AliCaloTrackReader::FillInputEvent() - Accept event? %d, Reject event %d? \n",okA,okR);
+  
+  if(!okA || !okR) return kFALSE;
+  
+  //-----------------------------------------------------------
+  // Reject events depending on the trigger name and event type
+  //-----------------------------------------------------------
   if( fFiredTriggerClassName  !="" && !fAnaLED)
   {
     //printf("Event type %d\n",eventType);
index 25eff5040422a86ea20a11a277cfe2f5dcd2f58c..f56a582bd40002c331a438963b4c8a32cd3b0d62 100755 (executable)
@@ -246,6 +246,16 @@ public:
   void             RejectFastClusterEvents()               { fAcceptFastCluster     = kFALSE ; }  
   Bool_t           IsFastClusterAccepted()           const { return fAcceptFastCluster       ; }   
   
+  Bool_t           AcceptEventWithTriggerBit();
+  Bool_t           RejectEventWithTriggerBit();
+  void             SetAcceptEventsWithBit(UInt_t bit)      { Int_t n = fAcceptEventsWithBit.GetSize();
+                                                             fAcceptEventsWithBit.Set(n+1);
+                                                             fAcceptEventsWithBit.AddAt(bit,n) ; }
+  
+  void             SetRejectEventsWithBit(UInt_t bit)      { Int_t n = fRejectEventsWithBit.GetSize();
+                                                             fRejectEventsWithBit.Set(n+1);
+                                                             fRejectEventsWithBit.AddAt(bit,n) ; }
+
   void             SwitchOnLEDEventsRemoval()              { fRemoveLEDEvents       = kTRUE  ; }
   void             SwitchOffLEDEventsRemoval()             { fRemoveLEDEvents       = kFALSE ; }
   Bool_t           IsLEDEventRemoved()               const { return fRemoveLEDEvents         ; }   
@@ -732,15 +742,17 @@ public:
   Int_t            fNMCProducedMax;             // In case of cocktail, select particles in the list with label up to this value
   
   // jets
-  
   Bool_t           fFillInputNonStandardJetBranch;  // Flag to use data from non standard jets
   TClonesArray *   fNonStandardJets;                //! temporal array with jets
   TString          fInputNonStandardJetBranchName;  // Name of non standard jet branch
   
+  TArrayI          fAcceptEventsWithBit;           // Accept events if trigger bit is on
+  TArrayI          fRejectEventsWithBit;           // Reject events if trigger bit is on
+
   AliCaloTrackReader(              const AliCaloTrackReader & r) ; // cpy ctor
   AliCaloTrackReader & operator = (const AliCaloTrackReader & r) ; // cpy assignment
   
-  ClassDef(AliCaloTrackReader,59)
+  ClassDef(AliCaloTrackReader,60)
   
 } ;