ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
PanTau
PanTauAlgs
python
Class_FeatureHandler.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3
import
string
4
5
class
FeatureHandler
:
6
7
def
getFeatureNames
(self):
8
listFeatNames = []
9
for
iFeature
in
self.
m_Feature_Names
:
10
listFeatNames += [self.
m_Feature_Names
[iFeature]]
11
return
listFeatNames
12
#end getFeatureNames
13
14
def
getFeatureTypes
(self):
15
listFeatTypes = []
16
for
iFeature
in
self.
m_Feature_Types
:
17
listFeatTypes += [self.
m_Feature_Types
[iFeature]]
18
return
listFeatTypes
19
#end getFeatureTypes
20
21
def
getFeatureDefaultValues
(self):
22
listFeatDefaults = []
23
for
iFeature
in
self.
m_Feature_Defaults
:
24
listFeatDefaults += [self.
m_Feature_Defaults
[iFeature]]
25
return
listFeatDefaults
26
#end getFeatureDefaultValues
27
28
def
addToFeatures
(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0):
29
""" Add a single feature with given name, type and default value """
30
31
#set feature name and default value
32
featureName = theVarTypeName +
"_"
+ theBaseName
33
defaultValue = self.
m_DefaultValues
[theVarTypeName]
34
if
defaultValueOverride != 0:
35
defaultValue = defaultValueOverride
36
37
#add to features
38
self.
m_Feature_Names
[featureName] = featureName
39
self.
m_Feature_Defaults
[featureName] = defaultValue
40
self.
m_Feature_Types
[featureName] = theFeatureType
41
#end addToFeatures
42
43
def
addToFeatures_FullName
(self, completeFeatureName, theVarTypeName, theFeatureType, defaultValueOverride=0):
44
#set feature name and default value
45
featureName = completeFeatureName
46
defaultValue = self.
m_DefaultValues
[theVarTypeName]
47
if
defaultValueOverride != 0:
48
defaultValue = defaultValueOverride
49
50
#add to features
51
self.
m_Feature_Names
[featureName] = featureName
52
self.
m_Feature_Defaults
[featureName] = defaultValue
53
self.
m_Feature_Types
[featureName] = theFeatureType
54
#end addToFeatures_FullName
55
56
57
def
addToFeatures_AllTypes
(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0):
58
""" Add the feature described by theName, theType and theDefault for all known constituent types"""
59
60
#set default value
61
defaultValue = self.
m_DefaultValues
[theVarTypeName]
62
if
defaultValueOverride != 0:
63
defaultValue = defaultValueOverride
64
65
#fill feature for all types
66
for
iConstType
in
self.
m_ConstituentTypes
:
67
featureName = iConstType +
"_"
+ theVarTypeName +
"_"
+ theBaseName
68
69
self.
m_Feature_Names
[featureName] = featureName
70
self.
m_Feature_Defaults
[featureName] = defaultValue
71
self.
m_Feature_Types
[featureName] = theFeatureType
72
#end loop over types
73
#end addToFeatures_AllTypes
74
75
76
def
addToFeatures_AllTypes_AllEnergyVariants
(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0):
77
""" Add the feature described by theName, theType and theDefault for all known constituent types"""
78
for
iEnergyType
in
self.
m_EnergyVariantsList
:
79
featureName = theBaseName + iEnergyType
80
self.
addToFeatures_AllTypes
(featureName, theVarTypeName, theFeatureType, defaultValueOverride)
81
#end loop over energy types
82
#end addToFeatures_AllTypes
83
84
def
__init__
(self):
85
86
#setup the varType prefixes
87
# they are passed to the feature extractor later on - avoids errors due to typos
88
self.
m_VarTypeName_Ratio
=
"Ratio"
89
self.
m_VarTypeName_Mean
=
"Mean"
90
self.
m_VarTypeName_StdDev
=
"StdDev"
91
self.
m_VarTypeName_HLV
=
"HLV"
92
self.
m_VarTypeName_DeltaR
=
"DeltaR"
93
self.
m_VarTypeName_JetMoment
=
"JetMoment"
94
self.
m_VarTypeName_Combined
=
"Combined"
95
self.
m_VarTypeName_Basic
=
"Basic"
96
self.
m_VarTypeName_PID
=
"PID"
97
self.
m_VarTypeName_Shots
=
"Shots"
98
99
#setup the default values for the different variable types
100
self.
m_DefaultValues
= {}
101
self.
m_DefaultValues
[self.
m_VarTypeName_Ratio
] = -0.2
102
self.
m_DefaultValues
[self.
m_VarTypeName_Mean
] = -0.2
103
self.
m_DefaultValues
[self.
m_VarTypeName_StdDev
] = -0.2
104
self.
m_DefaultValues
[self.
m_VarTypeName_HLV
] = -4000.0
105
self.
m_DefaultValues
[self.
m_VarTypeName_DeltaR
] = -0.2
106
self.
m_DefaultValues
[self.
m_VarTypeName_JetMoment
] = -0.2
107
self.
m_DefaultValues
[self.
m_VarTypeName_Combined
] = -10.0
108
self.
m_DefaultValues
[self.
m_VarTypeName_Basic
] = -5.0
109
self.
m_DefaultValues
[self.
m_VarTypeName_PID
] = -9.0
110
self.
m_DefaultValues
[self.
m_VarTypeName_Shots
] = -2.0
111
112
#setup the constituent types
113
self.
m_ConstituentTypeName_All
=
"All"
114
self.
m_ConstituentTypeName_Charged
=
"Charged"
115
self.
m_ConstituentTypeName_Neutral
=
"Neutral"
116
self.
m_ConstituentTypeName_Pi0Neut
=
"Pi0Neut"
117
118
self.
m_ConstituentTypes
= []
119
#baseline
120
self.
m_ConstituentTypes
+= [self.
m_ConstituentTypeName_Charged
]
121
self.
m_ConstituentTypes
+= [self.
m_ConstituentTypeName_Neutral
]
122
self.
m_ConstituentTypes
+= [self.
m_ConstituentTypeName_Pi0Neut
]
123
124
self.
m_EnergyVariantsList
= [
"EtAllConsts"
]
125
# ==============================================
126
127
128
#setup member variables to hold feature info
129
self.
m_Feature_Names
= {}
130
self.
m_Feature_Defaults
= {}
131
self.
m_Feature_Types
= {}
132
133
#fill member variables
134
self.
addSingleVariables
()
135
self.
addMultiplicities
()
136
self.
addTypeSpecificFeatures_PID
()
137
self.
addTypeSpecificFeatures_Shots
()
138
self.
addTypeSpecificFeatures_Ratios
()
139
self.
addTypeSpecificFeatures_StdDevs
()
140
self.
addTypeSpecificFeatures_HLV
()
141
self.
addTypeSpecificFeatures_JetMoment
()
142
self.
addCombinedFeatures_TypeVsType
()
143
144
#end init
145
146
147
def
dump
(self):
148
print
(
"config_FeatureCalculator: Dumping features:"
)
149
for
iFeature
in
sorted(self.
m_Feature_Names
.iterkeys()):
150
featName = self.
m_Feature_Names
[iFeature]
151
featType = self.
m_Feature_Types
[iFeature]
152
featDefault = self.
m_Feature_Defaults
[iFeature]
153
print
(
"\t"
+ string.ljust(featName, 50) +
" of type "
+ featType +
" defaults to "
+ string.rjust(str(featDefault), 10) )
154
#print("\t" + featName + " of type " + featType + " defaults to " + str(featDefault) )
155
#end for over features
156
print
(
"config_FeatureCalculator: Done dumping features"
)
157
#end dump
158
159
160
def
addSingleVariables
(self):
161
Variables = []
162
Variables += [
"isPanTauCandidate"
]
163
Variables += [
"RecoMode"
]
164
Variables += [
"RecoMode_PanTau"
]
165
Variables += [
"BDTValue_1p0n_vs_1p1n"
]
166
Variables += [
"BDTValue_1p1n_vs_1pXn"
]
167
Variables += [
"BDTValue_3p0n_vs_3pXn"
]
168
for
iVar
in
Variables:
169
curDefVal = self.
m_DefaultValues
[self.
m_VarTypeName_Basic
]
170
if
iVar ==
"isPanTauCandidate"
:
171
curDefVal = 0
172
if
iVar ==
"RecoMode"
or
iVar ==
"RecoMode_PanTau"
:
173
curDefVal = -10
174
self.
addToFeatures
(iVar, self.
m_VarTypeName_Basic
,
"F"
, curDefVal)
175
#end loop over variables
176
#end def addSingleVariables
177
178
179
def
addMultiplicities
(self):
180
Variables = self.
m_ConstituentTypes
181
182
for
iVar
in
Variables:
183
featName =
"N"
+ iVar +
"Consts"
184
self.
addToFeatures
(featName, self.
m_VarTypeName_Basic
,
"F"
)
185
#end loop over variables
186
187
#add the inclusive one
188
self.
addToFeatures
(
"N"
+ self.
m_ConstituentTypeName_All
+
"Consts"
, self.
m_VarTypeName_Basic
,
"F"
)
189
190
#end def addMultiplicities
191
192
def
addTypeSpecificFeatures_PID
(self):
193
Variables = [
"BDTValues"
]
194
195
MaxNum = 4
196
197
for
iVar
in
Variables:
198
for
iNum
in
range(1, MaxNum):
199
featName = iVar +
"_BDTSort_"
+ str(iNum)
200
self.
addToFeatures_AllTypes
(featName, self.
m_VarTypeName_PID
,
"F"
)
201
#end loop over num
202
#end loop over variables
203
#end addTypeSpecificFeatures
204
205
206
def
addTypeSpecificFeatures_Shots
(self):
207
208
Variables = []
209
Variables += [
"NPhotonsInSeed"
]
210
for
iVar
in
Variables:
211
featName = iVar
212
curDefVal = self.
m_DefaultValues
[self.
m_VarTypeName_Shots
]
213
214
self.
addToFeatures_FullName
(self.
m_ConstituentTypeName_Neutral
+
"_"
+ self.
m_VarTypeName_Shots
+
"_"
+ featName, self.
m_VarTypeName_Shots
,
"F"
, curDefVal)
215
self.
addToFeatures_FullName
(self.
m_ConstituentTypeName_Pi0Neut
+
"_"
+ self.
m_VarTypeName_Shots
+
"_"
+ featName, self.
m_VarTypeName_Shots
,
"F"
, curDefVal)
216
#end loop over variables
217
#end addTypeSpecificFeatures_Shots
218
219
def
addTypeSpecificFeatures_Ratios
(self):
220
221
Variables_WithEnergyTypes = []
222
Variables_WithEnergyTypes += [
"EtOver"
]
223
Variables_WithEnergyTypes += [
"1stBDTEtOver"
]
224
for
iVar
in
Variables_WithEnergyTypes:
225
self.
addToFeatures_AllTypes_AllEnergyVariants
(iVar, self.
m_VarTypeName_Ratio
,
"F"
)
226
#end loop over variables with energy types
227
#end addTypeSpecificFeatures_Ratios
228
229
def
addTypeSpecificFeatures_StdDevs
(self):
230
231
Variables_WithEnergyTypes = []
232
Variables_WithEnergyTypes += [
"Et_Wrt"
]
233
for
iVar
in
Variables_WithEnergyTypes:
234
self.
addToFeatures_AllTypes_AllEnergyVariants
(iVar, self.
m_VarTypeName_StdDev
,
"F"
)
235
#end addTypeSpecificFeatures_StdDevs
236
237
238
def
addTypeSpecificFeatures_HLV
(self):
239
Variables = []
240
Variables += [
"SumM"
]
241
for
iVar
in
Variables:
242
self.
addToFeatures_AllTypes
(iVar, self.
m_VarTypeName_HLV
,
"F"
, -200.)
243
244
#end loop over variables
245
#end addTypeSpecificFeatures_HLV
246
247
def
addTypeSpecificFeatures_JetMoment
(self):
248
Variables = []
249
Variables += [
"EtDRxTotalEt"
]
250
for
iVar
in
Variables:
251
self.
addToFeatures_AllTypes
(iVar, self.
m_VarTypeName_JetMoment
,
"F"
)
252
#end loop over variables
253
#end addTypeSpecificFeatures_JetMoment
254
255
def
addCombinedFeatures_TypeVsType
(self):
256
Types = []
257
Types += [
"Charged"
]
258
Types += [
"Neutral"
]
259
Types += [
"Pi0Neut"
]
260
261
Variables = []
262
Variables += [ [
"DeltaR1st"
,
"To1st"
,
""
] ]
263
for
iType
in
Types:
264
for
jType
in
Types:
265
266
#skip if types are equal
267
if
iType == jType:
268
continue
269
270
for
iVar
in
Variables:
271
featName = iVar[0] + iType + iVar[1] + jType + iVar[2]
272
#if iVar[2] != "-":
273
#featName = featName + iVar[2]
274
self.
addToFeatures
(featName, self.
m_VarTypeName_Combined
,
"F"
)
275
#end loop over variables
276
#end loop over jType
277
#end loop over iType
278
#end addCombinedFeatures_TypeVsType
279
280
#end class config_FeatureCalculator
281
282
283
print
void print(char *figname, TCanvas *c1)
Definition
TRTCalib_StrawStatusPlots.cxx:26
python.Class_FeatureHandler.FeatureHandler
Definition
Class_FeatureHandler.py:5
python.Class_FeatureHandler.FeatureHandler.addCombinedFeatures_TypeVsType
addCombinedFeatures_TypeVsType(self)
Definition
Class_FeatureHandler.py:255
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_JetMoment
addTypeSpecificFeatures_JetMoment(self)
Definition
Class_FeatureHandler.py:247
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_Pi0Neut
str m_ConstituentTypeName_Pi0Neut
Definition
Class_FeatureHandler.py:116
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Mean
str m_VarTypeName_Mean
Definition
Class_FeatureHandler.py:89
python.Class_FeatureHandler.FeatureHandler.addToFeatures_FullName
addToFeatures_FullName(self, completeFeatureName, theVarTypeName, theFeatureType, defaultValueOverride=0)
Definition
Class_FeatureHandler.py:43
python.Class_FeatureHandler.FeatureHandler.m_DefaultValues
dict m_DefaultValues
Definition
Class_FeatureHandler.py:100
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_StdDev
str m_VarTypeName_StdDev
Definition
Class_FeatureHandler.py:90
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_PID
str m_VarTypeName_PID
Definition
Class_FeatureHandler.py:96
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_HLV
str m_VarTypeName_HLV
Definition
Class_FeatureHandler.py:91
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_StdDevs
addTypeSpecificFeatures_StdDevs(self)
Definition
Class_FeatureHandler.py:229
python.Class_FeatureHandler.FeatureHandler.__init__
__init__(self)
Definition
Class_FeatureHandler.py:84
python.Class_FeatureHandler.FeatureHandler.addToFeatures
addToFeatures(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0)
Definition
Class_FeatureHandler.py:28
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_DeltaR
str m_VarTypeName_DeltaR
Definition
Class_FeatureHandler.py:92
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_Neutral
str m_ConstituentTypeName_Neutral
Definition
Class_FeatureHandler.py:115
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_Shots
addTypeSpecificFeatures_Shots(self)
Definition
Class_FeatureHandler.py:206
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypes
list m_ConstituentTypes
Definition
Class_FeatureHandler.py:66
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_PID
addTypeSpecificFeatures_PID(self)
Definition
Class_FeatureHandler.py:192
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_Charged
str m_ConstituentTypeName_Charged
Definition
Class_FeatureHandler.py:114
python.Class_FeatureHandler.FeatureHandler.getFeatureDefaultValues
getFeatureDefaultValues(self)
Definition
Class_FeatureHandler.py:21
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_All
str m_ConstituentTypeName_All
Definition
Class_FeatureHandler.py:113
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Shots
str m_VarTypeName_Shots
Definition
Class_FeatureHandler.py:97
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Combined
str m_VarTypeName_Combined
Definition
Class_FeatureHandler.py:94
python.Class_FeatureHandler.FeatureHandler.getFeatureNames
getFeatureNames(self)
Definition
Class_FeatureHandler.py:7
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Basic
str m_VarTypeName_Basic
Definition
Class_FeatureHandler.py:95
python.Class_FeatureHandler.FeatureHandler.addToFeatures_AllTypes_AllEnergyVariants
addToFeatures_AllTypes_AllEnergyVariants(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0)
Definition
Class_FeatureHandler.py:76
python.Class_FeatureHandler.FeatureHandler.m_Feature_Types
dict m_Feature_Types
Definition
Class_FeatureHandler.py:16
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_JetMoment
str m_VarTypeName_JetMoment
Definition
Class_FeatureHandler.py:93
python.Class_FeatureHandler.FeatureHandler.m_Feature_Names
dict m_Feature_Names
Definition
Class_FeatureHandler.py:9
python.Class_FeatureHandler.FeatureHandler.addSingleVariables
addSingleVariables(self)
Definition
Class_FeatureHandler.py:160
python.Class_FeatureHandler.FeatureHandler.addToFeatures_AllTypes
addToFeatures_AllTypes(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0)
Definition
Class_FeatureHandler.py:57
python.Class_FeatureHandler.FeatureHandler.m_EnergyVariantsList
list m_EnergyVariantsList
Definition
Class_FeatureHandler.py:78
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_HLV
addTypeSpecificFeatures_HLV(self)
Definition
Class_FeatureHandler.py:238
python.Class_FeatureHandler.FeatureHandler.m_Feature_Defaults
dict m_Feature_Defaults
Definition
Class_FeatureHandler.py:23
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_Ratios
addTypeSpecificFeatures_Ratios(self)
Definition
Class_FeatureHandler.py:219
python.Class_FeatureHandler.FeatureHandler.addMultiplicities
addMultiplicities(self)
Definition
Class_FeatureHandler.py:179
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Ratio
str m_VarTypeName_Ratio
Definition
Class_FeatureHandler.py:88
python.Class_FeatureHandler.FeatureHandler.getFeatureTypes
getFeatureTypes(self)
Definition
Class_FeatureHandler.py:14
dump
-event-from-file
Generated on
for ATLAS Offline Software by
1.17.0