ATLAS Offline Software
ActsTrigSequence.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 from TrigInDetConfig.InnerTrackerTrigSequence import InnerTrackerTrigSequence
4 from AthenaConfiguration.AthConfigFlags import AthConfigFlags
5 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory import CompFactory
7 
8 from AthenaCommon.Logging import logging
9 
10 class ActsTrigSequence(InnerTrackerTrigSequence):
11  def __init__(self, flags : AthConfigFlags, signature : str, rois : str, inView : str):
12  super().__init__(flags, signature,rois,inView)
13  self.log = logging.getLogger("ActsTrigSequence")
14  self.log.info(f"signature: {self.signature} rois: {self.rois} inview: {self.inView}")
15 
16  # Check fast tracking flag
17  if not self.flags.Tracking.doITkFastTracking:
18  raise ValueError(f"Acts Trig Sequence needs to run in fast tracking mode but 'Tracking.doITkFastTracking' flag is set to {self.flags.Tracking.doITkFastTracking}")
19 
20  def viewDataVerifier(self, viewVerifier='IDViewDataVerifier') -> ComponentAccumulator:
21 
22  acc = ComponentAccumulator()
23 
24  ViewDataVerifier = CompFactory.AthViews.ViewDataVerifier(
25  name = viewVerifier + "_" + self.signature,
26  DataObjects= {('xAOD::EventInfo', 'StoreGateSvc+EventInfo'),
27  ('PixelRDO_Cache', 'PixRDOCache'),
28  ('SCT_RDO_Cache', 'SctRDOCache'),
29  #enable later when BS ready
30  #( 'IDCInDetBSErrContainer_Cache' , self.flags.Trigger.ITkTracking.PixBSErrCacheKey ),
31  #( 'IDCInDetBSErrContainer_Cache' , self.flags.Trigger.ITkTracking.SCTBSErrCacheKey ),
32  #( 'IDCInDetBSErrContainer_Cache' , self.flags.Trigger.ITkTracking.SCTFlaggedCondCacheKey ),
33  ('xAOD::EventInfo', 'EventInfo'),
34  ('ActsTrk::GeometryContext' , 'StoreGateSvc+ActsAlignment' ),
35  ('TrigRoiDescriptorCollection', str(self.rois)),
36  ( 'TagInfo' , 'DetectorStore+ProcessingTags' )} )
37 
38  if self.flags.Input.isMC:
39  ViewDataVerifier.DataObjects |= {( 'PixelRDO_Container' , 'StoreGateSvc+ITkPixelRDOs' ),
40  ( 'SCT_RDO_Container' , 'StoreGateSvc+ITkStripRDOs' ),
41  ( 'InDetSimDataCollection' , 'ITkPixelSDO_Map'),
42  ('ActsTrk::GeometryContext' , 'StoreGateSvc+ActsAlignment' )}
43  from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
44  sgil_load = [( 'PixelRDO_Container' , 'StoreGateSvc+ITkPixelRDOs' ),
45  ( 'SCT_RDO_Container' , 'StoreGateSvc+ITkStripRDOs' ),
46  ( 'InDetSimDataCollection' , 'ITkPixelSDO_Map'),]
47  acc.merge(SGInputLoaderCfg(self.flags, Load=sgil_load))
48 
49  if self.flags.Acts.useCache:
50  ViewDataVerifier.DataObjects |= {( 'ActsTrk::Cache::Handles<xAOD::SpacePoint>::IDCBackend' , 'StoreGateSvc+ActsPixelSpacePointCache_Back' ),
51  ( 'ActsTrk::Cache::Handles<xAOD::PixelCluster>::IDCBackend' , 'StoreGateSvc+ActsPixelClusterCache_Back' ),
52  ( 'ActsTrk::Cache::Handles<xAOD::StripCluster>::IDCBackend' , 'StoreGateSvc+ActsStripClusterCache_Back' ),
53  ( 'ActsTrk::Cache::Handles<xAOD::PixelCluster>::IDC' , 'StoreGateSvc+ActsPixelClustersCache' ),
54  ( 'ActsTrk::Cache::Handles<xAOD::StripCluster>::IDC' , 'StoreGateSvc+ActsStripClustersCache' ),
55  ( 'ActsTrk::Cache::Handles<xAOD::SpacePoint>::IDC' , 'StoreGateSvc+ActsPixelSpacePointCache' )}
56 
57  ViewDataVerifier.DataObjects |= {
58  ('InDet::SiDetectorElementStatus' , 'StoreGateSvc+ITkPixelDetectorElementStatus' ),
59  ('InDet::SiDetectorElementStatus' , 'StoreGateSvc+ITkStripDetectorElementStatus' ),
60  }
61 
62  acc.addEventAlgo(ViewDataVerifier)
63  return acc
64 
65  def dataPreparation(self) -> ComponentAccumulator:
66  acc = ComponentAccumulator()
67 
68  self.log.info(f"DataPrep signature: {self.signature} rois: {self.rois} inview: {self.inView}")
69 
70  if not self.inView:
71  from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
72  loadRDOs = [( 'PixelRDO_Container' , 'StoreGateSvc+ITkPixelRDOs' ),
73  ( 'SCT_RDO_Container' , 'StoreGateSvc+ITkStripRDOs' ),
74  ( 'InDetSimDataCollection' , 'ITkPixelSDO_Map') ]
75  acc.merge(SGInputLoaderCfg(self.flags, Load=loadRDOs))
76 
77  #Clusterisation
78  from ActsConfig.ActsClusterizationConfig import ActsPixelClusterizationAlgCfg,ActsStripClusterizationAlgCfg,ActsPixelClusterPreparationAlgCfg,ActsStripClusterPreparationAlgCfg
79 
80  acc.merge(ActsPixelClusterizationAlgCfg(self.flags,
81  name="ActsPixelClusterizationAlg_"+self.signature,
82  useCache=self.flags.Acts.useCache,
83  RoIs=self.rois,
84  ClustersKey="ITkPixelClusters_"+self.signature))
85  acc.merge(ActsStripClusterizationAlgCfg(self.flags,
86  name="ActsStripClusterizationAlg_"+self.signature,
87  useCache=self.flags.Acts.useCache,
88  RoIs=self.rois,
89  ClustersKey="ITkStripClusters_"+self.signature))
90 
91 
92  if self.flags.Acts.useCache:
93  acc.merge(ActsPixelClusterPreparationAlgCfg(self.flags,
94  "ActsPixelClusterViewFiller_"+self.signature,
95  True,
96  OutputCollection="ITkPixelClusters_Cached",
97  InputIDC="ActsPixelClustersCache",
98  RoIs=self.rois))
99  acc.merge(ActsStripClusterPreparationAlgCfg(self.flags,
100  "ActsStripClusterViewFiller_"+self.signature,
101  True,
102  OutputCollection="ITkStripClusters_Cached",
103  InputIDC="ActsStripClustersCache",
104  RoIs=self.rois))
105 
106  return acc
107 
108  def viewDataVerifierAfterPattern(self, viewVerifier='ActsViewDataVerifierForAmbi') -> ComponentAccumulator:
109 
110  acc = ComponentAccumulator()
111 
112  ViewDataVerifier = \
113  CompFactory.AthViews.ViewDataVerifier(
114  name = viewVerifier + "_" + self.signature,
115  DataObjects = {
116  ( 'InDetSimDataCollection' , 'ITkPixelSDO_Map'),
117  ('ActsTrk::GeometryContext' , 'StoreGateSvc+ActsAlignment' ),
118  ( 'InDet::SiDetectorElementStatus' , 'StoreGateSvc+ITkPixelDetectorElementStatus' ),
119  ( 'InDet::SiDetectorElementStatus' , 'StoreGateSvc+ITkStripDetectorElementStatus' ),
120  }
121  )
122 
123  acc.addEventAlgo(ViewDataVerifier)
124  return acc
125 
126 
127  def spacePointFormation(self) -> ComponentAccumulator:
128  acc = ComponentAccumulator()
129 
130  from ActsConfig.ActsSpacePointFormationConfig import ActsPixelSpacePointFormationAlgCfg,ActsPixelSpacePointPreparationAlgCfg
131  acc.merge(ActsPixelSpacePointFormationAlgCfg(self.flags,
132  name="ActsPixelSPFormation_"+self.signature,
133  useCache=self.flags.Acts.useCache,
134  PixelClusters = "ITkPixelClusters_Cached" if self.flags.Acts.useCache else "ITkPixelClusters_"+self.signature,
135  PixelSpacePoints = "ITkPixelSpacepoints_"+self.signature))
136 
137  if self.flags.Acts.useCache:
138  acc.merge(ActsPixelSpacePointPreparationAlgCfg(self.flags,
139  name="ActsPixelSPViewFiller_"+self.signature,
140  useCache=True,
141  RoIs=self.rois,
142  OutputCollection="ITkPixelSpacePoints_Cached",
143  InputIDC="ActsPixelSpacePointCache"))
144 
145  return acc
146 
147  def fastTrackFinder(self,
148  extraFlags : AthConfigFlags = None,
149  inputTracksName : str = None) -> ComponentAccumulator:
150  acc = ComponentAccumulator()
151 
152  from ActsConfig.ActsSeedingConfig import ActsPixelSeedingAlgCfg
153 
154  acc.merge(ActsPixelSeedingAlgCfg(self.flags,
155  name="ActsPixelSeedingAlg_"+self.signature,
156  InputSpacePoints=['ITkPixelSpacePoints_Cached'] if self.flags.Acts.useCache else ['ITkPixelSpacepoints_'+self.signature],
157  useFastTracking=True))
158 
159  from ActsConfig.ActsTrackFindingConfig import ActsMainTrackFindingAlgCfg, ActsTrackToTrackParticleCnvAlgCfg
160  measurements = ["ITkPixelClusters_Cached" if self.flags.Acts.useCache else "ITkPixelClusters_"+self.signature,
161  "ITkStripClusters_Cached" if self.flags.Acts.useCache else "ITkStripClusters_"+self.signature]
162 
163  trackfinding = ActsMainTrackFindingAlgCfg(self.flags,
164  name="ActsTrackFindingAlg_"+self.signature,
165  ACTSTracksLocation=self.flags.Tracking.ActiveConfig.trkTracks_FTF,
166  SeedLabels=["PPP"],
167  SeedContainerKeys=["ActsPixelSeeds"],
168  DetectorElementsKeys=['ITkPixelDetectorElementCollection'],
169  UncalibratedMeasurementContainerKeys=measurements)
170 
171  acc.merge(trackfinding)
172  acc.merge(ActsTrackToTrackParticleCnvAlgCfg(self.flags,
173  name="ActsTrackParticleCreator_"+self.signature,
174  ACTSTracksLocation=[self.flags.Tracking.ActiveConfig.trkTracks_FTF],
175  TrackParticlesOutKey=self.flags.Tracking.ActiveConfig.tracks_FTF))
176 
177  return acc
178 
179  def ambiguitySolver(self) -> ComponentAccumulator:
180  acc = ComponentAccumulator()
181  if self.inView:
182  acc.merge(self.viewDataVerifierAfterPattern())
183 
184  from ActsConfig.ActsTrackFindingConfig import ActsMainAmbiguityResolutionAlgCfg
185  acc.merge(ActsMainAmbiguityResolutionAlgCfg(self.flags,
186  "ActsAmbiguityResolutionAlg_"+self.signature,
187  TracksLocation=self.flags.Tracking.ActiveConfig.trkTracks_FTF,
188  ResolvedTracksLocation=self.flags.Tracking.ActiveConfig.trkTracks_IDTrig))
189 
190 
191  return acc
192 
193  def xAODParticleCreation(self) -> ComponentAccumulator:
194  acc = ComponentAccumulator()
195 
196  from ActsConfig.ActsTrackFindingConfig import ActsTrackToTrackParticleCnvAlgCfg
197  acc.merge(ActsTrackToTrackParticleCnvAlgCfg(self.flags,
198  "ActsTrackParticleCreator_Ambi_"+self.signature,
199  ACTSTracksLocation=[self.flags.Tracking.ActiveConfig.trkTracks_IDTrig],
200  TrackParticlesOutKey=self.flags.Tracking.ActiveConfig.tracks_IDTrig))
201 
202  return acc
203 
204 
205 
ActsClusterizationConfig.ActsPixelClusterizationAlgCfg
ComponentAccumulator ActsPixelClusterizationAlgCfg(flags, str name='ActsPixelClusterizationAlg', *bool useCache=False, **kwargs)
Definition: ActsClusterizationConfig.py:109
python.ActsTrigSequence.ActsTrigSequence.spacePointFormation
ComponentAccumulator spacePointFormation(self)
Definition: ActsTrigSequence.py:127
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
ActsSeedingConfig.ActsPixelSeedingAlgCfg
ComponentAccumulator ActsPixelSeedingAlgCfg(flags, str name='ActsPixelSeedingAlg', **kwargs)
Definition: ActsSeedingConfig.py:331
python.ActsTrigSequence.ActsTrigSequence.fastTrackFinder
ComponentAccumulator fastTrackFinder(self, AthConfigFlags extraFlags=None, str inputTracksName=None)
Definition: ActsTrigSequence.py:147
python.ActsTrigSequence.ActsTrigSequence.ambiguitySolver
ComponentAccumulator ambiguitySolver(self)
Definition: ActsTrigSequence.py:179
python.ActsTrigSequence.ActsTrigSequence.log
log
Definition: ActsTrigSequence.py:13
ActsClusterizationConfig.ActsStripClusterizationAlgCfg
ComponentAccumulator ActsStripClusterizationAlgCfg(flags, str name='ActsStripClusterizationAlg', bool useCache=False, **kwargs)
Definition: ActsClusterizationConfig.py:148
ActsSpacePointFormationConfig.ActsPixelSpacePointPreparationAlgCfg
ComponentAccumulator ActsPixelSpacePointPreparationAlgCfg(flags, str name="ActsPixelSpacePointPreparationAlg", *bool useCache=False, **dict kwargs)
Definition: ActsSpacePointFormationConfig.py:86
python.ActsTrigSequence.ActsTrigSequence.dataPreparation
ComponentAccumulator dataPreparation(self)
Definition: ActsTrigSequence.py:65
SGInputLoaderConfig.SGInputLoaderCfg
def SGInputLoaderCfg(flags, Load=None, **kwargs)
Definition: SGInputLoaderConfig.py:7
python.ActsTrigSequence.ActsTrigSequence.viewDataVerifier
ComponentAccumulator viewDataVerifier(self, viewVerifier='IDViewDataVerifier')
Definition: ActsTrigSequence.py:20
python.ActsTrigSequence.ActsTrigSequence.xAODParticleCreation
ComponentAccumulator xAODParticleCreation(self)
Definition: ActsTrigSequence.py:193
ActsClusterizationConfig.ActsStripClusterPreparationAlgCfg
ComponentAccumulator ActsStripClusterPreparationAlgCfg(flags, str name="ActsStripClusterPreparationAlg", bool useCache=False, **kwargs)
Definition: ActsClusterizationConfig.py:219
ActsSpacePointFormationConfig.ActsPixelSpacePointFormationAlgCfg
ComponentAccumulator ActsPixelSpacePointFormationAlgCfg(flags, str name="ActsPixelSpacePointFormationAlg", *bool useCache=False, **dict kwargs)
Definition: ActsSpacePointFormationConfig.py:144
ActsTrackFindingConfig.ActsMainAmbiguityResolutionAlgCfg
ComponentAccumulator ActsMainAmbiguityResolutionAlgCfg(flags, str name="ActsAmbiguityResolutionAlg", **kwargs)
Definition: ActsTrackFindingConfig.py:388
python.ActsTrigSequence.ActsTrigSequence.__init__
def __init__(self, AthConfigFlags flags, str signature, str rois, str inView)
Definition: ActsTrigSequence.py:11
python.ActsTrigSequence.ActsTrigSequence
Definition: ActsTrigSequence.py:10
ActsTrackFindingConfig.ActsMainTrackFindingAlgCfg
ComponentAccumulator ActsMainTrackFindingAlgCfg(flags, str name="ActsTrackFindingAlg", **kwargs)
Definition: ActsTrackFindingConfig.py:59
ActsClusterizationConfig.ActsPixelClusterPreparationAlgCfg
ComponentAccumulator ActsPixelClusterPreparationAlgCfg(flags, str name="ActsPixelClusterPreparationAlg", bool useCache=False, **kwargs)
Definition: ActsClusterizationConfig.py:195
str
Definition: BTagTrackIpAccessor.cxx:11
python.ActsTrigSequence.ActsTrigSequence.viewDataVerifierAfterPattern
ComponentAccumulator viewDataVerifierAfterPattern(self, viewVerifier='ActsViewDataVerifierForAmbi')
Definition: ActsTrigSequence.py:108
python.ParticleTypeUtil.info
def info
Definition: ParticleTypeUtil.py:87
ActsTrackFindingConfig.ActsTrackToTrackParticleCnvAlgCfg
ComponentAccumulator ActsTrackToTrackParticleCnvAlgCfg(flags, str name="ActsTrackToTrackParticleCnvAlg", **kwargs)
Definition: ActsTrackFindingConfig.py:461