ATLAS Offline Software
ElectronRingerSelectorDefs.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaCommon.Logging import logging
4 mlog = logging.getLogger( 'ElectronRingerSelectorDefs.py' )
5 
6 # Import from Ringer utilities:
7 import ROOT
8 ROOT.gSystem.Load('libRingerSelectorToolsEnumsDict.so')
9 from ROOT import Ringer
10 
11 from RingerSelectorTools.RingerSelectorToolsConf import Ringer__AsgElectronRingerSelector
12 from CaloRingerAlgs.CaloRingerKeys import outputElectronRingSetsConfKey
13 
14 # Import egammaPID
15 ROOT.gSystem.Load('libElectronPhotonSelectorToolsDict.so')
16 from ROOT import egammaPID
17 
18 from ElectronPhotonSelectorTools.ElectronIsEMSelectorMapping import electronPIDmenu
19 from ElectronPhotonSelectorTools.ConfiguredAsgElectronIsEMSelectors \
20  import ConfiguredAsgElectronIsEMSelector
21 
22 def removeClusterCutsFromIsEMMask(CutIDIsEMMask):
23  "Remove egammaPID Electron Calorimeter cuts from isEM"
24  CutIDIsEMMask = CutIDIsEMMask & (~egammaPID.CALO_ELECTRON)
25 
26 class BaseElectronSelectorConf ( Ringer__AsgElectronRingerSelector ):
27  def _setDefault(self,attrName, default, **kwargs):
28  "Overwrites AsgElectronRingerSelector default to new default value."
29  if attrName not in kwargs:
30  setattr(self, attrName, default)
31 
32  def _setCutIDSelector(self,defaultName,quality,menu,**kwargs):
33  """
34  Set the AsgElectronRingerSelector CutIDSelector to default or to the configuration
35  available in the kwargs
36  """
37  removeMask = False
38  if "cutIDConfDict" not in kwargs and "CutIDSelector" not in kwargs:
39  removeMask = True
40  if "CutIDSelector" not in kwargs:
41  CutIDSelectorTool = ConfiguredAsgElectronIsEMSelector(defaultName,
42  quality,
43  menu,
44  **kwargs.pop("cutIDConfDict",{}))
45  from AthenaCommon.AppMgr import ToolSvc
46  ToolSvc += CutIDSelectorTool
47  self.CutIDSelector = CutIDSelectorTool
48  else:
49  self.CutIDSelector = kwargs.pop("CutIDSelector")
50  if removeMask:
52 
53  def __init__(self, name, **kwargs):
54  Ringer__AsgElectronRingerSelector.__init__(self,name,**kwargs)
55  self._setDefault("RingSetConfContainerName",
56  outputElectronRingSetsConfKey(),
57  **kwargs)
58  self._setDefault("CacheConfData", True, **kwargs)
59  self._setDefault("useCutIDTrack", False, **kwargs)
60 
61 
63  def __init__(self, name = "ElectronRingerSelector_TestLoose", **kwargs):
64  BaseElectronSelectorConf.__init__(self,name,**kwargs)
65  self._setDefault("DiscriminationFileName",
66  "RingerSelectorTools/TestMenu_20150605_v1/ElectronRingerOfflineDiscrLoose.root",
67  **kwargs)
68  self._setDefault("ThresholdFileName",
69  "RingerSelectorTools/TestMenu_20150605_v1/ElectronRingerOfflineThresLoose.root",
70  **kwargs)
71  self._setDefault("CutsMask",
73  kwargs.get("useCutIDTrack",False)),
74  **kwargs)
75  self._setCutIDSelector("LooseRingerIsEMSelector",\
76  egammaPID.ElectronIDLoosePP, \
77  electronPIDmenu.menuDC14, **kwargs)
78 
80  def __init__(self, name = "ElectronRingerSelector_TestMedium", **kwargs):
81  BaseElectronSelectorConf.__init__(self,name,**kwargs)
82  self._setDefault("DiscriminationFileName",
83  "RingerSelectorTools/TestMenu_20150605_v1/ElectronRingerOfflineDiscrMedium.root",
84  **kwargs)
85  self._setDefault("ThresholdFileName",
86  "RingerSelectorTools/TestMenu_20150605_v1/ElectronRingerOfflineThresMedium.root",
87  **kwargs)
88  self._setDefault("CutsMask",
90  kwargs.get("useCutIDTrack",False)),
91  **kwargs)
92  self._setCutIDSelector("MediumRingerIsEMSelector", \
93  egammaPID.ElectronIDMediumPP, \
94  electronPIDmenu.menuDC14, \
95  **kwargs)
96 
98  def __init__(self, name = "ElectronRingerSelector_TestTight", **kwargs):
99  BaseElectronSelectorConf.__init__(self,name,**kwargs)
100  self._setDefault("DiscriminationFileName",
101  "RingerSelectorTools/TestMenu_20150605_v1/ElectronRingerOfflineDiscrTight.root",
102  **kwargs)
103  self._setDefault("ThresholdFileName",
104  "RingerSelectorTools/TestMenu_20150605_v1/ElectronRingerOfflineThresTight.root",
105  **kwargs)
106  self._setDefault("CutsMask",
108  kwargs.get("useCutIDTrack",False)),
109  **kwargs)
110  self._setCutIDSelector("TightRingerIsEMSelector", \
111  egammaPID.ElectronIDTightPP, \
112  electronPIDmenu.menuDC14, **kwargs)
113 
115  def __init__(self, name = "ElectronRingerSelector_TestNoCut", **kwargs):
116  # FIXME This doesn't work, for now...
117  BaseElectronSelectorConf.__init__(self,name,**kwargs)
118  self._setDefault("DiscriminationFileName",
119  "RingerSelectorTools/TestMenu_20150605_v1/ElectronRingerOfflineDiscrMedium.root",
120  **kwargs)
121  self._setDefault("ThresholdFileName",
122  "RingerSelectorTools/TestMenu_20150605_v1/ElectronRingerOfflineThresMedium.root",
123  **kwargs)
124  self._setDefault("CutsMask",
126  kwargs.get("useCutIDTrack",False)),
127  **kwargs)
128  self._setCutIDSelector("NoCutRingerIsEMSelector", \
129  egammaPID.ElectronIDNoCut, \
130  electronPIDmenu.menuDC14, \
131  **kwargs)
132 
133 
ElectronRingerSelectorDefs.ElectronRingerSelectorTestNoCut.__init__
def __init__(self, name="ElectronRingerSelector_TestNoCut", **kwargs)
Definition: ElectronRingerSelectorDefs.py:115
ElectronRingerSelectorDefs.ElectronRingerSelectorTestNoCut
Definition: ElectronRingerSelectorDefs.py:114
Ringer::ElectronTAccept_v1::getAppliedCutMsk
static unsigned int getAppliedCutMsk(const Requirement cut, bool withCutIDTrack=false)
Main methods.
ElectronRingerSelectorDefs.BaseElectronSelectorConf._setDefault
def _setDefault(self, attrName, default, **kwargs)
Definition: ElectronRingerSelectorDefs.py:27
ElectronRingerSelectorDefs.BaseElectronSelectorConf.CutIDSelector
CutIDSelector
Definition: ElectronRingerSelectorDefs.py:47
ElectronRingerSelectorDefs.ElectronRingerSelectorTestLoose.__init__
def __init__(self, name="ElectronRingerSelector_TestLoose", **kwargs)
Definition: ElectronRingerSelectorDefs.py:63
ElectronRingerSelectorDefs.ElectronRingerSelectorTestLoose
Definition: ElectronRingerSelectorDefs.py:62
ElectronRingerSelectorDefs.ElectronRingerSelectorTestMedium
Definition: ElectronRingerSelectorDefs.py:79
ElectronRingerSelectorDefs.removeClusterCutsFromIsEMMask
def removeClusterCutsFromIsEMMask(CutIDIsEMMask)
Definition: ElectronRingerSelectorDefs.py:22
ElectronRingerSelectorDefs.ElectronRingerSelectorTestTight
Definition: ElectronRingerSelectorDefs.py:97
ElectronRingerSelectorDefs.BaseElectronSelectorConf.__init__
def __init__(self, name, **kwargs)
Definition: ElectronRingerSelectorDefs.py:53
ElectronRingerSelectorDefs.ElectronRingerSelectorTestTight.__init__
def __init__(self, name="ElectronRingerSelector_TestTight", **kwargs)
Definition: ElectronRingerSelectorDefs.py:98
ElectronRingerSelectorDefs.ElectronRingerSelectorTestMedium.__init__
def __init__(self, name="ElectronRingerSelector_TestMedium", **kwargs)
Definition: ElectronRingerSelectorDefs.py:80
ElectronRingerSelectorDefs.BaseElectronSelectorConf
Definition: ElectronRingerSelectorDefs.py:26
ElectronRingerSelectorDefs.BaseElectronSelectorConf._setCutIDSelector
def _setCutIDSelector(self, defaultName, quality, menu, **kwargs)
Definition: ElectronRingerSelectorDefs.py:32