ATLAS Offline Software
Loading...
Searching...
No Matches
python.LLJ1 Namespace Reference

Functions

 LLJ1KernelCfg (flags, name='LLJ1Kernel', **kwargs)
 LLJ1SkimmingToolCfg (flags)
 LLJ1Cfg (flags)

Function Documentation

◆ LLJ1Cfg()

python.LLJ1.LLJ1Cfg ( flags)

Definition at line 102 of file LLJ1.py.

102def LLJ1Cfg(flags):
103 stream_name = 'StreamDAOD_LLJ1'
104 acc = ComponentAccumulator()
105
106 # Get the lists of triggers needed for trigger matching.
107 # This is needed at this scope (for the slimming) and further down in the config chain
108 # for actually configuring the matching, so we create it here and pass it down
109 # TODO: this should ideally be called higher up to avoid it being run multiple times in a train
110 from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
111 LLJ1TriggerListsHelper = TriggerListsHelper(flags)
112
113 # Common augmentations
114 acc.merge(LLJ1KernelCfg(flags, name="LLJ1Kernel", StreamName = stream_name, TriggerListsHelper = LLJ1TriggerListsHelper))
115
116 # ============================
117 # Define contents of the format
118 # =============================
119 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
120 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
121 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
122
123 LLJ1SlimmingHelper = SlimmingHelper("LLJ1SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
124 LLJ1SlimmingHelper.SmartCollections = ["EventInfo",
125 "Electrons",
126 "Photons",
127 "Muons",
128 "PrimaryVertices",
129 "InDetTrackParticles",
130 "AntiKt4EMTopoJets",
131 "AntiKt4EMPFlowJets",
132
133 "MET_Baseline_AntiKt4EMTopo",
134 "MET_Baseline_AntiKt4EMPFlow",
135 "TauJets",
136 "TauJets_MuonRM",
137 "DiTauJets",
138 "DiTauJetsLowPt",
139 "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
140 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
141 ]
142
143 excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
144 StaticContent = []
145 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
146 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
147 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
148 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
149 StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
150 StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
151
152 LLJ1SlimmingHelper.StaticContent = StaticContent
153
154 # Extra content
155 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",
156 "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",
157 "TruthPrimaryVertices.t.x.y.z",
158 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
159 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ",
160 "TauJets.dRmax.etOverPtLeadTrk",
161 "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
162 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
163 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
164
165
166 LLJ1SlimmingHelper.AllVariables += ["CaloCalTopoClusters", "CaloCalFwdTopoTowers",
167 "GlobalChargedParticleFlowObjects", "GlobalNeutralParticleFlowObjects",
168 "CHSGChargedParticleFlowObjects","CHSGNeutralParticleFlowObjects",
169 "CSSKGChargedParticleFlowObjects","CSSKGNeutralParticleFlowObjects",
170 "Kt4EMTopoOriginEventShape","Kt4EMPFlowEventShape","Kt4EMPFlowPUSBEventShape",
171 "Kt4EMPFlowNeutEventShape","Kt4UFOCSSKEventShape","Kt4UFOCSSKNeutEventShape"
172 ]
173
174 LLJ1SlimmingHelper.ExtraVariables += ["AntiKt4EMPFlowJets.GhostTower",
175 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.SizeParameter",
176 "UFOCSSK.pt.eta.phi.m.signalType.otherObjectLinks.chargedObjectLinks",
177 "UFO.pt.eta.phi.m.signalType.otherObjectLinks.chargedObjectLinks",
178 "InDetTrackParticles.particleHypothesis.vx.vy.vz.btagIp_d0Uncertainty.btagIp_z0SinThetaUncertainty.btagIp_z0SinTheta.btagIp_trackMomentum.btagIp_trackDisplacement.btagIp_invalidIp",
179 "GSFTrackParticles.particleHypothesis.vx.vy.vz",
180 "PrimaryVertices.x.y.z.covariance.trackWeights",
181 "TauJets.clusterLinks",
182 "Electrons.neutralGlobalFELinks.chargedGlobalFELinks",
183 "Photons.neutralGlobalFELinks",
184 "Muons.energyLossType.EnergyLoss.ParamEnergyLoss.MeasEnergyLoss.EnergyLossSigma.MeasEnergyLossSigma.ParamEnergyLossSigmaPlus.ParamEnergyLossSigmaMinus.clusterLinks.FSR_CandidateEnergy.neutralGlobalFELinks.chargedGlobalFELinks",
185 "MuonSegments.x.y.z.px.py.pz"
186 ]
187
188 LLJ1SlimmingHelper.AppendToDictionary.update({'CSSKGNeutralParticleFlowObjects': 'xAOD::FlowElementContainer',
189 'CSSKGNeutralParticleFlowObjectsAux': 'xAOD::ShallowAuxContainer',
190 'CSSKGChargedParticleFlowObjects': 'xAOD::FlowElementContainer',
191 'CSSKGChargedParticleFlowObjectsAux': 'xAOD::ShallowAuxContainer',
192 'UFO': 'xAOD::FlowElementContainer',
193 'UFOAux': 'xAOD::FlowElementAuxContainer',
194 'Kt4UFOCSSKEventShape': 'xAOD::EventShape',
195 'Kt4UFOCSSKEventShapeAux': 'xAOD::EventShapeAuxInfo',
196 'Kt4UFOCSSKNeutEventShape': 'xAOD::EventShape',
197 'Kt4UFOCSSKNeutEventShapeAux': 'xAOD::EventShapeAuxInfo'})
198
199
200 from DerivationFrameworkJetEtMiss.JetCommonConfig import addOriginCorrectedClustersToSlimmingTool
201 addOriginCorrectedClustersToSlimmingTool(LLJ1SlimmingHelper,writeLC=True,writeEM=True)
202
203 # FTAG Xbb extra content
204 extraList = []
205 for tagger in ["GN2Xv00", "GN2XWithMassv00"]:
206 for score in ["phbb", "phcc", "ptop", "pqcd"]:
207 extraList.append(f"{tagger}_{score}")
208 LLJ1SlimmingHelper.ExtraVariables += ["AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets." + ".".join(extraList)]
209
210 # Truth extra content
211 if flags.Input.isMC:
212
213 from DerivationFrameworkMCTruth.MCTruthCommonConfig import addTruth3ContentToSlimmerTool
214 addTruth3ContentToSlimmerTool(LLJ1SlimmingHelper)
215 LLJ1SlimmingHelper.AllVariables += ['TruthHFWithDecayParticles','TruthHFWithDecayVertices','TruthCharm','TruthPileupParticles','InTimeAntiKt4TruthJets','OutOfTimeAntiKt4TruthJets']
216 LLJ1SlimmingHelper.ExtraVariables += ["Electrons.TruthLink",
217 "Muons.TruthLink",
218 "Photons.TruthLink"]
219
220 # Trigger content
221 LLJ1SlimmingHelper.IncludeTriggerNavigation = False
222 LLJ1SlimmingHelper.IncludeJetTriggerContent = True
223 LLJ1SlimmingHelper.IncludeMuonTriggerContent = False
224 LLJ1SlimmingHelper.IncludeEGammaTriggerContent = False
225 LLJ1SlimmingHelper.IncludeTauTriggerContent = False
226 LLJ1SlimmingHelper.IncludeEtMissTriggerContent = False
227 LLJ1SlimmingHelper.IncludeBJetTriggerContent = False
228 LLJ1SlimmingHelper.IncludeBPhysTriggerContent = False
229 LLJ1SlimmingHelper.IncludeMinBiasTriggerContent = False
230
231 # Trigger matching
232 # Run 2
233 if flags.Trigger.EDMVersion == 2:
234 from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
235 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLJ1SlimmingHelper,
236 OutputContainerPrefix = "TrigMatch_",
237 TriggerList = LLJ1TriggerListsHelper.Run2TriggerNamesTau)
238 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = LLJ1SlimmingHelper,
239 OutputContainerPrefix = "TrigMatch_",
240 TriggerList = LLJ1TriggerListsHelper.Run2TriggerNamesNoTau)
241 # Run 3, or Run 2 with navigation conversion
242 if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
243 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
244 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(LLJ1SlimmingHelper)
245
246 # Output stream
247 LLJ1ItemList = LLJ1SlimmingHelper.GetItemList()
248 acc.merge(OutputStreamCfg(flags, "DAOD_LLJ1", ItemList=LLJ1ItemList, AcceptAlgs=["LLJ1Kernel"]))
249 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_LLJ1", AcceptAlgs=["LLJ1Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
250
251 return acc
252

