9def ITkMaterialMappingCfg(flags, name="ITkMaterialMapping", **kwargs):
10 """Return configured ComponentAccumulator and tool for MaterialMapping"""
11
12 result=ComponentAccumulator()
13 LayerMaterialName = 'LayerMaterialITK'
14 LayerMaterialDirectory = '/GLOBAL/TrackingGeo/'
15
16
17 from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import TrackingGeometryCondAlgCfg
18 result.merge( TrackingGeometryCondAlgCfg(flags) )
19 geom_cond_key = 'AtlasTrackingGeometry'
20 kwargs.setdefault("TrackingGeometryReadKey", geom_cond_key)
21
22 if 'MappingVolumeName' not in kwargs :
23 if flags.Detector.GeometryHGTD:
24 kwargs.setdefault("MappingVolumeName", 'HGTD::Detectors::HGTD')
25 else:
26 kwargs.setdefault("MappingVolumeName", 'InDet::Containers::InnerDetector')
27
28 if 'ExtrapolationEngine' not in kwargs :
29 from TrkConfig.AtlasExtrapolationEngineConfig import AtlasExtrapolationEngineCfg
30 kwargs.setdefault("ExtrapolationEngine", result.getPrimaryAndMerge(AtlasExtrapolationEngineCfg(flags)))
31
32 if 'MaterialMapper' not in kwargs :
33 MaterialMapper = CompFactory.Trk.MaterialMapper("MaterialMapper")
34 kwargs.setdefault("MaterialMapper", MaterialMapper)
35
36 if 'LayerMaterialRecordAnalyser' not in kwargs :
37 LayerMaterialAnalyser = CompFactory.Trk.LayerMaterialAnalyser(name="LayerMaterialRecordAnalyser")
38 kwargs.setdefault("LayerMaterialRecordAnalyser", LayerMaterialAnalyser)
39
40 if 'LayerMaterialCreators' not in kwargs :
41 BinnedLayerMaterialCreator = CompFactory.Trk.BinnedLayerMaterialCreator(name="BinnedLayerMaterialCreator")
42 BinnedLayerMaterialCreator.LayerMaterialName = LayerMaterialName
43 BinnedLayerMaterialCreator.LayerMaterialDirectory = LayerMaterialDirectory
44 LayerMaterialCreators = [BinnedLayerMaterialCreator]
45 kwargs.setdefault("LayerMaterialCreators", LayerMaterialCreators)
46
47 if 'LayerMaterialAnalysers' not in kwargs :
48 BinnedLayerMaterialAnalyser = CompFactory.Trk.LayerMaterialAnalyser(name="BinnedLayerMaterialAnalyser")
49 BinnedLayerMaterialAnalyser.LayerMaterialName = LayerMaterialName
50 BinnedLayerMaterialAnalyser.ValidationTreeName = 'BinnedLayerMaterialAnalyser'
51 BinnedLayerMaterialAnalyser.ValidationTreeDescription = 'Output of the BinnedLayerMaterialAnalyser'
52 BinnedLayerMaterialAnalyser.ValidationTreeFolder = '/val/BinnedLayerMaterialAnalyser'
53 LayerMaterialAnalysers = [ BinnedLayerMaterialAnalyser ]
54 kwargs.setdefault("LayerMaterialAnalysers", LayerMaterialAnalysers)
55
56 histSvc = CompFactory.THistSvc(Output = ["val DATAFILE='AtlasGeant4Geometry.root' TYPE='ROOT' OPT='RECREATE'"])
57 result.addService( histSvc )
58
59 algo = CompFactory.Trk.MaterialMapping(name=name, **kwargs)
60 result.addEventAlgo(algo, primary = True)
61
62 from RegistrationServices.OutputConditionsAlgConfig import OutputConditionsAlgCfg
63 result.merge(OutputConditionsAlgCfg(flags, name = "CondAlg_Material",
64 outputFile="AtlasLayerMaterial.pool.root",
65 ObjectList=['Trk::LayerMaterialMap#'+LayerMaterialDirectory+LayerMaterialName],
66 WriteIOV=True,IOVTagList=[flags.ITk.trackingGeometry.materialTag+str(flags.ITk.trackingGeometry.version)] ))
67
68 result.addService(CompFactory.IOVRegistrationSvc(RecreateFolders = True))
69
70 return result
71
72