ATLAS Offline Software
Loading...
Searching...
No Matches
ISF_ActsToolsConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2"""
3 ComponentAccumulator tool configuration for ISF_ActsTools
4"""
5
6from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7from AthenaConfiguration.ComponentFactory import CompFactory
8from AthenaCommon.Logging import logging
9from AthenaCommon.Constants import INFO
10from ISF_Algorithms.CollectionMergerConfig import CollectionMergerCfg
11
12def ActsFatrasWriteHandlerCfg(flags, name="ActsFatrasWriteHandler", **kwargs):
13 """Return ActsFatrasWriteHandler configured with ComponentAccumulator"""
14 acc = ComponentAccumulator()
15 mlog = logging.getLogger(name)
16 mlog.info('Start configuration ActsFatrasWriteHandler')
17
18 if flags.Detector.EnablePixel:
19 bare_collection_name = "PixelHits"
20 merger_input_property = "PixelHits"
21 region = "ID"
22 if flags.Detector.EnableITkPixel:
23 bare_collection_name = "ITkPixelHits"
24 merger_input_property = "ITkPixelHits"
25 region = "ITk"
26 mergeable_collection_suffix = "_Fatras"
27 acc_pixel, pixel_hits_collection_name = CollectionMergerCfg(flags,
28 bare_collection_name,
29 mergeable_collection_suffix,
30 merger_input_property,
31 region)
32 acc.merge(acc_pixel)
33
34 if flags.Detector.EnableSCT:
35 bare_collection_name = "SCT_Hits"
36 merger_input_property = "SCTHits"
37 region = "ID"
38 if flags.Detector.EnableITkPixel:
39 bare_collection_name = "ITkStripHits"
40 merger_input_property = "ITkStripHits"
41 region = "ITk"
42 acc_sct, sct_hits_collection_name = CollectionMergerCfg(flags,
43 bare_collection_name,
44 mergeable_collection_suffix,
45 merger_input_property,
46 region)
47 acc.merge(acc_sct)
48
49 kwargs.setdefault("PixelCollectionName", pixel_hits_collection_name)
50 kwargs.setdefault("SCTCollectionName", sct_hits_collection_name)
51
52 acc.setPrivateTools(CompFactory.ActsFatrasWriteHandler(name=name, **kwargs))
53 return acc
54
55def ActsFatrasSimToolCfg(flags, name="ISF_ActsFatrasSimTool", **kwargs):
56 """Return ISF_FatrasSimHitCreatorID configured with ComponentAccumulator"""
57 acc = ComponentAccumulator()
58 mlog = logging.getLogger(name)
59 mlog.info('Start configuration ISF_ActsFatraSimTool')
60
61 kwargs.setdefault("MaxSteps", 20000)
62
63 from ISF_FatrasServices.ISF_FatrasConfig import fatrasKinematicFilterCfg
64 kwargs.setdefault("ParticleFilter", acc.addPublicTool(acc.popToolsAndMerge(fatrasKinematicFilterCfg(flags))))
65 # added https://its.cern.ch/jira/browse/ATLASSIM-7245
66 from ISF_Services.ISF_ServicesConfig import TruthServiceCfg
67 kwargs.setdefault("TruthRecordService", acc.getPrimaryAndMerge(TruthServiceCfg(flags)))
68 from RngComps.RngCompsConfig import AthRNGSvcCfg
69 kwargs.setdefault("RNGService", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
70
71 # Ensure GeoIDSvc is configured
72 from ISF_Services.ISF_ServicesCoreConfig import ATLFAST_GeoIDSvcCfg
73 kwargs.setdefault("GeoIDSvc", acc.getPrimaryAndMerge(ATLFAST_GeoIDSvcCfg(flags)))
74
75 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
76 kwargs.setdefault("ExtrapolationTool", acc.popToolsAndMerge(ActsExtrapolationToolCfg(flags)))
77
78 tgSvc = acc.getService("ActsTrackingGeometrySvc")
79 tgSvc.OutputLevel = INFO
80 if flags.Detector.EnableITk:
81 tgSvc.printGeometry = False
82 tgSvc.UseBlueprint = True
83 tgSvc.BuildSubDetectors = ["Calo", "ITkPixel","ITkStrip","HGTD"]
84
85 kwargs.setdefault("ActsFatrasWriteHandler", acc.popToolsAndMerge(ActsFatrasWriteHandlerCfg(flags)))
86 writtenContainers =[]
87 if flags.Detector.EnablePixel:
88 if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ID', True)):
89 writtenContainers += [("SiHitCollection", "PixelHits_Fatras")]
90 if flags.Detector.EnableSCT:
91 if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ID', True)):
92 writtenContainers += [("SiHitCollection", "SCT_Hits_Fatras")]
93 if flags.Detector.EnableITkPixel:
94 if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ITk', True)):
95 writtenContainers += [("SiHitCollection", "ITkPixelHits_Fatras")]
96 if flags.Detector.EnableITkStrip:
97 if (flags.Sim.ISFRun and flags.Sim.ISF.HITSMergingRequired.get('ITk', True)):
98 writtenContainers += [("SiHitCollection", "ITkStripHits_Fatras")]
99 kwargs.setdefault("ExtraOutputs", writtenContainers)
100 acc.setPrivateTools(CompFactory.ISF.ActsFatrasSimTool(name, **kwargs))
101 return acc
ActsFatrasWriteHandlerCfg(flags, name="ActsFatrasWriteHandler", **kwargs)