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 96 of file LLJ1.py.

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

◆ LLJ1KernelCfg()

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

Definition at line 15 of file LLJ1.py.

15def LLJ1KernelCfg(flags, name='LLJ1Kernel', **kwargs):
16 """Configure the derivation framework driving algorithm (kernel) for LLJ1"""
17 acc = ComponentAccumulator()
18
19 # Common augmentations
20 from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
21 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
22
23 # Thinning tools
24 # These are set up in PhysCommonThinningConfig. Only thing needed here the list of tools to schedule
25 thinningToolsArgs = {
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",
34 }
35 # Configure the thinning tools
36 from DerivationFrameworkPhys.PhysCommonThinningConfig import PhysCommonThinningCfg
37 acc.merge(PhysCommonThinningCfg(flags, StreamName = kwargs['StreamName'], **thinningToolsArgs))
38 # Get them from the CA so they can be added to the kernel
39 thinningTools = []
40 for key in thinningToolsArgs:
41 thinningTools.append(acc.getPublicTool(thinningToolsArgs[key]))
42
43
44 skimmingTool = acc.getPrimaryAndMerge(LLJ1SkimmingToolCfg(flags))
45
46 # The kernel algorithm itself
47 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
48 acc.addEventAlgo(DerivationKernel(name, ThinningTools = thinningTools))
49 acc.addEventAlgo(DerivationKernel(name, SkimmingTools = [skimmingTool]))
50
51 return acc
52

◆ LLJ1SkimmingToolCfg()

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

Definition at line 53 of file LLJ1.py.

53def LLJ1SkimmingToolCfg(flags):
54 """Configure the LLJ1 skimming tool"""
55
56
57 largeRJetsForSkimming = ["AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets."]
58
59
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])
63 )
64
65
66 acc = ComponentAccumulator()
67 acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "LLJ1ObjectsSkimming",
68 expression = topology_selection_1jet,
69 ),
70 primary = True)
71
72
73 TriggersList = [
74
75 'HLT_j360_a10_lcw_sub_L1J100',
76 'HLT_j420_a10_lcw_L1J100',
77 'HLT_j460_a10t_lcw_jes_L1J100',
78
79 'HLT_j460_a10sd_cssk_pf_jes_ftf_preselj225_L1J100',
80 'HLT_j460_a10_lcw_subjes_L1J100',
81 'HLT_j460_a10r_L1J100',
82
83 'HLT_j420_35smcINF_a10sd_cssk_pf_jes_ftf_preselj225_L1J100',
84 'HLT_j420_35smcINF_a10t_lcw_jes_L1J100',
85 ]
86 print(TriggersList)
87
88
89 acc.addPublicTool(CompFactory.DerivationFramework.TriggerSkimmingTool(name = "LLJ1TriggerSkimming",
90 TriggerListOR = TriggersList),
91 primary = True)
92
93 return(acc)
94
95
void print(char *figname, TCanvas *c1)