ATLAS Offline Software
Loading...
Searching...
No Matches
ActsMaterialConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3def MaterialTrackRecorderCfg(configFlags, name="ActsTrk::UserActionSvc.MaterialTrackRecorderTool", **kwargs):
4 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory import CompFactory
6 acc = ComponentAccumulator()
7 acc.setPrivateTools(CompFactory.ActsTrk.MaterialTrackRecorderTool(name, **kwargs))
8 return acc
9
10
11def MaterialTrackRecorderUserActionSvcCfg(configFlags, name="ActsTrk::MaterialTrackRecorderUserActionSvc", **kwargs):
12 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
13 from AthenaConfiguration.ComponentFactory import CompFactory
14
15 acc = ComponentAccumulator()
16
17 #Setting up the CA for the MaterialStepRecorder
18 actionAcc = ComponentAccumulator()
19 actions = []
20 actions += [actionAcc.popToolsAndMerge(MaterialTrackRecorderCfg(configFlags))]
21 actionAcc.setPrivateTools(actions)
22 MaterialTrackRecorderAction = acc.popToolsAndMerge(actionAcc)
23
24 #Retrieving the default action list
25 from G4AtlasServices.G4AtlasUserActionConfig import getDefaultActions
26 defaultActions = acc.popToolsAndMerge(getDefaultActions(configFlags))
27
28 #Adding material recorder action to defaults
29 actionList = (defaultActions + MaterialTrackRecorderAction)
30
31 kwargs.setdefault("UserActionTools",actionList)
32 acc.addService(CompFactory.G4UA.UserActionSvc(name,**kwargs), primary = True)
33
34 return acc
35
36def MaterialTrackWriterCfg(configFlags, name="MaterialTrackWriter", FileName="MaterialTracks.root", **kwargs) :
37 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
38 from AthenaConfiguration.ComponentFactory import CompFactory
39 acc = ComponentAccumulator()
40 kwargs.setdefault("OutStream", "ACTSMATERIALWRITER")
41 kwargs.setdefault("useTrackingGeometry", True)
42
43 from MuonConfig.MuonConfigUtils import setupHistSvcCfg
44 acc.merge(setupHistSvcCfg(configFlags, outFile = FileName, outStream=kwargs["OutStream"]))
45
46 # Need geometry
47 if kwargs["useTrackingGeometry"]:
48 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
49 kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(configFlags)))
50 acc.addEventAlgo(CompFactory.ActsTrk.MaterialTrackWriter(name, **kwargs), primary = True)
51
52 return acc
53
54def MaterialTrackReaderCfg(configFlags, name="MaterialTrackReader", **kwargs) :
55 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
56 from AthenaConfiguration.ComponentFactory import CompFactory
57 acc = ComponentAccumulator()
58
59 acc.addEventAlgo(CompFactory.ActsTrk.MaterialTrackReader(name, **kwargs), primary = True)
60
61 return acc
62
63def RootMaterialWriterToolCfg(configFlags, name="RootMaterialWriterTool", **kwargs):
64 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
65 from AthenaConfiguration.ComponentFactory import CompFactory
66 acc = ComponentAccumulator()
67 acc.setPrivateTools(CompFactory.ActsTrk.RootMaterialWriterTool(name, **kwargs))
68 return acc
69
70def MaterialMappingCfg(configFlags, name="MaterialMapping", **kwargs) :
71 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
72 from AthenaConfiguration.ComponentFactory import CompFactory
73 acc = ComponentAccumulator()
74
75 # Need geometry
76 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
77 acc.merge( ActsTrackingGeometrySvcCfg(configFlags,
78 RunConsistencyChecks=False,
79 ObjDebugOutput=False))
80
81 mapwriters = [acc.popToolsAndMerge(RootMaterialWriterToolCfg(configFlags))]
82 kwargs.setdefault("MaterialMapWriters", mapwriters)
83
84 acc.addEventAlgo(CompFactory.ActsTrk.MaterialMapping(name, **kwargs), primary = True)
85
86 return acc
87
88
89def MaterialValidationCfg(configFlags, name="MaterialValidation", **kwargs) :
90 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
91 from AthenaConfiguration.ComponentFactory import CompFactory
92 acc = ComponentAccumulator()
93
94 # Need geometry
95 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
96 acc.merge( ActsTrackingGeometrySvcCfg(configFlags,
97 RunConsistencyChecks=False,
98 ObjDebugOutput=False))
99
100 acc.addEventAlgo(CompFactory.ActsTrk.MaterialValidation(name, **kwargs), primary = True)
101
102 return acc
103
MaterialValidationCfg(configFlags, name="MaterialValidation", **kwargs)
RootMaterialWriterToolCfg(configFlags, name="RootMaterialWriterTool", **kwargs)
MaterialTrackWriterCfg(configFlags, name="MaterialTrackWriter", FileName="MaterialTracks.root", **kwargs)
MaterialTrackReaderCfg(configFlags, name="MaterialTrackReader", **kwargs)
MaterialTrackRecorderCfg(configFlags, name="ActsTrk::UserActionSvc.MaterialTrackRecorderTool", **kwargs)
MaterialMappingCfg(configFlags, name="MaterialMapping", **kwargs)
MaterialTrackRecorderUserActionSvcCfg(configFlags, name="ActsTrk::MaterialTrackRecorderUserActionSvc", **kwargs)