20 """Configure the derivation framework driving algorithm (kernel) for LLP1"""
21 acc = ComponentAccumulator()
26 MergedElectronContainer =
"Electrons"
27 MergedGSFTrackCollection =
"GSFTrackParticles"
28 MergedMuonContainer =
"Muons"
29 MergedTrackCollection =
"InDetTrackParticles"
30 MergedTrackletCollection =
"InDetDisappearingTrackParticles"
32 if flags.Tracking.doLargeD0:
33 MergedTrackCollection =
"InDetWithLRTTrackParticles"
34 from DerivationFrameworkInDet.InDetToolsConfig
import InDetLRTMergeCfg
35 acc.merge(InDetLRTMergeCfg(flags))
37 MergedGSFTrackCollection =
"InDetWithLRTGSFTrackParticles"
38 acc.merge(InDetLRTMergeCfg(
39 flags, name=
"GSFTrackMergerAlg",
40 InputTrackParticleLocations = [
"GSFTrackParticles",
41 "LRTGSFTrackParticles"],
42 OutputTrackParticleLocation = MergedGSFTrackCollection,
43 OutputTrackParticleLocationCopy = MergedGSFTrackCollection))
45 if flags.Tracking.doTrackSegmentsDisappearing:
46 MergedTrackletCollection =
"InDetDisappearingWithLRTTrackParticles"
47 acc.merge(InDetLRTMergeCfg(
48 flags, name=
"InDetDisappearingLRTMerge",
49 InputTrackParticleLocations = [
"InDetDisappearingTrackParticles",
50 "InDetLargeD0TrackParticles"],
51 OutputTrackParticleLocation = MergedTrackletCollection))
54 MergedMuonContainer =
"StdWithLRTMuons"
55 from DerivationFrameworkLLP.LLPToolsConfig
import LRTMuonMergerAlg
56 acc.merge(LRTMuonMergerAlg(flags,
57 PromptMuonLocation =
"Muons",
58 LRTMuonLocation =
"MuonsLRT",
59 OutputMuonLocation = MergedMuonContainer,
60 CreateViewCollection =
True,
61 UseRun3WP = flags.GeoModel.Run >= LHCPeriod.Run3))
64 MergedElectronContainer =
"StdWithLRTElectrons"
65 from DerivationFrameworkLLP.LLPToolsConfig
import LRTElectronMergerAlg
66 acc.merge(LRTElectronMergerAlg(flags,
67 PromptElectronLocation =
"Electrons",
68 LRTElectronLocation =
"LRTElectrons",
69 OutputCollectionName = MergedElectronContainer,
71 CreateViewCollection =
True))
75 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import (
76 MaxCellDecoratorCfg, MaxCellDecoratorKernelCfg)
79 acc.merge(MaxCellDecoratorKernelCfg(flags))
82 if flags.Tracking.doLargeD0:
83 LLP1LRTMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
84 flags, name =
"LLP1LRTMaxCellDecoratorTool",
85 SGKey_electrons =
"LRTElectrons",
86 SGKey_egammaClusters = (
"" if flags.GeoModel.Run >= LHCPeriod.Run3
87 else "egammaClusters"),
89 acc.addPublicTool(LLP1LRTMaxCellDecoratorTool)
92 if flags.Tracking.doTrackSegmentsDisappearing:
93 from DerivationFrameworkLLP.LLPToolsConfig
import TrackParametersKVUCfg
94 LLP1TrackParametersKVUTool = acc.popToolsAndMerge(TrackParametersKVUCfg(
95 flags, name =
"LLP1TrackParametersKVU"))
96 acc.addPublicTool(LLP1TrackParametersKVUTool)
100 isoPar = ROOT.xAOD.Iso.IsolationType
101 deco_ptcones = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20]
102 deco_ptcones_suffix = [
"ptcone40",
"ptcone30",
"ptcone20"]
103 deco_prefix =
'LLP1_'
105 from InDetTrackSelectionTool.InDetTrackSelectionToolConfig
import (
106 InDetTrackSelectionTool_Loose_Cfg)
107 TrackSelectionToolStd = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
108 name =
"TrackSelectionToolStd",
112 TrackSelectionToolPdEdx = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
113 name =
"TrackSelectionToolPdEdx",
118 TrackSelectionToolPdEdxTight = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
119 name =
"TrackSelectionToolPdEdxTight",
124 from IsolationAlgs.IsoToolsConfig
import TrackIsolationToolCfg, CaloIsolationToolCfg
125 TrackIsoToolStd = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
126 name =
"TrackIsoToolStd",
127 TrackSelectionTool = TrackSelectionToolStd))
128 acc.addPublicTool(TrackIsoToolStd)
130 TrackIsoToolPdEdx = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
131 name =
"TrackIsoToolPdEdx",
132 TrackSelectionTool = TrackSelectionToolPdEdx))
133 acc.addPublicTool(TrackIsoToolPdEdx)
135 TrackIsoToolPdEdxTight = acc.popToolsAndMerge(TrackIsolationToolCfg(flags,
136 name =
"TrackIsoToolPdEdxTight",
137 TrackSelectionTool = TrackSelectionToolPdEdxTight))
138 acc.addPublicTool(TrackIsoToolPdEdxTight)
140 from CaloIdentifier
import SUBCALO
141 CaloIsoTool = acc.popToolsAndMerge(CaloIsolationToolCfg(flags,
142 name =
"CaloIsoTool",
143 EMCaloNums = [SUBCALO.LAREM],
144 HadCaloNums = [SUBCALO.LARHEC, SUBCALO.TILE],
146 UseCaloExtensionCaching =
False,
147 saveOnlyRequestedCorrections =
True))
148 acc.addPublicTool(CaloIsoTool)
150 from DerivationFrameworkInDet.InDetToolsConfig
import IsolationTrackDecoratorCfg
151 LLP1IsolationTrackDecoratorTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
152 name =
"LLP1IsolationTrackDecorator",
153 TrackIsolationTool = TrackIsoToolStd,
154 CaloIsolationTool = CaloIsoTool,
155 TargetContainer =
"InDetTrackParticles",
156 SelectionString =
"InDetTrackParticles.pt>10*GeV",
157 iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20, isoPar.ptvarcone40, isoPar.ptvarcone30, isoPar.ptvarcone20, isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
158 isoSuffix = [
"ptcone40",
"ptcone30",
"ptcone20",
"ptvarcone40",
"ptvarcone30",
"ptvarcone20",
"topoetcone40",
"topoetcone30",
"topoetcone20"],
159 Prefix = deco_prefix))
160 acc.addPublicTool(LLP1IsolationTrackDecoratorTool)
162 if flags.Tracking.doTrackSegmentsDisappearing:
163 LLP1IsolationTrackDecoratorDTTool = acc.getPrimaryAndMerge(
164 IsolationTrackDecoratorCfg(
165 flags, name =
"LLP1IsolationTrackDecoratorDT",
166 TrackIsolationTool = TrackIsoToolStd,
167 CaloIsolationTool = CaloIsoTool,
168 TargetContainer =
"InDetDisappearingTrackParticles",
169 SelectionString =
"InDetDisappearingTrackParticles.pt>10*GeV",
170 iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20,
171 isoPar.ptvarcone40, isoPar.ptvarcone30, isoPar.ptvarcone20,
172 isoPar.topoetcone40, isoPar.topoetcone30, isoPar.topoetcone20],
173 isoSuffix = [
"ptcone40",
"ptcone30",
"ptcone20",
174 "ptvarcone40",
"ptvarcone30",
"ptvarcone20",
175 "topoetcone40",
"topoetcone30",
"topoetcone20"],
176 Prefix = deco_prefix))
177 acc.addPublicTool(LLP1IsolationTrackDecoratorDTTool)
179 LLP1IsolationTrackDecoratorPdEdxTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
180 name =
"LLP1IsolationTrackDecoratorPdEdx",
181 TrackIsolationTool = TrackIsoToolPdEdx,
182 CaloIsolationTool = CaloIsoTool,
183 TargetContainer =
"InDetTrackParticles",
185 Prefix =
'TrkIsoPtPdEdx_',
186 isoSuffix = deco_ptcones_suffix))
187 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTool)
189 if flags.Tracking.doTrackSegmentsDisappearing:
190 LLP1IsolationTrackDecoratorPdEdxDTTool = acc.getPrimaryAndMerge(
191 IsolationTrackDecoratorCfg(
192 flags, name =
"LLP1IsolationTrackDecoratorPdEdxDT",
193 TrackIsolationTool = TrackIsoToolPdEdx,
194 CaloIsolationTool = CaloIsoTool,
195 TargetContainer =
"InDetDisappearingTrackParticles",
197 Prefix =
'TrkIsoPtPdEdx_',
198 isoSuffix = deco_ptcones_suffix))
199 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxDTTool)
201 LLP1IsolationTrackDecoratorPdEdxTightTool = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
202 name =
"LLP1IsolationTrackDecoratorPdEdxTight",
203 TrackIsolationTool = TrackIsoToolPdEdxTight,
204 CaloIsolationTool = CaloIsoTool,
205 TargetContainer =
"InDetTrackParticles",
207 Prefix =
'TrkIsoPtTightPdEdx_',
208 isoSuffix = deco_ptcones_suffix))
209 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTightTool)
211 if flags.Tracking.doTrackSegmentsDisappearing:
212 LLP1IsolationTrackDecoratorPdEdxTightDTTool = acc.getPrimaryAndMerge(
213 IsolationTrackDecoratorCfg(
214 flags, name =
"LLP1IsolationTrackDecoratorPdEdxTightDT",
215 TrackIsolationTool = TrackIsoToolPdEdxTight,
216 CaloIsolationTool = CaloIsoTool,
217 TargetContainer =
"InDetDisappearingTrackParticles",
219 Prefix =
'TrkIsoPtTightPdEdx_',
220 isoSuffix = deco_ptcones_suffix))
221 acc.addPublicTool(LLP1IsolationTrackDecoratorPdEdxTightDTTool)
223 from DerivationFrameworkLLP.LLPToolsConfig
import TrackParticleCaloCellDecoratorCfg
224 LLP1TrackParticleCaloCellDecoratorTool = acc.getPrimaryAndMerge(TrackParticleCaloCellDecoratorCfg(flags,
225 name =
"LLP1TrackParticleCaloCellDecorator",
226 DecorationPrefix =
"LLP1",
227 ContainerName =
"InDetTrackParticles"))
228 acc.addPublicTool(LLP1TrackParticleCaloCellDecoratorTool)
230 augmentationTools = [ LLP1IsolationTrackDecoratorTool,
231 LLP1IsolationTrackDecoratorPdEdxTool,
232 LLP1IsolationTrackDecoratorPdEdxTightTool,
233 LLP1TrackParticleCaloCellDecoratorTool ]
234 if flags.Tracking.doLargeD0:
235 augmentationTools += [ LLP1LRTMaxCellDecoratorTool ]
236 if flags.Tracking.doTrackSegmentsDisappearing:
237 augmentationTools += [ LLP1TrackParametersKVUTool,
238 LLP1IsolationTrackDecoratorDTTool,
239 LLP1IsolationTrackDecoratorPdEdxDTTool,
240 LLP1IsolationTrackDecoratorPdEdxTightDTTool ]
243 LLP1TauMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
245 name =
"LLP1TauMaxCellDecoratorTool",
246 SGKey_taus =
'TauJets',
247 SGKey_electrons =
'',
249 acc.addPublicTool(LLP1TauMaxCellDecoratorTool)
251 augmentationTools += [ LLP1TauMaxCellDecoratorTool ]
254 LLP1AntiKt4EMTopoJetMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
256 name =
"LLP1AntiKt4EMTopoJetMaxCellDecoratorTool",
257 SGKey_jets =
'AntiKt4EMTopoJets',
259 SGKey_electrons =
'',
261 acc.addPublicTool(LLP1AntiKt4EMTopoJetMaxCellDecoratorTool)
263 augmentationTools += [ LLP1AntiKt4EMTopoJetMaxCellDecoratorTool ]
266 LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool = acc.popToolsAndMerge(MaxCellDecoratorCfg(
268 name =
"LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool",
269 SGKey_jets =
'AntiKt4EMPFlowJets',
271 SGKey_electrons =
'',
273 acc.addPublicTool(LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool)
275 augmentationTools += [ LLP1AntiKt4EMPFlowJetMaxCellDecoratorTool ]
278 from JetRecConfig.JetRecConfig
import registerAsInputConstit, JetRecCfg
279 from JetRecConfig.StandardSmallRJets
import AntiKt4Truth, AntiKt4EMTopo
280 from JetRecConfig.JetDefinition
import JetDefinition
281 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
283 registerAsInputConstit(AntiKt4EMTopo)
284 registerAsInputConstit(AntiKt4Truth)
285 cst.AntiKt4EMTopoJets.label =
"EMTopoRC"
286 cst.AntiKt4TruthJets.label =
"TruthRC"
288 AntiKt10RCEMTopo = JetDefinition(
"AntiKt",1.0,cst.AntiKt4EMTopoJets,
289 ghostdefs = [
"Track",
"TrackLRT",
"LCTopoOrigin"],
290 modifiers = (
"Sort",
"Filter:200000",),
291 standardRecoMode =
True,
295 AntiKt10RCTruth = JetDefinition(
"AntiKt",1.0,cst.AntiKt4TruthJets,
297 modifiers = (
"Sort",
"Filter:200000",),
298 standardRecoMode =
True,
303 if flags.Tracking.doLargeD0:
304 from JetRecConfig.StandardSmallRJets
import AntiKt4LCTopo
305 acc.merge(JetRecCfg(flags, AntiKt4LCTopo))
308 from tauRec.TauConfig
import TauLRTReconstructionCfg
309 acc.merge(TauLRTReconstructionCfg(flags))
312 from DerivationFrameworkTau.TauCommonConfig
import AddTauIDDisplacedDecorationCfg
313 acc.merge(AddTauIDDisplacedDecorationCfg(flags))
315 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
316 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs[
'TriggerListsHelper']))
317 acc.merge(JetRecCfg(flags,AntiKt10RCEMTopo))
318 if flags.Input.isMC: acc.merge(JetRecCfg(flags,AntiKt10RCTruth))
320 if flags.Tracking.doLargeD0:
322 from DerivationFrameworkJetEtMiss.METCommonConfig
import METLRTCfg
323 acc.merge(METLRTCfg(flags,
"AntiKt4EMTopo"))
324 acc.merge(METLRTCfg(flags,
"AntiKt4EMPFlow"))
327 from DerivationFrameworkEGamma.EGammaLRTConfig
import EGammaLRTCfg
328 acc.merge(EGammaLRTCfg(flags))
330 from DerivationFrameworkLLP.LLPToolsConfig
import LRTElectronLHSelectorsCfg
331 acc.merge(LRTElectronLHSelectorsCfg(flags))
334 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
335 acc.merge(MuonsCommonCfg(flags, suff=
"LRT"))
338 from DerivationFrameworkLLP.LLPToolsConfig
import PhotonIsEMSelectorsCfg
339 acc.merge(PhotonIsEMSelectorsCfg(flags))
342 from DerivationFrameworkLLP.LLPToolsConfig
import RecoverZeroPixelHitMuonsCfg
343 acc.merge(RecoverZeroPixelHitMuonsCfg(flags))
346 from BTagging.FlavorTaggingConfig
import FlavorTaggingCfg
347 acc.merge(FlavorTaggingCfg(flags,
'AntiKt4EMTopoJets'))
350 from VrtSecInclusive.VrtSecInclusiveConfig
import VrtSecInclusiveCfg
353 from MuSAVtxFitter.MuSAVtxFitterConfig
import MuSAVtxFitterConfig, MuSAVtxJPsiValidationAlgCfg, MuSAVtxFitterValidationConfig
355 acc.merge(VrtSecInclusiveCfg(flags,
356 name =
"VrtSecInclusive",
357 AugmentingVersionString =
"",
358 FillIntermediateVertices =
False,
359 TrackLocation = MergedTrackCollection))
360 LLP1VrtSecInclusiveSuffixes.append(
"")
363 shortLifetimeSuffix =
"_shortLifetime"
364 acc.merge(VrtSecInclusiveCfg(flags,
365 name =
"VrtSecInclusive_InDet"+shortLifetimeSuffix,
366 AugmentingVersionString = shortLifetimeSuffix,
367 FillIntermediateVertices =
False,
368 TrackLocation = MergedTrackCollection,
369 twoTrkVtxFormingD0Cut = 1.0))
370 LLP1VrtSecInclusiveSuffixes.append(shortLifetimeSuffix)
373 shortLifetimeNod0Suffix =
"_shortLifetime_nod0"
374 acc.merge(VrtSecInclusiveCfg(flags,
375 name =
"VrtSecInclusive_InDet"+shortLifetimeNod0Suffix,
376 AugmentingVersionString = shortLifetimeNod0Suffix,
377 FillIntermediateVertices =
False,
378 TrackLocation = MergedTrackCollection,
379 twoTrkVtxFormingD0Cut = 0))
380 LLP1VrtSecInclusiveSuffixes.append(shortLifetimeNod0Suffix)
383 if flags.Tracking.doTrackSegmentsDisappearing:
384 dissapearingSuffix =
"_disappearing"
385 acc.merge(VrtSecInclusiveCfg(
386 flags, name =
"VrtSecInclusive_"+dissapearingSuffix,
387 AugmentingVersionString = dissapearingSuffix,
388 FillIntermediateVertices =
False,
389 TrackLocation = MergedTrackletCollection,
390 doReassembleVertices =
True,
391 doMergeByShuffling =
False,
392 doMergeFinalVerticesDistance=
False,
393 doAssociateNonSelectedTracks=
False,
394 DoPVcompatibility =
True,
395 RemoveFake2TrkVrt =
False,
396 PassThroughTrackSelection =
True,
397 TruncateListOfWorkingVertices =
False,
398 twoTrkVtxFormingD0Cut = 0.0,
399 SelVrtChi2Cut = 1000000.0,
400 twoTrVrtMaxPerigeeDist = 50.0,
401 twoTrVrtMinRadius = 50.0,
402 doDisappearingTrackVertexing=
True))
403 LLP1VrtSecInclusiveSuffixes.append(dissapearingSuffix)
405 if flags.Input.isMC
and flags.Derivation.LLP.doTrackSystematics:
406 from InDetTrackSystematicsTools.InDetTrackSystematicsToolsConfig
import TrackSystematicsAlgCfg
407 TrackSystSuffix =
"_TRK_EFF_LARGED0_GLOBAL__1down"
408 acc.merge(TrackSystematicsAlgCfg(
410 name=f
"InDetTrackSystematicsAlg{TrackSystSuffix}",
411 InputTrackContainer = MergedTrackCollection,
412 OutputTrackContainer = f
"{MergedTrackCollection}{TrackSystSuffix}"))
413 acc.merge(VrtSecInclusiveCfg(flags,
414 name = f
"VrtSecInclusive{TrackSystSuffix}",
415 AugmentingVersionString = TrackSystSuffix,
416 FillIntermediateVertices =
False,
417 TrackLocation = f
"{MergedTrackCollection}{TrackSystSuffix}"))
418 LLP1VrtSecInclusiveSuffixes.append(TrackSystSuffix)
420 TrackSystSuffixShortLifetime =
"_TRK_EFF_LARGED0_GLOBAL__1down_shortLifetime"
421 acc.merge(TrackSystematicsAlgCfg(
423 name=f
"InDetTrackSystematicsAlg{TrackSystSuffixShortLifetime}",
424 InputTrackContainer = MergedTrackCollection,
425 OutputTrackContainer = f
"{MergedTrackCollection}{TrackSystSuffixShortLifetime}"))
426 acc.merge(VrtSecInclusiveCfg(flags,
427 name = f
"VrtSecInclusive{TrackSystSuffixShortLifetime}",
428 AugmentingVersionString = TrackSystSuffixShortLifetime,
429 FillIntermediateVertices =
False,
430 TrackLocation = f
"{MergedTrackCollection}{TrackSystSuffixShortLifetime}",
431 twoTrkVtxFormingD0Cut = 1.0))
432 LLP1VrtSecInclusiveSuffixes.append(TrackSystSuffixShortLifetime)
435 MergedMuonContainer_wZPH = (
436 "StdWithLRTMuons_wZPH" if flags.Tracking.doLargeD0
else "Muons_wZPH")
437 from DerivationFrameworkLLP.LLPToolsConfig
import ZeroPixelHitMuonMergerAlgCfg
438 acc.merge(ZeroPixelHitMuonMergerAlgCfg(flags,
439 InputMuonContainers = [MergedMuonContainer,
"ZeroPixelHitMuons"],
440 OutputMuonLocation = MergedMuonContainer_wZPH))
444 LeptonsSuffix =
"_Leptons"
445 acc.merge(VrtSecInclusiveCfg(flags,
446 name =
"VrtSecInclusive_InDet"+LeptonsSuffix,
447 AugmentingVersionString = LeptonsSuffix,
448 FillIntermediateVertices =
False,
449 TrackLocation = MergedTrackCollection,
450 twoTrkVtxFormingD0Cut = 1.0,
451 doSelectTracksFromMuons =
True,
452 doRemoveCaloTaggedMuons =
True,
453 doSelectTracksFromElectrons =
True,
454 MuonLocation = MergedMuonContainer,
455 ElectronLocation = MergedElectronContainer))
456 LLP1VrtSecInclusiveSuffixes.append(LeptonsSuffix)
459 LepTrackSuffix =
"_LepTrack"
460 acc.merge(VrtSecInclusiveCfg(flags,
461 name =
"VrtSecInclusive_InDet"+LepTrackSuffix,
462 AugmentingVersionString = LepTrackSuffix,
463 FillIntermediateVertices =
False,
464 TrackLocation = MergedTrackCollection,
465 MuonLocation = MergedMuonContainer,
466 ElectronLocation = MergedElectronContainer,
467 twoTrkVtxFormingD0Cut = 1.0,
468 doSelectIDAndGSFTracks =
True,
469 doRemoveCaloTaggedMuons =
True,
470 doRemoveNonLeptonVertices =
True,
471 doAssociateNonSelectedTracks=
False))
472 LLP1VrtSecInclusiveSuffixes.append(LepTrackSuffix)
475 BoostedMuonsSuffix =
"_BoostedMuons"
476 acc.merge(VrtSecInclusiveCfg(flags,
477 name =
"VrtSecInclusive_InDet"+BoostedMuonsSuffix,
478 AugmentingVersionString = BoostedMuonsSuffix,
479 FillIntermediateVertices =
False,
480 TrackLocation = MergedTrackCollection,
481 twoTrkVtxFormingD0Cut = 0.0,
482 doSelectTracksFromMuons =
True,
483 doRemoveCaloTaggedMuons =
True,
484 doSelectTracksFromElectrons =
False,
485 MuonLocation = MergedMuonContainer_wZPH,
486 do_PVvetoCut =
False,
487 DoTwoTrSoftBtag =
True,
488 TwoTrVrtMinDistFromPVCut = 0.5,
489 associatePtCut = 500.))
490 LLP1VrtSecInclusiveSuffixes.append(BoostedMuonsSuffix)
494 BoostedElectronsSuffix =
"_BoostedElectrons"
495 acc.merge(VrtSecInclusiveCfg(flags,
496 name =
"VrtSecInclusive_InDet"+BoostedElectronsSuffix,
497 AugmentingVersionString = BoostedElectronsSuffix,
498 FillIntermediateVertices =
False,
499 TrackLocation = MergedTrackCollection,
500 twoTrkVtxFormingD0Cut = 0.0,
501 doSelectTracksFromMuons =
False,
502 doSelectTracksFromElectrons =
True,
503 ElectronLocation = MergedElectronContainer,
504 do_PVvetoCut =
False,
505 DoTwoTrSoftBtag =
True,
506 TwoTrVrtMinDistFromPVCut = 0.5,
507 associatePtCut = 500.))
508 LLP1VrtSecInclusiveSuffixes.append(BoostedElectronsSuffix)
513 MuonContainerName=MergedMuonContainer))
515 if flags.Derivation.LLP.doMuSAValidation:
517 acc.merge(MuSAVtxJPsiValidationAlgCfg(flags,
518 MuonContainer=MergedMuonContainer,
519 JPsiMuonContainer=
"JPsiMuons"))
522 acc.merge(MuSAVtxFitterValidationConfig(flags,
523 name=
"MuSAVtxFitterValidationJPsi",
524 MuonContainerName=
"JPsiMuons"))
526 acc.merge(MuSAVtxFitterValidationConfig(flags,
527 MuonContainerName=MergedMuonContainer,
528 MuSAVtxContainerName=
"ValidationMuSAVertices",
529 MuSAExtrapolatedTracksName=
"ValidationMuSAExtrapolatedTrackParticles",
530 MSTPContainerName=
"MuonSpectrometerTrackParticles"))
534 from NewVrtSecInclusiveTool.NewVrtSecInclusiveAlgConfig
import NewVrtSecInclusiveAlgLLPCfg
535 from NewVrtSecInclusiveTool.NewVrtSecInclusiveConfig
import DVFinderToolCfg
536 IDAndGSFSuffix =
"_IDAndGSF_LepTrack"
538 NVSILepTrack_Tool = acc.popToolsAndMerge(DVFinderToolCfg(flags,FillHist=
False,AugmentingVersionString=IDAndGSFSuffix,MaxZVrt=1000.,AntiPileupSigRCut=2.))
539 acc.merge(NewVrtSecInclusiveAlgLLPCfg(flags,
540 algname =
"NVSI"+IDAndGSFSuffix,
541 AugmentingVersionString = IDAndGSFSuffix,
542 ElectronContainer = MergedElectronContainer,
543 MuonContainer = MergedMuonContainer,
544 TrackParticleContainer = MergedTrackCollection,
545 GSFTrackParticleContainer = MergedGSFTrackCollection,
546 BVertexContainerName =
"NewVrtSecInclusive_SecondaryVertices"+IDAndGSFSuffix,
549 RemoveNonLepVertices =
True,
550 BVertexTool = NVSILepTrack_Tool))
551 LLP1NewVSISuffixes.append(IDAndGSFSuffix)
554 jet_clean_prefix=
"DFCommonJets_"
555 jet_clean_container=
"AntiKt4EMTopoJets"
556 jet_clean_level=
"SuperLooseBadLLP"
557 from JetSelectorTools.JetSelectorToolsConfig
import EventCleaningToolCfg, JetCleaningToolCfg
558 LLP1JetCleanSuperLLPTool = acc.popToolsAndMerge(JetCleaningToolCfg(flags,
559 "LLP1JetCleanSuperLLP",
563 acc.addPublicTool(LLP1JetCleanSuperLLPTool)
565 LLP1EventCleanSuperLLPTool = acc.popToolsAndMerge(EventCleaningToolCfg(flags,
566 "LLP1EventCleanSuperLLP",
568 LLP1EventCleanSuperLLPTool.JetCleanPrefix = jet_clean_prefix
569 LLP1EventCleanSuperLLPTool.OrDecorator =
"passOR_EMTopo"
570 LLP1EventCleanSuperLLPTool.JetContainer = jet_clean_container
571 LLP1EventCleanSuperLLPTool.JetCleaningTool = LLP1JetCleanSuperLLPTool
572 acc.addPublicTool(LLP1EventCleanSuperLLPTool)
574 LLP1EventCleanAlg = CompFactory.EventCleaningTestAlg(
575 "LLP1JetCleanDecoratorSuperLLP",
576 EventCleaningTool = LLP1EventCleanSuperLLPTool,
577 JetCollectionName = jet_clean_container,
578 EventCleanPrefix = jet_clean_prefix,
579 CleaningLevel = jet_clean_level,
584 acc.addSequence(CompFactory.AthSequencer(
'EventCleanSeq', Sequential=
True))
585 acc.addEventAlgo(LLP1EventCleanAlg,
'EventCleanSeq')
589 from DerivationFrameworkLLP.LLPToolsConfig
import AugmentationToolLeadingJetsCfg
590 augmentationToolLeadingJets = acc.getPrimaryAndMerge(AugmentationToolLeadingJetsCfg(flags))
591 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name, AugmentationTools = [augmentationToolLeadingJets]))
594 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg, EgammaTrackParticleThinningCfg, MuonTrackParticleThinningCfg, TauTrackParticleThinningCfg, DiTauTrackParticleThinningCfg
595 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import GenericObjectThinningCfg
596 from DerivationFrameworkTau.TauCommonConfig
import TauThinningCfg
599 LLP1TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
601 name =
"LLP1TrackParticleThinningTool",
602 StreamName = kwargs[
'StreamName'],
603 SelectionString =
"InDetTrackParticles.pt>10*GeV",
604 InDetTrackParticlesKey =
"InDetTrackParticles"))
607 if flags.Tracking.doLargeD0:
608 LLP1LRTGSFTrackParticleThinningTool = acc.getPrimaryAndMerge(
609 TrackParticleThinningCfg(
610 flags, name =
"LLP1LRTGSFTrackParticleThinningTool",
611 StreamName = kwargs[
'StreamName'],
612 SelectionString =
"LRTGSFTrackParticles.pt>0*GeV",
613 InDetTrackParticlesKey =
"LRTGSFTrackParticles"))
616 if flags.Tracking.doTrackSegmentsDisappearing:
617 LLP1DTTrackParticleThinningTool = acc.getPrimaryAndMerge(
618 TrackParticleThinningCfg(
619 flags, name =
"LLP1DTTrackParticleThinningTool",
620 StreamName = kwargs[
'StreamName'],
621 SelectionString =
"InDetDisappearingTrackParticles.pt>5*GeV",
622 InDetTrackParticlesKey =
"InDetDisappearingTrackParticles"))
625 LLP1ElectronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
627 name =
"LLP1ElectronTPThinningTool",
628 StreamName = kwargs[
'StreamName'],
630 InDetTrackParticlesKey =
"InDetTrackParticles"))
633 if flags.Tracking.doLargeD0:
634 LLP1LRTElectronTPThinningTool = acc.getPrimaryAndMerge(
635 EgammaTrackParticleThinningCfg(
636 flags, name =
"LLP1LRTElectronTPThinningTool",
637 StreamName = kwargs[
'StreamName'],
638 SGKey =
"LRTElectrons",
639 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles",
640 GSFTrackParticlesKey =
"LRTGSFTrackParticles"))
643 LLP1MuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
645 name =
"LLP1MuonTPThinningTool",
646 StreamName = kwargs[
'StreamName'],
648 InDetTrackParticlesKey =
"InDetTrackParticles"))
651 if flags.Tracking.doLargeD0:
652 LLP1LRTMuonTPThinningTool = acc.getPrimaryAndMerge(
653 MuonTrackParticleThinningCfg(
654 flags, name =
"LLP1LRTMuonTPThinningTool",
655 StreamName = kwargs[
'StreamName'],
656 MuonKey =
"MuonsLRT",
657 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles"))
660 LLP1PhotonTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
662 name =
"LLP1PhotonTPThinningTool",
663 StreamName = kwargs[
'StreamName'],
665 InDetTrackParticlesKey =
"",
666 GSFConversionVerticesKey =
"GSFConversionVertices",
667 GSFTrackParticlesKey =
"GSFTrackParticles",
668 BestMatchOnly =
True,
669 BestVtxMatchOnly =
True))
672 tau_thinning_expression = f
"TauJets.pt >= {flags.Tau.MinPtDAOD}"
673 LLP1TauJetsThinningTool = acc.getPrimaryAndMerge(TauThinningCfg(
675 name =
"LLP1TauJetThinningTool",
676 StreamName = kwargs[
'StreamName'],
678 TauTracks =
"TauTracks",
679 TrackParticles =
"InDetTrackParticles",
680 TauNeutralPFOs =
"TauNeutralParticleFlowObjects",
681 TauSecondaryVertices =
"TauSecondaryVertices",
682 SelectionString = tau_thinning_expression))
685 LLP1TauTPThinningTool = acc.getPrimaryAndMerge(TauTrackParticleThinningCfg(
687 name =
"LLP1TauTPThinningTool",
688 StreamName = kwargs[
'StreamName'],
690 InDetTrackParticlesKey =
"InDetTrackParticles",
691 DoTauTracksThinning =
True,
692 TauTracksKey =
"TauTracks"))
694 tau_murm_thinning_expression = tau_thinning_expression.replace(
'TauJets',
'TauJets_MuonRM')
695 LLP1TauJetMuonRMParticleThinningTool = acc.getPrimaryAndMerge(TauThinningCfg(
697 name =
"LLP1TauJets_MuonRMThinningTool",
698 StreamName = kwargs[
'StreamName'],
699 Taus =
"TauJets_MuonRM",
700 TauTracks =
"TauTracks_MuonRM",
701 TrackParticles =
"InDetTrackParticles",
702 TauNeutralPFOs =
"TauNeutralParticleFlowObjects_MuonRM",
703 TauSecondaryVertices =
"TauSecondaryVertices_MuonRM",
704 SelectionString = tau_murm_thinning_expression))
707 LLP1DiTauTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(
709 name =
"LLP1DiTauTPThinningTool",
710 StreamName = kwargs[
'StreamName'],
711 DiTauKey =
"DiTauJets",
712 InDetTrackParticlesKey =
"InDetTrackParticles"))
715 LLP1DiTauLowPtThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(
717 name =
"LLP1DiTauLowPtThinningTool",
718 StreamName = kwargs[
'StreamName'],
719 ContainerName =
"DiTauJetsLowPt",
720 SelectionString =
"DiTauJetsLowPt.nSubjets > 1"))
723 LLP1DiTauLowPtTPThinningTool = acc.getPrimaryAndMerge(DiTauTrackParticleThinningCfg(
725 name =
"LLP1DiTauLowPtTPThinningTool",
726 StreamName = kwargs[
'StreamName'],
727 DiTauKey =
"DiTauJetsLowPt",
728 InDetTrackParticlesKey =
"InDetTrackParticles",
729 SelectionString =
"DiTauJetsLowPt.nSubjets > 1"))
731 if flags.Tracking.doLargeD0:
732 from DerivationFrameworkLLP.LLPToolsConfig
import TauLRTThinningCfg
733 tau_lrt_thinning_expression = f
"TauJetsLRT.pt >= {flags.Tau.MinPtDAOD}"
734 LLP1TauJetsLRTThinningTool = acc.getPrimaryAndMerge(TauLRTThinningCfg(
736 name =
"LLP1TauJetLRTThinningTool",
737 StreamName = kwargs[
'StreamName'],
739 TauTracks =
"TauTracksLRT",
740 TrackParticles =
"InDetTrackParticles",
741 TrackLargeD0Particles=
"InDetLargeD0TrackParticles",
742 TauNeutralPFOs =
"TauNeutralParticleFlowObjectsLRT",
743 TauSecondaryVertices =
"TauSecondaryVerticesLRT",
744 SelectionString = tau_lrt_thinning_expression))
747 from DerivationFrameworkLLP.LLPToolsConfig
import VSITrackParticleThinningCfg
748 LLP1VSITPThinningTool = acc.getPrimaryAndMerge(VSITrackParticleThinningCfg(flags,
749 name =
"LLP1VSITPThinningTool",
750 StreamName = kwargs[
'StreamName'],
751 InDetTrackParticlesKey =
"InDetTrackParticles",
752 AugVerStrings = LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes))
754 if flags.Tracking.doLargeD0:
755 LLP1LRTVSITPThinningTool = acc.getPrimaryAndMerge(
756 VSITrackParticleThinningCfg(
757 flags, name =
"LLP1LRTVSITPThinningTool",
758 StreamName = kwargs[
'StreamName'],
759 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles",
760 AugVerStrings = LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes))
762 LLP1GSFVSITPThinningTool = acc.getPrimaryAndMerge(VSITrackParticleThinningCfg(flags,
763 name =
"LLP1GSFVSITPThinningTool",
764 StreamName = kwargs[
'StreamName'],
765 InDetTrackParticlesKey =
"GSFTrackParticles",
766 AugVerStrings = [IDAndGSFSuffix]))
769 from DerivationFrameworkLLP.LLPToolsConfig
import JetTrackParticleThinningCfg, JetLargeD0TrackParticleThinningCfg
770 LLP1JetTPThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(flags,
771 name =
"LLP1JetTPThinningTool",
772 StreamName = kwargs[
'StreamName'],
773 JetKey =
"AntiKt4EMTopoJets",
774 SelectionString =
"(AntiKt4EMTopoJets.pt > 20.*GeV) && (abs(AntiKt4EMTopoJets.eta) < 2.5)",
775 InDetTrackParticlesKey =
"InDetTrackParticles"))
777 LLP1FatJetTPThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg( flags,
778 name =
"LLP1FatJetTPThinningTool",
779 StreamName = kwargs[
'StreamName'],
780 JetKey =
"AntiKt10EMTopoRCJets",
781 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
782 InDetTrackParticlesKey =
"InDetTrackParticles",
786 if flags.Tracking.doLargeD0:
787 LLP1LRTJetTPThinningTool = acc.getPrimaryAndMerge(
788 JetLargeD0TrackParticleThinningCfg(
789 flags, name =
"LLP1LRTJetTPThinningTool",
790 StreamName = kwargs[
'StreamName'],
791 JetKey =
"AntiKt4EMTopoJets",
792 SelectionString =
"(AntiKt4EMTopoJets.pt > 20.*GeV) && (abs(AntiKt4EMTopoJets.eta) < 2.5)",
793 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles"))
795 LLP1LRTFatJetTPThinningTool = acc.getPrimaryAndMerge(
796 JetLargeD0TrackParticleThinningCfg(
797 flags, name =
"LLP1LRTFatJetTPThinningTool",
798 StreamName = kwargs[
'StreamName'],
799 JetKey =
"AntiKt10EMTopoRCJets",
800 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
801 InDetTrackParticlesKey =
"InDetLargeD0TrackParticles"))
804 from DerivationFrameworkLLP.LLPToolsConfig
import PixeldEdxTrackParticleThinningCfg
805 LLP1PixeldEdxTrackParticleThinningTool = acc.getPrimaryAndMerge(PixeldEdxTrackParticleThinningCfg(
807 name =
"LLP1PixeldEdxTrackParticleThinningTool",
808 StreamName = kwargs[
'StreamName'],
809 InDetTrackParticlesKey =
"InDetTrackParticles"))
813 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import JetCaloClusterThinningCfg
815 LLP1CCThinningTool = acc.getPrimaryAndMerge(JetCaloClusterThinningCfg(
818 StreamName = kwargs[
'StreamName'],
819 SGKey =
"AntiKt4EMTopoJets",
820 TopoClCollectionSGKey =
"CaloCalTopoClusters",
821 AdditionalClustersKey = [
"EMOriginTopoClusters",
"LCOriginTopoClusters"]
826 thinningTools = [LLP1TrackParticleThinningTool,
827 LLP1ElectronTPThinningTool,
828 LLP1MuonTPThinningTool,
829 LLP1PhotonTPThinningTool,
830 LLP1TauJetsThinningTool,
831 LLP1TauTPThinningTool,
832 LLP1TauJetMuonRMParticleThinningTool,
833 LLP1DiTauTPThinningTool,
834 LLP1DiTauLowPtThinningTool,
835 LLP1DiTauLowPtTPThinningTool,
836 LLP1VSITPThinningTool,
837 LLP1GSFVSITPThinningTool,
838 LLP1JetTPThinningTool,
839 LLP1FatJetTPThinningTool,
840 LLP1PixeldEdxTrackParticleThinningTool,
843 if flags.Tracking.doLargeD0:
844 thinningTools += [ LLP1LRTJetTPThinningTool,
845 LLP1LRTFatJetTPThinningTool,
846 LLP1LRTGSFTrackParticleThinningTool,
847 LLP1LRTElectronTPThinningTool,
848 LLP1LRTMuonTPThinningTool,
849 LLP1TauJetsLRTThinningTool,
850 LLP1LRTVSITPThinningTool ]
852 if flags.Tracking.doTrackSegmentsDisappearing:
853 thinningTools += [ LLP1DTTrackParticleThinningTool ]
859 from DerivationFrameworkLLP.LLPToolsConfig
import RCJetSubstructureAugCfg
860 LLP1RCJetSubstructureClustTrimAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg(flags,
861 name =
"LLP1RCJetSubstructureClustTrimAugTool",
862 StreamName = kwargs[
'StreamName'],
863 JetContainerKey =
"AntiKt10EMTopoRCJets",
864 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
865 GhostConstitNames = [
"GhostLCTopoOrigin"],
866 Suffix =
"clusterTrim",
867 Grooming =
"Trimming",
871 RCSubstructureClusterTrimAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureClusterTrimAug", AugmentationTools = [LLP1RCJetSubstructureClustTrimAugTool])
872 acc.addEventAlgo(RCSubstructureClusterTrimAug)
874 LLP1RCJetSubstructureClustSDAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg(flags,
875 name =
"LLP1RCJetSubstructureClustSDAugTool",
876 StreamName = kwargs[
'StreamName'],
877 JetContainerKey =
"AntiKt10EMTopoRCJets",
878 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
879 GhostConstitNames = [
"GhostLCTopoOrigin"],
880 Suffix =
"clusterSoftDrop",
881 Grooming =
"SoftDrop",
885 RCSubstructureClusterSDAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureClusterSDAug", AugmentationTools = [LLP1RCJetSubstructureClustSDAugTool])
886 acc.addEventAlgo(RCSubstructureClusterSDAug)
889 ghostConstitNames = [
"GhostTrack"]
890 if flags.Tracking.doLargeD0:
891 ghostConstitNames += [
"GhostTrackLRT"]
893 from DerivationFrameworkLLP.LLPToolsConfig
import RCJetSubstructureAugCfg
894 LLP1RCJetSubstructureTrackTrimAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg( flags,
895 name =
"LLP1RCJetSubstructureTrackTrimAugTool",
896 StreamName = kwargs[
'StreamName'],
897 JetContainerKey =
"AntiKt10EMTopoRCJets",
898 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
899 GhostConstitNames = ghostConstitNames,
900 Suffix =
"trackTrim",
901 Grooming =
"Trimming",
905 RCSubstructureTrackTrimAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureTrackTrimAug", AugmentationTools = [LLP1RCJetSubstructureTrackTrimAugTool])
906 acc.addEventAlgo(RCSubstructureTrackTrimAug)
908 from DerivationFrameworkLLP.LLPToolsConfig
import RCJetSubstructureAugCfg
909 LLP1RCJetSubstructureTrackSDAugTool = acc.getPrimaryAndMerge(RCJetSubstructureAugCfg( flags,
910 name =
"LLP1RCJetSubstructureTrackSDAugTool",
911 StreamName = kwargs[
'StreamName'],
912 JetContainerKey =
"AntiKt10EMTopoRCJets",
913 SelectionString =
"(AntiKt10EMTopoRCJets.pt > 200.*GeV) && (abs(AntiKt10EMTopoRCJets.eta) < 2.5)",
914 GhostConstitNames = ghostConstitNames,
915 Suffix =
"trackSoftDrop",
916 Grooming =
"SoftDrop",
920 RCSubstructureTrackSDAug = CompFactory.DerivationFramework.CommonAugmentation(
"RCSubstructureTrackSDAug", AugmentationTools = [LLP1RCJetSubstructureTrackSDAugTool])
921 acc.addEventAlgo(RCSubstructureTrackSDAug)
928 if flags.Trigger.EDMVersion >= 0:
929 from DerivationFrameworkLLP.LLPToolsConfig
import LLP1TriggerSkimmingToolCfg
930 LLP1TriggerSkimmingTool = acc.getPrimaryAndMerge(LLP1TriggerSkimmingToolCfg(
931 flags, name =
"LLP1TriggerSkimmingTool",
932 TriggerListsHelper = kwargs[
'TriggerListsHelper']))
934 skimmingTools.append(LLP1TriggerSkimmingTool)
936 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
937 acc.addEventAlgo(DerivationKernel(name,
938 SkimmingTools = skimmingTools,
939 ThinningTools = thinningTools,
940 AugmentationTools = augmentationTools))
950 acc = ComponentAccumulator()
952 MergedElectronContainer = (
953 "StdWithLRTElectrons" if flags.Tracking.doLargeD0
else "Electrons")
954 MergedMuonContainer =
"StdWithLRTMuons" if flags.Tracking.doLargeD0
else "Muons"
955 MergedMuonContainer_wZPH = (
956 "StdWithLRTMuons_wZPH" if flags.Tracking.doLargeD0
else "Muons_wZPH")
962 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
963 LLP1TriggerListsHelper = TriggerListsHelper(flags)
966 acc.merge(
LLP1KernelCfg(flags, name=
"LLP1Kernel", StreamName =
'StreamDAOD_LLP1', TriggerListsHelper = LLP1TriggerListsHelper))
971 from IsolationSelection.IsolationSelectionConfig
import IsoCloseByAlgsCfg
978 acc.merge(IsoCloseByAlgsCfg(flags, isPhysLite =
False,
979 stream_name =
'StreamDAOD_LLP1'))
980 contNames = [ MergedMuonContainer, MergedElectronContainer,
"Photons" ]
981 acc.merge(IsoCloseByAlgsCfg(flags, suff =
"_LLP1_LRTMerged",
982 isPhysLite =
False, containerNames = contNames,
983 useSelTools =
True, stream_name =
'StreamDAOD_LLP1',
984 isoDecSuffix =
"CloseByCorr_LRT",
985 caloDecSuffix =
'_LRT',
986 hasLRT = flags.Tracking.doLargeD0))
987 contNames = [
"ZeroPixelHitMuons" ]
988 acc.merge(IsoCloseByAlgsCfg(flags, suff =
"_LLP1_ZeroPixelHitsMuons",
989 isPhysLite =
False, containerNames = contNames,
990 stream_name =
'StreamDAOD_LLP1',
991 isoDecSuffix =
"CloseByCorr_ZPH"))
993 if flags.Tracking.doLargeD0:
994 contNames = [
"LRTElectrons",
"MuonsLRT" ]
995 acc.merge(IsoCloseByAlgsCfg(flags, suff =
"_LLP1",
996 isPhysLite =
False, containerNames = contNames,
998 stream_name =
'StreamDAOD_LLP1', hasLRT =
True))
1003 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
1004 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
1005 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
1007 LLP1SlimmingHelper =
SlimmingHelper(
"LLP1SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
1009 LLP1SlimmingHelper.SmartCollections = [
"EventInfo",
1014 "InDetTrackParticles",
1015 "AntiKt4EMTopoJets",
1016 "AntiKt4EMPFlowJets",
1017 "MET_Baseline_AntiKt4EMTopo",
1018 "MET_Baseline_AntiKt4EMPFlow",
1023 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"]
1024 if flags.Tracking.doLargeD0:
1025 LLP1SlimmingHelper.SmartCollections += [
"LRTElectrons",
"MuonsLRT",
"TauJetsLRT",
1026 "InDetLargeD0TrackParticles"]
1028 LLP1SlimmingHelper.AllVariables = [
"InDetDisappearingTrackParticles",
1029 "MSDisplacedVertex",
1030 "MuonSpectrometerTrackParticles",
1031 "UnAssocMuonSegments",
1034 "CombinedMuonTrackParticles",
1035 "ExtrapolatedMuonTrackParticles",
1036 "CombinedStauTrackParticles",
1037 "AntiKt4EMTopoJets",
1040 "ElectronCaloRings",
1044 "EMOriginTopoClusters",
1046 "METAssoc_AntiKt4EMTopo",
1047 "MET_Core_AntiKt4EMTopo",
1048 "METAssoc_AntiKt4EMPFlow",
1049 "MET_Core_AntiKt4EMPFlow",
1050 "InDetLowPtRoITrackParticles",
1053 "DisappearingPixelMSOSs",
1054 "LowPtRoIPixelMSOSs",
1057 "DisappearingSCT_MSOSs",
1058 "LowPtRoISCT_MSOSs",
1061 if flags.Tracking.doLargeD0:
1062 LLP1SlimmingHelper.AllVariables += [
"MuonSegments_LRT",
1063 "CombinedMuonsLRTTrackParticles",
1064 "ExtraPolatedMuonsLRTTrackParticles",
1065 "MSOnlyExtraPolatedMuonsLRTTrackParticles"]
1068 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
1070 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
1071 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
1072 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
1073 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
1074 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
1075 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
1076 StaticContent += [
"xAOD::JetContainer#AntiKt10EMTopoRCJets",
"xAOD::JetAuxContainer#AntiKt10EMTopoRCJetsAux.-PseudoJet"]
1078 for wp
in LLP1VrtSecInclusiveSuffixes:
1079 StaticContent += [
"xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices" + wp]
1080 StaticContent += [
"xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVertices" + wp +
"Aux."]
1082 for wp
in LLP1NewVSISuffixes:
1083 StaticContent += [
"xAOD::VertexContainer#NewVrtSecInclusive_SecondaryVertices" + wp]
1084 StaticContent += [
"xAOD::VertexAuxContainer#NewVrtSecInclusive_SecondaryVertices" + wp +
"Aux." + excludedVertexAuxData]
1086 StaticContent += [
"xAOD::VertexContainer#MuSAVertices"]
1087 StaticContent += [
"xAOD::VertexAuxContainer#MuSAVerticesAux."]
1088 StaticContent += [
"xAOD::TrackParticleContainer#MuSAExtrapolatedTrackParticles"]
1089 StaticContent += [
"xAOD::TrackParticleAuxContainer#MuSAExtrapolatedTrackParticlesAux."]
1091 if flags.Derivation.LLP.doMuSAValidation:
1092 StaticContent += [
"xAOD::VertexContainer#JPsiMuSAVertices"]
1093 StaticContent += [
"xAOD::VertexAuxContainer#JPsiMuSAVerticesAux."]
1094 StaticContent += [
"xAOD::VertexContainer#JPsiVertices"]
1095 StaticContent += [
"xAOD::VertexAuxContainer#JPsiVerticesAux."]
1096 StaticContent += [
"xAOD::TrackParticleContainer#JPsiVerticesTracks"]
1097 StaticContent += [
"xAOD::TrackParticleAuxContainer#JPsiVerticesTracksAux."]
1098 StaticContent += [
"xAOD::TrackParticleContainer#JPsiMuSAExtrapolatedTrackParticles"]
1099 StaticContent += [
"xAOD::TrackParticleAuxContainer#JPsiMuSAExtrapolatedTrackParticlesAux."]
1100 StaticContent += [
"xAOD::VertexContainer#ValidationMuSAVertices"]
1101 StaticContent += [
"xAOD::VertexAuxContainer#ValidationMuSAVerticesAux."]
1102 StaticContent += [
"xAOD::TrackParticleContainer#ValidationMuSAExtrapolatedTrackParticles"]
1103 StaticContent += [
"xAOD::TrackParticleAuxContainer#ValidationMuSAExtrapolatedTrackParticlesAux."]
1105 LLP1SlimmingHelper.ExtraVariables += [
"Electrons.LHValue.DFCommonElectronsLHVeryLooseNoPixResult.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
1106 "Photons.DFCommonPhotonsIsEMMedium.DFCommonPhotonsIsEMMediumIsEMValue.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
1107 "Muons.meanDeltaADCCountsMDT",
1108 "egammaClusters.phi_sampl.eta0.phi0",
1109 "AntiKt4EMTopoJets.PartonTruthLabelID.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.GhostBHadronsFinal.GhostCHadronsFinal.GhostTrack.GhostTrackCount.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.constituentLinks",
1110 "AntiKt4EMPFlowJets.PartonTruthLabelID.DFCommonJets_fJvt.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.GhostBHadronsFinal.GhostCHadronsFinal.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.constituentLinks",
1111 "TruthPrimaryVertices.t.x.y.z.sumPt2",
1112 "PrimaryVertices.t.x.y.z.sumPt2.covariance",
1113 "InDetTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.hitPattern.patternRecoInfo",
1114 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
1115 "InDetTrackParticles.numberOfIBLOverflowsdEdx.numberOfUsedHitsdEdx.pixeldEdx",
1116 "InDetTrackParticles.expectInnermostPixelLayerHit.expectNextToInnermostPixelLayerHit.numberOfNextToInnermostPixelLayerHits.numberOfContribPixelLayers.numberOfGangedFlaggedFakes.numberOfPixelOutliers.numberOfPixelSplitHits.numberOfPixelSpoiltHits",
1117 "InDetTrackParticles.numberOfSCTOutliers.numberOfSCTSpoiltHits",
1118 "InDetTrackParticles.numberOfTRTHoles.numberOfTRTDeadStraws.numberOfTRTSharedHits.numberOfTRTHighThresholdHits.numberOfTRTHighThresholdHitsTotal.numberOfTRTHighThresholdOutliers.TRTdEdx.TRTdEdxUsedHits.hitPattern",
1119 "InDetTrackParticles.truthMatchProbability.truthClassification.truthOrigin.truthType",
1120 "InDetTrackParticles.TrkIsoPtPdEdx_ptcone20.TrkIsoPtPdEdx_ptcone30.TrkIsoPtPdEdx_ptcone40.TrkIsoPtTightPdEdx_ptcone20.TrkIsoPtTightPdEdx_ptcone30.TrkIsoPtTightPdEdx_ptcone40",
1121 "InDetTrackParticles.LLP1_ptcone20.LLP1_ptcone30.LLP1_ptcone40.LLP1_ptvarcone20.LLP1_ptvarcone30.LLP1_ptvarcone40.definingParametersCovMatrixDiag.definingParametersCovMatrixOffDiag",
1122 "InDetTrackParticles.LLP1_topoetcone20.LLP1_topoetcone30.LLP1_topoetcone40.LLP1_topoetcone20NonCoreCone.LLP1_topoetcone30NonCoreCone.LLP1_topoetcone40NonCoreCone",
1123 "InDetTrackParticles.LLP1_CaloCelldEta.LLP1_CaloCelldPhi.LLP1_CaloCelldR.LLP1_CaloCelldX.LLP1_CaloCelldY.LLP1_CaloCelldZ.LLP1_CaloCellE.LLP1_CaloCellEta.LLP1_CaloCellGain.LLP1_CaloCellID.LLP1_CaloCellPhi.LLP1_CaloCellProvenance.LLP1_CaloCellQuality.LLP1_CaloCellR.LLP1_CaloCellSampling.LLP1_CaloCellTime.LLP1_CaloCellX.LLP1_CaloCellY.LLP1_CaloCellZ.LLP1_CaloCellEneDiff.LLP1_CaloCellTimeDiff",
1124 "InDetTrackParticles.Reco_msosLink",
1126 "InDetLargeD0TrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.hitPattern.patternRecoInfo",
1127 "GSFTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.numberOfPixelHoles.numberOfSCTHoles.numberDoF.chiSquared.hitPattern.truthClassification.truthOrigin.truthType",
1128 "EventInfo.hardScatterVertexLink.timeStampNSOffset",
1129 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ",
1130 "EventInfo.hardScatterVertexLink.timeStampNSOffset",
1131 "EventInfo.DFCommonJets_eventClean_SuperLooseBadLLP.DFCommonJets_eventClean_SuperLooseBadLLP_EMTopo.DFCommonJets_eventClean_LooseBadLLP_EMTopo",
1132 "TauJets.dRmax.etOverPtLeadTrk.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z",
1133 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
1134 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
1135 if flags.Tracking.doLargeD0:
1136 LLP1SlimmingHelper.ExtraVariables += [
1137 "LRTElectrons.LHValue.DFCommonElectronsLHVeryLooseNoPixResult.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z.f3",
1138 "LRTegammaClusters.phi_sampl.eta0.phi0",
1139 "LRTGSFTrackParticles.d0.z0.vz.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.truthParticleLink.truthMatchProbability.radiusOfFirstHit.numberOfPixelHoles.numberOfSCTHoles.numberDoF.chiSquared.hitPattern.truthOrigin.truthType",
1140 "AntiKt4EMTopoJets.GhostTrackLRT.GhostTrackLRTCount",
1145 LLP1SlimmingHelper.ExtraVariables += [
"Muons.topoetcone20_CloseByCorr_LRT.neflowisol20_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr_LRT",
1146 "Electrons.topoetcone20_CloseByCorr_LRT.ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT",
1147 "Photons.topoetcone20_CloseByCorr_LRT.topoetcone40_CloseByCorr_LRT.ptcone20_CloseByCorr_LRT"]
1148 if flags.Tracking.doLargeD0:
1149 LLP1SlimmingHelper.ExtraVariables += [
1150 "MuonsLRT.topoetcone20_CloseByCorr_LRT.neflowisol20_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000_CloseByCorr_LRT",
1151 "LRTElectrons.topoetcone20_CloseByCorr_LRT.ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT.ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt1000_CloseByCorr_LRT",
1152 "TauJetsLRT.GNdTauScore.GNdTauProbTau.GNdTauProbJet"]
1155 "is_selected",
"is_associated",
"is_svtrk_final",
"pt_wrtSV",
"eta_wrtSV",
1156 "phi_wrtSV",
"d0_wrtSV",
"z0_wrtSV",
"errP_wrtSV",
"errd0_wrtSV",
1157 "errz0_wrtSV",
"chi2_toSV"
1160 for suffix
in LLP1VrtSecInclusiveSuffixes + LLP1NewVSISuffixes:
1161 LLP1SlimmingHelper.ExtraVariables += [
"InDetTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
1162 LLP1SlimmingHelper.ExtraVariables += [
"GSFTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
1163 if flags.Tracking.doLargeD0:
1164 LLP1SlimmingHelper.ExtraVariables += [
"InDetLargeD0TrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
1165 LLP1SlimmingHelper.ExtraVariables += [
"LRTGSFTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
1167 LLP1SlimmingHelper.ExtraVariables.append(
'CaloCalTopoClusters.e_samplCaloCalTopoClusters.e_sampl.calM.calE.calEta.calPhi.CENTER_MAG.SECOND_TIME.time.CENTER_LAMBDA.rawE.rawM.rawPhi.rawEta.clusterSize.eta0.phi0.altE.altEta.altPhi.altM.AVG_LAR_Q.AVG_TILE_Q.BADLARQ_FRAC.EM_PROBABILITY.ENG_BAD_CELLS.ENG_POS.ISOLATION.N_BAD_CELLS.SECOND_LAMBDA.SECOND_R')
1168 LLP1SlimmingHelper.AppendToDictionary[
"EMOriginTopoClusters"]=
'xAOD::CaloClusterContainer'
1169 LLP1SlimmingHelper.AppendToDictionary[
"EMOriginTopoClustersAux"]=
'xAOD::ShallowAuxContainer'
1170 LLP1SlimmingHelper.ExtraVariables.append(
'EMOriginTopoClusters.e_sampl.calM.calE.calEta.calPhi.CENTER_MAG.SECOND_TIME.time.CENTER_LAMBDA.rawE.rawM.rawPhi.rawEta.clusterSize.eta0.phi0.altE.altEta.altPhi.altM.AVG_LAR_Q.AVG_TILE_Q.BADLARQ_FRAC.EM_PROBABILITY.ENG_BAD_CELLS.ENG_POS.ISOLATION.N_BAD_CELLS.SECOND_LAMBDA.SECOND_R')
1174 if flags.Input.isMC:
1176 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
1177 addTruth3ContentToSlimmerTool(LLP1SlimmingHelper)
1178 LLP1SlimmingHelper.AllVariables += [
'TruthHFWithDecayParticles',
'TruthHFWithDecayVertices',
'TruthCharm',
'TruthPileupParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets',
'AntiKt4TruthJets']
1179 LLP1SlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
1181 "Photons.TruthLink"]
1182 if flags.Tracking.doLargeD0:
1183 LLP1SlimmingHelper.ExtraVariables += [
"LRTElectrons.TruthLink",
1184 "MuonsLRT.TruthLink"]
1186 if flags.Derivation.LLP.saveFullTruth:
1187 LLP1SlimmingHelper.ExtraVariables += [
'TruthParticles',
'TruthVertices',
1188 'AntiKt10TruthSoftDropBeta100Zcut10Jets.constituentLinks',
1189 'AntiKt4TruthDressedWZJets.constituentLinks']
1190 StaticContent += [
"xAOD::JetContainer#AntiKt10TruthRCJets",
"xAOD::JetAuxContainer#AntiKt10TruthRCJetsAux.-PseudoJet"]
1193 StaticContent += [
"xAOD::MuonContainer#ZeroPixelHitMuons",
"xAOD::MuonAuxContainer#ZeroPixelHitMuonsAux."]
1195 from DerivationFrameworkEGamma.PhotonsCPDetailedContent
import (
1196 PhotonsCPDetailedContent,
1198 LLP1SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
1201 from DerivationFrameworkJetEtMiss.JetCommonConfig
import addOriginCorrectedClustersToSlimmingTool
1202 addOriginCorrectedClustersToSlimmingTool(LLP1SlimmingHelper,writeLC=
True,writeEM=
True)
1203 LLP1SlimmingHelper.StaticContent = StaticContent
1206 LLP1SlimmingHelper.IncludeTriggerNavigation =
False
1207 LLP1SlimmingHelper.IncludeJetTriggerContent =
False
1208 LLP1SlimmingHelper.IncludeMuonTriggerContent =
False
1209 LLP1SlimmingHelper.IncludeEGammaTriggerContent =
False
1210 LLP1SlimmingHelper.IncludeTauTriggerContent =
False
1211 LLP1SlimmingHelper.IncludeEtMissTriggerContent =
False
1212 LLP1SlimmingHelper.IncludeBJetTriggerContent =
False
1213 LLP1SlimmingHelper.IncludeBPhysTriggerContent =
False
1214 LLP1SlimmingHelper.IncludeMinBiasTriggerContent =
False
1218 if flags.Trigger.EDMVersion == 2:
1219 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
1220 from DerivationFrameworkLLP.LLPToolsConfig
import LLP1TriggerMatchingToolRun2Cfg
1221 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1222 OutputContainerPrefix =
"TrigMatch_",
1223 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesTau)
1224 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1225 OutputContainerPrefix =
"TrigMatch_",
1226 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau)
1228 acc.merge(LLP1TriggerMatchingToolRun2Cfg(flags,
1229 name =
"LRTTriggerMatchingTool_LLP1",
1230 OutputContainerPrefix =
"LRTTrigMatch_LLP1_",
1231 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau,
1232 InputElectrons=MergedElectronContainer,
1233 InputMuons=MergedMuonContainer_wZPH
1236 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLP1SlimmingHelper,
1237 OutputContainerPrefix =
"LRTTrigMatch_LLP1_",
1238 TriggerList = LLP1TriggerListsHelper.Run2TriggerNamesNoTau,
1239 InputElectrons=MergedElectronContainer,
1240 InputMuons=MergedMuonContainer_wZPH
1243 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
1244 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
1245 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(LLP1SlimmingHelper)
1248 LLP1ItemList = LLP1SlimmingHelper.GetItemList()
1249 acc.merge(OutputStreamCfg(flags,
"DAOD_LLP1", ItemList=LLP1ItemList, AcceptAlgs=[
"LLP1Kernel"]))
1250 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_LLP1", AcceptAlgs=[
"LLP1Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))