ATLAS Offline Software
Class_FeatureHandler.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
2 
3 import string
4 
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 
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_Sum = "Sum"
89  self.m_VarTypeName_Ratio = "Ratio"
90  self.m_VarTypeName_EtInRing = "EtInRing"
91  self.m_VarTypeName_Isolation = "Isolation"
92  self.m_VarTypeName_Num = "Num"
93  self.m_VarTypeName_Mean = "Mean"
94  self.m_VarTypeName_StdDev = "StdDev"
95  self.m_VarTypeName_HLV = "HLV"
96  self.m_VarTypeName_Angle = "Angle"
97  self.m_VarTypeName_DeltaR = "DeltaR"
98  self.m_VarTypeName_JetMoment = "JetMoment"
99  self.m_VarTypeName_Combined = "Combined"
100  self.m_VarTypeName_JetShape = "JetShape"
101  self.m_VarTypeName_ImpactParams = "ImpactParams"
102  self.m_VarTypeName_Basic = "Basic"
103  self.m_VarTypeName_PID = "PID"
104  self.m_VarTypeName_Shots = "Shots"
105 
106  #setup the default values for the different variable types
107  self.m_DefaultValues = {}
108  self.m_DefaultValues[self.m_VarTypeName_Sum] = -4000.0
109  self.m_DefaultValues[self.m_VarTypeName_Ratio] = -0.2
110  self.m_DefaultValues[self.m_VarTypeName_EtInRing] = -1000.0
111  self.m_DefaultValues[self.m_VarTypeName_Isolation] = -0.2
112  self.m_DefaultValues[self.m_VarTypeName_Num] = -5.0
113  self.m_DefaultValues[self.m_VarTypeName_Mean] = -0.2
114  self.m_DefaultValues[self.m_VarTypeName_StdDev] = -0.2
115  self.m_DefaultValues[self.m_VarTypeName_HLV] = -4000.0
116  self.m_DefaultValues[self.m_VarTypeName_Angle] = -0.2
117  self.m_DefaultValues[self.m_VarTypeName_DeltaR] = -0.2
118  self.m_DefaultValues[self.m_VarTypeName_JetMoment] = -0.2
119  self.m_DefaultValues[self.m_VarTypeName_Combined] = -10.0
120  self.m_DefaultValues[self.m_VarTypeName_JetShape] = -2.0
122  self.m_DefaultValues[self.m_VarTypeName_Basic] = -5.0
123  self.m_DefaultValues[self.m_VarTypeName_PID] = -9.0
124  self.m_DefaultValues[self.m_VarTypeName_Shots] = -2.0
125 
126  #setup the constituent types
131  self.m_ConstituentTypeName_OutNeut = "OuterNeut"
132  self.m_ConstituentTypeName_OutChrg = "OuterChrg"
135 
137  #baseline
141  #for testing
144 
146  self.m_EnergyVariantsList += ["EtAllConsts"]
147  self.m_EnergyVariantsList += ["EtNeutLowA"]
148  self.m_EnergyVariantsList += ["EtNeutLowB"]
149  # ==============================================
150 
151 
152  #setup member variables to hold feature info
153  self.m_Feature_Names = {}
155  self.m_Feature_Types = {}
156 
157  #fill member variables
158  self.addSingleVariables()
159  self.addMultiplicities()
160  self.addFourMomentum()
165  #self.addTypeSpecificFeatures_EtRings() #Note wrt EtRings and Isolations:
166  #self.addTypeSpecificFeatures_Isolations() # Move to different function in FeatureCalc
176  self.addGenericJetFeatures()
178 
179  #end init
180 
181 
182  def dump(self):
183  print("config_FeatureCalculator: Dumping features:")
184  for iFeature in sorted(self.m_Feature_Names.iterkeys()):
185  featName = self.m_Feature_Names[iFeature]
186  featType = self.m_Feature_Types[iFeature]
187  featDefault = self.m_Feature_Defaults[iFeature]
188  print("\t" + string.ljust(featName, 50) + " of type " + featType + " defaults to " + string.rjust(str(featDefault), 10) )
189  #print("\t" + featName + " of type " + featType + " defaults to " + str(featDefault) )
190  #end for over features
191  print("config_FeatureCalculator: Done dumping features")
192  #end dump
193 
194 
196  Variables = []
197  Variables += ["isPanTauCandidate"]
198  Variables += ["RecoMode"]
199  Variables += ["RecoMode_PanTau"]
200  Variables += ["BDTValue_1p0n_vs_1p1n"]
201  Variables += ["BDTValue_1p1n_vs_1pXn"]
202  Variables += ["BDTValue_3p0n_vs_3pXn"]
203  Variables += ["SumCharge"]
204  Variables += ["AbsCharge"]
205  for iVar in Variables:
206  curDefVal = self.m_DefaultValues[self.m_VarTypeName_Basic]
207  if iVar == "isPanTauCandidate":
208  curDefVal = 0
209  if iVar == "RecoMode" or iVar == "RecoMode_PanTau":
210  curDefVal = -10
211  self.addToFeatures(iVar, self.m_VarTypeName_Basic, "F", curDefVal)
212  #end loop over variables
213  #end def addSingleVariables
214 
215 
216  def addMultiplicities(self):
217  Variables = self.m_ConstituentTypes
218 
219  for iVar in Variables:
220  featName = "N" + iVar + "Consts"
221  self.addToFeatures(featName, self.m_VarTypeName_Basic, "F")
222  #end loop over variables
223 
224  #add the inclusive one
225  self.addToFeatures("N" + self.m_ConstituentTypeName_All + "Consts", self.m_VarTypeName_Basic, "F")
226  self.addToFeatures("N" + self.m_ConstituentTypeName_OutChrg + "Consts", self.m_VarTypeName_Basic, "F")
227  self.addToFeatures("N" + self.m_ConstituentTypeName_OutNeut + "Consts", self.m_VarTypeName_Basic, "F")
228 
229  #end def addMultiplicities
230 
231 
232  def addFourMomentum(self):
233  Variables = []
234  Variables += ["pt"]
235  Variables += ["eta"]
236  Variables += ["phi"]
237  Variables += ["m"]
238 
239  Types = []
240  Types += ["ProtoMomentumCore"]
241  Types += ["ProtoMomentumWide"]
242  #Types += ["ValMomCore2GeV"]
243 
244 
245  for iVar in Variables:
246  for iType in Types:
247  curFeatName = iType + "_" + iVar
248  curDefVal = -4000.
249  if iVar == "eta" or iVar == "phi":
250  curDefVal = -9.
251  if iVar == "m":
252  curDefVal = -200.
253  self.addToFeatures(curFeatName, self.m_VarTypeName_Basic, "F", curDefVal)
254  #end loop types
255  #end loop vars
256  #end def addFourMomentum
257 
258 
260  Variables = []
261  Variables += ["ConstsIn00To01"]
262  Variables += ["ConstsIn01To02"]
263  Variables += ["ConstsIn02To03"]
264  Variables += ["ConstsIn03To04"]
265  for iVar in Variables:
266  self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_Num, "F")
267  #end addTypeSpecificFeatures
268 
269 
271  Variables = []
272  Variables += ["BDTValues"]
273  Variables += ["BDTValuesSum"]
274 
275  Sorts = []
276  Sorts += ["BDTSort"]
277  Sorts += ["EtSort"]
278 
279  MaxNum = 4
280 
281  for iVar in Variables:
282  for iSort in Sorts:
283  for iNum in range(1, MaxNum):
284  featName = iVar + "_" + iSort + "_" + str(iNum)
285  self.addToFeatures_AllTypes(featName, self.m_VarTypeName_PID, "F")
286  #end loop over num
287  #end loop over sort
288  #end loop over variables
289  #end addTypeSpecificFeatures
290 
291 
293  Variables = []
294  Variables += ["nPhotons"]
295  Variables += ["nShots"]
296  Variables += ["SumShots_Et"]
297  Variables += ["SumShots_Eta"]
298  Variables += ["SumShots_Phi"]
299  Variables += ["SumShots_M"]
300  Variables += ["ConstDeltaRToSumShots"]
301  Variables += ["EtSumShotsOverConstEt"]
302  Variables += ["TauDeltaRToSumShots"]
303  Variables += ["EtSumShotsOverTauEt"]
304 
305  Sorts = []
306  Sorts += ["BDTSort"]
307 
308  MaxNum = 4
309 
310  for iVar in Variables:
311  for iSort in Sorts:
312  for iNum in range(1, MaxNum):
313  featName = iVar + "_" + iSort + "_" + str(iNum)
314  curDefVal = self.m_DefaultValues[self.m_VarTypeName_Shots]
315  if iVar == "Et":
316  curDefVal = -1000
317  if iVar == "Eta" or iVar == "Phi":
318  curDefVal = -8
319  if iVar == "M":
320  curDefVal = -200
321 
322  self.addToFeatures_FullName(self.m_ConstituentTypeName_Neutral + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal)
323  self.addToFeatures_FullName(self.m_ConstituentTypeName_Pi0Neut + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal)
324  self.addToFeatures_FullName(self.m_ConstituentTypeName_NeutLowA + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal)
325  self.addToFeatures_FullName(self.m_ConstituentTypeName_NeutLowB + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal)
326  #end loop over iNum
327  #end loop over sorts
328  #end loop over variables
329 
330  Variables = []
331  Variables += ["MaxDeltaRSumShotToConst"]
332  Variables += ["MinDeltaRSumShotToConst"]
333  Variables += ["MaxDeltaRSumShotToTau"]
334  Variables += ["MinDeltaRSumShotToTau"]
335  Variables += ["DeltaRAllShotsToTau"]
336  Variables += ["EtAllShotsOverEtTau"]
337  Variables += ["NShotsInSeed"]
338  Variables += ["NPhotonsInSeed"]
339  Variables += ["BestDiShotMass"]
340  Variables += ["MinDiShotMass"]
341  Variables += ["MaxDiShotMass"]
342  for iVar in Variables:
343  featName = iVar
344  curDefVal = self.m_DefaultValues[self.m_VarTypeName_Shots]
345  if iVar == "BestDiShotMass" or iVar == "MinDiShotMass" or iVar == "MaxDiShotMass":
346  curDefVal = -200
347 
348  self.addToFeatures_FullName(self.m_ConstituentTypeName_Neutral + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal)
349  self.addToFeatures_FullName(self.m_ConstituentTypeName_Pi0Neut + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal)
350  self.addToFeatures_FullName(self.m_ConstituentTypeName_NeutLowA + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal)
351  self.addToFeatures_FullName(self.m_ConstituentTypeName_NeutLowB + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal)
352 
353  #end loop over variables
354  #end addTypeSpecificFeatures_Shots
355 
357 
358  Variables_WithEnergyTypes = []
359  Variables_WithEnergyTypes += ["EtOver"]
360  Variables_WithEnergyTypes += ["1stEtOver"]
361  Variables_WithEnergyTypes += ["1stBDTEtOver"]
362  for iVar in Variables_WithEnergyTypes:
364  #end loop over variables with energy types
365 
366  Variables = []
367  Variables += ["1stEtOverTypeEt"]
368  Variables += ["1stBDTEtOverTypeEt"]
369  Variables += ["EFOsOverTotalEFOs"]
370  Variables += ["Log1stEtOver2ndEt"]
371  Variables += ["Log1stEtOver3rdEt"]
372  Variables += ["Log2ndEtOver3rdEt"]
373  Variables += ["Log1stEtOver2ndEt_BDTSort"]
374  Variables += ["Log1stEtOver3rdEt_BDTSort"]
375  Variables += ["Log2ndEtOver3rdEt_BDTSort"]
376  for iVar in Variables:
377  self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_Ratio, "F")
378  #end loop over variables with energy types
379  #end addTypeSpecificFeatures_Ratios
380 
381 
383  Variables = []
384  Variables += ["00To01"]
385  Variables += ["01To02"]
386  Variables += ["02To03"]
387  Variables += ["03To04"]
388  Variables += ["04To05"]
389  for iVar in Variables:
390  completeFeatureName = self.m_ConstituentTypeName_All + "_" + self.m_VarTypeName_EtInRing + "_" + iVar
391  self.addToFeatures_FullName(completeFeatureName, self.m_VarTypeName_EtInRing, "F")
392  #end loop over variables
393  #end addTypeSpecificFeatures_EtRings
394 
395 
397  Variables = []
398  Variables += ["EtIn01Over"]
399  Variables += ["EtIn02Over"]
400  Variables += ["EtIn03Over"]
401  Variables += ["EtIn04Over"]
402  Variables += ["EtIn00To02Over"]
403  Variables += ["EtIn02To04Over"]
404 
405  for iVar in Variables:
406  for iEnergyType in self.m_EnergyVariantsList:
407  completeFeatureName = self.m_ConstituentTypeName_All + "_" + self.m_VarTypeName_Isolation + "_" + iVar + iEnergyType
408  self.addToFeatures_FullName(completeFeatureName, self.m_VarTypeName_Isolation, "F")
409  #end loop over variables
410 
411  Variables = []
412  Variables += ["EtIn01OverEtIn02"]
413  Variables += ["EtIn01OverEtIn04"]
414  for iVar in Variables:
415  completeFeatureName = self.m_ConstituentTypeName_All + "_" + self.m_VarTypeName_Isolation + iVar
416  self.addToFeatures_FullName(completeFeatureName, self.m_VarTypeName_Isolation, "F")
417  #end loop over variables
418 
419  #end addTypeSpecificFeatures_Isolations
420 
421 
423  Variables_WithEnergyTypes = []
424  Variables_WithEnergyTypes += ["Et_Wrt"]
425  Variables_WithEnergyTypes += ["DRToJetAxis_Wrt"]
426  Variables_WithEnergyTypes += ["DRToLeading_Wrt"]
427  for iVar in Variables_WithEnergyTypes:
429  #end loop over variables
430  #end addTypeSpecificFeatures_Mean
431 
432 
434  Variables = []
435  Variables += ["E"]
436  Variables += ["Et"]
437  Variables += ["DRToJetAxis"]
438  Variables += ["DRToLeading"]
439  for iVar in Variables:
440  self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_StdDev, "F")
441  #end loop over variables
442 
443  Variables_WithEnergyTypes = []
444  Variables_WithEnergyTypes += ["Et_Wrt"]
445  for iVar in Variables_WithEnergyTypes:
447  #end addTypeSpecificFeatures_StdDevs
448 
449 
451  Variables = []
452  Variables += ["SumPt"]
453  Variables += ["SumEta"]
454  Variables += ["SumPhi"]
455  Variables += ["SumM"]
456  for iVar in Variables:
457  curDefVal = -4000.
458  if iVar == "SumEta" or iVar == "SumPhi":
459  curDefVal = -9.
460  if iVar == "SumM":
461  curDefVal = -200.
462  self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_HLV, "F", curDefVal)
463 
464  # also add the OutChrg and OutNeut
465  featName = self.m_ConstituentTypeName_OutChrg + "_" + self.m_VarTypeName_HLV + "_" + iVar
466  self.addToFeatures_FullName(featName, self.m_VarTypeName_HLV, "F", curDefVal)
467 
468  featName = self.m_ConstituentTypeName_OutNeut + "_" + self.m_VarTypeName_HLV + "_" + iVar
469  self.addToFeatures_FullName(featName, self.m_VarTypeName_HLV, "F", curDefVal)
470 
471  #end loop over variables
472 
473  VariablesVec = []
474  VariablesVec += ["Constituents_pt"]
475  VariablesVec += ["Constituents_eta"]
476  VariablesVec += ["Constituents_phi"]
477  VariablesVec += ["Constituents_m"]
478 
479  VariablesVecSort = []
480  VariablesVecSort += ["EtSort"]
481  VariablesVecSort += ["BDTSort"]
482 
483  for iSort in VariablesVecSort:
484  for iVecVar in VariablesVec:
485  featName = iSort + "_" + iVecVar
486  curDefVal = -4000.
487  if iVecVar == "Constituents_eta" or iVecVar == "Constituents_phi":
488  curDefVal = -9.
489  if iVecVar == "Constituents_m":
490  curDefVal = -200.
491  self.addToFeatures_AllTypes(featName, self.m_VarTypeName_HLV, "V", curDefVal)
492 
493  # also add the OutChrg and OutNeut
494  featName = self.m_ConstituentTypeName_OutChrg + "_" + self.m_VarTypeName_HLV + "_" + iSort + "_" + iVecVar
495  self.addToFeatures_FullName(featName, self.m_VarTypeName_HLV, "V", curDefVal)
496 
497  featName = self.m_ConstituentTypeName_OutNeut + "_" + self.m_VarTypeName_HLV + "_" + iSort + "_" + iVecVar
498  self.addToFeatures_FullName(featName, self.m_VarTypeName_HLV, "V", curDefVal)
499 
500  #end loop over variables
501  #end addTypeSpecificFeatures_HLV
502 
503 
505  Variables = []
506  Variables += ["ToJetAxis"]
507  Variables += ["1stToJetAxis"]
508  Variables += ["2ndToJetAxis"]
509  Variables += ["3rdToJetAxis"]
510  Variables += ["1stTo2nd"]
511  Variables += ["1stTo3rd"]
512  Variables += ["2ndTo3rd"]
513  Variables += ["MaxToJetAxis"]
514  Variables += ["MeanValue123"]
515  Variables += ["Btw1213Planes"]
516  for iVar in Variables:
517  self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_Angle, "F")
518  #end loop over variables
519  #end addTypeSpecificFeatures_Angle
520 
521 
523  Variables = []
524  Variables += ["ToJetAxis"]
525  Variables += ["MaxToJetAxis"]
526  Variables += ["1stToJetAxis"]
527  Variables += ["2ndToJetAxis"]
528  Variables += ["3rdToJetAxis"]
529  Variables += ["1stTo2nd"]
530  Variables += ["1stTo3rd"]
531  Variables += ["2ndTo3rd"]
532 
533  Sorts = []
534  Sorts += ["EtSort"]
535  Sorts += ["BDTSort"]
536 
537  for iSort in Sorts:
538  for iVar in Variables:
539  featName = iVar + "_" + iSort
540  self.addToFeatures_AllTypes(featName, self.m_VarTypeName_DeltaR, "F")
541  #end loop over variables
542  #end addTypeSpecificFeatures_DeltaR
543 
544 
546  Variables = []
547  Variables += ["EtDR"]
548  Variables += ["EtDRprime"]
549  Variables += ["EtDR2"]
550  Variables += ["EtAngle"]
551  Variables += ["EtDRxTotalEt"]
552  for iVar in Variables:
553  self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_JetMoment, "F")
554  #end loop over variables
555  #end addTypeSpecificFeatures_JetMoment
556 
557 
559  Variables = []
560  Variables += ["NumChargedOverNumNeutral"]
561  Variables += ["NumChargedOverNumTotal"]
562  Variables += ["AnglePlane1stCharged1st2ndNeutral"]
563  Variables += ["FarthestNeutral_AngleToCharged"]
564  Variables += ["FarthestNeutral_BDTScore"]
565  Variables += ["FarthestNeutral_EtOverChargedEt"]
566 
567  for iVar in Variables:
568  self.addToFeatures(iVar, self.m_VarTypeName_Combined, "F")
569  #end loop over variables
570  #end addCombinedFeatures_Single
571 
572 
574  Types = []
575  Types += ["Charged"]
576  Types += ["Neutral"]
577  Types += ["Pi0Neut"]
578 
579  Variables = []
580  Variables += [ ["Log1st", "EtOver", "Et"] ]
581  Variables += [ ["Log", "EtOver", "Et"] ]
582  Variables += [ ["Angle", "To", ""] ]
583  Variables += [ ["DeltaR1st", "To1st", ""] ]
584  Variables += [ ["Angle1st", "To1st", ""] ]
585  for iType in Types:
586  for jType in Types:
587 
588  #skip if types are equal
589  if iType == jType:
590  continue
591 
592  for iVar in Variables:
593  featName = iVar[0] + iType + iVar[1] + jType + iVar[2]
594  #if iVar[2] != "-":
595  #featName = featName + iVar[2]
596  self.addToFeatures(featName, self.m_VarTypeName_Combined, "F")
597  #end loop over variables
598  #end loop over jType
599  #end loop over iType
600  #end addCombinedFeatures_TypeVsType
601 
602 
604  iTypes = []
605  iTypes += ["Charged"]
606 
607  jTypes = []
608  jTypes += ["Pi0Neut"]
609  jTypes += ["Neutral"]
610 
611  Variables_WithEnergyTypes = []
612  Variables_WithEnergyTypes += [ ["Mean", "Et_Wrt"] ]
613 
614  Variables = []
615  Variables += [ ["InvMass", ""] ]
616  Variables += [ ["Angle1st2nd", ""] ]
617  for iType in iTypes:
618  for jType in jTypes:
619 
620  for iVar in Variables:
621  featName = iVar[0] + iType + jType + iVar[1]
622  self.addToFeatures(featName, self.m_VarTypeName_Combined, "F")
623  #end loop over variables
624 
625  for iVar in Variables_WithEnergyTypes:
626  featName = iVar[0] + iType + jType + iVar[1]
627  for iEnergyType in self.m_EnergyVariantsList:
628  featNameWithEnergy = featName + iEnergyType
629  self.addToFeatures(featNameWithEnergy, self.m_VarTypeName_Combined, "F")
630  #end loop over variables for energy types
631 
632  #end loop over jTypes
633  #end loop over iTypes
634  #end addCombinedFeatures_SelectedTypes
635 
636 
638  Variables = []
639 
640  #thrust and such
641  Variables += ["JetThrust"]
642  Variables += ["JetThrustMajor"]
643  Variables += ["JetThrustMinor"]
644  Variables += ["JetOblateness"]
645  Variables += ["JetSphericity"]
646  Variables += ["JetAplanarity"]
647  Variables += ["JetPlanarity"]
648 
649  #fox wolfram moments
650  Variables += ["JetFoxWolfram1"]
651  Variables += ["JetFoxWolfram1"]
652  Variables += ["JetFoxWolfram1"]
653  Variables += ["JetFoxWolfram1"]
654  Variables += ["JetFoxWolframRatioFW2OverFW1"]
655  Variables += ["JetFoxWolframRatioFW4pow4OverFW1"]
656  Variables += ["JetFoxWolframRatioFW234OverFW1pow4"]
657  Variables += ["JetFoxWolframRatioFW1PlusFW2OverFW4"]
658 
659  for iVar in Variables:
660  self.addToFeatures(iVar, self.m_VarTypeName_JetShape, "F")
661  #end loop over variables
662  #end addGenericJetFeatures
663 
664 
666  maxTrack = 4
667 
668  Variables = []
669  Variables += [ ["TransIPTrack", "_SortByEt"] ]
670  Variables += [ ["LongIPTrack", "_SortByEt"] ]
671  Variables += [ ["TransSignfIPTrack", "_SortByEt"] ]
672  Variables += [ ["LongSignfIPTrack", "_SortByEt"] ]
673  Variables += [ ["TransIP", "_SortByValue"] ]
674  Variables += [ ["TransSignfIP", "_SortByValue"] ]
675 
676  for iTrk in range(1, maxTrack):
677  for iVar in Variables:
678  featName = iVar[0] + str(iTrk) + iVar[1]
679  self.addToFeatures(featName, self.m_VarTypeName_ImpactParams, "F")
680  #end loop over variables
681  #end loop over tracks
682  #end addGenericJetFeatures
683 
684 
685 #end class config_FeatureCalculator
686 
687 
688 
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_Neutral
m_ConstituentTypeName_Neutral
Definition: Class_FeatureHandler.py:129
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_Shots
def addTypeSpecificFeatures_Shots(self)
Definition: Class_FeatureHandler.py:292
python.Class_FeatureHandler.FeatureHandler.addCombinedFeatures_SelectedTypes
def addCombinedFeatures_SelectedTypes(self)
Definition: Class_FeatureHandler.py:603
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_EtRings
def addTypeSpecificFeatures_EtRings(self)
Definition: Class_FeatureHandler.py:382
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_StdDevs
def addTypeSpecificFeatures_StdDevs(self)
Definition: Class_FeatureHandler.py:433
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_Charged
m_ConstituentTypeName_Charged
Definition: Class_FeatureHandler.py:128
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_Num
def addTypeSpecificFeatures_Num(self)
Definition: Class_FeatureHandler.py:259
python.Class_FeatureHandler.FeatureHandler.addCombinedFeatures_TypeVsType
def addCombinedFeatures_TypeVsType(self)
Definition: Class_FeatureHandler.py:573
python.Class_FeatureHandler.FeatureHandler.dump
def dump(self)
Definition: Class_FeatureHandler.py:182
python.Class_FeatureHandler.FeatureHandler.addToFeatures
def addToFeatures(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0)
Definition: Class_FeatureHandler.py:28
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypes
m_ConstituentTypes
Definition: Class_FeatureHandler.py:136
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_HLV
m_VarTypeName_HLV
Definition: Class_FeatureHandler.py:95
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_JetMoment
def addTypeSpecificFeatures_JetMoment(self)
Definition: Class_FeatureHandler.py:545
python.Class_FeatureHandler.FeatureHandler.addToFeatures_AllTypes_AllEnergyVariants
def addToFeatures_AllTypes_AllEnergyVariants(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0)
Definition: Class_FeatureHandler.py:76
python.Class_FeatureHandler.FeatureHandler.getFeatureNames
def getFeatureNames(self)
Definition: Class_FeatureHandler.py:7
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_JetShape
m_VarTypeName_JetShape
Definition: Class_FeatureHandler.py:100
python.Class_FeatureHandler.FeatureHandler.getFeatureTypes
def getFeatureTypes(self)
Definition: Class_FeatureHandler.py:14
python.Class_FeatureHandler.FeatureHandler.addSingleVariables
def addSingleVariables(self)
Definition: Class_FeatureHandler.py:195
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Ratio
m_VarTypeName_Ratio
Definition: Class_FeatureHandler.py:89
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_EtInRing
m_VarTypeName_EtInRing
Definition: Class_FeatureHandler.py:90
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_ImpactParams
m_VarTypeName_ImpactParams
Definition: Class_FeatureHandler.py:101
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Num
m_VarTypeName_Num
Definition: Class_FeatureHandler.py:92
python.Class_FeatureHandler.FeatureHandler.addToFeatures_AllTypes
def addToFeatures_AllTypes(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0)
Definition: Class_FeatureHandler.py:57
python.Class_FeatureHandler.FeatureHandler.addGenericJetFeatures
def addGenericJetFeatures(self)
Definition: Class_FeatureHandler.py:637
python.Class_FeatureHandler.FeatureHandler.m_EnergyVariantsList
m_EnergyVariantsList
Definition: Class_FeatureHandler.py:145
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Mean
m_VarTypeName_Mean
Definition: Class_FeatureHandler.py:93
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_Ratios
def addTypeSpecificFeatures_Ratios(self)
Definition: Class_FeatureHandler.py:356
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_DeltaR
m_VarTypeName_DeltaR
Definition: Class_FeatureHandler.py:97
python.Class_FeatureHandler.FeatureHandler.m_Feature_Names
m_Feature_Names
Definition: Class_FeatureHandler.py:153
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Sum
m_VarTypeName_Sum
Definition: Class_FeatureHandler.py:88
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_DeltaR
def addTypeSpecificFeatures_DeltaR(self)
Definition: Class_FeatureHandler.py:522
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_JetMoment
m_VarTypeName_JetMoment
Definition: Class_FeatureHandler.py:98
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_Pi0Neut
m_ConstituentTypeName_Pi0Neut
Definition: Class_FeatureHandler.py:130
python.Class_FeatureHandler.FeatureHandler.addImpactParameterFeatures
def addImpactParameterFeatures(self)
Definition: Class_FeatureHandler.py:665
python.Class_FeatureHandler.FeatureHandler.addToFeatures_FullName
def addToFeatures_FullName(self, completeFeatureName, theVarTypeName, theFeatureType, defaultValueOverride=0)
Definition: Class_FeatureHandler.py:43
python.Bindings.iterkeys
iterkeys
Definition: Control/AthenaPython/python/Bindings.py:802
python.Class_FeatureHandler.FeatureHandler.addFourMomentum
def addFourMomentum(self)
Definition: Class_FeatureHandler.py:232
python.Class_FeatureHandler.FeatureHandler.getFeatureDefaultValues
def getFeatureDefaultValues(self)
Definition: Class_FeatureHandler.py:21
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_StdDev
m_VarTypeName_StdDev
Definition: Class_FeatureHandler.py:94
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_All
m_ConstituentTypeName_All
Definition: Class_FeatureHandler.py:127
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Basic
m_VarTypeName_Basic
Definition: Class_FeatureHandler.py:102
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_OutChrg
m_ConstituentTypeName_OutChrg
Definition: Class_FeatureHandler.py:132
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_FeatureHandler.FeatureHandler.m_VarTypeName_PID
m_VarTypeName_PID
Definition: Class_FeatureHandler.py:103
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_Isolations
def addTypeSpecificFeatures_Isolations(self)
Definition: Class_FeatureHandler.py:396
python.Class_FeatureHandler.FeatureHandler
Definition: Class_FeatureHandler.py:5
python.Class_FeatureHandler.FeatureHandler.m_Feature_Types
m_Feature_Types
Definition: Class_FeatureHandler.py:155
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_NeutLowB
m_ConstituentTypeName_NeutLowB
Definition: Class_FeatureHandler.py:134
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_PID
def addTypeSpecificFeatures_PID(self)
Definition: Class_FeatureHandler.py:270
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_HLV
def addTypeSpecificFeatures_HLV(self)
Definition: Class_FeatureHandler.py:450
python.Class_FeatureHandler.FeatureHandler.m_DefaultValues
m_DefaultValues
Definition: Class_FeatureHandler.py:107
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_OutNeut
m_ConstituentTypeName_OutNeut
Definition: Class_FeatureHandler.py:131
python.Class_FeatureHandler.FeatureHandler.__init__
def __init__(self)
Definition: Class_FeatureHandler.py:84
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_Mean
def addTypeSpecificFeatures_Mean(self)
Definition: Class_FeatureHandler.py:422
python.Class_FeatureHandler.FeatureHandler.addMultiplicities
def addMultiplicities(self)
Definition: Class_FeatureHandler.py:216
python.Class_FeatureHandler.FeatureHandler.m_ConstituentTypeName_NeutLowA
m_ConstituentTypeName_NeutLowA
Definition: Class_FeatureHandler.py:133
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Shots
m_VarTypeName_Shots
Definition: Class_FeatureHandler.py:104
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Angle
m_VarTypeName_Angle
Definition: Class_FeatureHandler.py:96
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
python.Class_FeatureHandler.FeatureHandler.m_Feature_Defaults
m_Feature_Defaults
Definition: Class_FeatureHandler.py:154
python.Class_FeatureHandler.FeatureHandler.addCombinedFeatures_Single
def addCombinedFeatures_Single(self)
Definition: Class_FeatureHandler.py:558
str
Definition: BTagTrackIpAccessor.cxx:11
python.Class_FeatureHandler.FeatureHandler.addTypeSpecificFeatures_Angle
def addTypeSpecificFeatures_Angle(self)
Definition: Class_FeatureHandler.py:504
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Isolation
m_VarTypeName_Isolation
Definition: Class_FeatureHandler.py:91
python.Class_FeatureHandler.FeatureHandler.m_VarTypeName_Combined
m_VarTypeName_Combined
Definition: Class_FeatureHandler.py:99