3 from TriggerMenuMT.HLT.Config.MenuComponents
import MenuSequence, SelectionCA, InViewRecoCA
4 from AthenaConfiguration.ComponentFactory
import CompFactory
6 from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
7 from TrigEDMConfig.TriggerEDM
import recordable
9 from TrigInDetConfig.utils
import getFlagsForActiveConfig
10 from AthenaCommon.Logging
import logging
11 log = logging.getLogger(__name__)
15 selAcc = SelectionCA(
'CaloTau', isProbe=is_probe_leg)
17 recoAcc = InViewRecoCA(name =
'tauCaloMVA',
18 InViewRoIs =
'CaloMVA_RoIs',
19 isProbe = is_probe_leg)
21 recoAcc.addRecoAlgo(CompFactory.AthViews.ViewDataVerifier(name=recoAcc.name+
'RecoVDV',
22 DataObjects={(
'TrigRoiDescriptorCollection',
'StoreGateSvc+'+recoAcc.inputMaker().InViewRoIs.Path),
24 (
'CaloBCIDAverage',
'StoreGateSvc+CaloBCIDAverage'),
25 (
'xAOD::EventInfo' ,
'StoreGateSvc+EventInfo' ),
26 (
'SG::AuxElement' ,
'StoreGateSvc+EventInfo.actualInteractionsPerCrossing'),
27 (
'SG::AuxElement' ,
'StoreGateSvc+EventInfo.averageInteractionsPerCrossing')}))
29 from TrigCaloRec.TrigCaloRecConfig
import tauTopoClusteringCfg
31 RoIs = recoAcc.inputMaker().InViewRoIs))
33 from TrigTauRec.TrigTauRecConfig
import trigTauRecMergedCaloOnlyMVACfg
34 from TrigTauHypo.TrigTauHypoConfig
import tauCaloRoiUpdaterCfg
36 recoAcc.mergeReco(
tauCaloRoiUpdaterCfg(flags,inputRoIs=recoAcc.inputMaker().InViewRoIs,clusters =
'HLT_TopoCaloClustersLC'))
40 from TrigGenericAlgs.TrigGenericAlgsConfig
import ROBPrefetchingAlgCfg_Calo
41 robPrefetchAlg =
ROBPrefetchingAlgCfg_Calo( flags, nameSuffix=
'IM_'+recoAcc.name+
'_probe' if is_probe_leg
else 'IM_'+recoAcc.name)
42 selAcc.mergeReco(recoAcc, robPrefetchCA=robPrefetchAlg)
44 hypoAlg = CompFactory.TrigTauCaloHypoAlg(
"TauL2CaloMVAHypo",
45 taujets =
"HLT_TrigTauRecMerged_CaloMVAOnly" )
46 selAcc.addHypoAlgo(hypoAlg)
48 from TrigTauHypo.TrigTauHypoTool
import TrigL2TauHypoToolFromDict
49 menuCA = MenuSequence(flags, selAcc, HypoToolGen=TrigL2TauHypoToolFromDict)
50 return (selAcc , menuCA)
55 (selAcc , menuCA) =
_caloSeq(flags, is_probe_leg)
60 selAcc=SelectionCA(
'tau'+name+
'FTF', isProbe=is_probe_leg)
62 newRoITool = CompFactory.ViewCreatorFetchFromViewROITool(
63 RoisWriteHandleKey =
recordable(flags.Tracking.ActiveConfig.roi),
64 InViewRoIs =
'UpdatedCaloRoI')
67 newRoITool.doResize =
True
68 newRoITool.RoIEtaWidth = flags.Tracking.ActiveConfig.etaHalfWidth
69 newRoITool.RoIPhiWidth = flags.Tracking.ActiveConfig.phiHalfWidth
70 newRoITool.RoIZedWidth = flags.Tracking.ActiveConfig.zedHalfWidth
73 from TrigGenericAlgs.TrigGenericAlgsConfig
import ROBPrefetchingAlgCfg_Si
74 from TriggerJobOpts.TriggerConfigFlags
import ROBPrefetching
76 extraPrefetching = ROBPrefetching.TauCoreLargeRoI
in flags.Trigger.ROBPrefetchingOptions
and 'Core' in name
79 prefetchRoIUpdater = CompFactory.RoiUpdaterTool()
80 prefetchRoIUpdater.useBeamSpot =
True
81 prefetchRoIUpdater.NSigma = 1.5
82 prefetchRoIUpdater.EtaWidth = flags.Trigger.InDetTracking.tauIso.etaHalfWidth
83 prefetchRoIUpdater.PhiWidth = flags.Trigger.InDetTracking.tauIso.phiHalfWidth
84 prefetchRoIUpdater.ZedWidth = flags.Trigger.InDetTracking.tauIso.zedHalfWidth
85 prefetchRoITool = CompFactory.ViewCreatorExtraPrefetchROITool()
86 prefetchRoITool.RoiCreator = newRoITool
87 prefetchRoITool.RoiUpdater = prefetchRoIUpdater
88 prefetchRoITool.ExtraPrefetchRoIsKey =
str(newRoITool.RoisWriteHandleKey) +
"_forPrefetching"
89 prefetchRoITool.PrefetchRoIsLinkName =
"prefetchRoI"
90 prefetchRoITool.MergeWithOriginal =
True
92 fastInDetReco = InViewRecoCA(
'tauFastTrack'+name,RoITool = prefetchRoITool
if extraPrefetching
else newRoITool,
93 ViewFallThrough =
True,
94 RequireParentView =
True,
95 mergeUsingFeature =
True,
96 isProbe = is_probe_leg)
100 robPrefetchAlg.RoILinkName =
str(prefetchRoITool.PrefetchRoIsLinkName)
102 from TrigInDetConfig.TrigInDetConfig
import trigInDetFastTrackingCfg
103 fastInDetReco.mergeReco(
trigInDetFastTrackingCfg(flags, roisKey=fastInDetReco.inputMaker().InViewRoIs, signatureName=
'tau'+name))
104 fastInDetReco.addRecoAlgo(CompFactory.AthViews.ViewDataVerifier(
105 name=
'VDVFastTau'+name,
106 DataObjects={(
'TrigRoiDescriptorCollection' ,
'StoreGateSvc+{}'.
format(fastInDetReco.inputMaker().InViewRoIs) ),
107 (
'xAOD::TauJetContainer' ,
'StoreGateSvc+HLT_TrigTauRecMerged_CaloMVAOnly')}) )
109 RoIs = fastInDetReco.inputMaker().InViewRoIs
110 TrackCollection = flags.Tracking.ActiveConfig.trkTracks_FTF
112 from TrigTauHypo.TrigTauHypoConfig
import tauTrackRoiUpdaterCfg,tauLRTRoiUpdaterCfg
115 fastInDetReco.mergeReco(
tauLRTRoiUpdaterCfg(flags,inputRoIs = RoIs,tracks = TrackCollection))
119 selAcc.mergeReco(fastInDetReco, robPrefetchCA=robPrefetchAlg)
120 hypoAlg = CompFactory.TrigTrackPreSelHypoAlg(
'TrackPreSelHypoAlg_PassBy'+name,
121 RoIForIDReadHandleKey =
'UpdatedTrackLRTRoI' if 'LRT' in name
else '',
122 trackcollection = flags.Tracking.ActiveConfig.trkTracks_FTF )
123 selAcc.addHypoAlgo(hypoAlg)
124 from TrigTauHypo.TrigTauHypoTool
import TrigTauTrackHypoToolFromDict
125 menuCA = MenuSequence(flags, selAcc, HypoToolGen=TrigTauTrackHypoToolFromDict)
126 return (selAcc , menuCA)
134 (selAcc , menuCA) =
_ftfCoreSeq(newflags,name,is_probe_leg)
142 (selAcc , menuCA) =
_ftfCoreSeq(newflags,name,is_probe_leg)
147 selAcc=SelectionCA(
'tau'+name+
'FTF', isProbe=is_probe_leg)
149 newRoITool = CompFactory.ViewCreatorFetchFromViewROITool(
150 RoisWriteHandleKey =
recordable(flags.Tracking.ActiveConfig.roi),
151 InViewRoIs =
'UpdatedTrackRoI')
153 from TrigGenericAlgs.TrigGenericAlgsConfig
import ROBPrefetchingAlgCfg_Si
155 fastInDetReco = InViewRecoCA(
'tauFastTrack'+name,RoITool = newRoITool,
156 RequireParentView =
True,
157 ViewFallThrough =
True,
158 isProbe = is_probe_leg)
162 from TrigInDetConfig.TrigInDetConfig
import trigInDetFastTrackingCfg
163 idTracking =
trigInDetFastTrackingCfg(flags, roisKey=fastInDetReco.inputMaker().InViewRoIs, signatureName=
'tau'+name)
164 fastInDetReco.mergeReco(idTracking)
165 fastInDetReco.addRecoAlgo(CompFactory.AthViews.ViewDataVerifier(
166 name=
'VDVFastTau'+name,
167 DataObjects={(
'TrigRoiDescriptorCollection' ,
'StoreGateSvc+{}'.
format(fastInDetReco.inputMaker().InViewRoIs) ),
168 (
'xAOD::TauJetContainer' ,
'StoreGateSvc+HLT_TrigTauRecMerged_CaloMVAOnly')}) )
170 selAcc.mergeReco(fastInDetReco, robPrefetchCA=robPrefetchAlg)
171 hypoAlg = CompFactory.TrigTrackPreSelHypoAlg(
'TrackPreSelHypoAlg_PassBy'+name,
172 trackcollection = flags.Tracking.ActiveConfig.trkTracks_FTF )
173 selAcc.addHypoAlgo(hypoAlg)
175 from TrigTauHypo.TrigTauHypoTool
import TrigTauTrackHypoToolFromDict
176 menuCA = MenuSequence(flags, selAcc, HypoToolGen=TrigTauTrackHypoToolFromDict)
177 return (selAcc , menuCA)
184 (selAcc , menuCA) =
_ftfTauIsoSeq(newflags,name,is_probe_leg)
189 selAcc=SelectionCA(
'tau'+name+
'Track', isProbe=is_probe_leg)
191 recoAcc = InViewRecoCA(name =
'prec'+name+
'Track',
192 RoITool = CompFactory.ViewCreatorPreviousROITool(),
193 InViewRoIs =
'tauFastTrack'+name,
194 RequireParentView =
True,
195 ViewFallThrough =
True,
196 isProbe = is_probe_leg)
198 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
200 recoAcc.mergeReco(precTracking)
202 ViewVerifyTrk = CompFactory.AthViews.ViewDataVerifier(
203 name=
'VDVPrecTrkTau'+name,
204 DataObjects = {(
'xAOD::TrackParticleContainer' ,
'StoreGateSvc+%s' % flags.Tracking.ActiveConfig.tracks_FTF ),
205 (
'SG::AuxElement' ,
'StoreGateSvc+EventInfo.averageInteractionsPerCrossing' ),
206 (
'TrigRoiDescriptorCollection' ,
'StoreGateSvc+{}'.
format(recoAcc.inputMaker().InViewRoIs) ),
207 (
'xAOD::TauTrackContainer' ,
'StoreGateSvc+HLT_tautrack_dummy' ),
208 (
'xAOD::TauJetContainer' ,
'StoreGateSvc+HLT_TrigTauRecMerged_CaloMVAOnly' ),
209 (
'xAOD::IParticleContainer' ,
'StoreGateSvc+%s' % flags.Tracking.ActiveConfig.tracks_FTF ),
212 recoAcc.addRecoAlgo(ViewVerifyTrk)
214 precTracks = flags.Tracking.ActiveConfig.tracks_IDTrig
216 from TrigInDetConfig.TrigInDetConfig
import trigInDetVertexingCfg
219 selAcc.mergeReco(recoAcc)
220 hypoAlg = CompFactory.TrigTrkPrecHypoAlg(
'TrkPrec'+name+
'HypoAlg',
221 trackparticles = precTracks,
222 RoIForIDReadHandleKey =
'' )
223 selAcc.addHypoAlgo(hypoAlg)
225 from TrigTauHypo.TrigTauHypoTool
import TrigTrkPrecHypoToolFromDict
226 menuCA = MenuSequence(flags, selAcc, HypoToolGen=TrigTrkPrecHypoToolFromDict)
227 return (selAcc , menuCA)
234 (selAcc , menuCA) =
_precTrackSeq(newflags,name,is_probe_leg)
242 (selAcc , menuCA) =
_precTrackSeq(newflags,name,is_probe_leg)
247 selAcc=SelectionCA(
'tauPrec'+name, isProbe=is_probe_leg)
249 InViewName =
'Iso' if 'LRT' not in name
else 'LRT'
250 recoAcc = InViewRecoCA(name =
'prec'+name+
'Tau',
251 RoITool = CompFactory.ViewCreatorPreviousROITool(),
252 InViewRoIs =
'tauFastTrack'+InViewName,
253 RequireParentView =
True,
254 ViewFallThrough =
True,
255 isProbe = is_probe_leg)
257 ViewVerifyID = CompFactory.AthViews.ViewDataVerifier(
258 name=
'VDVPrecTau'+name,
259 DataObjects = {(
'TrigRoiDescriptorCollection' ,
'StoreGateSvc+{}'.
format(recoAcc.inputMaker().InViewRoIs)),
260 (
'SG::AuxElement' ,
'StoreGateSvc+EventInfo.averageInteractionsPerCrossing' ),
261 (
'xAOD::VertexContainer',
'StoreGateSvc+'+flags.Tracking.ActiveConfig.vertex),
262 (
'xAOD::TauTrackContainer' ,
'StoreGateSvc+HLT_tautrack_dummy' ),
263 (
'xAOD::TauJetContainer' ,
'StoreGateSvc+HLT_TrigTauRecMerged_CaloMVAOnly' ),
264 (
'xAOD::TrackParticleContainer' ,
'StoreGateSvc+'+flags.Tracking.ActiveConfig.tracks_IDTrig )})
266 recoAcc.addRecoAlgo(ViewVerifyID)
268 from TrigTauRec.TrigTauRecConfig
import trigTauRecMergedPrecisionMVACfg
269 tauPrecisionAlg =
trigTauRecMergedPrecisionMVACfg(flags, name, inputRoIs = recoAcc.inputMaker().InViewRoIs, tracks = flags.Tracking.ActiveConfig.tracks_IDTrig)
271 recoAcc.mergeReco(tauPrecisionAlg)
273 selAcc.mergeReco(recoAcc)
274 hypoAlg = CompFactory.TrigEFTauMVHypoAlg(
'EFTauMVHypoAlg'+name,
275 taujetcontainer =
'HLT_TrigTauRecMerged_'+name)
276 selAcc.addHypoAlgo(hypoAlg)
278 from TrigTauHypo.TrigTauHypoTool
import TrigEFTauMVHypoToolFromDict
279 menuCA = MenuSequence(flags, selAcc, HypoToolGen=TrigEFTauMVHypoToolFromDict)
280 return (selAcc , menuCA)
287 (selAcc , menuCA) =
_tauPrecSeq(newflags,name,is_probe_leg)
295 (selAcc , menuCA) =
_tauPrecSeq(newflags,name,is_probe_leg)
303 (selAcc , menuCA) =
_tauPrecSeq(newflags,name,is_probe_leg)