ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
RingerSelectorTools
python
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:
51
removeClusterCutsFromIsEMMask
(self.
CutIDSelector
.isEMMask)
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
62
class
ElectronRingerSelectorTestLoose
(
BaseElectronSelectorConf
):
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"
,
72
Ringer.ElectronTAccept_v1.getAppliedCutMsk
(Ringer.Loose,
73
kwargs.get(
"useCutIDTrack"
,
False
)),
74
**kwargs)
75
self.
_setCutIDSelector
(
"LooseRingerIsEMSelector"
,\
76
egammaPID.ElectronIDLoosePP, \
77
electronPIDmenu.menuDC14, **kwargs)
78
79
class
ElectronRingerSelectorTestMedium
(
BaseElectronSelectorConf
):
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"
,
89
Ringer.ElectronTAccept_v1.getAppliedCutMsk
(Ringer.Medium,
90
kwargs.get(
"useCutIDTrack"
,
False
)),
91
**kwargs)
92
self.
_setCutIDSelector
(
"MediumRingerIsEMSelector"
, \
93
egammaPID.ElectronIDMediumPP, \
94
electronPIDmenu.menuDC14, \
95
**kwargs)
96
97
class
ElectronRingerSelectorTestTight
(
BaseElectronSelectorConf
):
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"
,
107
Ringer.ElectronTAccept_v1.getAppliedCutMsk
(Ringer.Tight,
108
kwargs.get(
"useCutIDTrack"
,
False
)),
109
**kwargs)
110
self.
_setCutIDSelector
(
"TightRingerIsEMSelector"
, \
111
egammaPID.ElectronIDTightPP, \
112
electronPIDmenu.menuDC14, **kwargs)
113
114
class
ElectronRingerSelectorTestNoCut
(
BaseElectronSelectorConf
):
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"
,
125
Ringer.ElectronTAccept_v1.getAppliedCutMsk
(Ringer.NoCut,
126
kwargs.get(
"useCutIDTrack"
,
False
)),
127
**kwargs)
128
self.
_setCutIDSelector
(
"NoCutRingerIsEMSelector"
, \
129
egammaPID.ElectronIDNoCut, \
130
electronPIDmenu.menuDC14, \
131
**kwargs)
132
133
ElectronRingerSelectorDefs.BaseElectronSelectorConf
Definition
ElectronRingerSelectorDefs.py:26
ElectronRingerSelectorDefs.BaseElectronSelectorConf.CutIDSelector
CutIDSelector
Definition
ElectronRingerSelectorDefs.py:47
ElectronRingerSelectorDefs.BaseElectronSelectorConf._setCutIDSelector
_setCutIDSelector(self, defaultName, quality, menu, **kwargs)
Definition
ElectronRingerSelectorDefs.py:32
ElectronRingerSelectorDefs.BaseElectronSelectorConf._setDefault
_setDefault(self, attrName, default, **kwargs)
Definition
ElectronRingerSelectorDefs.py:27
ElectronRingerSelectorDefs.BaseElectronSelectorConf.__init__
__init__(self, name, **kwargs)
Definition
ElectronRingerSelectorDefs.py:53
ElectronRingerSelectorDefs.ElectronRingerSelectorTestLoose
Definition
ElectronRingerSelectorDefs.py:62
ElectronRingerSelectorDefs.ElectronRingerSelectorTestLoose.__init__
__init__(self, name="ElectronRingerSelector_TestLoose", **kwargs)
Definition
ElectronRingerSelectorDefs.py:63
ElectronRingerSelectorDefs.ElectronRingerSelectorTestMedium
Definition
ElectronRingerSelectorDefs.py:79
ElectronRingerSelectorDefs.ElectronRingerSelectorTestMedium.__init__
__init__(self, name="ElectronRingerSelector_TestMedium", **kwargs)
Definition
ElectronRingerSelectorDefs.py:80
ElectronRingerSelectorDefs.ElectronRingerSelectorTestNoCut
Definition
ElectronRingerSelectorDefs.py:114
ElectronRingerSelectorDefs.ElectronRingerSelectorTestNoCut.__init__
__init__(self, name="ElectronRingerSelector_TestNoCut", **kwargs)
Definition
ElectronRingerSelectorDefs.py:115
ElectronRingerSelectorDefs.ElectronRingerSelectorTestTight
Definition
ElectronRingerSelectorDefs.py:97
ElectronRingerSelectorDefs.ElectronRingerSelectorTestTight.__init__
__init__(self, name="ElectronRingerSelector_TestTight", **kwargs)
Definition
ElectronRingerSelectorDefs.py:98
Ringer::ElectronTAccept_v1::getAppliedCutMsk
static unsigned int getAppliedCutMsk(const Requirement cut, bool withCutIDTrack=false)
Main methods.
ElectronRingerSelectorDefs.removeClusterCutsFromIsEMMask
removeClusterCutsFromIsEMMask(CutIDIsEMMask)
Definition
ElectronRingerSelectorDefs.py:22
Generated on
for ATLAS Offline Software by
1.17.0