ATLAS Offline Software
Tool_FeatureExtractor.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef PANTAUALGS_TOOL_FEATUREEXTRACTOR_H
6 #define PANTAUALGS_TOOL_FEATUREEXTRACTOR_H
7 
8 #include <string>
9 #include <map>
10 #include <vector>
11 
13 #include "AsgTools/AsgTool.h"
14 #include "AsgTools/ToolHandle.h"
16 
17 // PanTau
22 #include "PanTauAlgs/TauFeature.h"
23 
24 namespace PanTau {
25 
32 
34 
35  public:
36 
37  Tool_FeatureExtractor(const std::string &name);
38  virtual StatusCode initialize() override;
39 
40  //get the features for an input seed
41  virtual StatusCode execute(PanTau::PanTauSeed* inSeed) const override;
42 
43  protected:
44 
45  //handle to the helper function
47  ToolHandle<PanTau::ITool_InformationStore> m_Tool_InformationStore{this, "Tool_InformationStore", "PanTau::Tool_InformationStore/Tool_InformationStore","Tool handle to the information store tool"};
48  Gaudi::Property<std::string> m_Tool_InformationStoreName{this, "Tool_InformationStoreName", "", "Tool handle to the information store tool"};
49 
50  //Function to calculate basic features
52 
53  //Function to calculate features for one set of constituents
55  int tauConstituentType,
56  const std::map<std::string, double>& variants_SeedEt) const;
57 
58  //Function to add the 4 momenta of the tau constituents to the features
60 
61  //Function to calculate features based on two sets of constituents
63  const std::map<std::string, double>& variants_SeedEt) const;
64 
65  //Function to fill the variants_SeedEt member
66  static void fillVariantsSeedEt(const std::vector<PanTau::TauConstituent*>& tauConstituents,
67  std::map<std::string, double>& variants_SeedEt) ;
68 
69  //helper function to fill the variants_SeedEt map
70  static void addFeatureWrtSeedEnergy(PanTau::TauFeature* targetMap,
71  const std::string& featName,
72  double numerator,
73  const std::map<std::string, double>& denominatorMap) ;
74 
76 
77 
79  std::vector<double> m_Config_CellBased_BinEdges_Eta;
82 
83  //make these configured via python! (super trick ;))
84  static const std::string varTypeName_Ratio() {return "Ratio";}
85  static const std::string varTypeName_Mean() {return "Mean";}
86  static const std::string varTypeName_StdDev() {return "StdDev";}
87  static const std::string varTypeName_HLV() {return "HLV";}
88  static const std::string varTypeName_Angle() {return "Angle";}
89  static const std::string varTypeName_DeltaR() {return "DeltaR";}
90  static const std::string varTypeName_JetMoment() {return "JetMoment";}
91  static const std::string varTypeName_Combined() {return "Combined";}
92  static const std::string varTypeName_Basic() {return "Basic";}
93  static const std::string varTypeName_PID() {return "PID";}
94  static const std::string varTypeName_Shots() {return "Shots";}
95 
96  std::string m_varTypeName_Ratio;
97  std::string m_varTypeName_Mean;
98  std::string m_varTypeName_StdDev;
99  std::string m_varTypeName_HLV;
100  std::string m_varTypeName_Angle;
101  std::string m_varTypeName_DeltaR;
104  std::string m_varTypeName_Basic;
105  std::string m_varTypeName_PID;
106 
107  bool m_init=false;
108 
109  public:
110  inline bool isInitialized() override {return m_init;}
111 };
112 
113 } // end of namespace PanTau
114 #endif // PANTAUALGS_TOOL_FEATUREEXTRACTOR_H
PanTau::Tool_FeatureExtractor::addCombinedFeatures
StatusCode addCombinedFeatures(PanTau::PanTauSeed *inSeed, const std::map< std::string, double > &variants_SeedEt) const
Definition: Tool_FeatureExtractor.cxx:416
PanTau::Tool_FeatureExtractor::calculateBasicFeatures
StatusCode calculateBasicFeatures(PanTau::PanTauSeed *inSeed) const
Definition: Tool_FeatureExtractor.cxx:131
PanTau::Tool_FeatureExtractor::fillVariantsSeedEt
static void fillVariantsSeedEt(const std::vector< PanTau::TauConstituent * > &tauConstituents, std::map< std::string, double > &variants_SeedEt)
Definition: Tool_FeatureExtractor.cxx:56
PanTau::Tool_FeatureExtractor::m_Config_CellBased_EtaBinned_Pi0MVACut_3prong
std::vector< double > m_Config_CellBased_EtaBinned_Pi0MVACut_3prong
Definition: Tool_FeatureExtractor.h:81
PanTau::Tool_FeatureExtractor::varTypeName_HLV
static const std::string varTypeName_HLV()
Definition: Tool_FeatureExtractor.h:87
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
PropertyWrapper.h
PanTau::Tool_FeatureExtractor::m_varTypeName_Basic
std::string m_varTypeName_Basic
Definition: Tool_FeatureExtractor.h:104
PanTau::Tool_FeatureExtractor::m_varTypeName_JetMoment
std::string m_varTypeName_JetMoment
Definition: Tool_FeatureExtractor.h:102
PanTau::Tool_FeatureExtractor::m_Tool_InformationStoreName
Gaudi::Property< std::string > m_Tool_InformationStoreName
Definition: Tool_FeatureExtractor.h:48
ITool_PanTauTools.h
HelperFunctions.h
PanTau::Tool_FeatureExtractor::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: Tool_FeatureExtractor.cxx:27
PanTau::Tool_FeatureExtractor::m_varTypeName_Angle
std::string m_varTypeName_Angle
Definition: Tool_FeatureExtractor.h:100
PanTau::Tool_FeatureExtractor
Definition: Tool_FeatureExtractor.h:31
PanTau::Tool_FeatureExtractor::varTypeName_DeltaR
static const std::string varTypeName_DeltaR()
Definition: Tool_FeatureExtractor.h:89
PanTau::Tool_FeatureExtractor::m_init
bool m_init
Definition: Tool_FeatureExtractor.h:107
PanTau::Tool_FeatureExtractor::Tool_FeatureExtractor
Tool_FeatureExtractor(const std::string &name)
Definition: Tool_FeatureExtractor.cxx:22
PanTau::Tool_FeatureExtractor::addFeatureWrtSeedEnergy
static void addFeatureWrtSeedEnergy(PanTau::TauFeature *targetMap, const std::string &featName, double numerator, const std::map< std::string, double > &denominatorMap)
Definition: Tool_FeatureExtractor.cxx:78
PanTau::TauFeature
Definition: TauFeature.h:19
PanTau::Tool_FeatureExtractor::m_varTypeName_Ratio
std::string m_varTypeName_Ratio
Definition: Tool_FeatureExtractor.h:96
PanTau::Tool_FeatureExtractor::m_varTypeName_DeltaR
std::string m_varTypeName_DeltaR
Definition: Tool_FeatureExtractor.h:101
TauConstituent.h
PanTau::Tool_FeatureExtractor::varTypeName_PID
static const std::string varTypeName_PID()
Definition: Tool_FeatureExtractor.h:93
PanTau::Tool_FeatureExtractor::varTypeName_StdDev
static const std::string varTypeName_StdDev()
Definition: Tool_FeatureExtractor.h:86
PanTau::Tool_FeatureExtractor::varTypeName_Ratio
static const std::string varTypeName_Ratio()
Definition: Tool_FeatureExtractor.h:84
PanTau::Tool_FeatureExtractor::m_Tool_InformationStore
ToolHandle< PanTau::ITool_InformationStore > m_Tool_InformationStore
Definition: Tool_FeatureExtractor.h:47
ITool_InformationStore.h
PanTau::HelperFunctions
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:26
PanTau::Tool_FeatureExtractor::isInitialized
bool isInitialized() override
Definition: Tool_FeatureExtractor.h:110
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
PanTau::Tool_FeatureExtractor::m_varTypeName_Combined
std::string m_varTypeName_Combined
Definition: Tool_FeatureExtractor.h:103
PanTau::Tool_FeatureExtractor::varTypeName_Shots
static const std::string varTypeName_Shots()
Definition: Tool_FeatureExtractor.h:94
PanTau::Tool_FeatureExtractor::m_HelperFunctions
PanTau::HelperFunctions m_HelperFunctions
Definition: Tool_FeatureExtractor.h:46
PanTau::Tool_FeatureExtractor::calculateFeatures
StatusCode calculateFeatures(PanTau::PanTauSeed *inSeed, int tauConstituentType, const std::map< std::string, double > &variants_SeedEt) const
Definition: Tool_FeatureExtractor.cxx:225
PanTau::Tool_FeatureExtractor::varTypeName_Combined
static const std::string varTypeName_Combined()
Definition: Tool_FeatureExtractor.h:91
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
PanTau::Tool_FeatureExtractor::m_Config_UseEmptySeeds
int m_Config_UseEmptySeeds
Definition: Tool_FeatureExtractor.h:75
PanTau::Tool_FeatureExtractor::m_Config_CellBased_BinEdges_Eta
std::vector< double > m_Config_CellBased_BinEdges_Eta
Helper members.
Definition: Tool_FeatureExtractor.h:79
PanTau::Tool_FeatureExtractor::varTypeName_Basic
static const std::string varTypeName_Basic()
Definition: Tool_FeatureExtractor.h:92
PanTau::Tool_FeatureExtractor::m_varTypeName_PID
std::string m_varTypeName_PID
Definition: Tool_FeatureExtractor.h:105
PanTau
xAOD EDM
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:18
PanTau::Tool_FeatureExtractor::m_varTypeName_StdDev
std::string m_varTypeName_StdDev
Definition: Tool_FeatureExtractor.h:98
PanTau::Tool_FeatureExtractor::execute
virtual StatusCode execute(PanTau::PanTauSeed *inSeed) const override
Definition: Tool_FeatureExtractor.cxx:92
ASG_TOOL_CLASS1
#define ASG_TOOL_CLASS1
Definition: AsgToolMacros.h:75
PanTau::Tool_FeatureExtractor::addConstituentMomenta
StatusCode addConstituentMomenta(PanTau::PanTauSeed *inSeed) const
Definition: Tool_FeatureExtractor.cxx:181
PanTau::Tool_FeatureExtractor::varTypeName_JetMoment
static const std::string varTypeName_JetMoment()
Definition: Tool_FeatureExtractor.h:90
TauFeature.h
ToolHandle.h
AsgTool.h
PanTau::Tool_FeatureExtractor::m_Config_CellBased_EtaBinned_Pi0MVACut_1prong
std::vector< double > m_Config_CellBased_EtaBinned_Pi0MVACut_1prong
Definition: Tool_FeatureExtractor.h:80
PanTau::Tool_FeatureExtractor::varTypeName_Angle
static const std::string varTypeName_Angle()
Definition: Tool_FeatureExtractor.h:88
PanTau::Tool_FeatureExtractor::m_varTypeName_Mean
std::string m_varTypeName_Mean
Definition: Tool_FeatureExtractor.h:97
PanTau::ITool_PanTauTools
Interface for PID from tau seeds.
Definition: ITool_PanTauTools.h:39
PanTau::Tool_FeatureExtractor::m_varTypeName_HLV
std::string m_varTypeName_HLV
Definition: Tool_FeatureExtractor.h:99
PanTau::PanTauSeed
Definition: PanTauSeed.h:24
PanTau::Tool_FeatureExtractor::varTypeName_Mean
static const std::string varTypeName_Mean()
Definition: Tool_FeatureExtractor.h:85