ATLAS Offline Software
Photon/PrecisionCaloRecoSequences.py
Go to the documentation of this file.
1 #
2 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 #
4 
5 from AthenaCommon.Logging import logging
6 from TriggerMenuMT.HLT.Egamma.TrigEgammaKeys import getTrigEgammaKeys
7 from TriggerMenuMT.HLT.Egamma.TrigEgammaFactoriesCfg import TrigEgammaRecCfg, TrigEgammaSuperClusterBuilderCfg
8 from AthenaConfiguration.ComponentFactory import CompFactory
9 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
10 
11 log = logging.getLogger(__name__)
12 
13 
14 def precisionCaloPhotonVDVCfg(flags, name, InViewRoIs, ion=False):
15  acc = ComponentAccumulator()
16  TrigEgammaKeys = getTrigEgammaKeys(flags, ion=ion)
17  dataObjects= [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s'%InViewRoIs ),
18  ( 'CaloBCIDAverage' , 'StoreGateSvc+CaloBCIDAverage' ),
19  ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.averageInteractionsPerCrossing' )]
20  if ion:
21  dataObjects += [( 'xAOD::HIEventShapeContainer' , 'StoreGateSvc+' + TrigEgammaKeys.egEventShape ),
22  ( 'CaloBCIDAverage' , 'StoreGateSvc+CaloBCIDAverage' ),
23  ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.averageInteractionsPerCrossing' )]
24 
25  precisionCaloPhotonVDV = CompFactory.AthViews.ViewDataVerifier(name)
26  precisionCaloPhotonVDV.DataObjects = dataObjects
27  acc.addEventAlgo(precisionCaloPhotonVDV)
28  return acc
29 
30 def precisionCaloRecoSequence(flags, RoIs, name = None, ion=False):
31 
32  acc = ComponentAccumulator()
33 
34  TrigEgammaKeys = getTrigEgammaKeys(flags, ion = ion)
35  log.debug('flags = %s',flags)
36  log.debug('RoIs = %s',RoIs)
37 
38  acc.merge(precisionCaloPhotonVDVCfg(flags,name+'VDV',RoIs,ion))
39 
40  from TrigCaloRec.TrigCaloRecConfig import egammaTopoClusteringCfg, hltCaloTopoClusteringHICfg
41 
42  if ion:
43  topoCluster = hltCaloTopoClusteringHICfg(flags,
44  CellsName = "CaloCells",
45  roisKey=RoIs)
46  else:
47  topoCluster = egammaTopoClusteringCfg(flags, RoIs)
48  acc.merge(topoCluster)
49  tag = 'HI' if ion is True else ''
50 
51  copier = CompFactory.egammaTopoClusterCopier('gTrigEgammaTopoClusterCopier'+ tag + RoIs,
52  InputTopoCollection=TrigEgammaKeys.precisionTopoClusterContainer,
53  OutputTopoCollection= TrigEgammaKeys.precisionCaloTopoCollection)
54  acc.addEventAlgo(copier)
55 
56  trigEgammaRec = TrigEgammaRecCfg(flags, name = 'gTrigEgammaRec'+tag + RoIs)
57 
58  acc.merge(trigEgammaRec)
59 
60  trigEgammaSuperClusterBuilder = TrigEgammaSuperClusterBuilderCfg(flags,
61  'gTrigEgammaSuperClusterBuilder' + tag + RoIs,
62  'photon',
63  TrigEgammaKeys.precisionPhotonCaloClusterContainer,
64  TrigEgammaKeys.precisionPhotonSuperClusterCollection)
65  acc.merge(trigEgammaSuperClusterBuilder)
66 
67  return acc
68 
69 
70 
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigEgammaSuperClusterBuilderCfg
def TrigEgammaSuperClusterBuilderCfg(flags, name, calibrationType, superClusterCollectionName, superegammaRecCollectionName)
Definition: TrigEgammaFactoriesCfg.py:21
PrecisionCaloRecoSequences.precisionCaloRecoSequence
def precisionCaloRecoSequence(flags, RoIs, name=None, ion=False)
Definition: Photon/PrecisionCaloRecoSequences.py:30
PrecisionCaloRecoSequences.precisionCaloPhotonVDVCfg
def precisionCaloPhotonVDVCfg(flags, name, InViewRoIs, ion=False)
Definition: Photon/PrecisionCaloRecoSequences.py:14
python.HLT.Egamma.TrigEgammaFactoriesCfg.TrigEgammaRecCfg
def TrigEgammaRecCfg(flags, name="trigEgammaRec")
Definition: TrigEgammaFactoriesCfg.py:7
TrigCaloRecConfig.egammaTopoClusteringCfg
def egammaTopoClusteringCfg(flags, RoIs)
EgammaSpecific TopoClustering####################################.
Definition: TrigCaloRecConfig.py:423
TrigCaloRecConfig.hltCaloTopoClusteringHICfg
def hltCaloTopoClusteringHICfg(flags, CellsName=None, roisKey="UNSPECIFIED", doLC=False, algSuffix='HIRoI', ion=True)
Definition: TrigCaloRecConfig.py:453
python.HLT.Egamma.TrigEgammaKeys.getTrigEgammaKeys
def getTrigEgammaKeys(AthConfigFlags flags, name='', ion=False)
Definition: TrigEgammaKeys.py:138