10 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
11 from AthenaConfiguration.ComponentFactory
import CompFactory
12 from AthenaConfiguration.Enums
import MetadataCategory
16 """Configure the derivation framework driving algorithm (kernel) for LLJ1"""
20 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
26 'TrackParticleThinningToolName' :
"LLJ1TrackParticleThinningTool",
27 'MuonTPThinningToolName' :
"LLJ1MuonTPThinningTool",
28 'TauJetThinningToolName' :
"LLJ1TauJetThinningTool",
29 'TauJets_MuonRMThinningToolName' :
"LLJ1TauJets_MuonRMThinningTool",
30 'DiTauThinningToolName' :
"LLJ1DiTauThinningTool",
31 'DiTauTPThinningToolName' :
"LLJ1DiTauTPThinningTool",
32 'DiTauLowPtThinningToolName' :
"LLJ1DiTauLowPtThinningTool",
33 'DiTauLowPtTPThinningToolName' :
"LLJ1DiTauLowPtTPThinningTool",
36 from DerivationFrameworkPhys.PhysCommonThinningConfig
import PhysCommonThinningCfg
40 for key
in thinningToolsArgs:
41 thinningTools.append(acc.getPublicTool(thinningToolsArgs[key]))
47 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
54 """Configure the LLJ1 skimming tool"""
57 largeRJetsForSkimming = [
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets."]
60 sel_1jet_template =
"((count (abs({0}eta) < 2.8 && {0}pt > 150*GeV && {0}m > 30*GeV) >= 1))"
61 topology_selection_1jet =
"({})".
format(
62 " || ".
join([sel_1jet_template.format(j)
for j
in largeRJetsForSkimming])
67 acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"LLJ1ObjectsSkimming",
68 expression = topology_selection_1jet,
75 'HLT_j360_a10_lcw_sub_L1J100',
76 'HLT_j420_a10_lcw_L1J100',
77 'HLT_j460_a10t_lcw_jes_L1J100',
79 'HLT_j460_a10sd_cssk_pf_jes_ftf_preselj225_L1J100',
80 'HLT_j460_a10_lcw_subjes_L1J100',
81 'HLT_j460_a10r_L1J100',
83 'HLT_j420_35smcINF_a10sd_cssk_pf_jes_ftf_preselj225_L1J100',
84 'HLT_j420_35smcINF_a10t_lcw_jes_L1J100',
89 acc.addPublicTool(CompFactory.DerivationFramework.TriggerSkimmingTool(name =
"LLJ1TriggerSkimming",
90 TriggerListOR = TriggersList),
97 stream_name =
'StreamDAOD_LLJ1'
104 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
105 LLJ1TriggerListsHelper = TriggerListsHelper(flags)
108 acc.merge(
LLJ1KernelCfg(flags, name=
"LLJ1Kernel", StreamName = stream_name, TriggerListsHelper = LLJ1TriggerListsHelper))
113 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
114 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
115 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
117 LLJ1SlimmingHelper =
SlimmingHelper(
"LLJ1SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
118 LLJ1SlimmingHelper.SmartCollections = [
"EventInfo",
123 "InDetTrackParticles",
125 "AntiKt4EMPFlowJets",
126 "BTagging_AntiKt4EMPFlow",
127 "BTagging_AntiKtVR30Rmax4Rmin02Track",
128 "MET_Baseline_AntiKt4EMTopo",
129 "MET_Baseline_AntiKt4EMPFlow",
134 "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
135 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
136 "AntiKtVR30Rmax4Rmin02PV0TrackJets",
139 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
141 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
142 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
143 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
144 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
145 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
146 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
148 LLJ1SlimmingHelper.StaticContent = StaticContent
151 LLJ1SlimmingHelper.ExtraVariables += [
"AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
152 "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
153 "TruthPrimaryVertices.t.x.y.z",
154 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
155 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ",
156 "TauJets.dRmax.etOverPtLeadTrk",
157 "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
158 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
159 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
162 LLJ1SlimmingHelper.AllVariables += [
"CaloCalTopoClusters",
"CaloCalFwdTopoTowers",
163 "GlobalChargedParticleFlowObjects",
"GlobalNeutralParticleFlowObjects",
164 "CHSGChargedParticleFlowObjects",
"CHSGNeutralParticleFlowObjects",
165 "CSSKGChargedParticleFlowObjects",
"CSSKGNeutralParticleFlowObjects",
166 "Kt4EMTopoOriginEventShape",
"Kt4EMPFlowEventShape",
"Kt4EMPFlowPUSBEventShape",
167 "Kt4EMPFlowNeutEventShape",
"Kt4UFOCSSKEventShape",
"Kt4UFOCSSKNeutEventShape"
170 LLJ1SlimmingHelper.ExtraVariables += [
"AntiKt4EMPFlowJets.GhostTower",
171 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.SizeParameter",
172 "UFOCSSK.pt.eta.phi.m.signalType.otherObjectLinks.chargedObjectLinks",
173 "UFO.pt.eta.phi.m.signalType.otherObjectLinks.chargedObjectLinks",
174 "InDetTrackParticles.particleHypothesis.vx.vy.vz.btagIp_d0Uncertainty.btagIp_z0SinThetaUncertainty.btagIp_z0SinTheta.btagIp_trackMomentum.btagIp_trackDisplacement.btagIp_invalidIp",
175 "GSFTrackParticles.particleHypothesis.vx.vy.vz",
176 "PrimaryVertices.x.y.z.covariance.trackWeights",
177 "TauJets.clusterLinks",
178 "Electrons.neutralGlobalFELinks.chargedGlobalFELinks",
179 "Photons.neutralGlobalFELinks",
180 "Muons.energyLossType.EnergyLoss.ParamEnergyLoss.MeasEnergyLoss.EnergyLossSigma.MeasEnergyLossSigma.ParamEnergyLossSigmaPlus.ParamEnergyLossSigmaMinus.clusterLinks.FSR_CandidateEnergy.neutralGlobalFELinks.chargedGlobalFELinks",
181 "MuonSegments.x.y.z.px.py.pz"
184 LLJ1SlimmingHelper.AppendToDictionary.update({
'CSSKGNeutralParticleFlowObjects':
'xAOD::FlowElementContainer',
185 'CSSKGNeutralParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
186 'CSSKGChargedParticleFlowObjects':
'xAOD::FlowElementContainer',
187 'CSSKGChargedParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
188 'UFO':
'xAOD::FlowElementContainer',
189 'UFOAux':
'xAOD::FlowElementAuxContainer',
190 'Kt4UFOCSSKEventShape':
'xAOD::EventShape',
191 'Kt4UFOCSSKEventShapeAux':
'xAOD::EventShapeAuxInfo',
192 'Kt4UFOCSSKNeutEventShape':
'xAOD::EventShape',
193 'Kt4UFOCSSKNeutEventShapeAux':
'xAOD::EventShapeAuxInfo'})
196 from DerivationFrameworkJetEtMiss.JetCommonConfig
import addOriginCorrectedClustersToSlimmingTool
201 for tagger
in [
"GN2Xv00",
"GN2XWithMassv00"]:
202 for score
in [
"phbb",
"phcc",
"ptop",
"pqcd"]:
203 extraList.append(f
"{tagger}_{score}")
204 LLJ1SlimmingHelper.ExtraVariables += [
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets." +
".".
join(extraList)]
209 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
211 LLJ1SlimmingHelper.AllVariables += [
'TruthHFWithDecayParticles',
'TruthHFWithDecayVertices',
'TruthCharm',
'TruthPileupParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets']
212 LLJ1SlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
217 LLJ1SlimmingHelper.IncludeTriggerNavigation =
False
218 LLJ1SlimmingHelper.IncludeJetTriggerContent =
True
219 LLJ1SlimmingHelper.IncludeMuonTriggerContent =
False
220 LLJ1SlimmingHelper.IncludeEGammaTriggerContent =
False
221 LLJ1SlimmingHelper.IncludeTauTriggerContent =
False
222 LLJ1SlimmingHelper.IncludeEtMissTriggerContent =
False
223 LLJ1SlimmingHelper.IncludeBJetTriggerContent =
False
224 LLJ1SlimmingHelper.IncludeBPhysTriggerContent =
False
225 LLJ1SlimmingHelper.IncludeMinBiasTriggerContent =
False
229 if flags.Trigger.EDMVersion == 2:
230 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
232 OutputContainerPrefix =
"TrigMatch_",
233 TriggerList = LLJ1TriggerListsHelper.Run2TriggerNamesTau)
235 OutputContainerPrefix =
"TrigMatch_",
236 TriggerList = LLJ1TriggerListsHelper.Run2TriggerNamesNoTau)
238 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
239 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
243 LLJ1ItemList = LLJ1SlimmingHelper.GetItemList()
244 acc.merge(
OutputStreamCfg(flags,
"DAOD_LLJ1", ItemList=LLJ1ItemList, AcceptAlgs=[
"LLJ1Kernel"]))
245 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_LLJ1", AcceptAlgs=[
"LLJ1Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))