ATLAS Offline Software
Loading...
Searching...
No Matches
TRTSegmentFindingConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3from AthenaConfiguration.Enums import BeamType
4
5def TRTSegmentFindingCfg(flags, InputCollections = None):
6 acc = ComponentAccumulator()
7
8 #
9 # --- get list of already associated hits (always do this, even if no other tracking ran before)
10 #
11 if InputCollections is not None:
12 from InDetConfig.InDetTrackPRD_AssociationConfig import (
13 InDetTrackPRD_AssociationCfg)
14 acc.merge(InDetTrackPRD_AssociationCfg(
15 flags,
16 name = 'InDetSegmentTrackPRD_Association',
17 AssociationMapName = 'InDetSegmentPRDtoTrackMap',
18 TracksName = list(InputCollections)))
19
20 #
21 # --- TRT track reconstruction
22 #
23 if flags.Beam.Type is BeamType.Cosmics:
24 from InDetConfig.TRT_TrackSegmentsFinderConfig import (
25 TRT_TrackSegmentsFinder_Cosmics_Cfg)
26 acc.merge(TRT_TrackSegmentsFinder_Cosmics_Cfg(flags))
27 else:
28 from InDetConfig.TRT_TrackSegmentsFinderConfig import (
29 TRT_TrackSegmentsFinderCfg)
30 acc.merge(TRT_TrackSegmentsFinderCfg(flags,
31 InputCollections = InputCollections))
32
33 #
34 # --- load TRT validation alg
35 #
36 if flags.Tracking.doTruth:
37 from InDetConfig.InDetSegmentDriftCircleAssValidationConfig import (
38 SegmentDriftCircleAssValidationCfg)
39 acc.merge(SegmentDriftCircleAssValidationCfg(flags))
40
41 return acc
42
44 acc = ComponentAccumulator()
45
46 #
47 # --- TRT track reconstruction
48 #
49 if flags.Beam.Type is BeamType.Cosmics:
50 from InDetConfig.TRT_TrackSegmentsFinderConfig import (
51 TRT_TrackSegmentsFinder_Cosmics_Cfg)
52 acc.merge(TRT_TrackSegmentsFinder_Cosmics_Cfg(
53 flags,
54 name='InDetTRT_TrackSegmentsFinder_Phase_Cosmics',
55 SegmentsLocation = 'TRTSegments_Phase'))
56 else:
57 from InDetConfig.TRT_TrackSegmentsFinderConfig import (
58 TRT_TrackSegmentsFinder_Phase_Cfg)
59 acc.merge(TRT_TrackSegmentsFinder_Phase_Cfg(flags))
60
61 #
62 # --- load TRT validation alg
63 #
64 if flags.Tracking.doTruth:
65 from InDetConfig.InDetSegmentDriftCircleAssValidationConfig import (
66 SegmentDriftCircleAssValidationCfg)
67 acc.merge(SegmentDriftCircleAssValidationCfg(
68 flags,
69 name = "InDetSegmentDriftCircleAssValidation_Phase"))
70
71 return acc
72
74 acc = ComponentAccumulator()
75
76 #
77 # --- TRT track reconstruction
78 #
79 if flags.Beam.Type is BeamType.Cosmics:
80 from InDetConfig.TRT_TrackSegmentsFinderConfig import (
81 TRT_TrackSegmentsFinder_Cosmics_Cfg)
82 acc.merge(TRT_TrackSegmentsFinder_Cosmics_Cfg(
83 flags,
84 name='InDetTRT_TrackSegmentsFinder_TrackSegments_Cosmics',
85 SegmentsLocation = 'TRTSegmentsTRT'))
86 else:
87 from InDetConfig.TRT_TrackSegmentsFinderConfig import (
88 TRT_TrackSegmentsFinder_TrackSegments_Cfg)
89 acc.merge(TRT_TrackSegmentsFinder_TrackSegments_Cfg(flags))
90
91 #
92 # --- load TRT validation alg
93 #
94
95 if flags.Tracking.doTruth:
96 from InDetConfig.InDetSegmentDriftCircleAssValidationConfig import (
97 SegmentDriftCircleAssValidation_TrackSegments_Cfg)
98 acc.merge(SegmentDriftCircleAssValidation_TrackSegments_Cfg(flags))
99
100 return acc
101
102
103if __name__ == "__main__":
104 from AthenaConfiguration.AllConfigFlags import initConfigFlags
105 flags = initConfigFlags()
106
107 from AthenaConfiguration.TestDefaults import defaultTestFiles
108 flags.Input.Files=defaultTestFiles.RDO_RUN2
109
110 # disable calo for this test
111 flags.Detector.EnableCalo = False
112
113 numThreads=1
114 flags.Concurrency.NumThreads=numThreads
115 flags.Concurrency.NumConcurrentEvents=numThreads # Might change this later, but good enough for the moment.
116
117 flags = flags.cloneAndReplace("Tracking.ActiveConfig","Tracking.MainPass")
118
119 flags.lock()
120 flags.dump()
121
122 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
123 top_acc = MainServicesCfg(flags)
124
125 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
126 top_acc.merge(PoolReadCfg(flags))
127
128 from InDetConfig.TRTPreProcessing import TRTPreProcessingCfg
129 top_acc.merge(TRTPreProcessingCfg(flags))
130 top_acc.merge(TRTSegmentFindingCfg(flags))
131
132 iovsvc = top_acc.getService('IOVDbSvc')
133 iovsvc.OutputLevel=5
134
135 top_acc.store(open("test_TRTSegmentFinding.pkl", "wb"))
136
137 import sys
138 if "--norun" not in sys.argv:
139 sc = top_acc.run(5)
140 sys.exit(not sc.isSuccess())
TRTSegmentFindingCfg(flags, InputCollections=None)