Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 def InDetExtraDataObjectsFromDataPrep(flags, dataObjects) :
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' ))
16 
17 
19  #Create IdentifiableCaches
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)
34 
35  if not flags.Detector.GeometryTRT:
36  InDetCacheCreatorTrig.disableTRT = True
37 
38  acc.addEventAlgo( InDetCacheCreatorTrig )
39  return acc
40 
42  #Create IdentifiableCaches
43  acc = ComponentAccumulator()
44 
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")
51 
52  acc.addEventAlgo(creator)
53 
54  return acc
55 
56 
57 
58 
59 
60 @AccumulatorCache
61 def trigInDetFastTrackingCfg( inflags, roisKey="EMRoIs", signatureName='', patternMode='FTF', in_view=True ):
62 
63  log = logging.getLogger("trigInDetFastTrackingCfg")
64  from TrigInDetConfig.utils import getFlagsForActiveConfig
65  flags = getFlagsForActiveConfig(inflags, signatureName, log)
66 
67  """ Generates fast tracking config, it is a primary config function """
68 
69  from TrigInDetConfig.InnerTrackingTrigSequence import InnerTrackingTrigSequence
70 
71  seq = InnerTrackingTrigSequence.create(flags,
72  flags.Tracking.ActiveConfig.input_name,
73  rois = roisKey,
74  inView = "VDVInDetFTF" if in_view else None)
75  if patternMode=='FTF':
76  acc = seq.sequence("FastTrackFinder")
77  elif patternMode=="fastTracking":
78  acc = seq.sequence("offlinePattern")
79 
80  return acc
81 
82 
83 
84 
85 
86 @AccumulatorCache
87 def trigInDetLRTCfg(flags, LRTInputCollection, roisKey, in_view, extra_view_inputs=tuple()):
88  from TrigInDetConfig.InnerTrackingTrigSequence import InnerTrackingTrigSequence
89  viewname = "VDVInDetLRT" if in_view else None
90  seq = InnerTrackingTrigSequence.create(flags,
91  flags.Tracking.ActiveConfig.input_name,
92  rois = roisKey,
93  inView = viewname)
94  acc = ComponentAccumulator()
95  if in_view:
96  acc.addEventAlgo( CompFactory.AthViews.ViewDataVerifier(
97  name = "LRTInputVDV_"+viewname + "_" + flags.Tracking.ActiveConfig.input_name,
98  DataObjects = { ( 'TrigRoiDescriptorCollection' , f'StoreGateSvc+{roisKey}' ),
99  ( 'TrackCollection' , 'StoreGateSvc+HLT_IDTrkTrack_FS_FTF' ),
100  } | set(extra_view_inputs) ) )
101 
102  #need to make sure the cache containers are available
103  acc.merge(seq.viewDataVerifier(viewname))
104  acc.merge(seq.dataPreparation())
105  acc.merge(seq.spacePointFormation())
106 
107  acc.merge(seq.fastTrackFinder(inputTracksName = LRTInputCollection))
108 
109  return acc
110 
111 
112 
113 
114 
115 
118 
119 @AccumulatorCache
120 def trigInDetPrecisionTrackingCfg( inflags, rois, signatureName, in_view=True ):
121 
122  """ Generates precision tracking config, it is a primary config function """
123 
124  acc = ComponentAccumulator()
125  log = logging.getLogger("trigInDetPrecisionTrackingCfg")
126  from TrigInDetConfig.utils import getFlagsForActiveConfig
127  flags = getFlagsForActiveConfig(inflags, signatureName, log)
128 
129  if in_view:
130 
131  verifier = CompFactory.AthViews.ViewDataVerifier( name = 'VDVInDetPrecision'+flags.Tracking.ActiveConfig.input_name,
132  DataObjects= {('xAOD::EventInfo', 'StoreGateSvc+EventInfo'),
133  ( 'TrigRoiDescriptorCollection' , f'StoreGateSvc+{rois}' ),
134  ( 'TagInfo', 'DetectorStore+ProcessingTags' ),
135  ( ('ActsTrk::TrackContainer' if "Acts" in flags.Tracking.ActiveConfig.trkTracks_FTF else 'TrackCollection'), flags.Tracking.ActiveConfig.trkTracks_FTF )} )
136 
137  acc.addEventAlgo(verifier)
138 
139  from TrigInDetConfig.InnerTrackingTrigSequence import InnerTrackingTrigSequence
140 
141  seq = InnerTrackingTrigSequence.create(flags,
142  flags.Tracking.ActiveConfig.input_name,
143  rois = flags.Tracking.ActiveConfig.roi,
144  inView = verifier.getName() if in_view else '')
145 
146  acc.merge(seq.sequenceAfterPattern(rois = rois))
147 
148  return acc
149 
150 
151 
152 
153 
154 def trigInDetVertexingCfg(flags, inputTracks, outputVtx):
155 
156  acc = ComponentAccumulator()
157 
158  acc.addEventAlgo( CompFactory.AthViews.ViewDataVerifier(
159  name = "VtxVDV_" + flags.Tracking.ActiveConfig.input_name,
160  DataObjects = {
161  ( 'ActsGeometryContext' , 'StoreGateSvc+ActsAlignment' )
162  }
163  ))
164 
165  from InDetConfig.InDetPriVxFinderConfig import InDetTrigPriVxFinderCfg
166  acc.merge(InDetTrigPriVxFinderCfg(flags, inputTracks = inputTracks, outputVtx =outputVtx))
167 
168  return acc
169 
170 
171 
172 
173 if __name__ == "__main__":
174  from AthenaConfiguration.AllConfigFlags import initConfigFlags
175  from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultGeometryTags
176  ComponentAccumulator.debugMode = "trackCA trackPublicTool trackEventAlgo trackCondAlgo trackPrivateTool"
177  flags = initConfigFlags()
178  flags.Input.Files = defaultTestFiles.RAW_RUN2
179  flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
180  flags.lock()
181  # this configuration is not runable, the test checks if there is no mistake in python scripts above
182  # 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)
183  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
184  acc = MainServicesCfg( flags )
185  roisKey = "ElectronRoIs"
186 
187  flags = flags.cloneAndReplace("Tracking.ActiveConfig", "Trigger.InDetTracking.electron")
188  acc.merge( trigInDetFastTrackingCfg( flags, roisKey=roisKey, signatureName="electron" ) )
189  acc.merge( trigInDetPrecisionTrackingCfg( flags, rois=roisKey, signatureName="electron", in_view=True) )
190  acc.merge( trigInDetVertexingCfg( flags, inputTracks=flags.Tracking.ActiveConfig.tracks_FTF, outputVtx="testVtx") )
191 
192 
193  acc.printConfig(withDetails=True, summariseProps=True)
194  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:87
python.InDetPriVxFinderConfig.InDetTrigPriVxFinderCfg
ComponentAccumulator InDetTrigPriVxFinderCfg(flags, str inputTracks, str outputVtx, str name="InDetTrigPriVxFinder", **kwargs)
Definition: InDetPriVxFinderConfig.py:47
python.TrigInDetConfig.trigInDetPrecisionTrackingCfg
def trigInDetPrecisionTrackingCfg(inflags, rois, signatureName, in_view=True)
precision tracking
Definition: TrigInDetConfig.py:120
python.TrigInDetConfig.InDetExtraDataObjectsFromDataPrep
def InDetExtraDataObjectsFromDataPrep(flags, dataObjects)
Definition: TrigInDetConfig.py:10
python.TrigInDetConfig.trigInDetFastTrackingCfg
def trigInDetFastTrackingCfg(inflags, roisKey="EMRoIs", signatureName='', patternMode='FTF', in_view=True)
Definition: TrigInDetConfig.py:61
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:260
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:232
python.TrigInDetConfig.ActsIDCCacheCreatorCfg
def ActsIDCCacheCreatorCfg(flags)
Definition: TrigInDetConfig.py:41
python.TrigInDetConfig.trigInDetVertexingCfg
def trigInDetVertexingCfg(flags, inputTracks, outputVtx)
Definition: TrigInDetConfig.py:154
Trk::open
@ open
Definition: BinningType.h:40
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.TrigInDetConfig.InDetIDCCacheCreatorCfg
def InDetIDCCacheCreatorCfg(flags)
Definition: TrigInDetConfig.py:18