109 from InDetPhysValMonitoring.InDetPhysValDecorationConfig
import (
110 AddDecoratorIfNeededCfg)
112 kwargs.setdefault(
"useTrackSelection",
False)
113 kwargs.setdefault(
"EnableLumi",
False)
116 kwargs.setdefault(
'VertexContainerName', flags.PhysVal.IDPVM.PrimaryVertexContainer)
119 if flags.PhysVal.IDPVM.hardScatterStrategy
in [2, 3]:
121 from InDetPhysValMonitoring.addRecoJetsConfig
import (
122 AddRecoJetsIfNotExistingCfg)
124 flags, flags.PhysVal.IDPVM.jetsNameForHardScatter))
127 if flags.PhysVal.IDPVM.hardScatterStrategy == 3:
128 from InDetConfig.InDetGNNHardScatterSelectionConfig
import (
133 if flags.PhysVal.IDPVM.hardScatterStrategy == 4:
134 from DerivationFrameworkHiggs.HIGG1D1CustomVertexConfig
import DiPhotonVertexCfg
137 if flags.PhysVal.IDPVM.GRL:
138 kwargs.setdefault(
"useGRL",
True)
139 kwargs.setdefault(
'GoodRunsListSelectionTool', acc.popToolsAndMerge(
142 kwargs.setdefault(
"doIDTIDEPlots", flags.PhysVal.IDPVM.doIDTIDE)
143 kwargs.setdefault(
"setCSVName", flags.PhysVal.IDPVM.setCSVName)
145 if flags.PhysVal.IDPVM.doValidateTracksInJets:
146 kwargs.setdefault(
"JetContainerName", flags.PhysVal.IDPVM.jetCollection)
147 kwargs.setdefault(
"FillTrackInJetPlots",
True)
148 kwargs.setdefault(
'JetAbsEtaMin', 0)
149 kwargs.setdefault(
'JetAbsEtaMax', flags.PhysVal.IDPVM.JetAbsEtaMax)
150 kwargs.setdefault(
'JetPtMin', flags.PhysVal.IDPVM.JetPtMin)
151 kwargs.setdefault(
'JetPtMax', flags.PhysVal.IDPVM.JetPtMax)
152 kwargs.setdefault(
'maxTrkJetDR', flags.PhysVal.IDPVM.maxTrkJetDR)
153 kwargs.setdefault(
"FillTrackInBJetPlots",
154 flags.PhysVal.IDPVM.doValidateTracksInBJets)
156 kwargs.setdefault(
"JetContainerName",
'')
157 kwargs.setdefault(
"FillTrackInJetPlots",
False)
159 kwargs.setdefault(
"doPerAuthorPlots",
160 flags.PhysVal.IDPVM.doPerAuthorPlots)
162 if flags.Input.isMC
and not flags.PhysVal.IDPVM.doRecoOnly:
163 kwargs.setdefault(
"TruthParticleContainerName",
"TruthParticles")
164 if 'TruthSelectionTool' not in kwargs:
165 kwargs.setdefault(
"TruthSelectionTool", acc.popToolsAndMerge(
168 doHyyHSSelection = flags.PhysVal.IDPVM.hardScatterStrategy == 4
169 if 'hardScatterSelectionTool' not in kwargs:
170 from InDetConfig.InDetHardScatterSelectionToolConfig
import (
171 InDetHardScatterSelectionToolCfg)
172 kwargs.setdefault(
"hardScatterSelectionTool", acc.popToolsAndMerge(
175 RedoHardScatter=
not doHyyHSSelection,
176 SelectionMode=flags.PhysVal.IDPVM.hardScatterStrategy,
178 JetContainer=flags.PhysVal.IDPVM.jetsNameForHardScatter,
179 VertexContainer=flags.PhysVal.IDPVM.PrimaryVertexContainer
183 assert flags.PhysVal.IDPVM.PrimaryVertexContainer ==
'HggPrimaryVertices'
185 kwargs.setdefault(
"FillTruthToRecoNtuple",
186 flags.PhysVal.IDPVM.doValidateTruthToRecoNtuple)
187 kwargs.setdefault(
"doTruthOriginPlots",
188 flags.PhysVal.IDPVM.doTruthOriginPlots)
189 kwargs.setdefault(
"doDuplicatePlots",
190 flags.PhysVal.IDPVM.doDuplicatePlots)
191 kwargs.setdefault(
"doHitLevelPlots",
192 flags.PhysVal.IDPVM.doHitLevelPlots)
195 if not flags.PhysVal.IDPVM.doIDTIDE:
196 kwargs.setdefault(
"useVertexTruthMatchTool",
True)
197 kwargs.setdefault(
"VertexTruthMatchTool", acc.popToolsAndMerge(
200 if "trackTruthOriginTool" not in kwargs:
201 from InDetTrackSystematicsTools.InDetTrackSystematicsToolsConfig
import InDetTrackTruthOriginToolCfg
202 kwargs.setdefault(
"trackTruthOriginTool", acc.popToolsAndMerge(
206 if flags.PhysVal.IDPVM.setTruthStrategy
in [
'All',
'PileUp']:
207 if not(
"xAOD::TruthPileupEventContainer#TruthPileupEvents"
208 in flags.Input.TypedCollections):
209 print(
'WARNING Truth Strategy for InDetPhysValMonitoring set to %s but TruthPileupEvents are missing in the input' % (flags.PhysVal.IDPVM.setTruthStrategy))
210 kwargs.setdefault(
"PileupSwitch",
211 flags.PhysVal.IDPVM.setTruthStrategy)
213 elif flags.PhysVal.IDPVM.setTruthStrategy !=
'HardScatter':
214 print(
'WARNING Truth Strategy for for InDetPhysValMonitoring set to invalid option %s; valid flags are ["HardScatter", "All", "PileUp"]' % (
215 flags.PhysVal.IDPVM.setTruthStrategy))
219 kwargs.setdefault(
"TruthParticleContainerName",
'')
220 kwargs.setdefault(
"TruthVertexContainerName",
'')
221 kwargs.setdefault(
"TruthEvents",
'')
222 kwargs.setdefault(
"TruthPileupEvents",
'')
223 kwargs.setdefault(
"TruthSelectionTool",
None)
224 kwargs.setdefault(
"FillTruthToRecoNtuple",
False)
226 if flags.Detector.GeometryITk:
228 kwargs.setdefault(
"doTRTExtensionPlots",
False)
229 kwargs.setdefault(
"isITk",
True)
231 if flags.PhysVal.IDPVM.doTechnicalEfficiency:
232 kwargs.setdefault(
"fillTechnicalEfficiency",
True)
233 kwargs.setdefault(
"EtaBins", flags.Tracking.ITkMainPass.etaBins
if flags.Detector.GeometryITk
235 kwargs.setdefault(
"MinNumberClusters", flags.Tracking.ITkMainPass.minClusters
if flags.Detector.GeometryITk
236 else [flags.Tracking.MainPass.minClusters])
239 kwargs.setdefault(
"DetailLevel", 200
if flags.PhysVal.IDPVM.doExpertOutput
else 100)
242 if flags.PhysVal.IDPVM.doIDTIDE:
243 kwargs.setdefault(
"doIDTIDEPlots",
True)
244 kwargs.setdefault(
"JetContainerName",
'AntiKt4EMPFlowJets')
245 kwargs.setdefault(
"FillTrackInJetPlots",
True)
248 kwargs.setdefault(
'JetAbsEtaMin', 0)
249 kwargs.setdefault(
'JetAbsEtaMax',
250 flags.PhysVal.IDPVM.JetAbsEtaMax)
251 kwargs.setdefault(
'maxTrkJetDR',
252 flags.PhysVal.IDPVM.maxTrkJetDR)
254 kwargs.setdefault(
'JetPtMin', 100)
255 kwargs.setdefault(
'JetPtMax', 5000)
257 kwargs.setdefault(
"doPRW", flags.PhysVal.IDPVM.doPRW)
259 acc.setPrivateTools(CompFactory.InDetPhysValMonitoringTool(**kwargs))