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

Functions

 JETM12SkimmingToolCfg (flags)
 JETM12AugmentationToolsForSkimmingCfg (flags)
 JETM12AugmentationToolsCfg (flags)
 JETM12KernelCfg (flags, name='JETM12Kernel', **kwargs)
 JETM12Cfg (flags)

Function Documentation

◆ JETM12AugmentationToolsCfg()

python.JETM12.JETM12AugmentationToolsCfg ( flags)
Configure the augmentation tool

Definition at line 128 of file JETM12.py.

128def JETM12AugmentationToolsCfg(flags):
129 """Configure the augmentation tool"""
130 acc = ComponentAccumulator()
131
132 toolkwargs = {}
133 # Loose tracks with pT > 500 MeV
134 from InDetConfig.InDetTrackSelectionToolConfig import InDetTrackSelectionTool_Loose_Cfg
135 toolkwargs["TrackSelectionTool"] = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
136 name = "TrackSelectionTool500_JETM12",
137 minPt = 500.))
138 #Nonprompt_All_MaxWeight TTVA
139 from TrackVertexAssociationTool.TrackVertexAssociationToolConfig import isoTTVAToolCfg
140 toolkwargs['TTVATool'] = acc.popToolsAndMerge(isoTTVAToolCfg(flags))
141
142 toolkwargs["name"] = "TrackIsolationToolPt500"
143 TrackIsoTool = CompFactory.xAOD.TrackIsolationTool(**toolkwargs)
144 acc.addPublicTool(TrackIsoTool)
145
146 from xAODPrimitives.xAODIso import xAODIso as isoPar
147 from DerivationFrameworkInDet.InDetToolsConfig import IsolationTrackDecoratorCfg
148 Pt500IsoTrackDecorator = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
149 name = "Pt500IsoTrackDecorator",
150 TrackIsolationTool = TrackIsoTool,
151 TargetContainer = "InDetTrackParticles",
152 iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20],
153 isoSuffix = ["ptcone40", "ptcone30", "ptcone20"],
154 Prefix = "TrkIsoPt500_"))
155
156 acc.addPublicTool(Pt500IsoTrackDecorator, primary=True)
157
158 return(acc)
159
160# Main algorithm config

◆ JETM12AugmentationToolsForSkimmingCfg()

python.JETM12.JETM12AugmentationToolsForSkimmingCfg ( flags)
Configure the augmentation tool for skimming

Definition at line 94 of file JETM12.py.

94def JETM12AugmentationToolsForSkimmingCfg(flags):
95 """Configure the augmentation tool for skimming"""
96 acc = ComponentAccumulator()
97
98 # Loose tracks with pT > 1000 MeV and Nonprompt_All_MaxWeight TTVA
99 toolkwargs = {}
100 from InDetConfig.InDetTrackSelectionToolConfig import InDetTrackSelectionTool_Loose_Cfg
101 toolkwargs["TrackSelectionTool"] = acc.popToolsAndMerge(InDetTrackSelectionTool_Loose_Cfg(flags,
102 name = "TrackSelectionTool1000_JETM12",
103 minPt = 1000.))
104
105 #Nonprompt_All_MaxWeight TTVA
106 from TrackVertexAssociationTool.TrackVertexAssociationToolConfig import isoTTVAToolCfg
107 toolkwargs['TTVATool'] = acc.popToolsAndMerge(isoTTVAToolCfg(flags))
108
109 toolkwargs["name"] = "TrackIsolationToolPt1000"
110 TrackIsoTool = CompFactory.xAOD.TrackIsolationTool(**toolkwargs)
111 acc.addPublicTool(TrackIsoTool)
112
113 from xAODPrimitives.xAODIso import xAODIso as isoPar
114
115 from DerivationFrameworkInDet.InDetToolsConfig import IsolationTrackDecoratorCfg
116 Pt1000IsoTrackDecorator = acc.getPrimaryAndMerge(IsolationTrackDecoratorCfg(flags,
117 name = "Pt1000IsoTrackDecorator",
118 TrackIsolationTool = TrackIsoTool,
119 TargetContainer = "InDetTrackParticles",
120 iso = [isoPar.ptcone40, isoPar.ptcone30, isoPar.ptcone20],
121 isoSuffix = ["ptcone40", "ptcone30", "ptcone20"],
122 Prefix = "TrkIsoPt1000_"))
123
124 acc.addPublicTool(Pt1000IsoTrackDecorator, primary=True)
125
126 return(acc)
127

