ATLAS Offline Software
FilterCombinationOR.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // FilterCombinationOR.cxx, (c) ATLAS Detector software
8 
10 #include <vector>
11 #include <string>
12 
13 // Constructor
15  const std::string& n,
16  const IInterface* p ) :
17  AthAlgTool(t,n,p)
18  {
19  declareInterface<DerivationFramework::ISkimmingTool>(this);
20  declareProperty("FilterList", m_filtersToCombine);
21  }
22 
23 // Destructor
25 }
26 
27 // Athena initialize and finalize
29 {
30  ATH_MSG_VERBOSE("initialize() ...");
31  ATH_CHECK( m_filtersToCombine.retrieve());
32  return StatusCode::SUCCESS;
33 }
35 {
36  ATH_MSG_VERBOSE("finalize() ...");
37  ATH_MSG_INFO("Processed "<< m_ntot <<" events, "<< m_npass<<" events passed filter ");
38  return StatusCode::SUCCESS;
39 }
40 
41 // The filter itself
43 {
44  ++m_ntot;
45  bool passesEvent=false;
46 
47  ToolHandleArray<DerivationFramework::ISkimmingTool>::const_iterator filterIter = m_filtersToCombine.begin();
48  for (; filterIter != m_filtersToCombine.end(); ++filterIter) {
49  bool thisFilterPasses = (*filterIter)->eventPassesFilter();
50 
51  msg(MSG::DEBUG)<<" Filter "<<filterIter->name()<<" passes? "<<thisFilterPasses<<endmsg;
52  passesEvent = passesEvent || thisFilterPasses ;
53  }
54  msg(MSG::DEBUG)<<" OR of all filters passes? "<<passesEvent<<endmsg;
55  if (passesEvent) m_npass++;
56  return passesEvent;
57 
58 }
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::FilterCombinationOR::finalize
virtual StatusCode finalize() override
Definition: FilterCombinationOR.cxx:34
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
DerivationFramework::FilterCombinationOR::FilterCombinationOR
FilterCombinationOR(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
Definition: FilterCombinationOR.cxx:14
DerivationFramework::FilterCombinationOR::eventPassesFilter
virtual bool eventPassesFilter() const override
Check that the current event passes this filter.
Definition: FilterCombinationOR.cxx:42
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
FilterCombinationOR.h
beamspotman.n
n
Definition: beamspotman.py:731
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework::FilterCombinationOR::m_filtersToCombine
ToolHandleArray< ISkimmingTool > m_filtersToCombine
Definition: FilterCombinationOR.h:49
DerivationFramework::FilterCombinationOR::initialize
virtual StatusCode initialize() override
Definition: FilterCombinationOR.cxx:28
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DerivationFramework::FilterCombinationOR::~FilterCombinationOR
~FilterCombinationOR()
Destructor.
Definition: FilterCombinationOR.cxx:24
DEBUG
#define DEBUG
Definition: page_access.h:11
AthAlgTool
Definition: AthAlgTool.h:26
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7