ATLAS Offline Software
testMuonDetector.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3 from AthenaConfiguration.ComponentFactory import CompFactory
4 from AthenaCommon.Constants import VERBOSE
5 
6 def MuonDetectorNavTestCfg(flags, name = "MuonDetectorNavTest", **kwargs):
7  result = ComponentAccumulator()
8  containerNames = []
9  if flags.Detector.EnableMDT:
10  containerNames+=["xMdtSimHits"]
11  if flags.Detector.EnableMM:
12  containerNames+=["xMmSimHits"]
13  if flags.Detector.EnableRPC:
14  containerNames+=["xRpcSimHits"]
15  if flags.Detector.EnableTGC:
16  containerNames+=["xTgcSimHits"]
17  if flags.Detector.EnablesTGC:
18  containerNames+=["xStgcSimHits"]
19 
20  from MuonTruthAlgsR4.MuonTruthAlgsConfig import TruthSegmentMakerCfg, TruthSegmentToTruthPartAssocCfg, SdoMultiTruthMakerCfg
21 
22  from MuonConfig.MuonTruthAlgsConfig import TruthMuonMakerAlgCfg, MuonTruthHitCountsAlgCfg
23  if ("TruthEvents" in flags.Input.Collections):
24  from xAODTruthCnv.RedoTruthLinksConfig import RedoTruthLinksAlgCfg
25  result.merge( RedoTruthLinksAlgCfg(flags) )
26  else:
27  from xAODTruthCnv.xAODTruthCnvConfig import GEN_AOD2xAODCfg
28  result.merge(GEN_AOD2xAODCfg(flags))
29 
30  result.merge(TruthMuonMakerAlgCfg(flags, pdgIds=[13,998,999]))
31  result.merge(MuonTruthHitCountsAlgCfg(flags))
32  result.merge(TruthSegmentToTruthPartAssocCfg(flags))
33  result.merge(SdoMultiTruthMakerCfg(flags))
34 
35  result.merge(TruthSegmentMakerCfg(flags, SimHitKeys=containerNames, useOnlyMuonHits = False))
36  kwargs.setdefault("StartFromFirstHit", True)
37 
38  from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
39  extp = result.popToolsAndMerge(AtlasExtrapolatorCfg(flags))
40  extp.ApplyMaterialEffects = False
41  kwargs.setdefault("Extrapolator", extp)
42 
43  the_alg = CompFactory.ActsTrk.MuonDetectorNavTest(name, **kwargs)
44  result.addEventAlgo(the_alg, primary = True)
45  return result
46 
47 if __name__=="__main__":
48  from MuonGeoModelTestR4.testGeoModel import setupGeoR4TestCfg, SetupArgParser
49  from MuonConfig.MuonConfigUtils import executeTest, setupHistSvcCfg
50  parser = SetupArgParser()
51  parser.set_defaults(inputFile=["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/MuonGeomRTT/R3SimHits.pool.root"])
52  parser.set_defaults(outRootFile="MuonNavigationTestR4_NewMaterial_Passive.root")
53  parser.set_defaults(nEvents=10)
54  parser.add_argument("--dumpDetector", help="Save dump detector visualization", action='store_true', default=False )
55  parser.add_argument("--dumpPassive", help="Save detector visualization", action='store_true', default=False )
56  parser.add_argument("--dumpDetectorVolumes", help="Save detector visualization", action='store_true', default=False )
57  parser.add_argument("--noSensitives", help="Do not use sensitive detectors", action='store_true', default=False )
58  parser.add_argument("--dumpMaterialSurfaces", help="Save material surfaces visualization", action='store_true', default=False )
59 
60  args = parser.parse_args()
61  from AthenaConfiguration.AllConfigFlags import initConfigFlags
62  flags = initConfigFlags()
63  flags.PerfMon.doFullMonMT = True
64  flags, cfg = setupGeoR4TestCfg(args,flags)
65 
66  cfg.merge(setupHistSvcCfg(flags, outFile=args.outRootFile, outStream="MuonNavigationTestR4"))
67  from ActsGeometry.DetectorVolumeSvcCfg import DetectorVolumeSvcCfg
68  cfg.merge(DetectorVolumeSvcCfg(flags))
69  from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
70  cfg.merge(AtlasFieldCacheCondAlgCfg(flags))
71  cfg.merge(MuonDetectorNavTestCfg(flags, OutputLevel=VERBOSE))
72  cfg.getPublicTool("MuonDetectorBuilderTool").dumpDetector = args.dumpDetector
73  cfg.getPublicTool("MuonDetectorBuilderTool").dumpPassive = args.dumpPassive
74  cfg.getPublicTool("MuonDetectorBuilderTool").dumpDetectorVolumes = args.dumpDetectorVolumes
75  cfg.getPublicTool("MuonDetectorBuilderTool").BuildSensitives = not args.noSensitives
76  cfg.getPublicTool("MuonDetectorBuilderTool").dumpMaterialSurfaces = args.dumpMaterialSurfaces
77 
78  executeTest(cfg)
MuonTruthAlgsConfig.TruthSegmentMakerCfg
def TruthSegmentMakerCfg(flags, name="TruthSegmentMakerAlg", **kwargs)
Definition: MuonPhaseII/MuonPatternRecognition/MuonTruthAlgsR4/python/MuonTruthAlgsConfig.py:7
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
MuonTruthAlgsConfig.SdoMultiTruthMakerCfg
def SdoMultiTruthMakerCfg(flags, useSDO=False)
Definition: MuonPhaseII/MuonPatternRecognition/MuonTruthAlgsR4/python/MuonTruthAlgsConfig.py:97
xAODTruthCnvConfig.GEN_AOD2xAODCfg
def GEN_AOD2xAODCfg(flags, name="GEN_AOD2xAOD", **kwargs)
Definition: xAODTruthCnvConfig.py:22
MuonTruthAlgsConfig.TruthSegmentToTruthPartAssocCfg
def TruthSegmentToTruthPartAssocCfg(flags, name="MuonTruthSegmentToTruthAssocAlg", **kwargs)
Definition: MuonPhaseII/MuonPatternRecognition/MuonTruthAlgsR4/python/MuonTruthAlgsConfig.py:141
RedoTruthLinksConfig.RedoTruthLinksAlgCfg
def RedoTruthLinksAlgCfg(flags)
Definition: RedoTruthLinksConfig.py:5
python.AtlasExtrapolatorConfig.AtlasExtrapolatorCfg
def AtlasExtrapolatorCfg(flags, name='AtlasExtrapolator')
Definition: AtlasExtrapolatorConfig.py:63
MdtCablingTester.SetupArgParser
def SetupArgParser()
Definition: MdtCablingTester.py:3
testGeoModel.setupGeoR4TestCfg
def setupGeoR4TestCfg(args, flags=None)
Definition: MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/python/testGeoModel.py:119
Constants
some useful constants -------------------------------------------------—
MuonConfigUtils.executeTest
def executeTest(cfg)
Definition: MuonConfigUtils.py:15
DetectorVolumeSvcCfg
Definition: DetectorVolumeSvcCfg.py:1
testMuonDetector.MuonDetectorNavTestCfg
def MuonDetectorNavTestCfg(flags, name="MuonDetectorNavTest", **kwargs)
Definition: testMuonDetector.py:6
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
MuonConfigUtils.setupHistSvcCfg
def setupHistSvcCfg(flags, str outFile, str outStream)
Configuration snippet to setup the THistSvc.
Definition: MuonConfigUtils.py:5
python.MagFieldServicesConfig.AtlasFieldCacheCondAlgCfg
def AtlasFieldCacheCondAlgCfg(flags, **kwargs)
Definition: MagFieldServicesConfig.py:8
MuonTruthAlgsConfig.MuonTruthHitCountsAlgCfg
def MuonTruthHitCountsAlgCfg(flags, name="MuonTruthHitSummaryAlg", **kwargs)
Definition: MuonConfig/python/MuonTruthAlgsConfig.py:49
MuonTruthAlgsConfig.TruthMuonMakerAlgCfg
def TruthMuonMakerAlgCfg(flags, name="TruthMuonMakerAlg", **kwargs)
Definition: MuonConfig/python/MuonTruthAlgsConfig.py:28