ATLAS Offline Software
Loading...
Searching...
No Matches
TrigEgammaKeys.py
Go to the documentation of this file.
1# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
2
3__author__ = "Fernando Monticelli, Debottam Bakshi Gupta, Joao Victor Pinto"
4__doc__ = "ConfigSettings"
5__all__ = [ "getTrigEgammaKeys" ]
6
7#----------------------------------------------------------------
8# Configuration of Electron and Photon chains
9#----------------------------------------------------------------
10
11
12from TrigEDMConfig.TriggerEDM import recordable
13from AthenaConfiguration.AthConfigFlags import AthConfigFlags
14
16
17 """Base clas to configure TrigEgamma Container names. Containers will be record, collections not"""
18 def __init__(self, flags: AthConfigFlags, ion=False):
19
20
21 """Static class to collect all string manipulation in fast electron sequences """
22 self.fastTrackingRoIContainer = recordable("HLT_Roi_FastElectron")
23 self.fastElectronContainer = recordable("HLT_FastElectrons")
24
25 """Static class to collect all string manipulation in fast photon sequences """
26 self.fastPhotonRoIContainer = recordable("HLT_Roi_FastPhoton")
27 self.fastPhotonContainer = recordable("HLT_FastPhotons")
28
29 """Static class to collect all string manipulation in precision calo sequences """
30 self.precisionCaloTopoCollection = 'HLT_egammaTopoCluster'
31 self.precisionCaloEgammaRecCollection = 'HLT_precisionCaloEgammaRecCollection'
32 self.precisionElectronCaloClusterContainer = recordable("HLT_CaloEMClusters_Electron") if not ion else recordable("HLT_HICaloEMClusters")
33 self.precisionPhotonCaloClusterContainer = recordable("HLT_CaloEMClusters_Photon") if not ion else recordable("HLT_HICaloEMClusters")
34 self.precisionTopoClusterContainer = recordable("HLT_TopoCaloClustersRoI") if not ion else recordable("HLT_TopoCaloClustersHIRoI")
35 self.precisionEgammaRecCollection = 'HLT_egammaRecCollection'
36 self.precisionPhotonEMClusterContainer = recordable('HLT_TrigEMClusters_Photons')
37 self.precisionElectronEMClusterContainer = recordable('HLT_TrigEMClusters_Electrons')
38
39 """Static class to collect all string manipulation in precision photon sequences """
40 self.precisionPhotonSuperClusterRecCollection = 'HLT_PhotonSuperRecCollection'
41 self.precisionPhotonSuperClusterCollection = 'HLT_PhotonSuperClusters'
42 self.precisionPhotonContainer = recordable('HLT_egamma_Photons')
43 self.precisionPhotonIsoContainer = recordable('HLT_egamma_Iso_Photons')
44
45 """Static class to collect all string manipulation in precision electron sequences """
46 self.precisionElectronSuperClusterRecCollection = 'HLT_ElectronSuperRecCollection'
47 self.precisionElectronSuperClusterCollection = 'HLT_ElectronSuperClusters'
48 self.precisionElectronContainer = recordable('HLT_egamma_Electrons')
49
50 """Static class to collect all string manipulation in precision egamma sequences """
51 self.precisionEgammaSuperClusterRecCollection = 'HLT_EgammaSuperRecCollection'
52
53 #
54 # Special sequences
55 #
56 self.TrigTRTHTCountsContainer = recordable("HLT_TrigTRTHTCounts")
57 self.egEventShape = recordable('HLT_HIEventShapeEG')
58 self._flags = flags
59
60
61
62 @property
64 return self._flags.Trigger.InDetTracking.electron.tracks_IDTrig
65
66 @property
68 return self._flags.Trigger.InDetTracking.electron.tracks_FTF
69
70
71
73 # This class contians modified base configuration class for LRT electron trigger chains
74 def __init__(self, flags: AthConfigFlags, ion):
75 TrigEgammaKeysBase.__init__(self, flags, ion)
76
77 self.fastTrackingRoIContainer = recordable("HLT_Roi_FastElectron_LRT")
78 self.fastElectronContainer = recordable('HLT_FastElectrons_LRT')
79 self.precisionElectronEMClusterContainer = recordable('HLT_TrigEMClusters_Electrons_LRT')
80 self.precisionElectronCaloClusterContainer = recordable("HLT_CaloEMClusters_LRT")
81 self.precisionElectronContainer = recordable('HLT_egamma_Electrons_LRT')
82 self.precisionTopoClusterContainer = recordable("HLT_TopoCaloClustersRoI_LRT")
83
84 @property
86 return self._flags.Trigger.InDetTracking.electronLRT.tracks_IDTrig
87
88 @property
90 return self._flags.Trigger.InDetTracking.electronLRT.tracks_FTF
91
92
94 # This class contians modified base configuration class for GSF electron trigger chains
95 def __init__(self, flags: AthConfigFlags, ion):
96 TrigEgammaKeysBase.__init__(self, flags, ion)
97 self.precisionElectronEMClusterContainer = recordable('HLT_TrigEMClusters_Electrons_GSF')
98
99 # from HLT_IDTrack_Electron to HLT_IDTrack_Electron by refit alg
100 self.precisionElectronTrkCollectionGSF = 'HLT_IDTrkTrack_Electron_GSF'
101 self.precisionElectronTrackParticleContainerGSF = recordable('HLT_IDTrack_Electron_GSF')
102 self.precisionElectronContainer = recordable('HLT_egamma_Electrons_GSF')
103 @property
105 return self._flags.Trigger.InDetTracking.electron.tracks_IDTrig
106
107 @property
109 return self._flags.Trigger.InDetTracking.electron.tracks_FTF
110
111
113 # This class contians modified base configuration class for LRT_GSF electron trigger chains
114 def __init__(self, flags: AthConfigFlags, ion):
115 TrigEgammaKeysBase.__init__(self, flags, ion)
116 self.precisionElectronEMClusterContainer = recordable('HLT_TrigEMClusters_Electrons_LRTGSF')
117
118 # from HLT_IDTrack_Electron to HLT_IDTrack_Electron by refit alg
119 self.precisionElectronTrkCollectionGSF = 'HLT_IDTrkTrack_Electron_LRTGSF'
120 self.precisionElectronTrackParticleContainerGSF = recordable('HLT_IDTrack_Electron_LRTGSF')
121 self.precisionElectronCaloClusterContainer = recordable("HLT_CaloEMClusters_LRT")
122 self.precisionElectronContainer = recordable('HLT_egamma_Electrons_LRTGSF')
123
124 @property
126 return self._flags.Trigger.InDetTracking.electronLRT.tracks_IDTrig
127
128 @property
130 return self._flags.Trigger.InDetTracking.electronLRT.tracks_FTF
131
132#
133# Get keys from variant name
134#
135from AthenaConfiguration.AccumulatorCache import AccumulatorCache
136
137@AccumulatorCache
138def getTrigEgammaKeys(flags: AthConfigFlags, name='', ion=False):
139
140 _d = {
141 # Dictionary that maps a string to a configuration setting for electron and photon chains
142 '' : TrigEgammaKeysBase(flags, ion),
143 '_noGSF' : TrigEgammaKeysBase(flags, ion),
144 '_LRT' : TrigEgammaKeys_LRT(flags, ion),
145 '_GSF' : TrigEgammaKeys_GSF(flags, ion),
146 '_LRTGSF' : TrigEgammaKeys_LRTGSF(flags, ion),
147 }
148
149 if name in _d.keys():
150 return _d[name]
151 else:
152 raise Exception('getTrigEgammaKeys() called with non valid name : ' + name + ' valid names are:' + str(_d.keys()) )
153
__init__(self, AthConfigFlags flags, ion=False)
getTrigEgammaKeys(AthConfigFlags flags, name='', ion=False)