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 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 JsonMaterialWriterToolCfg(configFlags, name="JsonMaterialWriterTool", **kwargs):
71 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
72 from AthenaConfiguration.ComponentFactory import CompFactory
73 acc = ComponentAccumulator()
74 acc.setPrivateTools(CompFactory.ActsTrk.JsonMaterialWriterTool(name, **kwargs))
75 return acc
76
77def MaterialMappingCfg(configFlags,
78 name="MaterialMapping",
79 StoreTracks=False,
80 StoreSurfInfo=False,
81 WriteJsonMaterialMap=True,
82 WriteRootMaterialMap=False,
83 OutputMappedMaterialTracks="OuputMappedMaterialTracks",
84 OutputUnmappedMaterialTracks="OutputUnmappedMaterialTracks",
85 **kwargs) :
86
87 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
88 from AthenaConfiguration.ComponentFactory import CompFactory
89 acc = ComponentAccumulator()
90
91 # Need geometry
92 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
93 acc.merge( ActsTrackingGeometrySvcCfg(configFlags))
94 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
95 acc.merge(AtlasFieldCacheCondAlgCfg(configFlags))
96 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
97 acc.merge(ActsGeometryContextAlgCfg(configFlags))
98
99 mapwriters = []
100 if WriteRootMaterialMap:
101 mapwriters += [acc.popToolsAndMerge(RootMaterialWriterToolCfg(configFlags))]
102 if WriteJsonMaterialMap:
103 mapwriters += [acc.popToolsAndMerge(JsonMaterialWriterToolCfg(configFlags))]
104 kwargs.setdefault("MaterialMapWriters", mapwriters)
105
106 kwargs.setdefault("MappedMaterialTrackCollectionKey", OutputMappedMaterialTracks)
107 kwargs.setdefault("UnmappedMaterialTrackCollectionKey", OutputUnmappedMaterialTracks)
108
109
110
111 acc.addEventAlgo(CompFactory.ActsTrk.MaterialMapping(name, **kwargs), primary = True)
112
113 if StoreTracks:
114 from ActsConfig.ActsMaterialConfig import MaterialTrackWriterCfg
115 acc.merge(MaterialTrackWriterCfg(configFlags,
116 name="MappedMaterialTrackWriter",
117 FileName="material-tracks-mapped.root",
118 OutStream="ACTSMAPPEDMATERIALWRITER",
119 StoreSurface=StoreSurfInfo,
120 MaterialTrackCollectionKey=OutputMappedMaterialTracks))
121 acc.merge(MaterialTrackWriterCfg(configFlags,
122 name="UnmappedMaterialTrackWriter",
123 FileName="material-tracks-unmapped.root",
124 OutStream="ACTSUNMAPPEDMATERIALWRITER",
125 StoreSurface=StoreSurfInfo,
126 MaterialTrackCollectionKey=OutputUnmappedMaterialTracks))
127
128 return acc
129
130
131def MaterialValidationCfg(configFlags,
132 StoreTracks=True,
133 OutputMaterialTracks="OutputMaterialTracks",
134 name="MaterialValidation", **kwargs) :
135 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
136 from AthenaConfiguration.ComponentFactory import CompFactory
137 acc = ComponentAccumulator()
138
139 # Need geometry
140 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
141 acc.merge( ActsTrackingGeometrySvcCfg(configFlags))
142 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
143 acc.merge(AtlasFieldCacheCondAlgCfg(configFlags))
144 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
145 acc.merge(ActsGeometryContextAlgCfg(configFlags))
146
147 kwargs.setdefault("MaterialTrackCollectionKey", OutputMaterialTracks)
148
149 acc.addEventAlgo(CompFactory.ActsTrk.MaterialValidation(name, **kwargs), primary = True)
150 if StoreTracks:
151 from ActsConfig.ActsMaterialConfig import MaterialTrackWriterCfg
152 acc.merge(MaterialTrackWriterCfg(configFlags,
153 FileName="material-tracks-validation.root",
154 MaterialTrackCollectionKey=OutputMaterialTracks))
155
156
157 return acc
158
MaterialTrackRecorderUserActionSvcCfg(configFlags, name="ActsTrk::MaterialTrackRecorderUserActionSvc", **kwargs)
MaterialTrackWriterCfg(configFlags, name="MaterialTrackWriter", FileName="material-tracks.root", OutStream="ACTSMATERIALWRITER", **kwargs)
JsonMaterialWriterToolCfg(configFlags, name="JsonMaterialWriterTool", **kwargs)
MaterialTrackReaderCfg(configFlags, name="MaterialTrackReader", **kwargs)
RootMaterialWriterToolCfg(configFlags, name="RootMaterialWriterTool", **kwargs)
MaterialValidationCfg(configFlags, StoreTracks=True, OutputMaterialTracks="OutputMaterialTracks", name="MaterialValidation", **kwargs)
MaterialMappingCfg(configFlags, name="MaterialMapping", StoreTracks=False, StoreSurfInfo=False, WriteJsonMaterialMap=True, WriteRootMaterialMap=False, OutputMappedMaterialTracks="OuputMappedMaterialTracks", OutputUnmappedMaterialTracks="OutputUnmappedMaterialTracks", **kwargs)
MaterialTrackRecorderCfg(configFlags, name="ActsTrk::UserActionSvc.MaterialTrackRecorderTool", **kwargs)