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 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
86 acc.merge(AtlasFieldCacheCondAlgCfg(configFlags))
87 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
88 acc.merge(ActsGeometryContextAlgCfg(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 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
130 acc.merge(AtlasFieldCacheCondAlgCfg(configFlags))
131 from ActsAlignmentAlgs.AlignmentAlgsConfig import ActsGeometryContextAlgCfg
132 acc.merge(ActsGeometryContextAlgCfg(configFlags))
133
134 kwargs.setdefault("MaterialTrackCollectionKey", OutputMaterialTracks)
135
136 acc.addEventAlgo(CompFactory.ActsTrk.MaterialValidation(name, **kwargs), primary = True)
137 if StoreTracks:
138 from ActsConfig.ActsMaterialConfig import MaterialTrackWriterCfg
139 acc.merge(MaterialTrackWriterCfg(configFlags,
140 FileName="material-tracks-validation.root",
141 MaterialTrackCollectionKey=OutputMaterialTracks))
142
143
144 return acc
145
MaterialTrackRecorderUserActionSvcCfg(configFlags, name="ActsTrk::MaterialTrackRecorderUserActionSvc", **kwargs)
MaterialTrackWriterCfg(configFlags, name="MaterialTrackWriter", FileName="material-tracks.root", OutStream="ACTSMATERIALWRITER", **kwargs)
MaterialMappingCfg(configFlags, name="MaterialMapping", StoreTracks=False, StoreSurfInfo=False, OutputMappedMaterialTracks="OuputMappedMaterialTracks", OutputUnmappedMaterialTracks="OutputUnmappedMaterialTracks", **kwargs)
MaterialTrackReaderCfg(configFlags, name="MaterialTrackReader", **kwargs)
RootMaterialWriterToolCfg(configFlags, name="RootMaterialWriterTool", **kwargs)
MaterialValidationCfg(configFlags, StoreTracks=True, OutputMaterialTracks="OutputMaterialTracks", name="MaterialValidation", **kwargs)
MaterialTrackRecorderCfg(configFlags, name="ActsTrk::UserActionSvc.MaterialTrackRecorderTool", **kwargs)