ATLAS Offline Software
PrecisionTracks_GSFRefittedSequence.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 AthenaConfiguration.ComponentFactory import CompFactory
6 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7 from AthenaCommon.Logging import logging
8 log = logging.getLogger(__name__)
9 
10 def precisionTracks_GSFRefitted(flags, RoIs, ion=False, variant=''):
11  """
12  Takes precision Tracks as input and applies GSF refits on top
13  """
14  acc = ComponentAccumulator()
15 
16  log.debug('precisionTracks_GSFRefitted(RoIs = %s, variant = %s)',RoIs,variant)
17 
18  tag = '_ion' if ion else ''
19  tag+=variant
20 
21  from TriggerMenuMT.HLT.Egamma.TrigEgammaKeys import getTrigEgammaKeys
22  TrigEgammaKeys = getTrigEgammaKeys(flags, variant, ion=ion)
23 
24  signatureName = 'electronLRT' if 'LRT' in variant else 'electron'
25  from TrigInDetConfig.utils import getFlagsForActiveConfig
26  trkflags = getFlagsForActiveConfig(flags, signatureName, log)
27 
28  precisionGsfVDV = CompFactory.AthViews.ViewDataVerifier("PrecisionTrackViewDataVerifier_forGSFRefit"+tag+'VDV')
29 
30  # precision Tracking related data dependencies
31  trackParticles = TrigEgammaKeys.precisionTrackingContainer
32  ambimap = flags.Trigger.InDetTracking.ClusterAmbiguitiesMap
33  if flags.Detector.GeometryITk:
34  ambimap = flags.Trigger.ITkTracking.ClusterAmbiguitiesMap
35 
36  dataObjects = [( 'xAOD::TrackParticleContainer','StoreGateSvc+%s' % trackParticles),
37  ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.averageInteractionsPerCrossing' ),
38  ( 'InDet::PixelGangedClusterAmbiguities' , 'StoreGateSvc+%s' % ambimap ),
39  ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.AveIntPerXDecor' ),
40  ]
41 
42  if flags.Trigger.useActsTracking and flags.Acts.GsfRefitActs:
43  dataObjects += [( 'ActsGeometryContext' , 'StoreGateSvc+ActsAlignment' ),
44  ( 'xAOD::TrackParticleContainer','StoreGateSvc+%s.actsTrack' % trackParticles)]
45 
46 
47 
48  if flags.Detector.GeometryTRT:
49  dataObjects += [( 'InDet::TRT_DriftCircleContainer' , 'StoreGateSvc+%s' % "TRT_TrigDriftCircles" )]
50  if flags.Input.isMC:
51  dataObjects += [( 'TRT_RDO_Container' , 'StoreGateSvc+TRT_RDOs' ),
52  ( 'InDet::TRT_DriftCircleContainerCache' ,
53  f'StoreGateSvc+{flags.Trigger.InDetTracking.TRT_DriftCircleCacheKey}' )]
54  else:
55  dataObjects += [( 'TRT_RDO_Cache' , f'StoreGateSvc+{flags.Trigger.InDetTracking.TRTRDOCacheKey}' )]
56 
57  # These objects must be loaded from SGIL if not from CondInputLoader
58 
59  if not flags.Input.isMC:
60  dataObjects.append(( 'IDCInDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' ))
61 
62  from TrigInDetConfig.TrigInDetConfig import InDetExtraDataObjectsFromDataPrep
63  InDetExtraDataObjectsFromDataPrep(flags,dataObjects)
64 
65  precisionGsfVDV.DataObjects = dataObjects
66 
67  acc.addEventAlgo(precisionGsfVDV)
68 
69 
70  if flags.Acts.GsfRefitActs:
71  from egammaAlgs.ActsEMBremCollectionBuilderConfig import (
72  TrigActsEMBremCollectionBuilderCfg)
73  acc.merge(TrigActsEMBremCollectionBuilderCfg(trkflags, name='TrigActsEMBremCollectionBuilder'+variant,
74  RefittedTracksLocation = TrigEgammaKeys.precisionElectronTrkCollectionGSF,
75  SelectedTrackParticleContainerName = trackParticles,
76  TrackParticlesOutKey = TrigEgammaKeys.precisionElectronTrackParticleContainerGSF))
77 
78  else:
79 
80  from TriggerMenuMT.HLT.Electron.TrigEMBremCollectionBuilder import TrigEMBremCollectionBuilderCfg
81  acc.merge(TrigEMBremCollectionBuilderCfg(trkflags,
82  name = "TrigEMBremCollectionBuilderCfg"+variant,
83  TrackParticleContainerName=TrigEgammaKeys.precisionTrackingContainer,
84  SelectedTrackParticleContainerName=TrigEgammaKeys.precisionTrackingContainer,
85  OutputTrkPartContainerName=TrigEgammaKeys.precisionElectronTrackParticleContainerGSF,
86  OutputTrackContainerName=TrigEgammaKeys.precisionElectronTrkCollectionGSF))
87 
88  return acc
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.HLT.Electron.PrecisionTracks_GSFRefittedSequence.precisionTracks_GSFRefitted
def precisionTracks_GSFRefitted(flags, RoIs, ion=False, variant='')
Definition: PrecisionTracks_GSFRefittedSequence.py:10
python.TrigInDetConfig.InDetExtraDataObjectsFromDataPrep
def InDetExtraDataObjectsFromDataPrep(flags, dataObjects)
Definition: TrigInDetConfig.py:10
python.utils.getFlagsForActiveConfig
AthConfigFlags getFlagsForActiveConfig(AthConfigFlags flags, str config_name, logging.Logger log)
Definition: Trigger/TrigTools/TrigInDetConfig/python/utils.py:9
python.HLT.Electron.TrigEMBremCollectionBuilder.TrigEMBremCollectionBuilderCfg
def TrigEMBremCollectionBuilderCfg(flags, name="TrigEgammaBremCollectionBuilder", **kwargs)
Definition: TrigEMBremCollectionBuilder.py:6
ActsEMBremCollectionBuilderConfig.TrigActsEMBremCollectionBuilderCfg
def TrigActsEMBremCollectionBuilderCfg(flags, name="TrigActsEMBremCollectionBuilder", **kwargs)
Definition: ActsEMBremCollectionBuilderConfig.py:57
python.HLT.Egamma.TrigEgammaKeys.getTrigEgammaKeys
def getTrigEgammaKeys(AthConfigFlags flags, name='', ion=False)
Definition: TrigEgammaKeys.py:138