107 from InDetPhysValMonitoring.InDetPhysValDecorationConfig
import (
108 AddDecoratorIfNeededCfg)
110 kwargs.setdefault(
"useTrackSelection",
False)
111 kwargs.setdefault(
"EnableLumi",
False)
114 kwargs.setdefault(
'VertexContainerName', flags.PhysVal.IDPVM.PrimaryVertexContainer)
117 if flags.PhysVal.IDPVM.hardScatterStrategy
in [2, 3]:
119 from InDetPhysValMonitoring.addRecoJetsConfig
import (
120 AddRecoJetsIfNotExistingCfg)
122 flags, flags.PhysVal.IDPVM.jetsNameForHardScatter))
125 if flags.PhysVal.IDPVM.hardScatterStrategy == 3:
126 from InDetConfig.InDetGNNHardScatterSelectionConfig
import (
131 if flags.PhysVal.IDPVM.hardScatterStrategy == 4:
132 from DerivationFrameworkHiggs.HIGG1D1CustomVertexConfig
import DiPhotonVertexCfg
135 if flags.PhysVal.IDPVM.GRL:
136 kwargs.setdefault(
"useGRL",
True)
137 kwargs.setdefault(
'GoodRunsListSelectionTool', acc.popToolsAndMerge(
140 kwargs.setdefault(
"doIDTIDEPlots", flags.PhysVal.IDPVM.doIDTIDE)
141 kwargs.setdefault(
"setCSVName", flags.PhysVal.IDPVM.setCSVName)
143 if flags.PhysVal.IDPVM.doValidateTracksInJets:
144 kwargs.setdefault(
"JetContainerName", flags.PhysVal.IDPVM.jetCollection)
145 kwargs.setdefault(
"FillTrackInJetPlots",
True)
146 kwargs.setdefault(
'JetAbsEtaMin', 0)
147 kwargs.setdefault(
'JetAbsEtaMax', flags.PhysVal.IDPVM.JetAbsEtaMax)
148 kwargs.setdefault(
'JetPtMin', flags.PhysVal.IDPVM.JetPtMin)
149 kwargs.setdefault(
'JetPtMax', flags.PhysVal.IDPVM.JetPtMax)
150 kwargs.setdefault(
'maxTrkJetDR', flags.PhysVal.IDPVM.maxTrkJetDR)
151 kwargs.setdefault(
"FillTrackInBJetPlots",
152 flags.PhysVal.IDPVM.doValidateTracksInBJets)
154 kwargs.setdefault(
"JetContainerName",
'')
155 kwargs.setdefault(
"FillTrackInJetPlots",
False)
158 if flags.Input.isMC
and not flags.PhysVal.IDPVM.doRecoOnly:
159 kwargs.setdefault(
"TruthParticleContainerName",
"TruthParticles")
160 if 'TruthSelectionTool' not in kwargs:
161 kwargs.setdefault(
"TruthSelectionTool", acc.popToolsAndMerge(
164 doHyyHSSelection = flags.PhysVal.IDPVM.hardScatterStrategy == 4
165 if 'hardScatterSelectionTool' not in kwargs:
166 from InDetConfig.InDetHardScatterSelectionToolConfig
import (
167 InDetHardScatterSelectionToolCfg)
168 kwargs.setdefault(
"hardScatterSelectionTool", acc.popToolsAndMerge(
171 RedoHardScatter=
not doHyyHSSelection,
172 SelectionMode=flags.PhysVal.IDPVM.hardScatterStrategy,
174 JetContainer=flags.PhysVal.IDPVM.jetsNameForHardScatter,
175 VertexContainer=flags.PhysVal.IDPVM.PrimaryVertexContainer
179 assert flags.PhysVal.IDPVM.PrimaryVertexContainer ==
'HggPrimaryVertices'
181 kwargs.setdefault(
"FillTruthToRecoNtuple",
182 flags.PhysVal.IDPVM.doValidateTruthToRecoNtuple)
183 kwargs.setdefault(
"doTruthOriginPlots",
184 flags.PhysVal.IDPVM.doTruthOriginPlots)
185 kwargs.setdefault(
"doDuplicatePlots",
186 flags.PhysVal.IDPVM.doDuplicatePlots)
187 kwargs.setdefault(
"doPerAuthorPlots",
188 flags.PhysVal.IDPVM.doPerAuthorPlots)
189 kwargs.setdefault(
"doHitLevelPlots",
190 flags.PhysVal.IDPVM.doHitLevelPlots)
193 if not flags.PhysVal.IDPVM.doIDTIDE:
194 kwargs.setdefault(
"useVertexTruthMatchTool",
True)
195 kwargs.setdefault(
"VertexTruthMatchTool", acc.popToolsAndMerge(
198 if "trackTruthOriginTool" not in kwargs:
199 from InDetTrackSystematicsTools.InDetTrackSystematicsToolsConfig
import InDetTrackTruthOriginToolCfg
200 kwargs.setdefault(
"trackTruthOriginTool", acc.popToolsAndMerge(
204 if flags.PhysVal.IDPVM.setTruthStrategy
in [
'All',
'PileUp']:
205 if not(
"xAOD::TruthPileupEventContainer#TruthPileupEvents"
206 in flags.Input.TypedCollections):
207 print(
'WARNING Truth Strategy for InDetPhysValMonitoring set to %s but TruthPileupEvents are missing in the input' % (flags.PhysVal.IDPVM.setTruthStrategy))
208 kwargs.setdefault(
"PileupSwitch",
209 flags.PhysVal.IDPVM.setTruthStrategy)
211 elif flags.PhysVal.IDPVM.setTruthStrategy !=
'HardScatter':
212 print(
'WARNING Truth Strategy for for InDetPhysValMonitoring set to invalid option %s; valid flags are ["HardScatter", "All", "PileUp"]' % (
213 flags.PhysVal.IDPVM.setTruthStrategy))
217 kwargs.setdefault(
"TruthParticleContainerName",
'')
218 kwargs.setdefault(
"TruthVertexContainerName",
'')
219 kwargs.setdefault(
"TruthEvents",
'')
220 kwargs.setdefault(
"TruthPileupEvents",
'')
221 kwargs.setdefault(
"TruthSelectionTool",
None)
222 kwargs.setdefault(
"FillTruthToRecoNtuple",
False)
224 if flags.Detector.GeometryITk:
226 kwargs.setdefault(
"doTRTExtensionPlots",
False)
227 kwargs.setdefault(
"isITk",
True)
229 if flags.PhysVal.IDPVM.doTechnicalEfficiency:
230 kwargs.setdefault(
"fillTechnicalEfficiency",
True)
231 kwargs.setdefault(
"EtaBins", flags.Tracking.ITkMainPass.etaBins
if flags.Detector.GeometryITk
233 kwargs.setdefault(
"MinNumberClusters", flags.Tracking.ITkMainPass.minClusters
if flags.Detector.GeometryITk
234 else [flags.Tracking.MainPass.minClusters])
237 if flags.PhysVal.IDPVM.doPhysValOutput:
238 kwargs.setdefault(
"DetailLevel", 100)
240 elif flags.PhysVal.IDPVM.doExpertOutput:
241 kwargs.setdefault(
"DetailLevel", 200)
244 if flags.PhysVal.IDPVM.doIDTIDE:
245 kwargs.setdefault(
"doIDTIDEPlots",
True)
246 kwargs.setdefault(
"JetContainerName",
'AntiKt4EMPFlowJets')
247 kwargs.setdefault(
"FillTrackInJetPlots",
True)
250 kwargs.setdefault(
'JetAbsEtaMin', 0)
251 kwargs.setdefault(
'JetAbsEtaMax',
252 flags.PhysVal.IDPVM.JetAbsEtaMax)
253 kwargs.setdefault(
'maxTrkJetDR',
254 flags.PhysVal.IDPVM.maxTrkJetDR)
256 kwargs.setdefault(
'JetPtMin', 100)
257 kwargs.setdefault(
'JetPtMax', 5000)
259 kwargs.setdefault(
"doPRW", flags.PhysVal.IDPVM.doPRW)
261 acc.setPrivateTools(CompFactory.InDetPhysValMonitoringTool(**kwargs))