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,
37 name="MaterialTrackWriter",
38 FileName="material-tracks.root",
39 OutStream="ACTSMATERIALWRITER",
40 **kwargs) :
41 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
42 from AthenaConfiguration.ComponentFactory import CompFactory
43 acc = ComponentAccumulator()
44 kwargs.setdefault("OutStream", OutStream)
45 kwargs.setdefault("useTrackingGeometry", True)
46
47 from MuonConfig.MuonConfigUtils import setupHistSvcCfg
48 acc.merge(setupHistSvcCfg(configFlags, outFile = FileName, outStream=kwargs["OutStream"]))
49
50 # Need geometry
51 if kwargs["useTrackingGeometry"]:
52 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
53 kwargs.setdefault("TrackingGeometryTool", acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(configFlags)))
54 acc.addEventAlgo(CompFactory.ActsTrk.MaterialTrackWriter(name, **kwargs), primary = True)
55
56 return acc
57
58def MaterialTrackReaderCfg(configFlags, name="MaterialTrackReader", **kwargs) :
59 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
60 from AthenaConfiguration.ComponentFactory import CompFactory
61 acc = ComponentAccumulator()
62
63 acc.addEventAlgo(CompFactory.ActsTrk.MaterialTrackReader(name, **kwargs), primary = True)
64
65 return acc
66
67def RootMaterialWriterToolCfg(configFlags, name="RootMaterialWriterTool", **kwargs):
68 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
69 from AthenaConfiguration.ComponentFactory import CompFactory
70 acc = ComponentAccumulator()
71 acc.setPrivateTools(CompFactory.ActsTrk.RootMaterialWriterTool(name, **kwargs))
72 return acc
73
74def MaterialMappingCfg(configFlags,
75 name="MaterialMapping",
76 StoreTracks=False,
77 StoreSurfInfo=False,
78 OutputMappedMaterialTracks="OuputMappedMaterialTracks",
79 OutputUnmappedMaterialTracks="OutputUnmappedMaterialTracks",
80 **kwargs) :
81
82 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
83 from AthenaConfiguration.ComponentFactory import CompFactory
84 acc = ComponentAccumulator()
85
86 # Need geometry
87 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
88 acc.merge( ActsTrackingGeometrySvcCfg(configFlags))
89
90 mapwriters = [acc.popToolsAndMerge(RootMaterialWriterToolCfg(configFlags))]
91 kwargs.setdefault("MaterialMapWriters", mapwriters)
92
93 kwargs.setdefault("MappedMaterialTrackCollectionKey", OutputMappedMaterialTracks)
94 kwargs.setdefault("UnmappedMaterialTrackCollectionKey", OutputUnmappedMaterialTracks)
95
96
97
98 acc.addEventAlgo(CompFactory.ActsTrk.MaterialMapping(name, **kwargs), primary = True)
99
100 if StoreTracks:
101 from ActsConfig.ActsMaterialConfig import MaterialTrackWriterCfg
102 acc.merge(MaterialTrackWriterCfg(configFlags,
103 name="MappedMaterialTrackWriter",
104 FileName="material-tracks-mapped.root",
105 OutStream="ACTSMAPPEDMATERIALWRITER",
106 StoreSurface=StoreSurfInfo,
107 MaterialTrackCollectionKey=OutputMappedMaterialTracks))
108 acc.merge(MaterialTrackWriterCfg(configFlags,
109 name="UnmappedMaterialTrackWriter",
110 FileName="material-tracks-unmapped.root",
111 OutStream="ACTSUNMAPPEDMATERIALWRITER",
112 StoreSurface=StoreSurfInfo,
113 MaterialTrackCollectionKey=OutputUnmappedMaterialTracks))
114
115 return acc
116
117
118def MaterialValidationCfg(configFlags,
119 StoreTracks=True,
120 OutputMaterialTracks="OutputMaterialTracks",
121 name="MaterialValidation", **kwargs) :
122 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
123 from AthenaConfiguration.ComponentFactory import CompFactory
124 acc = ComponentAccumulator()
125
126 # Need geometry
127 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
128 acc.merge( ActsTrackingGeometrySvcCfg(configFlags))
129
130 kwargs.setdefault("MaterialTrackCollectionKey", OutputMaterialTracks)
131
132 acc.addEventAlgo(CompFactory.ActsTrk.MaterialValidation(name, **kwargs), primary = True)
133 if StoreTracks:
134 from ActsConfig.ActsMaterialConfig import MaterialTrackWriterCfg
135 acc.merge(MaterialTrackWriterCfg(configFlags,
136 FileName="material-tracks-validation.root",
137 MaterialTrackCollectionKey=OutputMaterialTracks))
138
139
140 return acc
141
MaterialValidationCfg(configFlags, StoreTracks=True, OutputMaterialTracks="OutputMaterialTracks", name="MaterialValidation", **kwargs)
RootMaterialWriterToolCfg(configFlags, name="RootMaterialWriterTool", **kwargs)
MaterialMappingCfg(configFlags, name="MaterialMapping", StoreTracks=False, StoreSurfInfo=False, OutputMappedMaterialTracks="OuputMappedMaterialTracks", OutputUnmappedMaterialTracks="OutputUnmappedMaterialTracks", **kwargs)
MaterialTrackReaderCfg(configFlags, name="MaterialTrackReader", **kwargs)
MaterialTrackRecorderCfg(configFlags, name="ActsTrk::UserActionSvc.MaterialTrackRecorderTool", **kwargs)
MaterialTrackRecorderUserActionSvcCfg(configFlags, name="ActsTrk::MaterialTrackRecorderUserActionSvc", **kwargs)
MaterialTrackWriterCfg(configFlags, name="MaterialTrackWriter", FileName="material-tracks.root", OutStream="ACTSMATERIALWRITER", **kwargs)