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, flags):
32  log.debug("Assembling chain %s", self.chainName)
33 
34  chainSteps = []
35 
36  stepDictionary = self.getStepDictionary()
37 
38  key = self.chainPart['trigType']
39  steps = stepDictionary[key]
40 
41  for step in steps:
42  chainstep = getattr(self, step)(flags)
43  chainSteps += [chainstep]
44 
45  myChain = self.buildChain(chainSteps)
46 
47  return myChain
48 
49  def getStepDictionary(self):
50 
51  stepDictionary = {
52  "isotrk" : ['getIsoHPtTrackEmpty', 'getRoITrkEmpty', 'getFTFTrackReco', 'getIsoHPtTrackTrigger'],
53  "fslrt" : ['getFSLRTEmpty', 'getRoITrkEmpty', 'getFSLRTTrigger'],
54  "dedxtrk" : ['getdEdxEmpty', 'getRoITrkEmpty', 'getFTFTrackReco', 'getdEdxTrigger'],
55  "hitdvjet" : ['getJetReco', 'getRoITrkEmpty', 'getFTFTrackReco', 'getHitDVTrigger'],
56  "fsvsi" : ['getVSIEmpty', 'getRoITrkEmpty', 'getVSITrigger'],
57  "distrk" : ['getDisTrkEmpty', 'getRoITrkEmpty', 'getFTFTrackReco', 'getDisTrkTrigger'],
58  "dispvtx" : ['getJetReco', 'getRoITrkEmpty', 'getFTFTrackReco', 'getHitDVTrigger', 'getDVRecoStep', 'getDVEDStep'],
59  "dispjet" : ['getJetReco', 'getRoITrkEmpty', 'getFTFTrackReco', 'getDJPromptStep', 'getDJDispStep']
60  }
61 
62  return stepDictionary
63 
64  # --------------------
65  # Step definitions in alignment order
66  # Step 1
67  def getJetReco(self, flags):
68  return self.getStep(flags, 'JetRecoOnlyCfg',[UTTJetRecoSequenceGenCfg])
69  # Empty for alignment
70  def getIsoHPtTrackEmpty(self, flags):
71  return self.getEmptyStep('EmptyUncTrk')
72  def getFSLRTEmpty(self, flags):
73  return self.getEmptyStep('FSLRTEmptyStep')
74  def getDisTrkEmpty(self, flags):
75  return self.getEmptyStep('DisTrkEmptyStep')
76  def getVSIEmpty(self, flags):
77  return self.getEmptyStep('VSIEmptyStep')
78  def getdEdxEmpty(self, flags):
79  return self.getEmptyStep('dEdxEmptyStep')
80 
81  # Step 2
82  def getFSLRTTrigger(self, flags):
83  return self.getStep(flags, 'FSLRT',[FullScanLRTMenuSequenceGenCfg])
84  # Empty for alignment with jets
85  def getRoITrkEmpty(self, flags):
86  return self.getEmptyStep('RoITrkEmptyStep')
87 
88  # Step 3 -- all FTF tracking here
89  def getFTFTrackReco(self, flags):
90  return self.getStep(flags, 'FTFRecoOnly',[getFullScanRecoOnlySequenceGenCfg])
91 
92  # Step 4+ -- everything post FTF tracking
93  def getIsoHPtTrackTrigger(self, flags):
94  return self.getStep(flags, 'IsoHPtTrack',[IsoHPtTrackTriggerHypoSequenceGenCfg])
95  def getdEdxTrigger(self, flags):
96  return self.getStep(flags, 'dEdx',[dEdxTriggerHypoSequenceGenCfg])
97  def getHitDVTrigger(self, flags):
98  return self.getStep(flags, 'HitDV',[HitDVHypoSequenceGenCfg])
99  def getDisTrkTrigger(self, flags):
100  return self.getStep(flags, 'DisTrk',[DisTrkTriggerHypoSequenceGenCfg])
101  def getVSITrigger(self, flags):
102  return self.getStep(flags, 'LRTVSI',[VrtSecInclusiveMenuSequenceGenCfg])
103  def getDJPromptStep(self, flags):
104  return self.getStep(flags, 'DJPromptStep',[DJPromptStepSequenceGenCfg], comboTools = [TrigDJComboHypoToolFromDict])
105  def getDJDispStep(self, flags):
106  return self.getStep(flags, 'DJDispStep',[DJDispStepSequenceGenCfg])
107  def getDVRecoStep(self, flags):
108  return self.getStep(flags, 'DVRecoStep',[DVRecoSequenceGenCfg])
109  def getDVEDStep(self, flags):
110  return self.getStep(flags, 'DVEDStep',[DVTriggerEDSequenceGenCfg])
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDisTrkEmpty
def getDisTrkEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:74
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getdEdxEmpty
def getdEdxEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:78
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDVRecoStep
def getDVRecoStep(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:107
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDisTrkTrigger
def getDisTrkTrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:99
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getVSIEmpty
def getVSIEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:76
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getFTFTrackReco
def getFTFTrackReco(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:89
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.assembleChainImpl
def assembleChainImpl(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:31
ChainConfigurationBase
Definition: ChainConfigurationBase.py:1
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDJDispStep
def getDJDispStep(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:105
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDVEDStep
def getDVEDStep(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:109
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getStepDictionary
def getStepDictionary(self)
Definition: UnconventionalTrackingChainConfiguration.py:49
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.__init__
def __init__(self, chainDict)
Definition: UnconventionalTrackingChainConfiguration.py:25
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getVSITrigger
def getVSITrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:101
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getRoITrkEmpty
def getRoITrkEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:85
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getDJPromptStep
def getDJPromptStep(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:103
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getdEdxTrigger
def getdEdxTrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:95
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getFSLRTTrigger
def getFSLRTTrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:82
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getJetReco
def getJetReco(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:67
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getIsoHPtTrackEmpty
def getIsoHPtTrackEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:70
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getIsoHPtTrackTrigger
def getIsoHPtTrackTrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:93
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getHitDVTrigger
def getHitDVTrigger(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:97
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration.getFSLRTEmpty
def getFSLRTEmpty(self, flags)
Definition: UnconventionalTrackingChainConfiguration.py:72
UnconventionalTrackingChainConfiguration.UnconventionalTrackingChainConfiguration
Definition: UnconventionalTrackingChainConfiguration.py:23
python.ParticleTypeUtil.info
def info
Definition: ParticleTypeUtil.py:87