◆ LLJ1KernelCfg()

python.LLJ1.LLJ1KernelCfg ( flags,
name = 'LLJ1Kernel',
** kwargs )
Configure the derivation framework driving algorithm (kernel) for LLJ1

Definition at line 13 of file LLJ1.py.

13def LLJ1KernelCfg(flags, name='LLJ1Kernel', **kwargs):
14 """Configure the derivation framework driving algorithm (kernel) for LLJ1"""
15 acc = ComponentAccumulator()
16
17 # Common augmentations
18 from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
19 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
20
21 # Thinning tools
22 # These are set up in PhysCommonThinningConfig. Only thing needed here the list of tools to schedule
23 thinningToolsArgs = {
24 'TrackParticleThinningToolName' : "LLJ1TrackParticleThinningTool",
25 'MuonTPThinningToolName' : "LLJ1MuonTPThinningTool",
26 'TauJetThinningToolName' : "LLJ1TauJetThinningTool",
27 'TauJets_MuonRMThinningToolName' : "LLJ1TauJets_MuonRMThinningTool",
28 'DiTauThinningToolName' : "LLJ1DiTauThinningTool",
29 'DiTauTPThinningToolName' : "LLJ1DiTauTPThinningTool",
30 'DiTauLowPtThinningToolName' : "LLJ1DiTauLowPtThinningTool",
31 'DiTauLowPtTPThinningToolName' : "LLJ1DiTauLowPtTPThinningTool",
32 }
33 # Configure the thinning tools
34 from DerivationFrameworkPhys.PhysCommonThinningConfig import PhysCommonThinningCfg
35 acc.merge(PhysCommonThinningCfg(flags, StreamName = kwargs['StreamName'], **thinningToolsArgs))
36 # Get them from the CA so they can be added to the kernel
37 thinningTools = []
38 for key in thinningToolsArgs:
39 thinningTools.append(acc.getPublicTool(thinningToolsArgs[key]))
40
41
42 skimmingTool = acc.getPrimaryAndMerge(LLJ1SkimmingToolCfg(flags))
43
44 # The kernel algorithm itself
45 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
46 acc.addEventAlgo(DerivationKernel(name, ThinningTools = thinningTools))
47 acc.addEventAlgo(DerivationKernel(name, SkimmingTools = [skimmingTool]))
48
49 return acc
50

