ATLAS Offline Software
MVAInputEvaluator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MVAINPUTEVALUATOR_H
6 #define MVAINPUTEVALUATOR_H
7 
10 #include "xAODTracking/VertexFwd.h"
11 
12 #include <iterator>
13 #include <map>
14 #include <memory>
15 #include <string>
16 
17 namespace CP {
18 
20 public:
23 
24  // Nested class for evaluating single input features
25  class MiniEvaluator {
26  public:
28  virtual ~MiniEvaluator() {};
29  virtual float eval(const xAOD::TrackParticle& trk, const xAOD::Vertex& vx, const xAOD::EventInfo& evt) const = 0;
30  };
31 
32  // Enumerate the different possible inputs
33  enum Input {
34  Pt,
35  Eta,
36  M,
37  D0,
39  Z0,
41  Phi,
50  DZ,
55  VxX,
57  VxY,
59  VxZ,
60  ErrVxZ
61  };
62 
63  // Handy typedefs
64  // Defines the mapping of strings to Inputs:
65  typedef std::map<std::string, Input> InputSelectionMap;
66  // Defines the mapping of those same strings to MiniEvaluators:
67  typedef std::map<std::string, std::unique_ptr<MiniEvaluator>> InputEvaluatorMap;
68 
69  void add(const std::string& name, const MVAInputEvaluator::Input& type);
71  void eval(const xAOD::TrackParticle& trk, const xAOD::Vertex& vx, const xAOD::EventInfo& evt, std::map<std::string, double>& input) const;
72  void clear();
73 
74 private:
75  // Loaded evaluator map
77 
78 };
79 
80 } // namepace CP
81 
82 #endif // MVAINPUTEVALUATOR_H
CP::MVAInputEvaluator::Pt
@ Pt
Definition: MVAInputEvaluator.h:34
CP::MVAInputEvaluator::MiniEvaluator
Definition: MVAInputEvaluator.h:25
CP::MVAInputEvaluator::M
@ M
Definition: MVAInputEvaluator.h:36
CP::MVAInputEvaluator::MiniEvaluator::eval
virtual float eval(const xAOD::TrackParticle &trk, const xAOD::Vertex &vx, const xAOD::EventInfo &evt) const =0
CP::MVAInputEvaluator::InputEvaluatorMap
std::map< std::string, std::unique_ptr< MiniEvaluator > > InputEvaluatorMap
Definition: MVAInputEvaluator.h:67
CP::MVAInputEvaluator::D0Sig
@ D0Sig
Definition: MVAInputEvaluator.h:49
CP::MVAInputEvaluator::ErrTheta
@ ErrTheta
Definition: MVAInputEvaluator.h:44
CP::MVAInputEvaluator::ErrD0
@ ErrD0
Definition: MVAInputEvaluator.h:38
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
CP::MVAInputEvaluator::RedChiSq
@ RedChiSq
Definition: MVAInputEvaluator.h:48
CP::MVAInputEvaluator::eval
void eval(const xAOD::TrackParticle &trk, const xAOD::Vertex &vx, const xAOD::EventInfo &evt, std::map< std::string, double > &input) const
Definition: MVAInputEvaluator.cxx:435
CP::MVAInputEvaluator::DZSinTheta
@ DZSinTheta
Definition: MVAInputEvaluator.h:52
CP::MVAInputEvaluator::DZ
@ DZ
Definition: MVAInputEvaluator.h:50
CP::MVAInputEvaluator
Definition: MVAInputEvaluator.h:19
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:48
CP::MVAInputEvaluator::FitWeight
@ FitWeight
Definition: MVAInputEvaluator.h:54
CP::MVAInputEvaluator::VxX
@ VxX
Definition: MVAInputEvaluator.h:55
CP::MVAInputEvaluator::ErrQOverP
@ ErrQOverP
Definition: MVAInputEvaluator.h:46
CP::MVAInputEvaluator::D0
@ D0
Definition: MVAInputEvaluator.h:37
CP::MVAInputEvaluator::m_evalMap
InputEvaluatorMap m_evalMap
Definition: MVAInputEvaluator.h:76
CP::MVAInputEvaluator::QOverP
@ QOverP
Definition: MVAInputEvaluator.h:45
CP::MVAInputEvaluator::ChiSq
@ ChiSq
Definition: MVAInputEvaluator.h:47
CP::MVAInputEvaluator::MiniEvaluator::MiniEvaluator
MiniEvaluator()
Definition: MVAInputEvaluator.h:27
CP::MVAInputEvaluator::load
void load(const MVAInputEvaluator::InputSelectionMap &selection)
Definition: MVAInputEvaluator.cxx:428
CP::MVAInputEvaluator::ErrVxZ
@ ErrVxZ
Definition: MVAInputEvaluator.h:60
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
CP::MVAInputEvaluator::clear
void clear()
Definition: MVAInputEvaluator.cxx:442
CP::MVAInputEvaluator::Phi
@ Phi
Definition: MVAInputEvaluator.h:41
CP::MVAInputEvaluator::ErrVxX
@ ErrVxX
Definition: MVAInputEvaluator.h:56
CP::MVAInputEvaluator::VxZ
@ VxZ
Definition: MVAInputEvaluator.h:59
selection
std::string selection
Definition: fbtTestBasics.cxx:73
CP::MVAInputEvaluator::ErrDZSinTheta
@ ErrDZSinTheta
Definition: MVAInputEvaluator.h:53
CP::MVAInputEvaluator::InputSelectionMap
std::map< std::string, Input > InputSelectionMap
Definition: MVAInputEvaluator.h:65
CP::MVAInputEvaluator::~MVAInputEvaluator
~MVAInputEvaluator()
Definition: MVAInputEvaluator.cxx:302
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
CP::MVAInputEvaluator::ErrVxY
@ ErrVxY
Definition: MVAInputEvaluator.h:58
CP::MVAInputEvaluator::Z0
@ Z0
Definition: MVAInputEvaluator.h:39
VertexFwd.h
EventInfo.h
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TrackParticleFwd.h
CP::MVAInputEvaluator::Eta
@ Eta
Definition: MVAInputEvaluator.h:35
CP::MVAInputEvaluator::Input
Input
Definition: MVAInputEvaluator.h:33
CP::MVAInputEvaluator::MVAInputEvaluator
MVAInputEvaluator()
Definition: MVAInputEvaluator.h:21
CP::MVAInputEvaluator::Theta
@ Theta
Definition: MVAInputEvaluator.h:43
CP::MVAInputEvaluator::ErrPhi
@ ErrPhi
Definition: MVAInputEvaluator.h:42
CP::MVAInputEvaluator::add
void add(const std::string &name, const MVAInputEvaluator::Input &type)
Definition: MVAInputEvaluator.cxx:306
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
CP::MVAInputEvaluator::ErrZ0
@ ErrZ0
Definition: MVAInputEvaluator.h:40
CP::MVAInputEvaluator::MiniEvaluator::~MiniEvaluator
virtual ~MiniEvaluator()
Definition: MVAInputEvaluator.h:28
CP::MVAInputEvaluator::VxY
@ VxY
Definition: MVAInputEvaluator.h:57
CP::MVAInputEvaluator::ErrDZ
@ ErrDZ
Definition: MVAInputEvaluator.h:51