ATLAS Offline Software
MCTruthClassifier/python/MCTruthClassifierConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 __doc__ = """
4  Tool configuration to instantiate MCTruthClassifier
5  with default configurations."""
6 
7 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8 from AthenaConfiguration.ComponentFactory import CompFactory
9 from AthenaConfiguration.Enums import LHCPeriod, Project
10 
11 
12 def MCTruthClassifierCfg(flags, name="MCTruthClassifier", **kwargs):
13  """
14  This is the default configuration allowing all options.
15  By default, it does not do calo truth matching.
16  """
17  if flags.Common.Project not in [Project.AthGeneration, Project.AnalysisBase]:
18  kwargs.setdefault("ParticleCaloExtensionTool", "")
19  kwargs.setdefault("CaloDetDescrManager", "")
20  return MCTruthClassifierCaloTruthMatchCfg(flags, name, **kwargs)
21 
22 
23 def MCTruthClassifierCaloTruthMatchCfg(flags, name="MCTruthClassifier", **kwargs):
24  """
25  This is the default configuration allowing all options.
26  By default, it does calo truth matching using a
27  dedicated instance of the ParticleCaloExtensionTool
28  """
29  acc = ComponentAccumulator()
30 
31  if flags.Common.Project not in [Project.AthGeneration, Project.AnalysisBase]:
32  if "ParticleCaloExtensionTool" not in kwargs:
33 
34  from TrkConfig.AtlasExtrapolatorConfig import (
35  MCTruthClassifierExtrapolatorCfg)
36  extrapolator = acc.popToolsAndMerge(
38 
39  from TrackToCalo.TrackToCaloConfig import (
40  EMParticleCaloExtensionToolCfg)
42  flags, Extrapolator=extrapolator)
43  kwargs["ParticleCaloExtensionTool"] = acc.popToolsAndMerge(extension)
44 
45  kwargs.setdefault("CaloDetDescrManager", "CaloDetDescrManager")
46 
47  if flags.Input.Files and set(['StreamEVGEN', 'StreamEVNT']).isdisjoint(set(flags.Input.ProcessingTags)):
48  # Skip if running with no input file or running on EVNT files
49  if flags.GeoModel.Run >= LHCPeriod.Run4:
50  kwargs.setdefault("FwdElectronUseG4Sel", False)
51 
52  acc.setPrivateTools(CompFactory.MCTruthClassifier(**kwargs))
53  return acc
54 
55 
57  """Configure the MCTruthClassifier tool"""
58  acc = ComponentAccumulator()
59  acc.addPublicTool(acc.popToolsAndMerge(MCTruthClassifierCfg(flags, name = "DFCommonTruthClassifier")),
60  primary = True)
61  return acc
62 
63 
64 if __name__ == "__main__":
65 
66  from AthenaConfiguration.AllConfigFlags import initConfigFlags
67  from AthenaConfiguration.TestDefaults import defaultTestFiles
68  from AthenaCommon.Logging import logging
69 
70  from AthenaConfiguration.ComponentAccumulator import printProperties
71 
72  flags = initConfigFlags()
73  flags.Input.isMC = True
74  flags.Input.Files = defaultTestFiles.RDO_RUN2
75  flags.lock()
76 
77  mlog = logging.getLogger("MCTruthClassifierConfigTest")
78 
80 
81  mlog.info("Configuring standard MCTruthClassifier")
82  printProperties(mlog,
83  cfg.getPrimaryAndMerge(
84  MCTruthClassifierCfg(flags)),
85  nestLevel=1,
86  printDefaults=True)
87 
88  mlog.info("Configuring MCTruthClassifier with calo truth matching")
89  printProperties(mlog,
90  cfg.getPrimaryAndMerge(
92  nestLevel=1,
93  printDefaults=True)
94 
95  f = open("mctruthclassifer.pkl", "wb")
96  cfg.store(f)
97  f.close()
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
MCTruthClassifierConfig.DFCommonMCTruthClassifierCfg
def DFCommonMCTruthClassifierCfg(flags)
Definition: MCTruthClassifier/python/MCTruthClassifierConfig.py:56
python.AtlasExtrapolatorConfig.MCTruthClassifierExtrapolatorCfg
def MCTruthClassifierExtrapolatorCfg(flags, name='MCTruthClassifierExtrapolator')
Definition: AtlasExtrapolatorConfig.py:278
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
extractSporadic.printProperties
def printProperties(h, q, hLB)
Definition: extractSporadic.py:7
Trk::open
@ open
Definition: BinningType.h:40
TrackToCaloConfig.EMParticleCaloExtensionToolCfg
def EMParticleCaloExtensionToolCfg(flags, name='EMParticleCaloExtensionTool', **kwargs)
Definition: TrackToCaloConfig.py:30
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
MCTruthClassifierConfig.MCTruthClassifierCfg
def MCTruthClassifierCfg(flags, name="MCTruthClassifier", **kwargs)
Definition: MCTruthClassifier/python/MCTruthClassifierConfig.py:12
MCTruthClassifierConfig.MCTruthClassifierCaloTruthMatchCfg
def MCTruthClassifierCaloTruthMatchCfg(flags, name="MCTruthClassifier", **kwargs)
Definition: MCTruthClassifier/python/MCTruthClassifierConfig.py:23