102 from InDetPhysValMonitoring.InDetPhysValDecorationConfig
import (
103 AddDecoratorIfNeededCfg)
105 kwargs.setdefault(
"useTrackSelection",
False)
106 kwargs.setdefault(
"EnableLumi",
False)
109 kwargs.setdefault(
'VertexContainerName', flags.PhysVal.IDPVM.PrimaryVertexContainer)
112 if flags.PhysVal.IDPVM.hardScatterStrategy == 2:
114 from InDetPhysValMonitoring.addRecoJetsConfig
import (
115 AddRecoJetsIfNotExistingCfg)
117 flags, flags.PhysVal.IDPVM.jetsNameForHardScatter))
120 if flags.PhysVal.IDPVM.hardScatterStrategy == 3:
121 from DerivationFrameworkHiggs.HIGG1D1CustomVertexConfig
import DiPhotonVertexCfg
124 if flags.PhysVal.IDPVM.GRL:
125 kwargs.setdefault(
"useGRL",
True)
126 kwargs.setdefault(
'GoodRunsListSelectionTool', acc.popToolsAndMerge(
129 if flags.Input.isMC
and not flags.PhysVal.IDPVM.doRecoOnly:
130 kwargs.setdefault(
"TruthParticleContainerName",
"TruthParticles")
131 if 'TruthSelectionTool' not in kwargs:
132 kwargs.setdefault(
"TruthSelectionTool", acc.popToolsAndMerge(
135 doHyyHSSelection = flags.PhysVal.IDPVM.hardScatterStrategy == 3
136 if 'hardScatterSelectionTool' not in kwargs:
137 from InDetConfig.InDetHardScatterSelectionToolConfig
import (
138 InDetHardScatterSelectionToolCfg)
139 kwargs.setdefault(
"hardScatterSelectionTool", acc.popToolsAndMerge(
142 RedoHardScatter=
not doHyyHSSelection,
143 SelectionMode=flags.PhysVal.IDPVM.hardScatterStrategy,
145 JetContainer=flags.PhysVal.IDPVM.jetsNameForHardScatter,
146 VertexContainer=flags.PhysVal.IDPVM.PrimaryVertexContainer
150 assert flags.PhysVal.IDPVM.PrimaryVertexContainer ==
'HggPrimaryVertices'
152 if flags.PhysVal.IDPVM.doValidateTracksInJets:
153 kwargs.setdefault(
"JetContainerName",
'AntiKt4EMPFlowJets')
154 kwargs.setdefault(
"FillTrackInJetPlots",
True)
156 if (
"xAOD::JetContainer#AntiKt4TruthJets"
157 not in flags.Input.TypedCollections):
158 from InDetPhysValMonitoring.addTruthJetsConfig
import (
159 AddTruthJetsIfNotExistingCfg)
162 if flags.PhysVal.IDPVM.doValidateTracksInBJets:
163 kwargs.setdefault(
"FillTrackInBJetPlots",
True)
166 kwargs.setdefault(
"JetContainerName",
'')
167 kwargs.setdefault(
"FillTrackInJetPlots",
False)
169 kwargs.setdefault(
"FillTruthToRecoNtuple",
170 flags.PhysVal.IDPVM.doValidateTruthToRecoNtuple)
171 kwargs.setdefault(
"doTruthOriginPlots",
172 flags.PhysVal.IDPVM.doTruthOriginPlots)
173 kwargs.setdefault(
"doDuplicatePlots",
174 flags.PhysVal.IDPVM.doDuplicatePlots)
175 kwargs.setdefault(
"doPerAuthorPlots",
176 flags.PhysVal.IDPVM.doPerAuthorPlots)
177 kwargs.setdefault(
"doHitLevelPlots",
178 flags.PhysVal.IDPVM.doHitLevelPlots)
181 kwargs.setdefault(
"useVertexTruthMatchTool",
True)
182 kwargs.setdefault(
"VertexTruthMatchTool", acc.popToolsAndMerge(
185 if "trackTruthOriginTool" not in kwargs:
186 from InDetTrackSystematicsTools.InDetTrackSystematicsToolsConfig
import InDetTrackTruthOriginToolCfg
187 kwargs.setdefault(
"trackTruthOriginTool", acc.popToolsAndMerge(
191 if flags.PhysVal.IDPVM.setTruthStrategy
in [
'All',
'PileUp']:
192 if not(
"xAOD::TruthPileupEventContainer#TruthPileupEvents"
193 in flags.Input.TypedCollections):
194 print(
'WARNING Truth Strategy for InDetPhysValMonitoring set to %s but TruthPileupEvents are missing in the input' % (flags.PhysVal.IDPVM.setTruthStrategy))
195 kwargs.setdefault(
"PileupSwitch",
196 flags.PhysVal.IDPVM.setTruthStrategy)
198 elif flags.PhysVal.IDPVM.setTruthStrategy !=
'HardScatter':
199 print(
'WARNING Truth Strategy for for InDetPhysValMonitoring set to invalid option %s; valid flags are ["HardScatter", "All", "PileUp"]' % (
200 flags.PhysVal.IDPVM.setTruthStrategy))
204 kwargs.setdefault(
"TruthParticleContainerName",
'')
205 kwargs.setdefault(
"TruthVertexContainerName",
'')
206 kwargs.setdefault(
"TruthEvents",
'')
207 kwargs.setdefault(
"TruthPileupEvents",
'')
208 kwargs.setdefault(
"TruthSelectionTool",
None)
210 kwargs.setdefault(
"JetContainerName",
'')
211 kwargs.setdefault(
"FillTrackInJetPlots",
False)
212 kwargs.setdefault(
"FillTrackInBJetPlots",
False)
213 kwargs.setdefault(
"FillTruthToRecoNtuple",
False)
215 if flags.Detector.GeometryITk:
217 kwargs.setdefault(
"doTRTExtensionPlots",
False)
219 if flags.PhysVal.IDPVM.doTechnicalEfficiency:
220 kwargs.setdefault(
"fillTechnicalEfficiency",
True)
221 kwargs.setdefault(
"EtaBins", flags.Tracking.ITkMainPass.etaBins
if flags.Detector.GeometryITk
223 kwargs.setdefault(
"MinNumberClusters", flags.Tracking.ITkMainPass.minClusters
if flags.Detector.GeometryITk
224 else [flags.Tracking.MainPass.minClusters])
227 if flags.PhysVal.IDPVM.doPhysValOutput:
228 kwargs.setdefault(
"DetailLevel", 100)
230 elif flags.PhysVal.IDPVM.doExpertOutput:
231 kwargs.setdefault(
"DetailLevel", 200)
234 if flags.PhysVal.IDPVM.doIDTIDE:
235 kwargs.setdefault(
"doIDTIDEPlots",
True)
236 kwargs.setdefault(
"JetContainerName",
'AntiKt4EMPFlowJets')
237 kwargs.setdefault(
"FillTrackInJetPlots",
True)
240 kwargs.setdefault(
'JetAbsEtaMin', 0)
241 kwargs.setdefault(
'JetAbsEtaMax',
242 flags.PhysVal.IDPVM.JetAbsEtaMax)
243 kwargs.setdefault(
'maxTrkJetDR',
244 flags.PhysVal.IDPVM.maxTrkJetDR)
246 kwargs.setdefault(
'JetPtMin', 100)
247 kwargs.setdefault(
'JetPtMax', 5000)
249 kwargs.setdefault(
"doPRW", flags.PhysVal.IDPVM.doPRW)
251 acc.setPrivateTools(CompFactory.InDetPhysValMonitoringTool(**kwargs))