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  ( 'CaloCellContainer' , 'StoreGateSvc+CaloCells' ),
17  ( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ),
18  ]
19  if ion:
20  dataObjects += [( 'CaloCellContainer' , 'StoreGateSvc+CorrectedRoICaloCells' )]
21 
22  precisionPhotonVDV = CompFactory.AthViews.ViewDataVerifier(name)
23  precisionPhotonVDV.DataObjects = dataObjects
24  acc.addEventAlgo(precisionPhotonVDV)
25  return acc
26 
27 
28 def precisionPhotonRecoSequence(flags, RoIs, name = None, ion=False):
29  """ With this function we will setup the sequence of offline EgammaAlgorithms so to make a photon for TrigEgamma
30 
31  Sequence of algorithms is the following:
32  - egammaRecBuilder/TrigEgammaRecPhoton creates egammaObjects out of clusters and tracks. Here, at HLT photons we will only use clusters.
33  - photonSuperClusterBuilder algorithm will create superclusters out of the toposlusters and tracks in egammaRec under the photon hypothesis
34  https://gitlab.cern.ch/atlas/athena/blob/master/Reconstruction/egamma/egammaAlgs/python/egammaSuperClusterBuilder.py#L26
35  - 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.
36  https://gitlab.cern.ch/atlas/athena/blob/master/Reconstruction/egamma/egammaAlgs/src/xAODEgammaBuilder.cxx
37  """
38 
39  log.debug('precisionPhotonRecoSequence(RoIs = %s)',RoIs)
40 
42 
43  # Retrieve the factories now
44  from TriggerMenuMT.HLT.Photon.TrigPhotonFactoriesCfg import TrigTopoEgammaPhotonCfg, TrigTopoEgammaPhotonCfg_HI
45 
46  log.debug('retrieve(precisionPhotonRecoSequence,None,RoIs = %s)',RoIs)
47 
48  acc.merge(precisionPhotonVDVCfg(flags, name+'VDV',RoIs,ion))
49 
50  if ion:
51  TrigTopoEgammaPhoton = TrigTopoEgammaPhotonCfg_HI(flags)
52  else:
53  TrigTopoEgammaPhoton = TrigTopoEgammaPhotonCfg(flags)
54 
55  acc.merge(TrigTopoEgammaPhoton)
56 
57  #online monitoring for xAODEgammaBuilder
58  from TriggerMenuMT.HLT.Photon.TrigPhotonFactoriesCfg import PrecisionPhotonTopoMonitorCfg
59  PrecisionPhotonTopoRecoMonAlgo = PrecisionPhotonTopoMonitorCfg(flags,ion=ion)
60  acc.merge(PrecisionPhotonTopoRecoMonAlgo)
61 
62  #online monitoring for TrigPhotonSuperClusterBuilder
63  from TriggerMenuMT.HLT.Photon.TrigPhotonFactoriesCfg import PrecisionPhotonSuperClusterMonitorCfg
64  PrecisionPhotonSuperClusterMonAlgo = PrecisionPhotonSuperClusterMonitorCfg(flags, ion=ion)
65  acc.merge(PrecisionPhotonSuperClusterMonAlgo)
66 
67  return acc
68 
69 
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:28
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