ATLAS Offline Software
Loading...
Searching...
No Matches
python.HLT.Ditau.DitauMenuSequences Namespace Reference

Functions

ComponentAccumulator ditauTrackingCfg (flags, str inputRoI, str inputVertex, str inputJets)
 JetTVAAlgCfg (flags, inputTracks, inputVertex, name="HLT_DiTauRec_JetAlgorithm")
ComponentAccumulator ditauRecoCfg (flags, str inputJets, str inputVertex, str inputFSTracks, str inputTracks, str inputCells, str inputClusters)
 ditauSequenceGenCfg (flags, seq_name, jet_name)

Variables

 log = logging.getLogger(__name__)

Function Documentation

◆ ditauRecoCfg()

ComponentAccumulator python.HLT.Ditau.DitauMenuSequences.ditauRecoCfg ( flags,
str inputJets,
str inputVertex,
str inputFSTracks,
str inputTracks,
str inputCells,
str inputClusters )

Definition at line 60 of file DitauMenuSequences.py.

60def ditauRecoCfg(flags, inputJets: str, inputVertex: str, inputFSTracks: str, inputTracks: str, inputCells: str, inputClusters: str) -> ComponentAccumulator:
61 from .DitauConfigFlagsHLT import createDiTauConfigFlags
62 flags_ditau = createDiTauConfigFlags()
63
64 acc = ComponentAccumulator()
65 acc.merge(JetTVAAlgCfg(
66 flags,
67 inputTracks=inputFSTracks,
68 inputVertex=inputVertex,
69 ))
70 tools = [
71 acc.popToolsAndMerge(SeedJetBuilderCfg(flags, jetCollection=inputJets)),
72 acc.popToolsAndMerge(SubjetBuilderCfg(flags)),
73 acc.popToolsAndMerge(VertexFinderCfg(
74 flags,
75 TrackVertexAssociation = "HLT_JetTrackVtxAssoc_forDiTaus",
76 PrimVtxContainerName = inputVertex,
77 AssociatedTracks = "GhostTrack_ftf"
78 )),
79 acc.popToolsAndMerge(DiTauTrackFinderCfg(
80 flags,
81 TrackParticleContainer=inputTracks
82 )),
83 acc.popToolsAndMerge(DiTauConstituentFinderCfg(
84 flags,
85 UseRawConstit=False, # no raw constituents for DiTau reconstruction with PFO jets
86 )),
87 acc.popToolsAndMerge(DiTauExtraVarDecoratorCfg(
88 flags,
89 ditauPtDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.ditau_pt",
90 fCoreLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_core_lead",
91 fCoreSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_core_subl",
92 fSubjetLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_subjet_lead",
93 fSubjetSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_subjet_subl",
94 fSubjetsDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_subjets",
95 fTrackLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_track_lead",
96 fTrackSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_track_subl",
97 RMaxLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_max_lead",
98 RMaxSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_max_subl",
99 nTrackDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.n_track",
100 nTracksLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.n_tracks_lead",
101 nTracksSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.n_tracks_subl",
102 nIsotrackDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.n_isotrack",
103 RTrackDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_track",
104 RTrackCoreDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_track_core",
105 RTrackAllDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_track_all",
106 RIsotrackDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_isotrack",
107 RCoreLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_core_lead",
108 RCoreSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_core_subl",
109 RTracksLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_tracks_lead",
110 RTracksSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_tracks_subl",
111 MTrackDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_track",
112 MTrackCoreDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_track_core",
113 MCoreLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_core_lead",
114 MCoreSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_core_subl",
115 MTrackAllDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_track_all",
116 MTracksLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_tracks_lead",
117 MTracksSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.m_tracks_subl",
118 EFracSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.E_frac_subl",
119 EFracSubsublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.E_frac_subsubl",
120 RSubjetsSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_subjets_subl",
121 RSubjetsSubsublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.R_subjets_subsubl",
122 d0LeadtrackLeadDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.d0_leadtrack_lead",
123 d0LeadtrackSublDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.d0_leadtrack_subl",
124 fIsotracksDecName = f"{flags_ditau.DiTau.DiTauContainer[0]}.f_isotracks",
125 )),
126 acc.popToolsAndMerge(DiTauOnnxScoreCalculatorCfg(
127 flags,
128 onnxModelPath = f"{flags_ditau.DiTau.CalibFolder}{flags_ditau.DiTau.DiTauIDModel}",
129 )),
130 ]
131
132 acc.addEventAlgo(CompFactory.DiTauBuilder(
133 "HLT_DiTauBuilder",
134 DiTauContainer = recordable(flags_ditau.DiTau.DiTauContainer[0]),
135 Tools = tools,
136 SeedJetName = inputJets,
137 minPt = flags_ditau.DiTau.JetSeedPt,
138 maxEta = flags_ditau.DiTau.MaxEta,
139 Rjet = flags_ditau.DiTau.Rjet,
140 Rsubjet = flags_ditau.DiTau.Rsubjet,
141 Rcore = flags_ditau.DiTau.Rcore,
142 ))
143 return acc
144

◆ ditauSequenceGenCfg()

python.HLT.Ditau.DitauMenuSequences.ditauSequenceGenCfg ( flags,
seq_name,
jet_name )

Definition at line 145 of file DitauMenuSequences.py.