◆ JETM12Cfg()

python.JETM12.JETM12Cfg ( flags)

Definition at line 270 of file JETM12.py.

270def JETM12Cfg(flags):
271
272 acc = ComponentAccumulator()
273
274 # Get the lists of triggers needed for trigger matching.
275 # This is needed at this scope (for the slimming) and further down in the config chain
276 # for actually configuring the matching, so we create it here and pass it down
277 # TODO: this should ideally be called higher up to avoid it being run multiple times in a train
278 from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
279 JETM12TriggerListsHelper = TriggerListsHelper(flags)
280
281 # Skimming, thinning, augmentation, extra content
282 acc.merge(JETM12KernelCfg(flags, name="JETM12Kernel", PreselectionName="JETM12PreselectionKernel", StreamName = 'StreamDAOD_JETM12', TriggerListsHelper = JETM12TriggerListsHelper))
283
284 # ============================
285 # Define contents of the format
286 # =============================
287 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
288 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
289 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
290
291 JETM12SlimmingHelper = SlimmingHelper("JETM12SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
292
293 JETM12SlimmingHelper.SmartCollections = ["EventInfo",
294 "Electrons", "Photons", "Muons", "TauJets",
295 "InDetTrackParticles", "PrimaryVertices",
296 "MET_Baseline_AntiKt4EMPFlow",
297 "AntiKt4EMPFlowJets"]
298
299 JETM12SlimmingHelper.AllVariables = ["MuonSegments","InDetTrackParticles",
300 "Kt4EMTopoOriginEventShape","Kt4EMPFlowEventShape","CaloCalTopoClusters"]
301
302 JETM12SlimmingHelper.ExtraVariables = ["InDetTrackParticles.TrkIsoPt1000_ptcone40.TrkIsoPt1000_ptcone30.TrkIsoPt1000_ptcone20.TrkIsoPt500_ptcone40.TrkIsoPt500_ptcone30.TrkIsoPt500_ptcone20"]
303
304 if flags.Input.isMC:
305 from DerivationFrameworkMCTruth.MCTruthCommonConfig import addTruth3ContentToSlimmerTool
306 addTruth3ContentToSlimmerTool(JETM12SlimmingHelper)
307
308 JETM12SlimmingHelper.AppendToDictionary.update({'TruthParticles': 'xAOD::TruthParticleContainer',
309 'TruthParticlesAux': 'xAOD::TruthParticleAuxContainer'})
310
311 JETM12SlimmingHelper.SmartCollections += ["AntiKt4TruthJets"]
312 JETM12SlimmingHelper.AllVariables += ["MuonTruthParticles", "TruthParticles", "TruthVertices"]
313
314 # Trigger content
315 JETM12SlimmingHelper.IncludeTriggerNavigation = False
316 JETM12SlimmingHelper.IncludeJetTriggerContent = False
317 JETM12SlimmingHelper.IncludeMuonTriggerContent = False
318 JETM12SlimmingHelper.IncludeEGammaTriggerContent = False
319 JETM12SlimmingHelper.IncludeTauTriggerContent = False
320 JETM12SlimmingHelper.IncludeEtMissTriggerContent = False
321 JETM12SlimmingHelper.IncludeBJetTriggerContent = False
322 JETM12SlimmingHelper.IncludeBPhysTriggerContent = False
323 JETM12SlimmingHelper.IncludeMinBiasTriggerContent = False
324
325 # Output stream
326 JETM12ItemList = JETM12SlimmingHelper.GetItemList()
327 acc.merge(OutputStreamCfg(flags, "DAOD_JETM12", ItemList=JETM12ItemList, AcceptAlgs=["JETM12Kernel"]))
328 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_JETM12", AcceptAlgs=["JETM12Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
329
330 return acc
331

◆ JETM12KernelCfg()

python.JETM12.JETM12KernelCfg ( flags,
name = 'JETM12Kernel',
** kwargs )
Configure the derivation framework driving algorithm (kernel) for JETM12

Definition at line 161 of file JETM12.py.

161def JETM12KernelCfg(flags, name='JETM12Kernel', **kwargs):
162 """Configure the derivation framework driving algorithm (kernel) for JETM12"""
163 acc = ComponentAccumulator()
164
165 # Common augmentations
166 from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
167 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
168
169 #Pre-selection kernel
170 from AthenaCommon.CFElements import seqAND
171 acc.addSequence( seqAND("JETM12Sequence") )
172 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
173 skimmingTool = acc.getPrimaryAndMerge(JETM12SkimmingToolCfg(flags))
174 augmentationToolSkim = acc.getPrimaryAndMerge(JETM12AugmentationToolsForSkimmingCfg(flags))
175 skimmingKernel = DerivationKernel(kwargs["PreselectionName"], SkimmingTools = [skimmingTool], AugmentationTools = [augmentationToolSkim])
176 acc.addEventAlgo( skimmingKernel, sequenceName="JETM12Sequence" )
177
178 # Thinning tools...
179 from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg, MuonTrackParticleThinningCfg, EgammaTrackParticleThinningCfg, TauTrackParticleThinningCfg
180
181 # Increased cut (w.r.t. R21) on abs(z0) for new TTVA working points
182 JETM12_thinning_expression = "( InDetTrackParticles.pt > 6*GeV && InDetTrackParticles.DFCommonTightPrimary && abs(DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta)) < 5.0*mm )"
183 JETM12TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
184 flags,
185 name = "JETM12TrackParticleThinningTool",
186 StreamName = kwargs['StreamName'],
187 SelectionString = JETM12_thinning_expression,
188 InDetTrackParticlesKey = "InDetTrackParticles"))
189
190 # Include inner detector tracks associated with muons
191 JETM12MuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
192 flags,
193 name = "JETM12MuonTPThinningTool",
194 StreamName = kwargs['StreamName'],
195 MuonKey = "Muons",
196 InDetTrackParticlesKey = "InDetTrackParticles"))
197
198 # Include inner detector tracks associated with electonrs
199 JETM12ElectronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
200 flags,
201 name = "JETM12ElectronTPThinningTool",
202 StreamName = kwargs['StreamName'],
203 SGKey = "Electrons",
204 InDetTrackParticlesKey = "InDetTrackParticles"))
205
206 # Include inner detector tracks associated with photons
207 JETM12PhotonTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
208 flags,
209 name = "JETM12PhotonTPThinningTool",
210 StreamName = kwargs['StreamName'],
211 SGKey = "Photons",
212 InDetTrackParticlesKey = "InDetTrackParticles",
213 GSFConversionVerticesKey = "GSFConversionVertices"))
214
215 # Include inner detector tracks associated with taus
216 JETM12TauTPThinningTool = acc.getPrimaryAndMerge(TauTrackParticleThinningCfg(
217 flags,
218 name = "JETM12TauTPThinningTool",
219 StreamName = kwargs['StreamName'],
220 TauKey = "TauJets",
221 InDetTrackParticlesKey = "InDetTrackParticles",
222 DoTauTracksThinning = True,
223 TauTracksKey = "TauTracks"))
224
225 thinningTools = [JETM12TrackParticleThinningTool,
226 JETM12MuonTPThinningTool,
227 JETM12ElectronTPThinningTool,
228 JETM12PhotonTPThinningTool,
229 JETM12TauTPThinningTool]
230
231 #CaloClusterThinning
232 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import CaloClusterThinningCfg
233 selectionString = "( InDetTrackParticles.pt > 6*GeV && InDetTrackParticles.DFCommonTightPrimary && abs(DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta)) < 5.0*mm )"
234 JETM12CaloThinningTool = acc.getPrimaryAndMerge(CaloClusterThinningCfg(flags,
235 name = "JETM12CaloClusterThinning",
236 StreamName = kwargs['StreamName'],
237 SGKey = "InDetTrackParticles",
238 TopoClCollectionSGKey = "CaloCalTopoClusters",
239 SelectionString = selectionString,
240 ConeSize = 0.6))
241 acc.addPublicTool(JETM12CaloThinningTool)
242 thinningTools.append(JETM12CaloThinningTool)
243
244 if flags.Input.isMC:
245 truth_cond_status = "( (TruthParticles.isGenStable) && (TruthParticles.pt > 8*GeV) )" # high pt pions for E/p
246 truth_cond_Lepton = "((abs(TruthParticles.pdgId) >= 11) && (abs(TruthParticles.pdgId) <= 16) && !(TruthParticles.isSimulationParticle))" # Leptons
247 truth_expression = '('+truth_cond_status+' || '+truth_cond_Lepton +')'
248
249 JETM12TruthThinningTool = CompFactory.DerivationFramework.GenericTruthThinning(name = "JETM12TruthThinningTool",
250 StreamName = kwargs['StreamName'],
251 ParticleSelectionString = truth_expression,
252 PreserveDescendants = False,
253 PreserveGeneratorDescendants = True,
254 PreserveAncestors = False)
255
256 acc.addPublicTool(JETM12TruthThinningTool)
257 thinningTools.append(JETM12TruthThinningTool)
258
259 # augmentation tool
260 augmentationTool = acc.getPrimaryAndMerge(JETM12AugmentationToolsCfg(flags))
261
262 # Main kernel
263 acc.addEventAlgo(DerivationKernel(name,
264 ThinningTools = thinningTools,
265 AugmentationTools = [augmentationTool]),
266 sequenceName="JETM12Sequence")
267
268 return acc
269

