3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
7 name: str =
"ActsTrackAnalysisAlg",
8 **kwargs) -> ComponentAccumulator:
11 kwargs.setdefault(
'TracksLocation',
'ActsTracks')
12 kwargs.setdefault(
"MonGroupName", kwargs[
'TracksLocation'])
14 from AthenaMonitoring
import AthMonitorCfgHelper
15 helper = AthMonitorCfgHelper(flags, kwargs[
'TracksLocation'] +
'AnalysisAlgCfg')
17 monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.TrackAnalysisAlg, name, **kwargs)
18 monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs[
'MonGroupName'],
'/ActsAnalysis/')
20 monitoringGroup.defineHistogram(
'Ntracks', title=
'Number of Tracks;N;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
21 xbins=500, xmin=0, xmax=20000)
23 monitoringGroup.defineHistogram(
'theta', title=
'Track polar angle;#theta;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
24 xbins=128, xmin=0, xmax=math.pi)
25 monitoringGroup.defineHistogram(
'phi', title=
'Track azimuthal angle;#phi;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
26 xbins=128, xmin=-math.pi, xmax=math.pi)
27 monitoringGroup.defineHistogram(
'qoverp', title=
'track inverse momentum;q/p [1/GeV];Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
28 xbins=200, xmin=-1.2, xmax=1.2)
29 monitoringGroup.defineHistogram(
'chi2OverNdof', title=
'fit chi2 / ndof;#chi^{2}/nDoF;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
30 xbins=100, xmin=0, xmax=20)
31 monitoringGroup.defineHistogram(
'nStates', title=
'Number of states / track;# states;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
32 xbins=60, xmin=0, xmax=60)
33 monitoringGroup.defineHistogram(
'nMeasurements', title=
'Number of measurements / track;# measurements;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
34 xbins=35, xmin=0, xmax=35)
35 monitoringGroup.defineHistogram(
'nPixelHits', title=
'Number of pixel hits / track;# pixel hits;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
36 xbins=35, xmin=0, xmax=35)
37 monitoringGroup.defineHistogram(
'nStripHits', title=
'Number of strip hits / track;# strip hits;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
38 xbins=35, xmin=0, xmax=35)
39 monitoringGroup.defineHistogram(
'surfaceType', title=
'type of reference surface;type;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
40 xbins=35, xmin=0, xmax=35)
43 acc.merge(helper.result())
47 name: str =
'ActsTrackParticleAnalysisAlg',
48 **kwargs) -> ComponentAccumulator:
50 kwargs.setdefault(
'MonitorTrackStateCounts',
True)
51 kwargs.setdefault(
'TrackParticleLocation',
'ActsTrackParticles')
53 kwargs.setdefault(
'MonGroupName', kwargs[
'TrackParticleLocation'])
55 from AthenaMonitoring
import AthMonitorCfgHelper
56 helper = AthMonitorCfgHelper(flags,
'TrackParticleAnalysisAlgCfg')
57 monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.TrackParticleAnalysisAlg, name, **kwargs)
58 monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs[
'MonGroupName'],
'/'+name+
'/')
60 monitoringGroup.defineHistogram(
'pt', title=
'TrackParticle pt;pt (MeV);Entries', type=
'TH1F', path=kwargs[
'MonGroupName'],
61 xbins=100, xmin=0, xmax=10e3)
62 monitoringGroup.defineHistogram(
'eta', title=
'TrackParticle eta;eta;Entries', type=
'TH1F', path=kwargs[
'MonGroupName'],
63 xbins=50, xmin=-4, xmax=4)
66 monitoringGroup.defineHistogram(
'pixelHits', title=
'Number of pixel hits;N;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
67 xbins=50, xmin=-1, xmax=49)
68 monitoringGroup.defineHistogram(
'innermostHits', title=
'Number of innermost pixel hits;N;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
69 xbins=6, xmin=-1, xmax=5)
70 monitoringGroup.defineHistogram(
'nextToInnermostHits', title=
'Number of next-to-innermost pixel hits;N;Entries', type=
'TH1I',
71 path=kwargs[
'MonGroupName'], xbins=6, xmin=-1, xmax=5)
72 monitoringGroup.defineHistogram(
'expectInnermostHit', title=
'Innermost pixel hit expected;N;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
73 xbins=3, xmin=-1, xmax=2)
74 monitoringGroup.defineHistogram(
'expectNextToInnermostHit', title=
'Next-to-innermost pixel hit expected;N;Entries', type=
'TH1I',
75 path=kwargs[
'MonGroupName'],xbins=3, xmin=-1, xmax=2)
77 if kwargs[
'MonitorTrackStateCounts'] :
82 if 'ExtraInputs' not in kwargs :
83 tracks_name = kwargs[
'TrackParticleLocation']
84 if tracks_name[-len(
'TrackParticles'):] ==
'TrackParticles' :
85 kwargs.setdefault(
'ExtraInputs',{(
'ActsTrk::TrackContainer',tracks_name[:-len(
'TrackParticles')]+
'Tracks')})
87 monitoringGroup.defineHistogram(
'States', title=
'Number of states on track;N;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
88 xbins=50, xmin=0, xmax=50)
89 monitoringGroup.defineHistogram(
'Measurements', title=
'Number of measurements on track;N;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
90 xbins=50, xmin=0, xmax=50)
91 monitoringGroup.defineHistogram(
'Parameters', title=
'Number of parameters on track;N;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
92 xbins=50, xmin=0, xmax=50)
93 monitoringGroup.defineHistogram(
'Outliers', title=
'Number of outliers on track;N;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
94 xbins=50, xmin=0, xmax=50)
95 monitoringGroup.defineHistogram(
'Holes', title=
'Number of holes on track;N;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
96 xbins=50, xmin=0, xmax=50)
97 monitoringGroup.defineHistogram(
'SharedHits', title=
'Number of shared hits on track;N;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
98 xbins=50, xmin=0, xmax=50)
99 monitoringGroup.defineHistogram(
'MaterialStates', title=
'Number of material states on track;N;Entries', type=
'TH1I', path=kwargs[
'MonGroupName'],
100 xbins=50, xmin=0, xmax=50)
101 acc.merge(helper.result())
103 acc.addEventAlgo( CompFactory.ActsTrk.TrackParticleAnalysisAlg(name, **kwargs) )
107 name: str =
"ActsHgtdClusterAnalysisAlg",
108 **kwargs) -> ComponentAccumulator:
109 if flags.HGTD.Geometry.useGeoModelXml:
110 from HGTD_GeoModelXml.HGTD_GeoModelConfig
import HGTD_ReadoutGeometryCfg
112 from HGTD_GeoModel.HGTD_GeoModelConfig
import HGTD_ReadoutGeometryCfg
115 kwargs.setdefault(
"MonGroupName",
"ActsHgtdClusters")
117 from AthenaMonitoring
import AthMonitorCfgHelper
118 helper = AthMonitorCfgHelper(flags,
'ActsHgtdClusterAnalysisAlgCfg')
120 monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.HgtdClusterAnalysisAlg, name, **kwargs)
121 monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs[
'MonGroupName'],
'/ActsAnalysis/')
123 path =
"ActsHgtdClusters"
124 monitoringGroup.defineHistogram(
'localX,localY;h_localXY', title=
"h_localXY; x [mm]; y [mm]", type=
"TH2F", path=path,
125 xbins=20, xmin=-30, xmax=30,
126 ybins=20, ymin=-30, ymax=30)
127 monitoringGroup.defineHistogram(
'globalX,globalY;h_globalXY', title=
"h_globalXY; x [mm]; y [mm]", type=
"TH2F", path=path,
128 xbins=100, xmin=-750, xmax=750,
129 ybins=100, ymin=-750, ymax=750)
130 monitoringGroup.defineHistogram(
'globalZ,globalR;h_globalZR', title=
"h_globalZR; z [mm]; r [mm]", type=
"TH2F", path=path,
131 xbins=100, xmin=-3600, xmax=3600,
132 ybins=100, ymin=0, ymax=800)
133 monitoringGroup.defineTree(
'localX,localY,localT,localCovXX,localCovYY,localCovTT,globalX,globalY,globalZ,globalR,eta;HgtdClusters',
135 treedef=
'localX/vector<float>:localY/vector<float>:localT/vector<float>:localCovXX/vector<float>:localCovYY/vector<float>:localCovTT/vector<float>:globalX/vector<float>:globalY/vector<float>:globalZ/vector<float>:globalR/vector<float>:eta/vector<float>')
137 acc.merge(helper.result())
141 name: str =
"ActsPixelClusterAnalysisAlg",
142 extension: str =
"Acts",
143 **kwargs) -> ComponentAccumulator:
144 path = extension.replace(
"Acts",
"") +
"PixelClusters"
146 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
149 kwargs.setdefault(
"MonGroupName", extension +
"ClusterAnalysisAlg")
151 from AthenaMonitoring
import AthMonitorCfgHelper
152 helper = AthMonitorCfgHelper(flags, extension +
'ClusterAnalysisAlgCfg')
154 monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.PixelClusterAnalysisAlg, name, **kwargs)
155 monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs[
'MonGroupName'],
'/ActsAnalysis/')
157 monitoringGroup.defineHistogram(
'globalZ,perp;h_globalZR', title=
"h_globalZR; z [mm]; r [mm]", type=
"TH2F", path=path,
158 xbins=1500, xmin=-3000, xmax=3000,
159 ybins=400, ymin=0, ymax=400)
160 monitoringGroup.defineHistogram(
'globalX,globalY;h_globalXY', title=
"h_globalXY; x [mm]; y [mm]", type=
"TH2F", path=path,
161 xbins=800, xmin=-400, xmax=400,
162 ybins=800, ymin=-400, ymax=400)
163 monitoringGroup.defineHistogram(
'eta;h_etaCluster', title=
"h_etaCluster; cluster #eta", type=
"TH1F", path=path,
164 xbins=100, xmin=-5, xmax=5)
166 monitoringGroup.defineTree(
'barrelEndcap,layerDisk,phiModule,etaModule,isInnermost,isNextToInnermost,eta,globalX,globalY,globalZ,perp,localX,localY,localCovXX,localCovYY,sizeX,sizeY,widthY;PixelClusters',
168 treedef=
'barrelEndcap/vector<int>:layerDisk/vector<int>:phiModule/vector<int>:etaModule/vector<int>:isInnermost/vector<int>:isNextToInnermost/vector<int>:eta/vector<double>:globalX/vector<float>:globalY/vector<float>:globalZ/vector<float>:perp/vector<float>:localX/vector<float>:localY/vector<float>:localCovXX/vector<float>:localCovYY/vector<float>:sizeX/vector<int>:sizeY/vector<int>:widthY/vector<float>')
170 acc.merge(helper.result())
175 name: str =
"ActsStripClusterAnalysisAlg",
176 extension: str =
"Acts",
177 **kwargs) -> ComponentAccumulator:
178 path = extension.replace(
"Acts",
"") +
"StripClusters"
180 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
183 kwargs.setdefault(
"MonGroupName", extension +
"ClusterAnalysisAlg")
185 from AthenaMonitoring
import AthMonitorCfgHelper
186 helper = AthMonitorCfgHelper(flags, extension +
"ClusterAnalysisAlgCfg")
188 monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.StripClusterAnalysisAlg, name, **kwargs)
189 monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs[
'MonGroupName'],
'/ActsAnalysis/')
191 monitoringGroup.defineHistogram(
'globalZ,perp;h_globalZR', title=
"h_globalZR; z [mm]; r [mm]", type=
"TH2F", path=path,
192 xbins=1500, xmin=-3000, xmax=3000,
193 ybins=400, ymin=300, ymax=1100)
194 monitoringGroup.defineHistogram(
'globalX,globalY;h_globalXY', title=
"h_globalXY; x [mm]; y [mm]", type=
"TH2F", path=path,
195 xbins=1600, xmin=-1100, xmax=1100,
196 ybins=1600, ymin=-1100, ymax=1100)
197 monitoringGroup.defineHistogram(
'eta;h_etaCluster', title=
"h_etaCluster; cluster #eta", type=
"TH1F", path=path,
198 xbins=100, xmin=-5, xmax=5)
200 monitoringGroup.defineTree(f
'barrelEndcap,layerDisk,phiModule,etaModule,sideModule,eta,globalX,globalY,globalZ,perp,localX,localCovXX,sizeX;{path}',
202 treedef=
'barrelEndcap/vector<int>:layerDisk/vector<int>:phiModule/vector<int>:etaModule/vector<int>:sideModule/vector<int>:eta/vector<double>:globalX/vector<float>:globalY/vector<float>:globalZ/vector<float>:perp/vector<float>:localX/vector<float>:localCovXX/vector<float>:sizeX/vector<int>')
204 acc.merge(helper.result())
209 extension: str =
"Acts",
212 **kwargs) -> ComponentAccumulator:
213 isPixel =
'Pixel' in name
214 perp_min = 0
if isPixel
else 300
215 perp_max = 400
if isPixel
else 1100
218 from AthenaMonitoring
import AthMonitorCfgHelper
219 helper = AthMonitorCfgHelper(flags, extension +
'SpacePointAnalysisAlgCfg')
221 kwargs.setdefault(
"MonGroupName", extension +
"SpacePointAnalysisAlg")
223 monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.SpacePointAnalysisAlg, name, **kwargs)
224 monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs[
'MonGroupName'],
'/ActsAnalysis/')
227 monitoringGroup.defineHistogram(
'Nsp;h_Nsp', title=
"Number of Space Points;N;Entries", type=
"TH1I", path=f
"{histoPath}",
228 xbins=100, xmin=0, xmax=0)
230 monitoringGroup.defineHistogram(
'globalX,globalY;h_globalXY', title=
"h_globalXY; x [mm]; y [mm]", type=
"TH2F", path=f
"{histoPath}",
231 xbins=800, xmin=-perp_max, xmax=perp_max,
232 ybins=800, ymin=-perp_max, ymax=perp_max)
233 monitoringGroup.defineHistogram(
'globalZ,perp;h_globalZR', title=
"h_globalZR; z [mm]; r [mm]", type=
"TH2F", path=f
"{histoPath}",
234 xbins=1500, xmin=-3000, xmax=3000,
235 ybins=400, ymin=perp_min, ymax=perp_max)
236 monitoringGroup.defineHistogram(
'eta;h_etaSpacePoint', title=
"h_etaSpacePoint; space point #eta", type=
"TH1F", path=f
"{histoPath}",
237 xbins=100, xmin=-5, xmax=5)
239 monitoringGroup.defineTree(f
'barrelEndcap,layerDisk,phiModule,etaModule,sideModule,isInnermost,isNextToInnermost,isOverlap,eta,globalX,globalY,globalZ,perp,globalCovR,globalCovZ;{ntupleName}',
241 treedef=
'barrelEndcap/vector<int>:layerDisk/vector<int>:phiModule/vector<int>:etaModule/vector<int>:sideModule/vector<int>:isInnermost/vector<int>:isNextToInnermost/vector<int>:isOverlap/vector<int>:eta/vector<double>:globalX/vector<double>:globalY/vector<double>:globalZ/vector<double>:perp/vector<double>:globalCovR/vector<double>:globalCovZ/vector<double>')
243 acc.merge(helper.result())
247 name: str =
"ActsPixelSpacePointAnalysisAlg",
248 extension: str =
"Acts",
249 **kwargs) -> ComponentAccumulator:
252 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
255 kwargs.setdefault(
"SpacePointContainerKey",
"ITkPixelSpacePoints")
256 kwargs.setdefault(
"UsePixel",
True)
257 kwargs.setdefault(
"UseOverlap",
False)
261 extension = extension,
262 histoPath = extension.replace(
"Acts",
"") +
"PixelSpacePoints",
263 ntupleName = extension.replace(
"Acts",
"") +
"PixelSpacePoints",
270 name: str =
"ActsStripSpacePointAnalysisAlg",
271 extension: str =
"Acts",
272 **kwargs) -> ComponentAccumulator:
275 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
278 kwargs.setdefault(
"SpacePointContainerKey",
"ITkStripSpacePoints")
279 kwargs.setdefault(
"UsePixel",
False)
280 kwargs.setdefault(
"UseOverlap",
False)
284 extension = extension,
285 histoPath = extension.replace(
"Acts",
"") +
"StripSpacePoints",
286 ntupleName = extension.replace(
"Acts",
"") +
"StripSpacePoints",
292 name: str =
"ActsStripOverlapSpacePointAnalysisAlg",
293 extension: str =
"Acts",
294 **kwargs) -> ComponentAccumulator:
295 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
298 kwargs.setdefault(
"SpacePointContainerKey",
"ITkStripOverlapSpacePoints")
299 kwargs.setdefault(
"UsePixel",
False)
300 kwargs.setdefault(
"UseOverlap",
True)
304 extension = extension,
305 histoPath = extension.replace(
"Acts",
"") +
"StripOverlapSpacePoints",
306 ntupleName = extension.replace(
"Acts",
"") +
"StripOverlapSpacePoints",
313 extension: str =
"Acts",
315 ntupleName: str =
"",
316 **kwargs) -> ComponentAccumulator:
319 isPixel =
'Pixel' in name
320 perp_min = 0
if isPixel
else 300
321 perp_max = 400
if isPixel
else 1100
323 kwargs.setdefault(
'MonGroupName', extension +
'SeedAnalysisAlg')
325 from AthenaMonitoring
import AthMonitorCfgHelper
326 helper = AthMonitorCfgHelper(flags, extension +
'SeedAnalysisAlgCfg')
328 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg
330 acc.addPublicTool(geoTool)
333 from ActsConfig.ActsEventCnvConfig
import ActsToTrkConverterToolCfg
337 from ActsConfig.ActsTrackParamsEstimationConfig
import ActsTrackParamsEstimationToolCfg
340 kwargs.setdefault(
'TrackingGeometryTool', acc.getPublicTool(geoTool.name))
341 kwargs.setdefault(
'ATLASConverterTool', converterTool)
342 kwargs.setdefault(
'TrackParamsEstimationTool', trackEstimationTool)
344 monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.SeedAnalysisAlg, name, **kwargs)
345 monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs[
'MonGroupName'],
'/ActsAnalysis/')
347 monitoringGroup.defineHistogram(
'Nseed', title=
'Number of Seeds;N;Entries', type=
'TH1I', path=f
'{histoPath}',
348 xbins=100, xmin=0, xmax=0)
350 monitoringGroup.defineHistogram(
'z1,r1;zr1', title=
'Bottom SP - Z coordinate vs R;z [mm];r [mm]', type=
'TH2F', path=f
'{histoPath}',
351 xbins=1500, xmin=-3000, xmax=3000,
352 ybins=400, ymin=perp_min, ymax=perp_max)
353 monitoringGroup.defineHistogram(
'z2,r2;zr2', title=
'Middle SP - Z coordinate vs R;z [mm];r [mm]', type=
'TH2F', path=f
'{histoPath}',
354 xbins=1500, xmin=-3000, xmax=3000,
355 ybins=400, ymin=perp_min, ymax=perp_max)
356 monitoringGroup.defineHistogram(
'z3,r3;zr3', title=
'Top SP - Z coordinate vs R;z [mm];r [mm]', type=
'TH2F', path=f
'{histoPath}',
357 xbins=1500, xmin=-3000, xmax=3000,
358 ybins=400, ymin=perp_min, ymax=perp_max)
360 monitoringGroup.defineHistogram(
'x1;x1', title=
'Bottom SP - x coordinate;x [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
361 xbins=100, xmin=-perp_max, xmax=perp_max)
362 monitoringGroup.defineHistogram(
'y1;y1', title=
'Bottom SP - y coordinate;y [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
363 xbins=100, xmin=-perp_max, xmax=perp_max)
364 monitoringGroup.defineHistogram(
'z1;z1', title=
'Bottom SP - z coordinate;z [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
365 xbins=100, xmin=-3000, xmax=3000)
366 monitoringGroup.defineHistogram(
'r1;r1', title=
'Bottom SP - radius coordinate;r [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
367 xbins=100, xmin=perp_min, xmax=perp_max)
369 monitoringGroup.defineHistogram(
'x2;x2', title=
'Middle SP - x coordinate;x [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
370 xbins=100, xmin=-perp_max, xmax=perp_max)
371 monitoringGroup.defineHistogram(
'y2;y2', title=
'Middle SP - y coordinate;y [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
372 xbins=100, xmin=-perp_max, xmax=perp_max)
373 monitoringGroup.defineHistogram(
'z2;z2', title=
'Middle SP - z coordinate;z [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
374 xbins=100, xmin=-3000, xmax=3000)
375 monitoringGroup.defineHistogram(
'r2;r2', title=
'Middle SP - radius coordinate;r [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
376 xbins=100, xmin=perp_min, xmax=perp_max)
378 monitoringGroup.defineHistogram(
'x3;x3', title=
'Top SP - x coordinate;x [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
379 xbins=100, xmin=-perp_max, xmax=perp_max)
380 monitoringGroup.defineHistogram(
'y3;y3', title=
'Top SP - y coordinate;y [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
381 xbins=100, xmin=-perp_max, xmax=perp_max)
382 monitoringGroup.defineHistogram(
'z3;z3', title=
'Top SP - z coordinate;z [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
383 xbins=100, xmin=-3000, xmax=3000)
384 monitoringGroup.defineHistogram(
'r3;r3', title=
'Top SP - radius coordinate;r [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
385 xbins=100, xmin=perp_min, xmax=perp_max)
387 if 'PixelSeeds' in ntupleName:
388 monitoringGroup.defineHistogram(
'pt;pT', title=
'Pt;Pt;Entries;', type=
'TH1F', path=f
'{histoPath}',
389 xbins=100, xmin=0, xmax=100)
390 monitoringGroup.defineHistogram(
'd0;d0', title=
'd0;d0 [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
391 xbins=50, xmin=0, xmax=2)
392 monitoringGroup.defineHistogram(
'eta;Eta', title=
'Pseudo-Rapidity;Pseudo-Rapidity;Entries;', type=
'TH1F', path=f
'{histoPath}',
393 xbins=50, xmin=0, xmax=4.5)
394 monitoringGroup.defineHistogram(
'theta;Theta', title=
'Theta;Theta;Entries;', type=
'TH1F', path=f
'{histoPath}',
395 xbins=50, xmin=0, xmax=1.6)
396 monitoringGroup.defineHistogram(
'penalty;Penalty', title=
'Penalty;Penalty;Entries;', type=
'TH1F', path=f
'{histoPath}',
397 xbins=50, xmin=0, xmax=200)
398 monitoringGroup.defineHistogram(
'dzdr_b;dzdr_b', title=
'dzdr_b;;;', type=
'TH1F', path=f
'{histoPath}',
399 xbins=50, xmin=-30, xmax=30)
400 monitoringGroup.defineHistogram(
'dzdr_t;dzdr_t', title=
'dzdr_t;;;', type=
'TH1F', path=f
'{histoPath}',
401 xbins=50, xmin=-30, xmax=30)
402 elif 'StripSeeds' in ntupleName:
403 monitoringGroup.defineHistogram(
'pt;pT', title=
'Pt;Pt;Entries;', type=
'TH1F', path=f
'{histoPath}',
404 xbins=100, xmin=0, xmax=2300)
405 monitoringGroup.defineHistogram(
'd0;d0', title=
'd0;d0 [mm];Entries;', type=
'TH1F', path=f
'{histoPath}',
406 xbins=50, xmin=0, xmax=120)
407 monitoringGroup.defineHistogram(
'eta;Eta', title=
'Pseudo-Rapidity;Pseudo-Rapidity;Entries;', type=
'TH1F', path=f
'{histoPath}',
408 xbins=50, xmin=0, xmax=4.5)
409 monitoringGroup.defineHistogram(
'theta;Theta', title=
'Theta;Theta;Entries;', type=
'TH1F', path=f
'{histoPath}',
410 xbins=50, xmin=0, xmax=1.6)
411 monitoringGroup.defineHistogram(
'penalty;Penalty', title=
'Penalty;Penalty;Entries;', type=
'TH1F', path=f
'{histoPath}',
412 xbins=50, xmin=0, xmax=20000)
413 monitoringGroup.defineHistogram(
'dzdr_b;dzdr_b', title=
'dzdr_b;;;', type=
'TH1F', path=f
'{histoPath}',
414 xbins=50, xmin=-6.5, xmax=6.5)
415 monitoringGroup.defineHistogram(
'dzdr_t;dzdr_t', title=
'dzdr_t;;;', type=
'TH1F', path=f
'{histoPath}',
416 xbins=50, xmin=-6.5, xmax=6.5)
418 if flags.Tracking.doTruth:
419 monitoringGroup.defineHistogram(
'passed,estimated_eta;EfficiencyEta', title=
'Efficiency vs eta;eta;Efficiency', type=
'TEfficiency', path=f
'{histoPath}',
420 xbins=50, xmin=-5, xmax=5)
421 monitoringGroup.defineHistogram(
'passed,estimated_pt;EfficiencyPt', title=
'Efficiency vs pT;pT [GeV];Efficiency', type=
'TEfficiency', path=f
'{histoPath}',
422 xbins=30, xmin=0, xmax=120)
425 list_variables =
"x1,y1,z1,r1,x2,y2,z2,r2,x3,y3,z3,r3,pt,theta,eta,d0,dzdr_b,dzdr_t,penalty,event_number,actual_mu"
426 tree_def =
"x1/vector<double>:y1/vector<double>:z1/vector<double>:r1/vector<double>:x2/vector<double>:y2/vector<double>:z2/vector<double>:r2/vector<double>:x3/vector<double>:y3/vector<double>:z3/vector<double>:r3/vector<double>\
427 :pt/vector<float>:theta/vector<float>:eta/vector<float>:d0/vector<float>:dzdr_b/vector<float>:dzdr_t/vector<float>:penalty/vector<float>:event_number/l:actual_mu/F"
428 if flags.Tracking.doTruth:
429 list_variables +=
",truth_barcode,truth_prob"
430 tree_def +=
":truth_barcode/vector<int>:truth_prob/vector<double>"
432 monitoringGroup.defineTree(f
'{list_variables};{ntupleName}',
436 acc.merge(helper.result())
442 name: str =
"ActsPixelSeedAnalysisAlg",
443 extension: str =
"Acts",
444 **kwargs) -> ComponentAccumulator:
445 kwargs.setdefault(
'InputSeedCollection',
'ActsPixelSeeds')
447 if flags.Tracking.doTruth:
448 kwargs.setdefault(
'DetectorElements',
'ITkPixelDetectorElementCollection')
449 kwargs.setdefault(
'ITkClustersTruth',
'PRD_MultiTruthITkPixel')
454 histoPath = extension.replace(
"Acts",
"") +
'PixelSeeds',
455 ntupleName = extension.replace(
"Acts",
"") +
'PixelSeeds',
460 name: str =
"ActsStripSeedAnalysisAlg",
461 extension: str =
"Acts",
462 **kwargs) -> ComponentAccumulator:
463 kwargs.setdefault(
'InputSeedCollection',
'ActsStripSeeds')
464 kwargs.setdefault(
'UsePixel',
False)
466 if flags.Tracking.doTruth:
467 kwargs.setdefault(
'DetectorElements',
'ITkStripDetectorElementCollection')
468 kwargs.setdefault(
'ITkClustersTruth',
'PRD_MultiTruthITkStrip')
473 histoPath = extension.replace(
"Acts",
"") +
'StripSeeds',
474 ntupleName = extension.replace(
"Acts",
"") +
'StripSeeds',
480 extension: str =
"Acts",
482 ntupleName: str =
"",
483 **kwargs) -> ComponentAccumulator:
484 from AthenaMonitoring
import AthMonitorCfgHelper
485 helper = AthMonitorCfgHelper(flags,extension +
'EstimatedTrackParamsAnalysisAlgCfg')
487 kwargs.setdefault(
'MonGroupName', extension +
'SeedAnalysisAlg')
489 monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.EstimatedTrackParamsAnalysisAlg, name, **kwargs)
490 monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs[
'MonGroupName'],
'/ActsAnalysis/')
492 monitoringGroup.defineHistogram(
'Nparams', title=
'Number of Estimated Parameters from Seeds;N;Entries', type=
'TH1I', path=f
'{histoPath}',
493 xbins=100, xmin=0, xmax=0)
495 monitoringGroup.defineTree(f
"track_param_pt,track_param_eta,track_param_phi,track_param_loc0,track_param_loc1,track_param_theta,track_param_qoverp,track_param_time,track_param_charge;{ntupleName}",
497 treedef=
"track_param_pt/vector<double>:track_param_eta/vector<double>:track_param_phi/vector<double>:track_param_loc0/vector<double>:track_param_loc1/vector<double>:track_param_theta/vector<double>:track_param_qoverp/vector<double>:track_param_time/vector<double>:track_param_charge/vector<int>")
499 return helper.result()
502 name: str =
"ActsSeedingAlgorithmAnalysis",
503 **kwargs) -> ComponentAccumulator:
506 MonitoringGroupNames = []
508 if "SeedingTools" not in kwargs:
509 from InDetConfig.SiSpacePointsSeedToolConfig
import ITkSiSpacePointsSeedMakerCfg
511 ITkSiSpacePointsSeedMaker.maxSize = 1e8
512 MonitoringGroupNames.append(
"ITkSiSpacePointSeedMaker")
514 from ActsConfig.ActsSeedingConfig
import ActsSiSpacePointsSeedMakerToolCfg
517 from ActsConfig.ActsSeedingConfig
import ActsPixelSeedingToolCfg
521 ActsITkSiSpacePointsSeedMaker.doSeedConversion =
False
522 MonitoringGroupNames.append(
"ActsITkSiSpacePointSeedMaker")
524 from ActsConfig.ActsSeedingConfig
import ActsPixelGbtsSeedingToolCfg
529 name=
"ActsSiSpacePointsSeedMakerGbts",
530 SeedToolPixel=gbtsSeedToolPixel))
531 ActsGbtsITkSiSpacePointsSeedMaker.doSeedConversion =
False
532 MonitoringGroupNames.append(
"ActsGbtsITkSiSpacePointSeedMaker")
534 from ActsConfig.ActsSeedingConfig
import ActsPixelOrthogonalSeedingToolCfg, ActsStripOrthogonalSeedingToolCfg
537 ActsITkSiSpacePointsSeedMakerOrthogonal = \
539 name=
"ActsSiSpacePointsSeedMakerOrthogonal",
540 SeedToolPixel=pixel_orthogonal_seeding_tool,
541 SeedToolStrip=strip_orthogonal_seeding_tool))
542 ActsITkSiSpacePointsSeedMakerOrthogonal.doSeedConversion =
False
543 MonitoringGroupNames.append(
"ActsOrthogonalITkSiSpacePointSeedMaker")
545 from GaudiKernel.GaudiHandles
import PrivateToolHandleArray
546 kwargs.setdefault(
"SeedingTools",
547 PrivateToolHandleArray([ITkSiSpacePointsSeedMaker,
548 ActsITkSiSpacePointsSeedMaker,
549 ActsGbtsITkSiSpacePointsSeedMaker,
550 ActsITkSiSpacePointsSeedMakerOrthogonal]))
552 kwargs.setdefault(
"MonitorNames", MonitoringGroupNames)
554 from AthenaMonitoring
import AthMonitorCfgHelper
555 helper = AthMonitorCfgHelper(flags,
'SeedingAlgorithmAnalysisAlgCfg')
556 monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.SeedingAlgorithmAnalysisAlg, name, **kwargs)
558 for groupName
in MonitoringGroupNames:
559 monitoringGroup = helper.addGroup(monitoringAlgorithm, groupName,
'/'+groupName+
'/')
560 monitoringGroup.defineTree(
'eventNumber,stripSeedInitialisationTime,stripSeedProductionTime,pixelSeedInitialisationTime,pixelSeedProductionTime,numberPixelSpacePoints,numberStripSpacePoints,numberPixelSeeds,numberStripSeeds;seedInformation',
562 treedef=
'eventNumber/I:stripSeedInitialisationTime/F:stripSeedProductionTime/F:pixelSeedInitialisationTime/F:pixelSeedProductionTime/F:numberPixelSpacePoints/I:numberStripSpacePoints/I:numberPixelSeeds/I:numberStripSeeds/I')
564 acc.merge(helper.result())
569 name: str =
'ActsPixelEstimatedTrackParamsAnalysisAlg',
570 extension: str =
"Acts",
571 **kwargs) -> ComponentAccumulator:
572 kwargs.setdefault(
'InputTrackParamsCollection',
'ActsPixelEstimatedTrackParams')
576 histoPath = extension.replace(
"Acts",
"") +
'PixelEstimatedTrackParams',
577 ntupleName = extension.replace(
"Acts",
"") +
'PixelEstimatedTrackParams',
582 name: str =
'ActsStripEstimatedTrackParamsAnalysisAlg',
583 extension: str =
"Acts",
584 **kwargs) -> ComponentAccumulator:
585 kwargs.setdefault(
'InputTrackParamsCollection',
'ActsStripEstimatedTrackParams')
589 histoPath = extension.replace(
"Acts",
"") +
'StripEstimatedTrackParams',
590 ntupleName = extension.replace(
"Acts",
"") +
'StripEstimatedTrackParams',
594 name: str =
'PhysValActs',
595 **kwargs) -> ComponentAccumulator:
599 typedCollections = flags.Input.TypedCollections
600 for col
in typedCollections:
601 col_type, col_name = col.split(
"#")
602 if col_type ==
"xAOD::PixelClusterContainer":
603 kwargs.setdefault(
"doPixelClusters",
True)
604 elif col_type ==
"xAOD::StripClusterContainer":
605 kwargs.setdefault(
"doStripClusters",
True)
606 elif col_type ==
"xAOD::HGTDClusterContainer":
607 kwargs.setdefault(
"doHgtdClusters", flags.PhysVal.IDPVM.doHGTD)
608 elif col_type ==
"xAOD::SpacePointContainer":
609 if 'Pixel' in col_name:
610 kwargs.setdefault(
"doPixelSpacePoints",
True)
611 elif 'Strip' in col_name:
612 kwargs.setdefault(
"doStripSpacePoints",
True)
613 kwargs.setdefault(
"doStripOverlapSpacePoints",
True)
615 acc.setPrivateTools(CompFactory.ActsTrk.PhysValTool(name=name,
621 if flags.Detector.EnableITkPixel:
623 if flags.Detector.EnableITkStrip:
630 if flags.Detector.EnableITkPixel:
632 if flags.Detector.EnableITkStrip: