ATLAS Offline Software
Loading...
Searching...
No Matches
MuonHitTestConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6def MuonHitTesterCfg(flags, name="MuonHitTester", outFile="SimHitTest.root", **kwargs):
7 result = ComponentAccumulator()
8 from MuonConfig.MuonConfigUtils import setupHistSvcCfg
9 result.merge(setupHistSvcCfg(flags,outFile=outFile, outStream="MuonR4HitTest"))
10 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
11 result.merge(ActsGeometryContextAlgCfg(flags))
12 kwargs.setdefault("isMC", flags.Input.isMC)
13
14 kwargs.setdefault("dumpPileUp", True)
15
16 kwargs.setdefault("dumpPrds", False)
17 kwargs.setdefault("dumpDigits", False)
18 kwargs.setdefault("dumpSimHits", True)
19 kwargs.setdefault("dumpSpacePoints", False)
20
21
24 kwargs.setdefault("dumpMdtSimHits", flags.Detector.GeometryMDT)
25 kwargs.setdefault("dumpRpcSimHits", flags.Detector.GeometryRPC)
26 kwargs.setdefault("dumpTgcSimHits", flags.Detector.GeometryTGC)
27 kwargs.setdefault("dumpStgcSimHits",flags.Detector.GeometrysTGC)
28 kwargs.setdefault("dumpMmSimHits", flags.Detector.GeometryMM)
29
30
31 kwargs.setdefault("dumpMdtDigits", flags.Detector.GeometryMDT)
32 kwargs.setdefault("dumpRpcDigits", flags.Detector.GeometryRPC)
33 kwargs.setdefault("dumpTgcDigits", flags.Detector.GeometryTGC)
34 kwargs.setdefault("dumpStgcDigits",flags.Detector.GeometrysTGC)
35 kwargs.setdefault("dumpMmDigits", flags.Detector.GeometryMM)
36
37 kwargs.setdefault("dumpMdtPrds", flags.Detector.GeometryMDT)
38 kwargs.setdefault("dumpRpcPrds", flags.Detector.GeometryRPC)
39 kwargs.setdefault("dumpTgcPrds", flags.Detector.GeometryTGC)
40 kwargs.setdefault("dumpMmPrds", flags.Detector.GeometryMM)
41
42 kwargs.setdefault("dumpMuonSpacePoints", flags.Detector.GeometryMDT or flags.Detector.GeometryRPC or flags.Detector.GeometryTGC)
43 kwargs.setdefault("dumpNswSpacePoints", flags.Detector.GeometrysTGC or flags.Detector.GeometryMM)
44 if kwargs.get("dumpSpacePoints"):
45 from MuonSpacePointFormation.SpacePointFormationConfig import MuonSpacePointFormationCfg
46 result.merge( MuonSpacePointFormationCfg( flags ) )
47
48 theAlg = CompFactory.MuonValR4.MuonHitTesterAlg(name, **kwargs)
49 result.addEventAlgo(theAlg, primary = True)
50 return result
51
52
53def MuonDigiTestCfg(flags, name="MuonDigiTester", outFile="DigiTest.root", **kwargs):
54 kwargs.setdefault("MdtSimHitKey", "MDT_SDO")
55 kwargs.setdefault("RpcSimHitKey", "RPC_SDO")
56 kwargs.setdefault("TgcSimHitKey", "TGC_SDO")
57 kwargs.setdefault("MmSimHitKey", "MM_SDO")
58 kwargs.setdefault("sTgcSimHitKey", "sTGC_SDO")
59 kwargs.setdefault("dumpDigits", True)
60 return MuonHitTesterCfg(flags, name = name, outFile = outFile, **kwargs)
61
62def MuonPileUpTestCfg(flags, name="MuonDigiTester", outFile="DigiTest.root", **kwargs):
63 kwargs.setdefault("MdtSimHitKey", "Bkg_MDT_SDO")
64 kwargs.setdefault("RpcSimHitKey", "Bkg_RPC_SDO")
65 kwargs.setdefault("TgcSimHitKey", "Bkg_TGC_SDO")
66 kwargs.setdefault("MmSimHitKey", "Bkg_MM_SDO")
67 kwargs.setdefault("sTgcSimHitKey", "Bkg_sTGC_SDO")
68 kwargs.setdefault("EvtInfoKey", "Bkg_EventInfo")
69 kwargs.setdefault("dumpDigits", True)
70 return MuonHitTesterCfg(flags, name = name, outFile = outFile, **kwargs)
71
72
73if __name__=="__main__":
74 from MuonGeoModelTestR4.testGeoModel import setupGeoR4TestCfg, SetupArgParser, MuonPhaseIITestDefaults
75 from MuonConfig.MuonConfigUtils import executeTest
76 parser = SetupArgParser()
77 parser.add_argument("--runTester", help="Choice on the tester to setup", default="SIM", choices=["SIM", "DIGI", "PILEUP"])
78 parser.set_defaults(nEvents = -1)
79 parser.set_defaults(inputFile= MuonPhaseIITestDefaults.HITS_PG_R3)
80 parser.set_defaults(outRootFile="SimHitDumpNtuple.root")
81
82 args = parser.parse_args()
83 flags, cfg = setupGeoR4TestCfg(args)
84
85 from MuonConfig.MuonDataPrepConfig import xAODUncalibMeasPrepCfg
86 cfg.merge(xAODUncalibMeasPrepCfg(flags))
87
88 if args.runTester != "SIM":
89 if flags.Detector.GeometryMDT:
90 from MuonConfig.MuonByteStreamCnvTestConfig import MdtRdoToMdtDigitCfg
91 cfg.merge(MdtRdoToMdtDigitCfg(flags))
92 if flags.Detector.GeometryRPC:
93 from MuonConfig.MuonByteStreamCnvTestConfig import RpcRdoToRpcDigitCfg
94 cfg.merge(RpcRdoToRpcDigitCfg(flags))
95 if flags.Detector.GeometryTGC:
96 from MuonConfig.MuonByteStreamCnvTestConfig import TgcRdoToTgcDigitCfg
97 cfg.merge(TgcRdoToTgcDigitCfg(flags))
98 if flags.Detector.GeometrysTGC:
99 from MuonConfig.MuonByteStreamCnvTestConfig import STGC_RdoToDigitCfg
100 cfg.merge(STGC_RdoToDigitCfg(flags))
101 if flags.Detector.GeometryMM:
102 from MuonConfig.MuonByteStreamCnvTestConfig import MM_RdoToDigitCfg
103 cfg.merge(MM_RdoToDigitCfg(flags))
104
105 if args.runTester == "SIM":
106 cfg.merge(MuonHitTesterCfg(flags,outFile=args.outRootFile))
107 elif args.runTester == "DIGI":
108 cfg.merge(MuonDigiTestCfg(flags,outFile=args.outRootFile))
109 elif args.runTester == "PILEUP":
110 cfg.merge(MuonPileUpTestCfg(flags,outFile=args.outRootFile))
111
112 executeTest(cfg)
113
MuonHitTesterCfg(flags, name="MuonHitTester", outFile="SimHitTest.root", **kwargs)
MuonDigiTestCfg(flags, name="MuonDigiTester", outFile="DigiTest.root", **kwargs)
MuonPileUpTestCfg(flags, name="MuonDigiTester", outFile="DigiTest.root", **kwargs)