ATLAS Offline Software
IAthSelectionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef INDETPHYSVALMONITORING_IATHSELECTIONTOOL_H
6 #define INDETPHYSVALMONITORING_IATHSELECTIONTOOL_H
7 
17 //Gaudi
18 #include "GaudiKernel/IAlgTool.h"
19 #include "xAODBase/IParticle.h"
20 #include <string>
21 #include <vector>
22 
23 static const InterfaceID IID_IAthSelectionTool("IAthSelectionTool",1,0);
24 
25 
27 class IAthSelectionTool:virtual public IAlgTool{
28 public:
29 
30  class CutResult {
31  public:
32  CutResult(unsigned int missing_cuts) : m_missingCuts(missing_cuts) {}
33 
34  unsigned int missingCuts() const {
35  return m_missingCuts;
36  }
37 
38  operator bool() const {
39  return m_missingCuts==0;
40  }
41 
42  private:
43  unsigned int m_missingCuts = 0;
44  };
45 
47  static const InterfaceID & interfaceID();
49  virtual ~IAthSelectionTool(){ }
50 
56  testAllCuts(const xAOD::IParticle * p, std::vector<unsigned int> &counter) const = 0;
57 
63 
67  virtual unsigned int nCuts() const = 0;
68 
70  virtual std::vector<std::string> names() const = 0;
71 };
72 
73 inline const InterfaceID & IAthSelectionTool::interfaceID(){
74  return IID_IAthSelectionTool;
75 }
76 
77 #endif
IAthSelectionTool::CutResult::CutResult
CutResult(unsigned int missing_cuts)
Definition: IAthSelectionTool.h:32
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
IAthSelectionTool::names
virtual std::vector< std::string > names() const =0
return the names of the cuts as a vector<string>
IParticle.h
IAthSelectionTool::CutResult
Definition: IAthSelectionTool.h:30
IAthSelectionTool::nCuts
virtual unsigned int nCuts() const =0
return the number of cuts.
IAthSelectionTool::CutResult::m_missingCuts
unsigned int m_missingCuts
Definition: IAthSelectionTool.h:43
IAthSelectionTool::interfaceID
static const InterfaceID & interfaceID()
interfaceID reimplemented from base
Definition: IAthSelectionTool.h:73
IAthSelectionTool::testAllCuts
virtual IAthSelectionTool::CutResult testAllCuts(const xAOD::IParticle *p, std::vector< unsigned int > &counter) const =0
The most important method to determine whether the particle is accepted.
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
IAthSelectionTool::accept
virtual IAthSelectionTool::CutResult accept(const xAOD::IParticle *p) const =0
The most important method to determine whether the particle is accepted.
IAthSelectionTool::CutResult::missingCuts
unsigned int missingCuts() const
Definition: IAthSelectionTool.h:34
IAthSelectionTool
IAthSelectionTool is a virtual baseclass for selection methods.
Definition: IAthSelectionTool.h:27
test_pyathena.counter
counter
Definition: test_pyathena.py:15
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
IAthSelectionTool::~IAthSelectionTool
virtual ~IAthSelectionTool()
virtual destructor, does nothing
Definition: IAthSelectionTool.h:49