ATLAS Offline Software
TrigInDetConfig.py
Go to the documentation of this file.
1 #
2 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 #
4 
5 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
6 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7 from AthenaConfiguration.ComponentFactory import CompFactory
8 from AthenaCommon.Logging import logging
9 
10 
12  #Create IdentifiableCaches
13  acc = ComponentAccumulator()
14  InDet__CacheCreator=CompFactory.getComp("InDet::CacheCreator")
15  InDetCacheCreatorTrig = InDet__CacheCreator(name = "InDetCacheCreatorTrig",
16  TRT_DriftCircleKey = flags.Trigger.InDetTracking.TRT_DriftCircleCacheKey,
17  Pixel_ClusterKey = flags.Trigger.InDetTracking.PixelClusterCacheKey,
18  SCT_ClusterKey = flags.Trigger.InDetTracking.SCTClusterCacheKey,
19  SpacePointCachePix = flags.Trigger.InDetTracking.SpacePointCachePix,
20  SpacePointCacheSCT = flags.Trigger.InDetTracking.SpacePointCacheSCT,
21  SCTRDOCacheKey = flags.Trigger.InDetTracking.SCTRDOCacheKey,
22  SCTBSErrCacheKey = flags.Trigger.InDetTracking.SCTBSErrCacheKey,
23  SCTFlaggedCondCacheKey = flags.Trigger.InDetTracking.SCTFlaggedCondCacheKey,
24  PixRDOCacheKey = flags.Trigger.InDetTracking.PixRDOCacheKey,
25  PixBSErrCacheKey = flags.Trigger.InDetTracking.PixBSErrCacheKey,
26  TRTRDOCacheKey = flags.Trigger.InDetTracking.TRTRDOCacheKey)
27 
28  if not flags.Detector.GeometryTRT:
29  InDetCacheCreatorTrig.disableTRT = True
30 
31  acc.addEventAlgo( InDetCacheCreatorTrig )
32  return acc
33 
35  #Create IdentifiableCaches
36  acc = ComponentAccumulator()
37 
38  creator = CompFactory.ActsTrk.Cache.CreatorAlg(name="ActsCacheCreatorTrig",
39  PixelClustersCacheKey="ActsPixelClusterCache_Back",
40  StripClustersCacheKey="ActsStripClusterCache_Back",
41  PixelSpacePointCacheKey="ActsPixelSpacePointCache_Back",
42  StripSpacePointCacheKey="ActsStripSpacePointCache_Back",
43  StripOverlapSpacePointCacheKey="ActsStripOverlapSpacePointCache_Back")
44 
45  acc.addEventAlgo(creator)
46 
47  return acc
48 
49 
50 @AccumulatorCache
51 def trigInDetFastTrackingCfg( inflags, roisKey="EMRoIs", signatureName='', in_view=True ):
52 
53  log = logging.getLogger("trigInDetFastTrackingCfg")
54  from TrigInDetConfig.utils import getFlagsForActiveConfig
55  flags = getFlagsForActiveConfig(inflags, signatureName, log)
56 
57  """ Generates fast tracking config, it is a primary config function """
58 
59  from TrigInDetConfig.InnerTrackingTrigSequence import InnerTrackingTrigSequence
60 
61  seq = InnerTrackingTrigSequence.create(flags,
62  flags.Tracking.ActiveConfig.input_name,
63  rois = roisKey,
64  inView = "VDVInDetFTF" if in_view else None)
65  acc = seq.sequence("FastTrackFinder")
66 
67  return acc
68 
69 
70 @AccumulatorCache
71 def trigInDetLRTCfg(flags, LRTInputCollection, roisKey, in_view, extra_view_inputs=tuple()):
72  from TrigInDetConfig.InnerTrackingTrigSequence import InnerTrackingTrigSequence
73  viewname = "VDVInDetLRT" if in_view else None
74  seq = InnerTrackingTrigSequence.create(flags,
75  flags.Tracking.ActiveConfig.input_name,
76  rois = roisKey,
77  inView = viewname)
78  acc = ComponentAccumulator()
79  if in_view:
80  acc.addEventAlgo( CompFactory.AthViews.ViewDataVerifier(
81  name = viewname + "_" + flags.Tracking.ActiveConfig.input_name,
82  DataObjects = {
83  ( 'TrigRoiDescriptorCollection' , f'StoreGateSvc+{roisKey}' ),
84  ( 'TrackCollection' , 'StoreGateSvc+HLT_IDTrkTrack_FS_FTF' ),
85  ( 'SpacePointContainer' , 'StoreGateSvc+SCT_TrigSpacePoints' ),
86  ( 'InDet::PixelClusterContainer' , 'StoreGateSvc+PixelTrigClusters' ),
87  ( 'InDet::SCT_ClusterContainer' , 'StoreGateSvc+SCT_TrigClusters' ),
88  } | set(extra_view_inputs)
89  ) )
90 
91  acc.merge(seq.viewDataVerifier(viewname))
92  acc.merge(seq.dataPreparation())
93 
94  acc.merge(seq.fastTrackFinder(inputTracksName = LRTInputCollection))
95 
96  return acc
97 
98 
99 
100 
103 
104 @AccumulatorCache
105 def trigInDetPrecisionTrackingCfg( inflags, rois, signatureName, in_view=True ):
106 
107  """ Generates precision tracking config, it is a primary config function """
108 
109  acc = ComponentAccumulator()
110  log = logging.getLogger("trigInDetPrecisionTrackingCfg")
111  from TrigInDetConfig.utils import getFlagsForActiveConfig
112  flags = getFlagsForActiveConfig(inflags, signatureName, log)
113 
114  if in_view:
115 
116  verifier = CompFactory.AthViews.ViewDataVerifier( name = 'VDVInDetPrecision'+flags.Tracking.ActiveConfig.input_name,
117  DataObjects= {('xAOD::EventInfo', 'StoreGateSvc+EventInfo'),
118  ('TrigRoiDescriptorCollection', flags.Tracking.ActiveConfig.roi),
119  ( 'TagInfo', 'DetectorStore+ProcessingTags' ),
120  ( ('ActsTrk::TrackContainer' if "Acts" in flags.Tracking.ActiveConfig.trkTracks_FTF else 'TrackCollection'), flags.Tracking.ActiveConfig.trkTracks_FTF )} )
121 
122  acc.addEventAlgo(verifier)
123 
124  from TrigInDetConfig.InnerTrackingTrigSequence import InnerTrackingTrigSequence
125 
126  seq = InnerTrackingTrigSequence.create(flags,
127  flags.Tracking.ActiveConfig.input_name,
128  rois = flags.Tracking.ActiveConfig.roi,
129  inView = verifier.getName() if in_view else '')
130 
131  acc.merge(seq.sequenceAfterPattern(rois = rois))
132 
133  return acc
134 
135 def trigInDetVertexingCfg(flags, inputTracks, outputVtx):
136 
137  acc = ComponentAccumulator()
138 
139  acc.addEventAlgo( CompFactory.AthViews.ViewDataVerifier(
140  name = "VtxVDV_" + flags.Tracking.ActiveConfig.input_name,
141  DataObjects = {
142  ( 'ActsGeometryContext' , 'StoreGateSvc+ActsAlignment' )
143  }
144  ))
145 
146  from InDetConfig.InDetPriVxFinderConfig import InDetTrigPriVxFinderCfg
147  acc.merge(InDetTrigPriVxFinderCfg(flags, inputTracks = inputTracks, outputVtx =outputVtx))
148 
149  return acc
150 
151 if __name__ == "__main__":
152  from AthenaConfiguration.AllConfigFlags import initConfigFlags
153  from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultGeometryTags
154  ComponentAccumulator.debugMode = "trackCA trackPublicTool trackEventAlgo trackCondAlgo trackPrivateTool"
155  flags = initConfigFlags()
156  flags.Input.Files = defaultTestFiles.RAW_RUN2
157  flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
158  flags.lock()
159  # this configuration is not runable, the test checks if there is no mistake in python scripts above
160  # output can be used by experts to check actual configuration (e.g. here we configure to run on RAW and it should be reflected in settings)
161  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
162  acc = MainServicesCfg( flags )
163  roisKey = "ElectronRoIs"
164 
165  flags = flags.cloneAndReplace("Tracking.ActiveConfig", "Trigger.InDetTracking.electron")
166  acc.merge( trigInDetFastTrackingCfg( flags, roisKey=roisKey, signatureName="electron" ) )
167  acc.merge( trigInDetPrecisionTrackingCfg( flags, rois=roisKey, signatureName="electron", in_view=True) )
168  acc.merge( trigInDetVertexingCfg( flags, inputTracks=flags.Tracking.ActiveConfig.tracks_FTF, outputVtx="testVtx") )
169 
170 
171  acc.printConfig(withDetails=True, summariseProps=True)
172  acc.store( open("test.pkl", "wb") )
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.TrigInDetConfig.trigInDetLRTCfg
def trigInDetLRTCfg(flags, LRTInputCollection, roisKey, in_view, extra_view_inputs=tuple())
Definition: TrigInDetConfig.py:71
python.InDetPriVxFinderConfig.InDetTrigPriVxFinderCfg
ComponentAccumulator InDetTrigPriVxFinderCfg(flags, str inputTracks, str outputVtx, str name="InDetTrigPriVxFinder", **kwargs)
Definition: InDetPriVxFinderConfig.py:43
python.TrigInDetConfig.trigInDetPrecisionTrackingCfg
def trigInDetPrecisionTrackingCfg(inflags, rois, signatureName, in_view=True)
precision tracking
Definition: TrigInDetConfig.py:105
python.utils.getFlagsForActiveConfig
AthConfigFlags getFlagsForActiveConfig(AthConfigFlags flags, str config_name, logging.Logger log)
Definition: Trigger/TrigTools/TrigInDetConfig/python/utils.py:9
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:252
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:224
python.TrigInDetConfig.ActsIDCCacheCreatorCfg
def ActsIDCCacheCreatorCfg(flags)
Definition: TrigInDetConfig.py:34
python.TrigInDetConfig.trigInDetVertexingCfg
def trigInDetVertexingCfg(flags, inputTracks, outputVtx)
Definition: TrigInDetConfig.py:135
Trk::open
@ open
Definition: BinningType.h:40
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.TrigInDetConfig.trigInDetFastTrackingCfg
def trigInDetFastTrackingCfg(inflags, roisKey="EMRoIs", signatureName='', in_view=True)
Definition: TrigInDetConfig.py:51
python.TrigInDetConfig.InDetIDCCacheCreatorCfg
def InDetIDCCacheCreatorCfg(flags)
Definition: TrigInDetConfig.py:11