ATLAS Offline Software
Class_InformationHandler_New.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 import string
4 
6 
7  def __init__(self, flags):
8 
9  #setup the member variables
10  # they are filled in the helper functions setupInfo_*
11  self.m_Infos_Int = {}
12  self.m_Infos_Double = {}
13  self.m_Infos_String = {}
16 
17  #fill member variables
18  self.setupInfo_Int(flags)
19  self.setupInfo_Double(flags)
20  self.setupInfo_String(flags)
21  self.setupInfo_VecDouble(flags)
22  self.setupInfo_VecString(flags)
23 
24  #fill the feature types and default values
25  # -> a bit more involved, have extra function for this
26  self.setupInfo_Features(flags)
27 
28 
29  def dump(self):
30  print("PanTau::InformationHandler: Printing stored information")
31 
32  print("PanTau::InformationHandler: \tIntegers:")
33  for iInfo in sorted(self.m_Infos_Int.iterkeys()):
34  print("\t\t" + string.ljust(iInfo, 50) + ": " + string.rjust(str(self.m_Infos_Int[iInfo]), 10) )
35 
36  print("PanTau::InformationHandler: \tDoubles:")
37  for iInfo in sorted(self.m_Infos_Double.iterkeys()):
38  print("\t\t" + string.ljust(iInfo, 50) + ": " + string.rjust(str(self.m_Infos_Double[iInfo]), 10) )
39 
40  print("PanTau::InformationHandler: \tStrings:")
41  for iInfo in sorted(self.m_Infos_String.iterkeys()):
42  print("\t\t" + string.ljust(iInfo, 50) + ": " + string.ljust(self.m_Infos_String[iInfo], 80) )
43 
44  print("PanTau::InformationHandler: \tVecDoubles:")
45  for iInfo in sorted(self.m_Infos_VecDouble.iterkeys()):
46  print("InformationHandler: \t\t" + string.ljust(iInfo, 50) + ":")
47  for iVal in self.m_Infos_VecDouble[iInfo]:
48  print("InformationHandler: \t\t\t" + string.rjust(str(iVal), 10) )
49 
50  print("PanTau::InformationHandler: \tVecStrings:")
51  for iInfo in sorted(self.m_Infos_VecString.iterkeys()):
52  print("InformationHandler: \t\t" + string.ljust(iInfo, 50) + ":")
53  for iVal in self.m_Infos_VecString[iInfo]:
54  print("InformationHandler: \t\t\t" + string.ljust(str(iVal), 80) )
55 
56  print("PanTau::InformationHandler: Done printing stored information")
57 
58 
59 
60  def setupInfo_Int(self, flags):
61  self.m_Infos_Int["TauConstituents_UsePionMass"] = int(flags.Tau.PanTau.TauConstituents_UsePionMass)
62  self.m_Infos_Int["FeatureExtractor_UseEmptySeeds"] = int(flags.Tau.PanTau.FeatureExtractor_UseEmptySeeds)
63  self.m_Infos_Int["TauConstituents_eflowRec_UseMomentumAsEnergy"] = int(flags.Tau.PanTau.TauConstituents_eflowRec_UseMomentumAsEnergy)
64  self.m_Infos_Int["TauConstituents_UseShrinkingCone"] = int(flags.Tau.PanTau.TauConstituents_UseShrinkingCone)
65  #nothing to do here yet (no integer infos...)
66 
67 
68  def setupInfo_Double(self, flags):
69  self.m_Infos_Double["eflowRec_Assoc_DeltaR"] = flags.Tau.PanTau.eflowRec_Assoc_DeltaR
70  self.m_Infos_Double["TauConstituents_Types_DeltaRCore"] = flags.Tau.PanTau.TauConstituents_Types_DeltaRCore
71  self.m_Infos_Double["TauConstituents_MaxEta"] = flags.Tau.PanTau.TauConstituents_MaxEta
72  self.m_Infos_Double["TauConstituents_PreselectionMinEnergy"] = flags.Tau.PanTau.TauConstituents_PreselectionMinEnergy
73  self.m_Infos_Double["TauConstituents_eflowRec_BDTThreshold_Pi0Neut"] = flags.Tau.PanTau.TauConstituents_eflowRec_BDTThreshold_Pi0Neut
74 
75  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R10X_CellBased"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R10X_CellBased
76  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R11X_CellBased"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R11X_CellBased
77  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R110_CellBased"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R110_CellBased
78  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R1XX_CellBased"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R1XX_CellBased
79  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R30X_CellBased"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R30X_CellBased
80  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R3XX_CellBased"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R3XX_CellBased
81 
82  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R10X_eflowRec"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R10X_eflowRec
83  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R11X_eflowRec"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R11X_eflowRec
84  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R110_eflowRec"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R110_eflowRec
85  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R1XX_eflowRec"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R1XX_eflowRec
86  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R30X_eflowRec"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R30X_eflowRec
87  self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R3XX_eflowRec"] = flags.Tau.PanTau.DecayModeDeterminator_BDTCutValue_R3XX_eflowRec
88 
89 
90  def setupInfo_String(self, flags):
91  self.m_Infos_String["Name_TauRecContainer"] = flags.Tau.PanTau.Name_TauRecContainer
92  self.m_Infos_String["Name_eflowRecContainer"] = flags.Tau.PanTau.Name_eflowRecContainer
93  self.m_Infos_String["Name_TrackParticleContainer"] = flags.Tau.PanTau.Name_TrackParticleContainer
94  self.m_Infos_String["Name_PanTauSeedsContainer"] = flags.Tau.PanTau.Name_PanTauSeedsContainer
95  self.m_Infos_String["ModeDiscriminator_ReaderOption"] = flags.Tau.PanTau.ModeDiscriminator_ReaderOption
96  self.m_Infos_String["ModeDiscriminator_TMVAMethod"] = flags.Tau.PanTau.ModeDiscriminator_TMVAMethod
97 
98 
99  def setupInfo_VecDouble(self, flags):
100  self.m_Infos_VecDouble["TauConstituents_BinEdges_Eta"] = flags.Tau.PanTau.TauConstituents_BinEdges_Eta
101  self.m_Infos_VecDouble["TauConstituents_Selection_Neutral_EtaBinned_EtCut"] = flags.Tau.PanTau.TauConstituents_Selection_Neutral_EtaBinned_EtCut
102  self.m_Infos_VecDouble["TauConstituents_Selection_Pi0Neut_EtaBinned_EtCut"] = flags.Tau.PanTau.TauConstituents_Selection_Pi0Neut_EtaBinned_EtCut
103  self.m_Infos_VecDouble["TauConstituents_Selection_Charged_EtaBinned_EtCut"] = flags.Tau.PanTau.TauConstituents_Selection_Charged_EtaBinned_EtCut
104  self.m_Infos_VecDouble["TauConstituents_Selection_OutNeut_EtaBinned_EtCut"] = flags.Tau.PanTau.TauConstituents_Selection_OutNeut_EtaBinned_EtCut
105  self.m_Infos_VecDouble["TauConstituents_Selection_OutChrg_EtaBinned_EtCut"] = flags.Tau.PanTau.TauConstituents_Selection_OutChrg_EtaBinned_EtCut
106  self.m_Infos_VecDouble["TauConstituents_Selection_NeutLowA_EtaBinned_EtCut"] = flags.Tau.PanTau.TauConstituents_Selection_NeutLowA_EtaBinned_EtCut
107  self.m_Infos_VecDouble["TauConstituents_Selection_NeutLowB_EtaBinned_EtCut"] = flags.Tau.PanTau.TauConstituents_Selection_NeutLowB_EtaBinned_EtCut
108  self.m_Infos_VecDouble["eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_1prong"] = flags.Tau.PanTau.eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_1prong
109  self.m_Infos_VecDouble["eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_3prong"] = flags.Tau.PanTau.eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_3prong
110  self.m_Infos_VecDouble["CellBased_BinEdges_Eta"] = flags.Tau.PanTau.CellBased_BinEdges_Eta
111  self.m_Infos_VecDouble["CellBased_EtaBinned_Pi0MVACut_1prong"] = flags.Tau.PanTau.CellBased_EtaBinned_Pi0MVACut_1prong
112  self.m_Infos_VecDouble["CellBased_EtaBinned_Pi0MVACut_3prong"] = flags.Tau.PanTau.CellBased_EtaBinned_Pi0MVACut_3prong
113  self.m_Infos_VecDouble["eflowRec_BinEdges_Eta"] = flags.Tau.PanTau.eflowRec_BinEdges_Eta
114  self.m_Infos_VecDouble["eflowRec_EtaBinned_Pi0MVACut_1prong"] = flags.Tau.PanTau.eflowRec_EtaBinned_Pi0MVACut_1prong
115  self.m_Infos_VecDouble["eflowRec_EtaBinned_Pi0MVACut_3prong"] = flags.Tau.PanTau.eflowRec_EtaBinned_Pi0MVACut_3prong
116  self.m_Infos_VecDouble["ModeDiscriminator_BinEdges_Pt"] = flags.Tau.PanTau.ModeDiscriminator_BinEdges_Pt
117 
118 
119  def setupInfo_VecString(self, flags):
120  self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_eflowRec_1p0n_vs_1p1n"] = flags.Tau.PanTau.ModeDiscriminator_BDTVariableNames_eflowRec_1p0n_vs_1p1n
121  self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_eflowRec_1p1n_vs_1pXn"] = flags.Tau.PanTau.ModeDiscriminator_BDTVariableNames_eflowRec_1p1n_vs_1pXn
122  self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_eflowRec_3p0n_vs_3pXn"] = flags.Tau.PanTau.ModeDiscriminator_BDTVariableNames_eflowRec_3p0n_vs_3pXn
123  self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_CellBased_1p0n_vs_1p1n"] = flags.Tau.PanTau.ModeDiscriminator_BDTVariableNames_CellBased_1p0n_vs_1p1n
124  self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_CellBased_1p1n_vs_1pXn"] = flags.Tau.PanTau.ModeDiscriminator_BDTVariableNames_CellBased_1p1n_vs_1pXn
125  self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_CellBased_3p0n_vs_3pXn"] = flags.Tau.PanTau.ModeDiscriminator_BDTVariableNames_CellBased_3p0n_vs_3pXn
126 
127 
128  def setupInfo_Features(self, flags):
129 
130  #get list of algorithms and signal modes from config
131  List_InputAlgs = flags.Tau.PanTau.Names_InputAlgorithms
132  List_ModeCases = flags.Tau.PanTau.Names_ModeCases
133 
134  #get the feature handler
135  from PanTauAlgs.Class_FeatureHandler import FeatureHandler
136  theFeatureHandler = FeatureHandler()
137 
138  #for each algorithm and mode, loop over variables to be used in BDT
139  # and fetch the type of the variable and the name
140  # these are needed for the PanTauFillerTool in TauD3PDMaker
141  for iAlg in List_InputAlgs:
142  for iModeCase in List_ModeCases:
143 
144  infoKey_Names = "ModeDiscriminator_BDTVariableNames_" + iAlg + "_" + iModeCase
145  curVarList = self.m_Infos_VecString[infoKey_Names]
146 
147  BDTVariable_TypeList = []
148  BDTVariable_DefaultValList = []
149 
150  for iVar in curVarList:
151  theType = theFeatureHandler.m_Feature_Types[iVar]
152  theDefVal = theFeatureHandler.m_Feature_Defaults[iVar]
153  BDTVariable_TypeList += [theType]
154  BDTVariable_DefaultValList += [theDefVal]
155  #end loop over variables
156 
157  infoKey_Types = "ModeDiscriminator_BDTVariableTypes_" + iAlg + "_" + iModeCase
158  self.m_Infos_VecString[infoKey_Types] = BDTVariable_TypeList
159 
160  infoKey_Defaults = "ModeDiscriminator_BDTVariableDefaults_" + iAlg + "_" + iModeCase
161  self.m_Infos_VecDouble[infoKey_Defaults] = BDTVariable_DefaultValList
162 
163  #end loop over signal modes
164  #end loop over algs for default value creation for ModeDiscriminator tools
165 
166  #add the prefixes for the variables
167  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Sum"] = theFeatureHandler.m_VarTypeName_Sum
168  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Ratio"] = theFeatureHandler.m_VarTypeName_Ratio
169  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_EtInRing"] = theFeatureHandler.m_VarTypeName_EtInRing
170  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Isolation"] = theFeatureHandler.m_VarTypeName_Isolation
171  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Num"] = theFeatureHandler.m_VarTypeName_Num
172  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Mean"] = theFeatureHandler.m_VarTypeName_Mean
173  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_StdDev"] = theFeatureHandler.m_VarTypeName_StdDev
174  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_HLV"] = theFeatureHandler.m_VarTypeName_HLV
175  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Angle"] = theFeatureHandler.m_VarTypeName_Angle
176  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_DeltaR"] = theFeatureHandler.m_VarTypeName_DeltaR
177  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_JetMoment"] = theFeatureHandler.m_VarTypeName_JetMoment
178  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Combined"] = theFeatureHandler.m_VarTypeName_Combined
179  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_JetShape"] = theFeatureHandler.m_VarTypeName_JetShape
180  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_ImpactParams"]= theFeatureHandler.m_VarTypeName_ImpactParams
181  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Basic"] = theFeatureHandler.m_VarTypeName_Basic
182  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_PID"] = theFeatureHandler.m_VarTypeName_PID
183  self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Shots"] = theFeatureHandler.m_VarTypeName_Shots
184  #end def setupInfo_Features
185 
186 #end class config_FeatureCalculator
python.Class_InformationHandler_New.InformationHandler.setupInfo_VecString
def setupInfo_VecString(self, flags)
Definition: Class_InformationHandler_New.py:119
python.Class_InformationHandler_New.InformationHandler.setupInfo_Double
def setupInfo_Double(self, flags)
Definition: Class_InformationHandler_New.py:68
python.Class_InformationHandler_New.InformationHandler.m_Infos_VecDouble
m_Infos_VecDouble
Definition: Class_InformationHandler_New.py:14
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
python.Class_InformationHandler_New.InformationHandler.dump
def dump(self)
Definition: Class_InformationHandler_New.py:29
python.Bindings.iterkeys
iterkeys
Definition: Control/AthenaPython/python/Bindings.py:802
python.Class_InformationHandler_New.InformationHandler.__init__
def __init__(self, flags)
Definition: Class_InformationHandler_New.py:7
python.Class_InformationHandler_New.InformationHandler.setupInfo_Features
def setupInfo_Features(self, flags)
Definition: Class_InformationHandler_New.py:128
python.Class_InformationHandler_New.InformationHandler.m_Infos_Double
m_Infos_Double
Definition: Class_InformationHandler_New.py:12
DerivationFramework::TriggerMatchingUtils::sorted
std::vector< typename T::value_type > sorted(T begin, T end)
Helper function to create a sorted vector from an unsorted one.
python.Class_InformationHandler_New.InformationHandler.setupInfo_String
def setupInfo_String(self, flags)
Definition: Class_InformationHandler_New.py:90
python.Class_InformationHandler_New.InformationHandler
Definition: Class_InformationHandler_New.py:5
python.Class_InformationHandler_New.InformationHandler.setupInfo_Int
def setupInfo_Int(self, flags)
Definition: Class_InformationHandler_New.py:60
python.Class_InformationHandler_New.InformationHandler.setupInfo_VecDouble
def setupInfo_VecDouble(self, flags)
Definition: Class_InformationHandler_New.py:99
python.Class_InformationHandler_New.InformationHandler.m_Infos_Int
m_Infos_Int
Definition: Class_InformationHandler_New.py:11
python.Class_InformationHandler_New.InformationHandler.m_Infos_String
m_Infos_String
Definition: Class_InformationHandler_New.py:13
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
str
Definition: BTagTrackIpAccessor.cxx:11
python.Class_InformationHandler_New.InformationHandler.m_Infos_VecString
m_Infos_VecString
Definition: Class_InformationHandler_New.py:15