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