◆ LLJ1SkimmingToolCfg()

python.LLJ1.LLJ1SkimmingToolCfg ( flags)
Configure the LLJ1 skimming tool

Definition at line 51 of file LLJ1.py.

51def LLJ1SkimmingToolCfg(flags):
52 """Configure the LLJ1 skimming tool"""
53
54
55 largeRJetsForSkimming = ["AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets."]
56
57
58 sel_1jet_template = "((count (abs({0}eta) < 2.8 && {0}pt > 150*GeV && {0}m > 30*GeV) >= 1))"
59 topology_selection_1jet = "({})".format(
60 " || ".join([sel_1jet_template.format(j) for j in largeRJetsForSkimming])
61 )
62
63
64 acc = ComponentAccumulator()
65 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import (
66 xAODStringSkimmingToolCfg)
67 LLJ1ObjectsSkimming = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
68 flags, name = "LLJ1ObjectsSkimming",
69 expression = topology_selection_1jet))
70 skimmingTools = [LLJ1ObjectsSkimming]
71
72
73 if flags.Trigger.EDMVersion >=0 :
74 TriggersList = [
75
76 'HLT_j360_a10_lcw_sub_L1J100',
77 'HLT_j420_a10_lcw_L1J100',
78 'HLT_j460_a10t_lcw_jes_L1J100',
79
80 'HLT_j460_a10sd_cssk_pf_jes_ftf_preselj225_L1J100',
81 'HLT_j460_a10_lcw_subjes_L1J100',
82 'HLT_j460_a10r_L1J100',
83
84 'HLT_j420_35smcINF_a10sd_cssk_pf_jes_ftf_preselj225_L1J100',
85 'HLT_j420_35smcINF_a10t_lcw_jes_L1J100',
86 ]
87 print(TriggersList)
88
89
90 LLJ1TriggerSkimming = CompFactory.DerivationFramework.TriggerSkimmingTool(
91 name = "LLJ1TriggerSkimming", TriggerListOR = TriggersList)
92 acc.addPublicTool(LLJ1TriggerSkimming)
93 skimmingTools += [LLJ1TriggerSkimming]
94
95 # do the AND of trigger-based and offline-based selection
96 LLJ1_SkimmingTool = CompFactory.DerivationFramework.FilterCombinationAND(
97 name="LLJ1_SkimmingTool", FilterList=skimmingTools)
98 acc.addPublicTool(LLJ1_SkimmingTool, primary=True)
99 return(acc)
100
101
void print(char *figname, TCanvas *c1)