15 """ With this function we will setup the sequence of offline EgammaAlgorithms so to make a electron for TrigEgamma
17 Sequence of algorithms is the following:
18 - egammaRecBuilder/TrigEgammaRecElectron creates egammaObjects out of clusters and tracks.
19 - electronSuperClusterBuilder algorithm will create superclusters out of the topoclusters and tracks in egammaRec under the electron hypothesis
20 https://gitlab.cern.ch/atlas/athena/blob/master/Reconstruction/egamma/egammaAlgs/python/egammaSuperClusterBuilder.py#L26
21 - TopoEgammBuilder will create photons and electrons out of trakcs and SuperClusters. Here at HLT electrons the aim is to ignore photons.
22 https://gitlab.cern.ch/atlas/athena/blob/master/Reconstruction/egamma/egammaAlgs/src/xAODEgammaBuilder.cxx
25 log.debug(
'precisionElectronRecoSequence(RoIs = %s, ion = %s, doGSF = %s, doLRT = %s)',RoIs,ion,doGSF,doLRT)
27 tag =
'_ion' if ion
is True else ''
36 if not doLRT
and not doGSF:
41 from TriggerMenuMT.HLT.Egamma.TrigEgammaKeys
import getTrigEgammaKeys
55 trackParticles = TrigEgammaKeys.precisionElectronTrackParticleContainerGSF
58 trackParticles = TrigEgammaKeys_noGSF.precisionTrackingContainer
61 caloClusters = TrigEgammaKeys.precisionElectronCaloClusterContainer
62 egammaRecContainer = TrigEgammaKeys.precisionEgammaRecCollection
63 superElectronRecCollectionName = TrigEgammaKeys.precisionElectronSuperClusterCollection
64 superPhotonRecCollectionName = TrigEgammaKeys.precisionPhotonSuperClusterCollection
65 photonOutputName = TrigEgammaKeys.precisionPhotonContainer
66 trackParticles_noGSF = TrigEgammaKeys_noGSF.precisionTrackingContainer
67 TrackParticleLocation = TrigEgammaKeys.precisionTrackingContainer
68 electronOutputName = TrigEgammaKeys.precisionElectronContainer
70 OutputClusterContainerName = TrigEgammaKeys.precisionElectronEMClusterContainer
73 from TrigInDetConfig.InDetTrigCollectionKeys
import TrigTRTKeys, TrigPixelKeys
75 cellsName =
"CaloCells" if not ion
else "CorrectedRoICaloCells"
76 dataObjects = [(
'CaloCellContainer' ,
'StoreGateSvc+%s' % cellsName ),
77 (
'xAOD::CaloClusterContainer' ,
'StoreGateSvc+%s' % caloClusters ),
78 (
'xAOD::TrackParticleContainer',
'StoreGateSvc+%s' % trackParticles_noGSF)]
82 (
'xAOD::TrackParticleContainer',
'StoreGateSvc+%s' % trackParticles),
83 (
'SG::AuxElement' ,
'StoreGateSvc+EventInfo.averageInteractionsPerCrossing' ),
84 (
'InDet::PixelGangedClusterAmbiguities' ,
'StoreGateSvc+%s' % TrigPixelKeys.PixelClusterAmbiguitiesMap ),
85 (
'InDet::TRT_DriftCircleContainer' ,
'StoreGateSvc+%s' % TrigTRTKeys.DriftCircles ),
86 (
'SG::AuxElement' ,
'StoreGateSvc+EventInfo.AveIntPerXDecor' )]
89 dataObjects += [(
'TRT_RDO_Container' ,
'StoreGateSvc+TRT_RDOs' )]
91 dataObjects += [(
'IDCInDetBSErrContainer' ,
'StoreGateSvc+PixelByteStreamErrs' )]
92 dataObjects += [(
'TRT_RDO_Cache' , f
'StoreGateSvc+{flags.Trigger.InDetTracking.TRTRDOCacheKey}' )]
94 precisionElectronVDV = CompFactory.AthViews.ViewDataVerifier(
"precisionElectron"+tag+
"VDV")
95 precisionElectronVDV.DataObjects = dataObjects
96 acc.addEventAlgo(precisionElectronVDV)
98 """ Retrieve the factories now """
99 from TriggerMenuMT.HLT.Electron.TrigElectronFactoriesCfg
import TrigEgammaRecElectronCfg, TrigElectronSuperClusterBuilderCfg, TrigTopoEgammaElectronCfg, TrigElectronIsoBuilderCfg
107 acc.merge(TrigEgammaRecAlgo)
111 acc.merge(TrigSuperElectronAlgo)
114 TrigTopoEgammaAlgo =
TrigTopoEgammaElectronCfg(flags, tag, variant, cellsName, superElectronRecCollectionName, superPhotonRecCollectionName, electronOutputName, photonOutputName,OutputClusterContainerName)
116 acc.merge(TrigTopoEgammaAlgo)
118 collectionOut = electronOutputName
122 acc.merge(isoBuilder)
124 isoVarKeys = [
'%s.ptcone20' % collectionOut,
125 '%s.ptvarcone20' % collectionOut,
126 '%s.ptcone30' % collectionOut,
127 '%s.ptvarcone30' % collectionOut ]
130 from TriggerMenuMT.HLT.Electron.TrigElectronFactoriesCfg
import PrecisionElectronTopoMonitorCfg
133 acc.merge(PrecisionElectronRecoMonAlgo)
136 from TriggerMenuMT.HLT.Electron.TrigElectronFactoriesCfg
import PrecisionElectronSuperClusterMonitorCfg
139 acc.merge(PrecisionElectronSuperClusterMonAlgo)