◆ JETM12SkimmingToolCfg()

python.JETM12.JETM12SkimmingToolCfg ( flags)
Configure the skimming tool

Definition at line 11 of file JETM12.py.

11def JETM12SkimmingToolCfg(flags):
12 """Configure the skimming tool"""
13 acc = ComponentAccumulator()
14
15 from DerivationFrameworkJetEtMiss import TriggerLists
16 metTriggers = TriggerLists.MET_Trig(flags)
17 elTriggers = TriggerLists.single_el_Trig(flags)
18 muTriggers = TriggerLists.single_mu_Trig(flags)
19
20 addTtbarEvents = True
21 if not flags.Input.isMC:
22 # Check if the solenoid was turned on to define skimming
23 from CoolConvUtilities.MagFieldUtils import getFieldForRun
24 magfield=getFieldForRun(flags.Input.RunNumbers[0],lumiblock=flags.Input.LumiBlockNumbers[0])
25 addTtbarEvents = magfield.solenoidCurrent() > 0
26
27
28 #xAODStringSkimmingTool cannot handle electron trigger names, therefore need to use TriggerSkimmingTool
29 tracks = 'InDetTrackParticles.TrkIsoPt1000_ptcone20 < 0.12*InDetTrackParticles.pt && InDetTrackParticles.DFCommonTightPrimary && abs(DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta)) < 5.0*mm'
30
31 trackRequirements = '(InDetTrackParticles.pt > 6.*GeV && '+tracks+' )'
32 trackRequirementsMu = '(InDetTrackParticles.pt > 40.*GeV && '+tracks+' )'
33 jetRequirementsTtbar = '(AntiKt4EMPFlowJets.pt > 18*GeV && log(AntiKt4EMPFlowJets.GN2v01_pb/(0.2*AntiKt4EMPFlowJets.GN2v01_pc + (1.-0.2-0.01)*AntiKt4EMPFlowJets.GN2v01_pu + 0.01*AntiKt4EMPFlowJets.GN2v01_ptau))>=0.844)'
34
35 trackRequirementsNoIso = '(InDetTrackParticles.pt > 10.*GeV && abs(DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta)) < 5.0*mm )'
36
37 muonsRequirements = '(Muons.pt >= 20.*GeV) && (abs(Muons.eta) < 2.6) && (Muons.DFCommonMuonPassPreselection)'
38 electronsRequirements = '(Electrons.pt > 20.*GeV) && (abs(Electrons.eta) < 2.6) && ((Electrons.Loose) || (Electrons.DFCommonElectronsLHLoose))'
39
40 #String skimming selections
41 expression_W = '( count('+trackRequirements+') >=1 )'
42 expression_Mu = '( count('+trackRequirementsMu+') >=1 )'
43 expression_ttbarEl = '( count('+electronsRequirements+') >=1 ) && ( count('+jetRequirementsTtbar+') >=1 ) && ( count('+trackRequirementsNoIso+') >=2 ) && ( count('+trackRequirements+') >=1 )'
44 expression_ttbarElNoTag = '( count('+electronsRequirements+') >=1 ) && ( count('+trackRequirements+') >=1 )'
45 expression_ttbarMu = '( count('+muonsRequirements+') >=1 ) && ( count('+jetRequirementsTtbar+') >=1 ) && ( count('+trackRequirementsNoIso+') >=2 ) && ( count('+trackRequirements+') >=1 )'
46 expression_ttbarMuNoTag = '( count('+muonsRequirements+') >=1 ) && ( count('+trackRequirements+') >=1 )'
47
48 skimmingTool_W = CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "skimmingTool_W", expression = expression_W)
49 acc.addPublicTool(skimmingTool_W)
50 skimmingTool_Mu = CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "skimmingTool_mu", expression = expression_Mu)
51 acc.addPublicTool(skimmingTool_Mu)
52
53 # Trigger skimming tools
54 JETM12TriggerSkimmingTool_W = CompFactory.DerivationFramework.TriggerSkimmingTool(name = "JETM12TriggerSkimmingTool_W", TriggerListOR = metTriggers)
55 acc.addPublicTool(JETM12TriggerSkimmingTool_W)
56 JETM12TriggerSkimmingTool_ele = CompFactory.DerivationFramework.TriggerSkimmingTool(name = "JETM12TriggerSkimmingTool_ele", TriggerListOR = elTriggers)
57 acc.addPublicTool(JETM12TriggerSkimmingTool_ele)
58 JETM12TriggerSkimmingTool_mu = CompFactory.DerivationFramework.TriggerSkimmingTool(name = "JETM12TriggerSkimmingTool_mu", TriggerListOR = muTriggers)
59 acc.addPublicTool(JETM12TriggerSkimmingTool_mu)
60
61 JETM12SkimmingTool_W = CompFactory.DerivationFramework.FilterCombinationAND(name="JETM12SkimmingTool_W", FilterList=[skimmingTool_W, JETM12TriggerSkimmingTool_W])
62 acc.addPublicTool(JETM12SkimmingTool_W)
63 JETM12SkimmingTool_Mu = CompFactory.DerivationFramework.FilterCombinationAND(name="JETM12SkimmingTool_Mu", FilterList=[skimmingTool_Mu, JETM12TriggerSkimmingTool_mu])
64 acc.addPublicTool(JETM12SkimmingTool_Mu)
65
66 finalSkimmingTools = [JETM12SkimmingTool_W,JETM12SkimmingTool_Mu]
67
68 if addTtbarEvents:
69 skimmingTool_ttbarEl = CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "skimmingTool_ttbarEl", expression = expression_ttbarEl)
70 acc.addPublicTool(skimmingTool_ttbarEl)
71 skimmingTool_ttbarElNoTag = CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "skimmingTool_ttbarElNoTag", expression = expression_ttbarElNoTag)
72 acc.addPublicTool(skimmingTool_ttbarElNoTag)
73 skimmingTool_ttbarMu = CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "skimmingTool_ttbarMu", expression = expression_ttbarMu)
74 acc.addPublicTool(skimmingTool_ttbarMu)
75 skimmingTool_ttbarMuNoTag = CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "skimmingTool_ttbarMuNoTag", expression = expression_ttbarMuNoTag)
76 acc.addPublicTool(skimmingTool_ttbarMuNoTag)
77
78 JETM12SkimmingTool_ttbarEl = CompFactory.DerivationFramework.FilterCombinationAND(name="JETM12SkimmingTool_ttbarEl",FilterList=[skimmingTool_ttbarEl,JETM12TriggerSkimmingTool_ele])
79 acc.addPublicTool(JETM12SkimmingTool_ttbarEl)
80 JETM12SkimmingTool_ttbarElNoTag = CompFactory.DerivationFramework.FilterCombinationAND(name="JETM12SkimmingTool_ttbarElNoTag",FilterList=[skimmingTool_ttbarElNoTag,JETM12TriggerSkimmingTool_ele])
81 acc.addPublicTool(JETM12SkimmingTool_ttbarElNoTag)
82 JETM12SkimmingTool_ttbarMu = CompFactory.DerivationFramework.FilterCombinationAND(name="JETM12SkimmingTool_ttbarMu",FilterList=[skimmingTool_ttbarMu,JETM12TriggerSkimmingTool_mu])
83 acc.addPublicTool(JETM12SkimmingTool_ttbarMu)
84 JETM12SkimmingTool_ttbarMuNoTag = CompFactory.DerivationFramework.FilterCombinationAND(name="JETM12SkimmingTool_ttbarMuNoTag",FilterList=[skimmingTool_ttbarMuNoTag,JETM12TriggerSkimmingTool_mu])
85 acc.addPublicTool(JETM12SkimmingTool_ttbarMuNoTag)
86
87 finalSkimmingTools = [JETM12SkimmingTool_W, JETM12SkimmingTool_Mu, JETM12SkimmingTool_ttbarEl, JETM12SkimmingTool_ttbarMu, JETM12SkimmingTool_ttbarElNoTag, JETM12SkimmingTool_ttbarMuNoTag]
88
89 JETM12SkimmingTool = CompFactory.DerivationFramework.FilterCombinationOR(name="JETM12SkimmingTool", FilterList=finalSkimmingTools)
90 acc.addPublicTool(JETM12SkimmingTool, primary = True)
91
92 return(acc)
93