ATLAS Offline Software
PrecisionPhotonRecoSequences.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 from TriggerMenuMT.HLT.Egamma.TrigEgammaKeys import getTrigEgammaKeys
6 #logging
7 from AthenaCommon.Logging import logging
8 log = logging.getLogger(__name__)
9 
10 def precisionPhotonVDVCfg(flags, name, InViewRoIs, ion=False):
11  acc = ComponentAccumulator()
12  TrigEgammaKeys = getTrigEgammaKeys(flags, ion=ion)
13  caloClusters = TrigEgammaKeys.precisionPhotonCaloClusterContainer
14  dataObjects = [( 'xAOD::CaloClusterContainer' , 'StoreGateSvc+%s' % caloClusters ),
15  ( 'EgammaRecContainer', 'StoreGateSvc+%s' % TrigEgammaKeys.precisionPhotonSuperClusterCollection),
16  ( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ),
17  ]
18  if ion:
19  dataObjects += [( 'CaloCellContainer' , 'StoreGateSvc+CorrectedRoICaloCells' )]
20  else:
21  dataObjects += [( 'CaloCellContainer' , 'StoreGateSvc+CaloCells' )]
22 
23  precisionPhotonVDV = CompFactory.AthViews.ViewDataVerifier(name)
24  precisionPhotonVDV.DataObjects = dataObjects
25  acc.addEventAlgo(precisionPhotonVDV)
26  return acc
27 
28 
29 def precisionPhotonRecoSequence(flags, RoIs, name = None, ion=False):
30  """ With this function we will setup the sequence of offline EgammaAlgorithms so to make a photon for TrigEgamma
31 
32  Sequence of algorithms is the following:
33  - egammaRecBuilder/TrigEgammaRecPhoton creates egammaObjects out of clusters and tracks. Here, at HLT photons we will only use clusters.
34  - photonSuperClusterBuilder algorithm will create superclusters out of the toposlusters and tracks in egammaRec under the photon hypothesis
35  https://gitlab.cern.ch/atlas/athena/blob/master/Reconstruction/egamma/egammaAlgs/python/egammaSuperClusterBuilder.py#L26
36  - TopoEgammBuilder will create photons and electrons out of trakcs and SuperClusters. Here at HLT photons the aim is to ignore electrons and not use tracks at all.
37  https://gitlab.cern.ch/atlas/athena/blob/master/Reconstruction/egamma/egammaAlgs/src/xAODEgammaBuilder.cxx
38  """
39 
40  log.debug('precisionPhotonRecoSequence(RoIs = %s)',RoIs)
41 
43 
44  # Retrieve the factories now
45  from TriggerMenuMT.HLT.Photon.TrigPhotonFactoriesCfg import TrigTopoEgammaPhotonCfg, TrigTopoEgammaPhotonCfg_HI
46 
47  log.debug('retrieve(precisionPhotonRecoSequence,None,RoIs = %s)',RoIs)
48 
49  acc.merge(precisionPhotonVDVCfg(flags, name+'VDV',RoIs,ion))
50 
51  if ion:
52  TrigTopoEgammaPhoton = TrigTopoEgammaPhotonCfg_HI(flags)
53  else:
54  TrigTopoEgammaPhoton = TrigTopoEgammaPhotonCfg(flags)
55 
56  acc.merge(TrigTopoEgammaPhoton)
57 
58  #online monitoring for xAODEgammaBuilder
59  from TriggerMenuMT.HLT.Photon.TrigPhotonFactoriesCfg import PrecisionPhotonTopoMonitorCfg
60  PrecisionPhotonTopoRecoMonAlgo = PrecisionPhotonTopoMonitorCfg(flags,ion=ion)
61  acc.merge(PrecisionPhotonTopoRecoMonAlgo)
62 
63  #online monitoring for TrigPhotonSuperClusterBuilder
64  from TriggerMenuMT.HLT.Photon.TrigPhotonFactoriesCfg import PrecisionPhotonSuperClusterMonitorCfg
65  PrecisionPhotonSuperClusterMonAlgo = PrecisionPhotonSuperClusterMonitorCfg(flags, ion=ion)
66  acc.merge(PrecisionPhotonSuperClusterMonAlgo)
67 
68  return acc
69 
70 
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
PrecisionPhotonRecoSequences.precisionPhotonVDVCfg
def precisionPhotonVDVCfg(flags, name, InViewRoIs, ion=False)
Definition: PrecisionPhotonRecoSequences.py:10
TrigPhotonFactoriesCfg.PrecisionPhotonTopoMonitorCfg
def PrecisionPhotonTopoMonitorCfg(flags, ion=False, name='PrecisionPhotonTopoMonitoring')
Definition: TrigPhotonFactoriesCfg.py:78
PrecisionPhotonRecoSequences.precisionPhotonRecoSequence
def precisionPhotonRecoSequence(flags, RoIs, name=None, ion=False)
Definition: PrecisionPhotonRecoSequences.py:29
TrigPhotonFactoriesCfg.TrigTopoEgammaPhotonCfg_HI
def TrigTopoEgammaPhotonCfg_HI(flags)
Definition: TrigPhotonFactoriesCfg.py:58
TrigPhotonFactoriesCfg.TrigTopoEgammaPhotonCfg
def TrigTopoEgammaPhotonCfg(flags)
Definition: TrigPhotonFactoriesCfg.py:38
TrigPhotonFactoriesCfg.PrecisionPhotonSuperClusterMonitorCfg
def PrecisionPhotonSuperClusterMonitorCfg(flags, ion=False, name='PrecisionPhotonSuperClusterMonitoring')
Definition: TrigPhotonFactoriesCfg.py:95
python.HLT.Egamma.TrigEgammaKeys.getTrigEgammaKeys
def getTrigEgammaKeys(AthConfigFlags flags, name='', ion=False)
Definition: TrigEgammaKeys.py:138