ATLAS Offline Software
AccelTrackTrigSequence.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 
7 from AthenaCommon.Logging import logging
8 from AthenaConfiguration.ComponentFactory import CompFactory
9 
10 class AccelTrackTrigSequence(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("AccelTrigTrigSequence")
14  self.log.info(f"EFTracking signature: {self.signature} rois: {self.rois} inview: {self.inView}")
15  def sequence(self, recoType : str) -> ComponentAccumulator:
16  """ main method to instantiate tracking in the trigger menu
17  recoType can be used to generate a specific step. The pattern recognition
18  and production of xAOD trackparticles should happen in FastTrackFinder step
19  """
21 
22  if self.inView:
23  #to invoke VDV to make sure RoI and other info is available in view
24  ca.merge(self.viewDataVerifier())
25 
26  #if there is need for splitting of the sequence in steps it can be added here
27  if recoType =="FastTrackFinder":
28  ca.merge(self.trackFinding())
29 
30  return ca
31 
32  def f100(self) -> ComponentAccumulator:
33  import EFTrackConfig.F100Config as F100Config
34  from TrigInDetConfig.ActsTrigSequence import ActsTrigSequence
35 
37 
38  seq = ActsTrigSequence(self.flags, self.signature, self.rois, self.inView)
39 
40  ca.merge(F100Config.dataPreparation(self.flags, self.signature, self.inView, self.rois))
41  ca.merge(seq.fastTrackFinder())
42 
43  return ca
44 
45  def f100_precision(self) -> ComponentAccumulator:
46  from TrigInDetConfig.ActsTrigSequence import ActsTrigSequence
47 
49 
50  seq = ActsTrigSequence(self.flags, self.signature, self.rois, self.inView)
51 
52  #this does not require new data preparation of its own
53  ca.merge(seq.sequenceAfterPattern())
54 
55  return ca
56 
57  def trackFinding(self) -> ComponentAccumulator:
59 
60  self.log.info(f'merge EFTrackPipeline {self.flags.Trigger.EFTrackPipeline}')
61 
62  match self.flags.Trigger.EFTrackPipeline:
63  case "F100":
64  ca.merge(self.f100())
65  pass
66  case "G200":
67  pass
68 
69  #other pipelines can be added here
70 
71  case _:
72  pass
73 
74  return ca
75 
76  def sequenceAfterPattern(self, rois="") -> ComponentAccumulator:
77  """ this method is used by the menu to generate precision tracking step.
78  for AccelTrackTrigSequence it should just make tracks from pattern available again
79  """
81 
82  match self.flags.Trigger.EFTrackPipeline:
83  case "F100":
84  ca.merge(self.f100_precision())
85  pass
86  case "G200":
87  pass
88 
89  #other pipelines can be added here
90 
91  case _:
92  pass
93 
94  return ca
95 
96  def viewDataVerifier(self, viewVerifier='IDViewDataVerifier') -> ComponentAccumulator:
97 
98  acc = ComponentAccumulator()
99 
100  ViewDataVerifier = CompFactory.AthViews.ViewDataVerifier(
101  name = viewVerifier + "_" + self.signature,
102  DataObjects= {('xAOD::EventInfo', 'StoreGateSvc+EventInfo'),
103  ('PixelRDO_Cache', 'PixRDOCache'),
104  ('SCT_RDO_Cache', 'SctRDOCache'),
105  #enable later when BS ready
106  #( 'IDCInDetBSErrContainer_Cache' , self.flags.Trigger.ITkTracking.PixBSErrCacheKey ),
107  #( 'IDCInDetBSErrContainer_Cache' , self.flags.Trigger.ITkTracking.SCTBSErrCacheKey ),
108  #( 'IDCInDetBSErrContainer_Cache' , self.flags.Trigger.ITkTracking.SCTFlaggedCondCacheKey ),
109  ('xAOD::EventInfo', 'EventInfo'),
110  ( 'ActsGeometryContext' , 'StoreGateSvc+ActsAlignment' ),
111  ('TrigRoiDescriptorCollection', str(self.rois)),
112  ( 'TagInfo' , 'DetectorStore+ProcessingTags' )} )
113 
114  if self.flags.Input.isMC:
115  ViewDataVerifier.DataObjects |= {( 'PixelRDO_Container' , 'StoreGateSvc+ITkPixelRDOs' ),
116  ( 'SCT_RDO_Container' , 'StoreGateSvc+ITkStripRDOs' ),
117  ( 'InDetSimDataCollection' , 'ITkPixelSDO_Map'),
118  ( 'ActsGeometryContext' , 'StoreGateSvc+ActsAlignment' )}
119  from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
120  sgil_load = [( 'PixelRDO_Container' , 'StoreGateSvc+ITkPixelRDOs' ),
121  ( 'SCT_RDO_Container' , 'StoreGateSvc+ITkStripRDOs' ),
122  ( 'InDetSimDataCollection' , 'ITkPixelSDO_Map'),]
123  acc.merge(SGInputLoaderCfg(self.flags, Load=sgil_load))
124 
125  ViewDataVerifier.DataObjects |= {
126  ('InDet::SiDetectorElementStatus' , 'StoreGateSvc+ITkPixelDetectorElementStatus' ),
127  ('InDet::SiDetectorElementStatus' , 'StoreGateSvc+ITkStripDetectorElementStatus' ),
128  }
129 
130  acc.addEventAlgo(ViewDataVerifier)
131  return acc
132 
python.AccelTrackTrigSequence.AccelTrackTrigSequence.sequence
ComponentAccumulator sequence(self, str recoType)
Definition: AccelTrackTrigSequence.py:15
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.AccelTrackTrigSequence.AccelTrackTrigSequence.__init__
def __init__(self, AthConfigFlags flags, str signature, str rois, str inView)
Definition: AccelTrackTrigSequence.py:11
python.AccelTrackTrigSequence.AccelTrackTrigSequence.log
log
Definition: AccelTrackTrigSequence.py:13
python.AccelTrackTrigSequence.AccelTrackTrigSequence
Definition: AccelTrackTrigSequence.py:10
SGInputLoaderConfig.SGInputLoaderCfg
def SGInputLoaderCfg(flags, Load=None, **kwargs)
Definition: SGInputLoaderConfig.py:7
python.AccelTrackTrigSequence.AccelTrackTrigSequence.f100_precision
ComponentAccumulator f100_precision(self)
Definition: AccelTrackTrigSequence.py:45
python.AccelTrackTrigSequence.AccelTrackTrigSequence.viewDataVerifier
ComponentAccumulator viewDataVerifier(self, viewVerifier='IDViewDataVerifier')
Definition: AccelTrackTrigSequence.py:96
str
Definition: BTagTrackIpAccessor.cxx:11
python.ParticleTypeUtil.info
def info
Definition: ParticleTypeUtil.py:87
python.AccelTrackTrigSequence.AccelTrackTrigSequence.sequenceAfterPattern
ComponentAccumulator sequenceAfterPattern(self, rois="")
Definition: AccelTrackTrigSequence.py:76
python.AccelTrackTrigSequence.AccelTrackTrigSequence.trackFinding
ComponentAccumulator trackFinding(self)
Definition: AccelTrackTrigSequence.py:57
python.AccelTrackTrigSequence.AccelTrackTrigSequence.f100
ComponentAccumulator f100(self)
Definition: AccelTrackTrigSequence.py:32