ATLAS Offline Software
UnconventionalTrackingChainConfiguration.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaCommon.Logging import logging
4 logging.getLogger().info("Importing %s",__name__)
5 log = logging.getLogger(__name__)
6 
7 from TriggerMenuMT.HLT.Config.ChainConfigurationBase import ChainConfigurationBase
8 from TrigLongLivedParticlesHypo.TrigDJHypoConfig import TrigDJComboHypoToolFromDict
9 
10 from TriggerMenuMT.HLT.UnconventionalTracking.CommonConfiguration import getFullScanRecoOnlySequenceGenCfg
11 from TriggerMenuMT.HLT.UnconventionalTracking.DJTriggerConfiguration import DJPromptStepSequenceGenCfg, DJDispStepSequenceGenCfg
12 from TriggerMenuMT.HLT.UnconventionalTracking.DVTriggerConfiguration import DVRecoSequenceGenCfg, DVTriggerEDSequenceGenCfg
13 from TriggerMenuMT.HLT.UnconventionalTracking.DisTrkTriggerConfiguration import DisTrkTriggerHypoSequenceGenCfg
14 from TriggerMenuMT.HLT.UnconventionalTracking.FullScanLRTTrackingConfiguration import FullScanLRTMenuSequenceGenCfg
15 from TriggerMenuMT.HLT.UnconventionalTracking.HitDVConfiguration import HitDVHypoSequenceGenCfg, UTTJetRecoSequenceGenCfg
16 from TriggerMenuMT.HLT.UnconventionalTracking.IsoHighPtTrackTriggerConfiguration import IsoHPtTrackTriggerHypoSequenceGenCfg
17 from TriggerMenuMT.HLT.UnconventionalTracking.VrtSecInclusiveConfiguration import VrtSecInclusiveMenuSequenceGenCfg
18 from TriggerMenuMT.HLT.UnconventionalTracking.dEdxTriggerConfiguration import dEdxTriggerHypoSequenceGenCfg
19 
20 #----------------------------------------------------------------
21 # Class to configure chain
22 #----------------------------------------------------------------
24 
25  def __init__(self, chainDict):
26  ChainConfigurationBase.__init__(self,chainDict)
27 
28  # ----------------------
29  # Assemble the chain depending on information from chainName
30  # ----------------------
31  def assembleChainImpl(self, inflags):
32  log.debug("Assembling chain %s", self.chainName)
33 
34  from TrigInDetConfig.utils import getFlagsForActiveConfig
35  flags = getFlagsForActiveConfig(inflags, "fullScan", log)
36 
37  chainSteps = []
38 
39  stepDictionary = self.getStepDictionary()
40 
41  key = self.chainPart['trigType']
42  steps = stepDictionary[key]
43 
44  for step in steps:
45  chainstep = getattr(self, step)(flags)
46  chainSteps += [chainstep]
47 
48  myChain = self.buildChain(chainSteps)
49 
50  return myChain
51 
52  def getStepDictionary(self):
53 
54  stepDictionary = {
55  "isotrk" : ['getIsoHPtTrackEmpty', 'getRoITrkEmpty', 'getFTFTrackReco', 'getIsoHPtTrackTrigger'],
56  "fslrt" : ['getFSLRTEmpty', 'getRoITrkEmpty', 'getFSLRTTrigger'],
57  "dedxtrk" : ['getdEdxEmpty', 'getRoITrkEmpty', 'getFTFTrackReco', 'getdEdxTrigger'],
58  "hitdvjet" : ['getJetReco', 'getRoITrkEmpty', 'getFTFTrackReco', 'getHitDVTrigger'],
59  "fsvsi" : ['getVSIEmpty', 'getRoITrkEmpty', 'getVSITrigger'],
60  "distrk" : ['getDisTrkEmpty', 'getRoITrkEmpty', 'getFTFTrackReco', 'getDisTrkTrigger'],
61  "dispvtx" : ['getJetReco', 'getRoITrkEmpty', 'getFTFTrackReco', 'getHitDVTrigger', 'getDVRecoStep', 'getDVEDStep'],
62  "dispjet" : ['getJetReco', 'getRoITrkEmpty', 'getFTFTrackReco', 'getDJPromptStep', 'getDJDispStep']
63  }
64 
65  return stepDictionary
66 
67  # --------------------
68  # Step definitions in alignment order
69  # Step 1
70  def getJetReco(self, flags):
71  return self.getStep(flags, 'JetRecoOnlyCfg',[UTTJetRecoSequenceGenCfg])
72  # Empty for alignment
73  def getIsoHPtTrackEmpty(self, flags):
74  return self.getEmptyStep(1,'EmptyUncTrk')
75  def getFSLRTEmpty(self, flags):
76  return self.getEmptyStep(1, 'FSLRTEmptyStep')
77  def getDisTrkEmpty(self, flags):
78  return self.getEmptyStep(1, 'DisTrkEmptyStep')
79  def getVSIEmpty(self, flags):
80  return self.getEmptyStep(1, 'VSIEmptyStep')
81  def getdEdxEmpty(self, flags):
82  return self.getEmptyStep(1, 'dEdxEmptyStep')
83 
84  # Step 2
85  def getFSLRTTrigger(self, flags):
86  return self.getStep(flags, 'FSLRT',[FullScanLRTMenuSequenceGenCfg])
87  # Empty for alignment with jets
88  def getRoITrkEmpty(self, flags):
89  return self.getEmptyStep(2, 'RoITrkEmptyStep')
90 
91  # Step 3 -- all FTF tracking here
92  def getFTFTrackReco(self, flags):
93  return self.getStep(flags, 'FTFRecoOnly',[getFullScanRecoOnlySequenceGenCfg])
94 
95  # Step 4+ -- everything post FTF tracking
96  def getIsoHPtTrackTrigger(self, flags):
97  return self.getStep(flags, 'IsoHPtTrack',[IsoHPtTrackTriggerHypoSequenceGenCfg])
98  def getdEdxTrigger(self, flags):
99  return self.getStep(flags, 'dEdx',[dEdxTriggerHypoSequenceGenCfg])
100  def getHitDVTrigger(self, flags):
101  return self.getStep(flags, 'HitDV',[HitDVHypoSequenceGenCfg])
102  def getDisTrkTrigger(self, flags):
103  return self.getStep(flags, 'DisTrk',[DisTrkTriggerHypoSequenceGenCfg])
104  def getVSITrigger(self, flags):
105  return self.getStep(flags, 'LRTVSI',[VrtSecInclusiveMenuSequenceGenCfg])
106  def getDJPromptStep(self, flags):
107  return self.getStep(flags, 'DJPromptStep',[DJPromptStepSequenceGenCfg], comboTools = [TrigDJComboHypoToolFromDict])
108  def getDJDispStep(self, flags):
109  return self.getStep(flags, 'DJDispStep',[DJDispStepSequenceGenCfg])
110  def getDVRecoStep(self, flags):
111  return self.getStep(flags, 'DVRecoStep',[DVRecoSequenceGenCfg])
112  def getDVEDStep(self, flags):
113  return self.getStep(flags, 'DVEDStep',[DVTriggerEDSequenceGenCfg])
grepfile.info
info
Definition: grepfile.py:38
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDisTrkEmpty
def getDisTrkEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:77
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getdEdxEmpty
def getdEdxEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:81
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDVRecoStep
def getDVRecoStep(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:110
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDisTrkTrigger
def getDisTrkTrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:102
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getVSIEmpty
def getVSIEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:79
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getFTFTrackReco
def getFTFTrackReco(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:92
ChainConfigurationBase
Definition: ChainConfigurationBase.py:1
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDJDispStep
def getDJDispStep(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:108
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDVEDStep
def getDVEDStep(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:112
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getStepDictionary
def getStepDictionary(self)
Definition: UnconventionalTrackingChainConfiguration.py:52
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.__init__
def __init__(self, chainDict)
Definition: UnconventionalTrackingChainConfiguration.py:25
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getVSITrigger
def getVSITrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:104
python.utils.getFlagsForActiveConfig
AthConfigFlags getFlagsForActiveConfig(AthConfigFlags flags, str config_name, logging.Logger log)
Definition: Trigger/TrigTools/TrigInDetConfig/python/utils.py:9
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.assembleChainImpl
def assembleChainImpl(self, inflags)
Definition: UnconventionalTrackingChainConfiguration.py:31
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getRoITrkEmpty
def getRoITrkEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:88
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDJPromptStep
def getDJPromptStep(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:106
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getdEdxTrigger
def getdEdxTrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:98
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getFSLRTTrigger
def getFSLRTTrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:85
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getJetReco
def getJetReco(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:70
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getIsoHPtTrackEmpty
def getIsoHPtTrackEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:73
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getIsoHPtTrackTrigger
def getIsoHPtTrackTrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:96
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getHitDVTrigger
def getHitDVTrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:100
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getFSLRTEmpty
def getFSLRTEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:75
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration
Definition: UnconventionalTrackingChainConfiguration.py:23