5from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
6from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
7from AthenaConfiguration.ComponentFactory
import CompFactory
8from AthenaCommon.Logging
import logging
11 if flags.Detector.GeometryITk:
12 if flags.Detector.EnableITkPixel:
13 dataObjects.append( (
'InDet::SiDetectorElementStatus' ,
'StoreGateSvc+ITkPixelDetectorElementStatus' ))
14 if flags.Detector.EnableITkStrip:
15 dataObjects.append( (
'InDet::SiDetectorElementStatus' ,
'StoreGateSvc+ITkStripDetectorElementStatus' ))
20 acc = ComponentAccumulator()
21 InDet__CacheCreator=CompFactory.getComp(
"InDet::CacheCreator")
22 InDetCacheCreatorTrig = InDet__CacheCreator(name =
"InDetCacheCreatorTrig",
23 TRT_DriftCircleKey = flags.Trigger.InDetTracking.TRT_DriftCircleCacheKey,
24 Pixel_ClusterKey = flags.Trigger.InDetTracking.PixelClusterCacheKey,
25 SCT_ClusterKey = flags.Trigger.InDetTracking.SCTClusterCacheKey,
26 SpacePointCachePix = flags.Trigger.InDetTracking.SpacePointCachePix,
27 SpacePointCacheSCT = flags.Trigger.InDetTracking.SpacePointCacheSCT,
28 SCTRDOCacheKey = flags.Trigger.InDetTracking.SCTRDOCacheKey,
29 SCTBSErrCacheKey = flags.Trigger.InDetTracking.SCTBSErrCacheKey,
30 SCTFlaggedCondCacheKey = flags.Trigger.InDetTracking.SCTFlaggedCondCacheKey,
31 PixRDOCacheKey = flags.Trigger.InDetTracking.PixRDOCacheKey,
32 PixBSErrCacheKey = flags.Trigger.InDetTracking.PixBSErrCacheKey,
33 TRTRDOCacheKey = flags.Trigger.InDetTracking.TRTRDOCacheKey)
35 if not flags.Detector.GeometryTRT:
36 InDetCacheCreatorTrig.disableTRT =
True
38 acc.addEventAlgo( InDetCacheCreatorTrig )
43 acc = ComponentAccumulator()
45 creator = CompFactory.ActsTrk.Cache.CreatorAlg(name=
"ActsCacheCreatorTrig",
46 PixelClustersCacheKey=
"ActsPixelClusterCache_Back",
47 StripClustersCacheKey=
"ActsStripClusterCache_Back",
48 PixelSpacePointCacheKey=
"ActsPixelSpacePointCache_Back",
49 StripSpacePointCacheKey=
"ActsStripSpacePointCache_Back",
50 StripOverlapSpacePointCacheKey=
"ActsStripOverlapSpacePointCache_Back")
52 acc.addEventAlgo(creator)
62def trigInDetSPFormationCfg(inflags, roisKey: str, signatureName: str, in_view: bool | str =
True) -> ComponentAccumulator:
63 log = logging.getLogger(
'trigInDetSPFormationCfg')
64 from TrigInDetConfig.utils
import getFlagsForActiveConfig
65 flags = getFlagsForActiveConfig(inflags, signatureName, log)
68 if isinstance(in_view, bool):
69 in_view =
'VDVInDetFTF'
73 from TrigInDetConfig.InnerTrackingTrigSequence
import InnerTrackingTrigSequence
74 seq = InnerTrackingTrigSequence.create(flags,
75 flags.Tracking.ActiveConfig.input_name,
79 return seq.sequence(
'spacePointFormation')
89 log = logging.getLogger(
"trigInDetFastTrackingCfg")
90 from TrigInDetConfig.utils
import getFlagsForActiveConfig
91 flags = getFlagsForActiveConfig(inflags, signatureName, log)
93 """ Generates fast tracking config, it is a primary config function """
95 from TrigInDetConfig.InnerTrackingTrigSequence
import InnerTrackingTrigSequence
97 seq = InnerTrackingTrigSequence.create(flags,
98 flags.Tracking.ActiveConfig.input_name,
100 inView =
"VDVInDetFTF" if in_view
else None)
101 if patternMode==
'FTF':
102 acc = seq.sequence(
"FastTrackFinder")
103 elif patternMode==
"fastTracking":
104 acc = seq.sequence(
"offlinePattern")
113def trigInDetLRTCfg(flags, LRTInputCollection, roisKey, in_view, extra_view_inputs=tuple()):
114 from TrigInDetConfig.InnerTrackingTrigSequence
import InnerTrackingTrigSequence
115 viewname =
"VDVInDetLRT" if in_view
else None
116 seq = InnerTrackingTrigSequence.create(flags,
117 flags.Tracking.ActiveConfig.input_name,
120 acc = ComponentAccumulator()
122 acc.addEventAlgo( CompFactory.AthViews.ViewDataVerifier(
123 name =
"LRTInputVDV_"+viewname +
"_" + flags.Tracking.ActiveConfig.input_name,
124 DataObjects = { (
'TrigRoiDescriptorCollection' , f
'StoreGateSvc+{roisKey}' ),
125 (
'TrackCollection' ,
'StoreGateSvc+HLT_IDTrkTrack_FS_FTF' ),
126 } |
set(extra_view_inputs) ) )
129 acc.merge(seq.viewDataVerifier(viewname))
130 acc.merge(seq.dataPreparation())
131 acc.merge(seq.spacePointFormation())
133 acc.merge(seq.fastTrackFinder(inputTracksName = LRTInputCollection))
148 """ Generates precision tracking config, it is a primary config function """
150 acc = ComponentAccumulator()
151 log = logging.getLogger(
"trigInDetPrecisionTrackingCfg")
152 from TrigInDetConfig.utils
import getFlagsForActiveConfig
153 flags = getFlagsForActiveConfig(inflags, signatureName, log)
157 verifier = CompFactory.AthViews.ViewDataVerifier( name =
'VDVInDetPrecision'+flags.Tracking.ActiveConfig.input_name,
158 DataObjects= {(
'xAOD::EventInfo',
'StoreGateSvc+EventInfo'),
159 (
'SG::AuxElement' ,
'StoreGateSvc+EventInfo.averageInteractionsPerCrossing'),
160 (
'TrigRoiDescriptorCollection' , f
'StoreGateSvc+{rois}' ),
161 (
'TagInfo',
'DetectorStore+ProcessingTags' ),
162 ( (
'ActsTrk::TrackContainer' if "Acts" in flags.Tracking.ActiveConfig.trkTracks_FTF
else 'TrackCollection'), flags.Tracking.ActiveConfig.trkTracks_FTF )} )
164 acc.addEventAlgo(verifier)
166 from TrigInDetConfig.InnerTrackingTrigSequence
import InnerTrackingTrigSequence
168 seq = InnerTrackingTrigSequence.create(flags,
169 flags.Tracking.ActiveConfig.input_name,
170 rois = flags.Tracking.ActiveConfig.roi,
171 inView = verifier.getName()
if in_view
else '')
173 acc.merge(seq.sequenceAfterPattern(rois = rois))
183 acc = ComponentAccumulator()
185 acc.addEventAlgo( CompFactory.AthViews.ViewDataVerifier(
186 name =
"VtxVDV_" + flags.Tracking.ActiveConfig.input_name,
188 (
'ActsTrk::GeometryContext' ,
'StoreGateSvc+ActsAlignment' )
192 from InDetConfig.InDetPriVxFinderConfig
import InDetTrigPriVxFinderCfg
193 acc.merge(InDetTrigPriVxFinderCfg(flags, inputTracks = inputTracks, outputVtx =outputVtx))
200if __name__ ==
"__main__":
201 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
202 from AthenaConfiguration.TestDefaults
import defaultTestFiles, defaultGeometryTags
203 ComponentAccumulator.debugMode =
"trackCA trackPublicTool trackEventAlgo trackCondAlgo trackPrivateTool"
204 flags = initConfigFlags()
205 flags.Input.Files = defaultTestFiles.RAW_RUN2
206 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
210 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
211 acc = MainServicesCfg( flags )
212 roisKey =
"ElectronRoIs"
214 flags = flags.cloneAndReplace(
"Tracking.ActiveConfig",
"Trigger.InDetTracking.electron")
217 acc.merge(
trigInDetVertexingCfg( flags, inputTracks=flags.Tracking.ActiveConfig.tracks_FTF, outputVtx=
"testVtx") )
220 acc.printConfig(withDetails=
True, summariseProps=
True)
221 acc.store( open(
"test.pkl",
"wb") )
ActsIDCCacheCreatorCfg(flags)
trigInDetPrecisionTrackingCfg(inflags, rois, signatureName, in_view=True)
precision tracking
InDetIDCCacheCreatorCfg(flags)
trigInDetFastTrackingCfg(inflags, roisKey="EMRoIs", signatureName='', patternMode='FTF', in_view=True)
Fast tracking.
ComponentAccumulator trigInDetSPFormationCfg(inflags, str roisKey, str signatureName, bool|str in_view=True)
Standalone Space-Point finding.
InDetExtraDataObjectsFromDataPrep(flags, dataObjects)
trigInDetVertexingCfg(flags, inputTracks, outputVtx)
trigInDetLRTCfg(flags, LRTInputCollection, roisKey, in_view, extra_view_inputs=tuple())