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 MaterialMappingCfg(configFlags,
71 name="MaterialMapping",
72 StoreTracks=False,
73 StoreSurfInfo=False,
74 OutputMappedMaterialTracks="OuputMappedMaterialTracks",
75 OutputUnmappedMaterialTracks="OutputUnmappedMaterialTracks",
76 **kwargs) :
77
78 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
79 from AthenaConfiguration.ComponentFactory import CompFactory
80 acc = ComponentAccumulator()
81
82 # Need geometry
83 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
84 acc.merge( ActsTrackingGeometrySvcCfg(configFlags))
85
86 mapwriters = [acc.popToolsAndMerge(RootMaterialWriterToolCfg(configFlags))]
87 kwargs.setdefault("MaterialMapWriters", mapwriters)
88
89 kwargs.setdefault("MappedMaterialTrackCollectionKey", OutputMappedMaterialTracks)
90 kwargs.setdefault("UnmappedMaterialTrackCollectionKey", OutputUnmappedMaterialTracks)
91
92
93
94 acc.addEventAlgo(CompFactory.ActsTrk.MaterialMapping(name, **kwargs), primary = True)
95
96 if StoreTracks:
97 from ActsConfig.ActsMaterialConfig import MaterialTrackWriterCfg
98 acc.merge(MaterialTrackWriterCfg(configFlags,
99 name="MappedMaterialTrackWriter",
100 FileName="material-tracks-mapped.root",
101 OutStream="ACTSMAPPEDMATERIALWRITER",
102 StoreSurface=StoreSurfInfo,
103 MaterialTrackCollectionKey=OutputMappedMaterialTracks))
104 acc.merge(MaterialTrackWriterCfg(configFlags,
105 name="UnmappedMaterialTrackWriter",
106 FileName="material-tracks-unmapped.root",
107 OutStream="ACTSUNMAPPEDMATERIALWRITER",
108 StoreSurface=StoreSurfInfo,
109 MaterialTrackCollectionKey=OutputUnmappedMaterialTracks))
110
111 return acc
112
113
114def MaterialValidationCfg(configFlags,
115 StoreTracks=True,
116 OutputMaterialTracks="OutputMaterialTracks",
117 name="MaterialValidation", **kwargs) :
118 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
119 from AthenaConfiguration.ComponentFactory import CompFactory
120 acc = ComponentAccumulator()
121
122 # Need geometry
123 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
124 acc.merge( ActsTrackingGeometrySvcCfg(configFlags))
125
126 kwargs.setdefault("MaterialTrackCollectionKey", OutputMaterialTracks)
127
128 acc.addEventAlgo(CompFactory.ActsTrk.MaterialValidation(name, **kwargs), primary = True)
129 if StoreTracks:
130 from ActsConfig.ActsMaterialConfig import MaterialTrackWriterCfg
131 acc.merge(MaterialTrackWriterCfg(configFlags,
132 FileName="material-tracks-validation.root",
133 MaterialTrackCollectionKey=OutputMaterialTracks))
134
135
136 return acc
137
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)