145def ditauSequenceGenCfg(flags, seq_name, jet_name):
146 # input maker and ROI tool
147 prmVtxKey = flags.Trigger.InDetTracking.fullScan.vertex
148 roiTool = CompFactory.ViewCreatorCentredOnJetWithPVConstraintROITool(
149 RoisWriteHandleKey = recordable( 'HLT_Roi_DiTau' ),
150 VertexReadHandleKey = prmVtxKey,
151 PrmVtxLink = prmVtxKey.replace( "HLT_","" ),
152 RoIEtaWidth = 1.0,
153 RoIPhiWidth = 1.0,
154 RoIZWidth = 7.0,
155 )
156 ditauAcc = InViewRecoCA("Ditau", RoITool = roiTool,
157 InViewRoIs = "InViewRoIs",
158 mergeUsingFeature = True,
159 RequireParentView = False,
160 ViewFallThrough = True,
161 InViewJets = f'{jet_name}_DiTau_jets',
162 PlaceJetInView = True)
163 InputMakerAlg = ditauAcc.inputMaker()
164 # Tracking
165 trackingAcc = ditauTrackingCfg(
166 flags,
167 inputRoI=InputMakerAlg.InViewRoIs,
168 inputVertex=prmVtxKey,
169 inputJets=InputMakerAlg.InViewJets
170 )
171 ditauAcc.mergeReco(trackingAcc)
172
173 # ditau reconstruction
174 inputJets = InputMakerAlg.InViewJets
175 inputVertex = prmVtxKey
176 inputFSTracks = flags.Trigger.InDetTracking.fullScan.tracks_FTF
177 inputIDTracks = flags.Trigger.InDetTracking.diTau.tracks_IDTrig
178 inputCells = "CaloCellsFS"
179 inputClusters = "HLT_TopoCaloClustersFS"
180
181 recoAcc = ditauRecoCfg(
182 flags,
183 inputJets=inputJets,
184 inputVertex=inputVertex,
185 inputFSTracks=inputFSTracks,
186 inputTracks=inputIDTracks,
187 inputCells=inputCells,
188 inputClusters=inputClusters
189 )
190
191 ditauAcc.mergeReco(recoAcc)
192
193 ditauAcc.addRecoAlgo(CompFactory.AthViews.ViewDataVerifier(
194 name=f'{ditauAcc.name}RecoVDV',
195 DataObjects={
196 ('CaloCellContainer', f'StoreGateSvc+{inputCells}'),
197 ('xAOD::CaloClusterContainer', f'StoreGateSvc+{inputClusters}'),
198 ('CaloClusterCellLinkContainer', f'StoreGateSvc+{inputClusters}_links'),
199 ('xAOD::TrackParticleContainer' , f'StoreGateSvc+{inputFSTracks}'),
200 }
201 ))
202
203 selAcc = SelectionCA(f'Trig_DitauReco_{seq_name}')
204 selAcc.mergeReco(ditauAcc)
205 selAcc.addHypoAlgo(CompFactory.TrigDiTauHypoAlg(
206 f'DiTauHypoAlg_{seq_name}',
207 DiTauJets_key='HLT_DiTauJets',
208 ))
209
210 from TrigDitauHypo.TrigDiTauHypoTool import TrigDiTauHypoToolFromDict
211 menuSeq = MenuSequence(flags, selAcc, HypoToolGen=TrigDiTauHypoToolFromDict)
212
213 return menuSeq

◆ ditauTrackingCfg()

ComponentAccumulator python.HLT.Ditau.DitauMenuSequences.ditauTrackingCfg ( flags,
str inputRoI,
str inputVertex,
str inputJets )

Definition at line 23 of file DitauMenuSequences.py.

23def ditauTrackingCfg(flags, inputRoI: str, inputVertex: str, inputJets: str) -> ComponentAccumulator:
24 #safety measure to ensure we get the right instance of flags
25 from TrigInDetConfig.utils import getFlagsForActiveConfig
26 trkflags = getFlagsForActiveConfig(flags, "diTau", log)
27
28 from TrigInDetConfig.InnerTrackingTrigSequence import InnerTrackingTrigSequence
29 seq = InnerTrackingTrigSequence.create(trkflags,
30 trkflags.Tracking.ActiveConfig.input_name,
31 rois = inputRoI,
32 inView = "VDVInDetFTF")
33 acc = seq.sequence("FastTrackFinder")
34 acc.merge(seq.sequenceAfterPattern())
35
36 verifier = CompFactory.AthViews.ViewDataVerifier(name = 'VDVsecondStageDitauTracking',
37 DataObjects = {('xAOD::VertexContainer', f'StoreGateSvc+{inputVertex}'),
38 ('xAOD::JetContainer', f'StoreGateSvc+{inputJets}')} )
39 acc.addEventAlgo(verifier)
40
41 return acc
42

◆ JetTVAAlgCfg()

python.HLT.Ditau.DitauMenuSequences.JetTVAAlgCfg ( flags,
inputTracks,
inputVertex,
name = "HLT_DiTauRec_JetAlgorithm" )
Configure the JetAlgorithm

Definition at line 43 of file DitauMenuSequences.py.

43def JetTVAAlgCfg(flags, inputTracks, inputVertex, name="HLT_DiTauRec_JetAlgorithm"): # Name changed wrt legacy config DiTauRec_TVATool
44 """Configure the JetAlgorithm"""
45 acc = ComponentAccumulator()
46
47 tools = [acc.popToolsAndMerge(
48 TVAToolCfg(
49 flags,
50 TrackParticleContainer = inputTracks,
51 VertexContainer = inputVertex,
52 TrackVertexAssociation = "HLT_JetTrackVtxAssoc_forDiTaus"
53 )
54 )]
55 tools = tools
56
57 acc.addEventAlgo(CompFactory.JetAlgorithm(name, Tools = tools))
58 return acc
59

Variable Documentation

◆ log

python.HLT.Ditau.DitauMenuSequences.log = logging.getLogger(__name__)

Definition at line 20 of file DitauMenuSequences.py.