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_Sum() {return "Sum";}
85  static const std::string varTypeName_Ratio() {return "Ratio";}
86  static const std::string varTypeName_Isolation() {return "Isolation";}
87  static const std::string varTypeName_Num() {return "Num";}
88  static const std::string varTypeName_Mean() {return "Mean";}
89  static const std::string varTypeName_StdDev() {return "StdDev";}
90  static const std::string varTypeName_HLV() {return "HLV";}
91  static const std::string varTypeName_Angle() {return "Angle";}
92  static const std::string varTypeName_DeltaR() {return "DeltaR";}
93  static const std::string varTypeName_JetMoment() {return "JetMoment";}
94  static const std::string varTypeName_Combined() {return "Combined";}
95  static const std::string varTypeName_Basic() {return "Basic";}
96  static const std::string varTypeName_PID() {return "PID";}
97  static const std::string varTypeName_Shots() {return "Shots";}
98 
99  std::string m_varTypeName_Sum;
100  std::string m_varTypeName_Ratio;
102  std::string m_varTypeName_Num;
103  std::string m_varTypeName_Mean;
104  std::string m_varTypeName_StdDev;
105  std::string m_varTypeName_HLV;
106  std::string m_varTypeName_Angle;
107  std::string m_varTypeName_DeltaR;
110  std::string m_varTypeName_Basic;
111  std::string m_varTypeName_PID;
112 
113  bool m_init=false;
114 
115  public:
116  inline bool isInitialized() override {return m_init;}
117 };
118 
119 } // end of namespace PanTau
120 #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:432
PanTau::Tool_FeatureExtractor::calculateBasicFeatures
StatusCode calculateBasicFeatures(PanTau::PanTauSeed *inSeed) const
Definition: Tool_FeatureExtractor.cxx:147
PanTau::Tool_FeatureExtractor::fillVariantsSeedEt
static void fillVariantsSeedEt(const std::vector< PanTau::TauConstituent * > &tauConstituents, std::map< std::string, double > &variants_SeedEt)
Definition: Tool_FeatureExtractor.cxx:72
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:90
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:110
PanTau::Tool_FeatureExtractor::m_varTypeName_Num
std::string m_varTypeName_Num
Definition: Tool_FeatureExtractor.h:102
PanTau::Tool_FeatureExtractor::m_varTypeName_JetMoment
std::string m_varTypeName_JetMoment
Definition: Tool_FeatureExtractor.h:108
PanTau::Tool_FeatureExtractor::m_Tool_InformationStoreName
Gaudi::Property< std::string > m_Tool_InformationStoreName
Definition: Tool_FeatureExtractor.h:48
PanTau::Tool_FeatureExtractor::m_varTypeName_Isolation
std::string m_varTypeName_Isolation
Definition: Tool_FeatureExtractor.h:101
ITool_PanTauTools.h
HelperFunctions.h
PanTau::Tool_FeatureExtractor::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: Tool_FeatureExtractor.cxx:40
PanTau::Tool_FeatureExtractor::m_varTypeName_Angle
std::string m_varTypeName_Angle
Definition: Tool_FeatureExtractor.h:106
PanTau::Tool_FeatureExtractor
Definition: Tool_FeatureExtractor.h:31
PanTau::Tool_FeatureExtractor::varTypeName_DeltaR
static const std::string varTypeName_DeltaR()
Definition: Tool_FeatureExtractor.h:92
PanTau::Tool_FeatureExtractor::m_init
bool m_init
Definition: Tool_FeatureExtractor.h:113
PanTau::Tool_FeatureExtractor::Tool_FeatureExtractor
Tool_FeatureExtractor(const std::string &name)
Definition: Tool_FeatureExtractor.cxx:34
PanTau::Tool_FeatureExtractor::varTypeName_Num
static const std::string varTypeName_Num()
Definition: Tool_FeatureExtractor.h:87
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:94
PanTau::TauFeature
Definition: TauFeature.h:19
PanTau::Tool_FeatureExtractor::m_varTypeName_Ratio
std::string m_varTypeName_Ratio
Definition: Tool_FeatureExtractor.h:100
PanTau::Tool_FeatureExtractor::m_varTypeName_DeltaR
std::string m_varTypeName_DeltaR
Definition: Tool_FeatureExtractor.h:107
TauConstituent.h
PanTau::Tool_FeatureExtractor::varTypeName_PID
static const std::string varTypeName_PID()
Definition: Tool_FeatureExtractor.h:96
PanTau::Tool_FeatureExtractor::varTypeName_StdDev
static const std::string varTypeName_StdDev()
Definition: Tool_FeatureExtractor.h:89
PanTau::Tool_FeatureExtractor::varTypeName_Ratio
static const std::string varTypeName_Ratio()
Definition: Tool_FeatureExtractor.h:85
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:116
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:109
PanTau::Tool_FeatureExtractor::varTypeName_Shots
static const std::string varTypeName_Shots()
Definition: Tool_FeatureExtractor.h:97
PanTau::Tool_FeatureExtractor::m_HelperFunctions
PanTau::HelperFunctions m_HelperFunctions
Definition: Tool_FeatureExtractor.h:46
PanTau::Tool_FeatureExtractor::m_varTypeName_Sum
std::string m_varTypeName_Sum
Definition: Tool_FeatureExtractor.h:99
PanTau::Tool_FeatureExtractor::calculateFeatures
StatusCode calculateFeatures(PanTau::PanTauSeed *inSeed, int tauConstituentType, const std::map< std::string, double > &variants_SeedEt) const
Definition: Tool_FeatureExtractor.cxx:241
PanTau::Tool_FeatureExtractor::varTypeName_Sum
static const std::string varTypeName_Sum()
Definition: Tool_FeatureExtractor.h:84
PanTau::Tool_FeatureExtractor::varTypeName_Isolation
static const std::string varTypeName_Isolation()
Definition: Tool_FeatureExtractor.h:86
PanTau::Tool_FeatureExtractor::varTypeName_Combined
static const std::string varTypeName_Combined()
Definition: Tool_FeatureExtractor.h:94
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:95
PanTau::Tool_FeatureExtractor::m_varTypeName_PID
std::string m_varTypeName_PID
Definition: Tool_FeatureExtractor.h:111
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:104
PanTau::Tool_FeatureExtractor::execute
virtual StatusCode execute(PanTau::PanTauSeed *inSeed) const override
Definition: Tool_FeatureExtractor.cxx:108
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:197
PanTau::Tool_FeatureExtractor::varTypeName_JetMoment
static const std::string varTypeName_JetMoment()
Definition: Tool_FeatureExtractor.h:93
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:91
PanTau::Tool_FeatureExtractor::m_varTypeName_Mean
std::string m_varTypeName_Mean
Definition: Tool_FeatureExtractor.h:103
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:105
PanTau::PanTauSeed
Definition: PanTauSeed.h:24
PanTau::Tool_FeatureExtractor::varTypeName_Mean
static const std::string varTypeName_Mean()
Definition: Tool_FeatureExtractor.h:88