9 from __future__
import print_function
10 from AthenaConfiguration.ComponentFactory
import CompFactory
11 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
15 """Given the list of TrackCollection keys from the input file, try to guess
16 which one is aliased to Tracks."""
18 for a
in [
'CombinedInDetTracks',
21 'ConvertedIPatTracks',
22 'ConvertedXKalmanTracks',
24 if a
in tcolls:
return a
29 """Configure an algorithm to read a TrackCollection.
30 KEY is the desired TrackCollection key.
31 Will do nothing in serial mode, or if the requested object is not
36 if flags.Concurrency.NumThreads <= 0:
41 from AthenaConfiguration.AutoConfigFlags
import GetFileMD
42 tcolls = set ([k
for t,k
in GetFileMD (flags.Input.Files).
get(
'itemList', [])
43 if t ==
'TrackCollection'])
44 tracks_alias = _guessTracksAlias (tcolls)
47 if key ==
'Tracks' and tracks_alias
is not None and key
not in tcolls:
56 if key == tracks_alias
and 'Tracks' not in tcolls:
60 if flags.Detector.GeometryPixel:
61 extra_inputs.append((
'InDetDD::SiDetectorElementCollection',
'ConditionStore+PixelDetectorElementCollection'))
62 if flags.Detector.GeometrySCT:
63 extra_inputs.append((
'InDetDD::SiDetectorElementCollection',
'ConditionStore+SCT_DetectorElementCollection'))
64 if flags.Detector.GeometryTRT:
65 extra_inputs.append((
'InDetDD::TRT_DetElementContainer' ,
'ConditionStore+TRT_DetElementContainer' ))
66 if flags.Detector.GeometryITkPixel:
67 extra_inputs.append((
'InDetDD::SiDetectorElementCollection' ,
'ConditionStore+ITkPixelDetectorElementCollection' ))
68 if flags.Detector.GeometryITkStrip:
69 extra_inputs.append((
'InDetDD::SiDetectorElementCollection' ,
'ConditionStore+ITkStripDetectorElementCollection' ))
70 if flags.Detector.GeometryMuon:
71 extra_inputs.append((
'MuonGM::MuonDetectorManager',
'ConditionStore+MuonDetectorManager'))
74 AthReadAlg=CompFactory.AthReadAlg
75 alg = AthReadAlg (
'TrackCollectionRead_' + key,
76 Key =
'TrackCollection/' + key,
78 ExtraInputs = extra_inputs)
79 result.addEventAlgo (alg)
82 from SGComps.AddressRemappingConfig
import AddressRemappingCfg
87 if __name__ ==
"__main__":
88 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
91 from AthenaConfiguration.TestDefaults
import defaultTestFiles
93 print (
'--- Reference aliased object by base name.')
94 flags1 = flags.clone()
95 flags1.Concurrency.NumThreads = 1
96 flags1.Input.Files = defaultTestFiles.ESD
98 acc1 = TrackCollectionReadCfg (flags1,
'CombinedInDetTracks')
99 acc1.printConfig (summariseProps=
True)
102 print (
'--- Reference aliased object by alias.')
103 flags2 = flags.clone()
104 flags2.Concurrency.NumThreads = 1
105 flags2.Input.Files = defaultTestFiles.ESD
107 acc2 = TrackCollectionReadCfg (flags2,
'Tracks')
108 acc2.printConfig (summariseProps=
True)
111 print (
'--- Non-aliased object.')
112 flags3 = flags.clone()
113 flags3.Concurrency.NumThreads = 1
114 flags3.Input.Files = defaultTestFiles.ESD
116 acc3 = TrackCollectionReadCfg (flags3,
'ResolvedForwardTracks')
117 acc3.printConfig (summariseProps=
True)
120 print (
'--- Non-existent object.')
121 flags4 = flags.clone()
122 flags4.Concurrency.NumThreads = 1
123 flags4.Input.Files = defaultTestFiles.ESD
125 acc4 = TrackCollectionReadCfg (flags4,
'FooTracks')
126 acc4.printConfig (summariseProps=
True)
129 print (
'--- Non-threaded.')
130 flags5 = flags.clone()
131 flags5.Input.Files = defaultTestFiles.ESD
133 acc5 = TrackCollectionReadCfg (flags5,
'Tracks')
134 acc5.printConfig (summariseProps=
True)