ATLAS Offline Software
FilterCombinationAND.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 // FilterCombinationAND.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  ToolHandleArray<DerivationFramework::ISkimmingTool>::const_iterator filterIter = m_filtersToCombine.begin();
39  for (; filterIter != m_filtersToCombine.end(); ++filterIter) {
40 
41  }
42 
43  return StatusCode::SUCCESS;
44 }
45 
46 // The filter itself
48 {
49  ++m_ntot;
50  bool passesEvent=true;
51 
52  ToolHandleArray<DerivationFramework::ISkimmingTool>::const_iterator filterIter = m_filtersToCombine.begin();
53  for (; filterIter != m_filtersToCombine.end(); ++filterIter) {
54  bool thisFilterPasses = (*filterIter)->eventPassesFilter();
55  msg(MSG::DEBUG)<<" Filter "<<filterIter->name()<<" passes? "<<thisFilterPasses<<endmsg;
56  passesEvent = passesEvent && thisFilterPasses ;
57  }
58  msg(MSG::DEBUG)<<" AND of all filters passes? "<<passesEvent<<endmsg;
59  if (passesEvent) m_npass++;
60 
61  return passesEvent;
62 
63 }
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
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::FilterCombinationAND::initialize
virtual StatusCode initialize() override
Definition: FilterCombinationAND.cxx:28
DerivationFramework::FilterCombinationAND::eventPassesFilter
virtual bool eventPassesFilter() const override
Check that the current event passes this filter.
Definition: FilterCombinationAND.cxx:47
DerivationFramework::FilterCombinationAND::finalize
virtual StatusCode finalize() override
Definition: FilterCombinationAND.cxx:34
DerivationFramework::FilterCombinationAND::~FilterCombinationAND
~FilterCombinationAND()
Destructor.
Definition: FilterCombinationAND.cxx:24
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
DerivationFramework::FilterCombinationAND::FilterCombinationAND
FilterCombinationAND(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
Definition: FilterCombinationAND.cxx:14
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
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
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DEBUG
#define DEBUG
Definition: page_access.h:11
FilterCombinationAND.h
AthAlgTool
Definition: AthAlgTool.h:26
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
DerivationFramework::FilterCombinationAND::m_filtersToCombine
ToolHandleArray< ISkimmingTool > m_filtersToCombine
Definition: FilterCombinationAND.h:49