Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ActsAnalysisConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 
7  name: str = "ActsTrackAnalysisAlg",
8  **kwargs) -> ComponentAccumulator:
10 
11  kwargs.setdefault('TracksLocation', 'ActsTracks')
12  kwargs.setdefault("MonGroupName", kwargs['TracksLocation'])
13 
14  from AthenaMonitoring import AthMonitorCfgHelper
15  helper = AthMonitorCfgHelper(flags, kwargs['TracksLocation'] + 'AnalysisAlgCfg')
16 
17  monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.TrackAnalysisAlg, name, **kwargs)
18  monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs['MonGroupName'], '/ActsAnalysis/')
19 
20  monitoringGroup.defineHistogram('Ntracks', title='Number of Tracks;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
21  xbins=500, xmin=0, xmax=20000)
22 
23  monitoringGroup.defineHistogram('NsharedPerLayer_pixelBarrel', title='Number of shared hits per layer - Pixel Barrel;Layer;Entries', type='TH1I', path=kwargs['MonGroupName'],
24  xbins=5, xmin=0, xmax=5)
25  monitoringGroup.defineHistogram('NsharedPerLayer_pixelEndCap', title='Number of shared hits per layer - Pixel EndCap;Layer;Entries', type='TH1I', path=kwargs['MonGroupName'],
26  xbins=9, xmin=0, xmax=9)
27  monitoringGroup.defineHistogram('NsharedPerLayer_stripBarrel', title='Number of shared hits per layer - Strip Barrel;Layer;Entries', type='TH1I', path=kwargs['MonGroupName'],
28  xbins=4, xmin=0, xmax=4)
29  monitoringGroup.defineHistogram('NsharedPerLayer_stripEndCap', title='Number of shared hits per layer - Strip EndCap;Layer;Entries', type='TH1I', path=kwargs['MonGroupName'],
30  xbins=6, xmin=0, xmax=6)
31 
32  import math
33  monitoringGroup.defineHistogram('theta', title='Track polar angle;#theta;Entries', type='TH1F', path=kwargs['MonGroupName'],
34  xbins=128, xmin=0, xmax=math.pi)
35  monitoringGroup.defineHistogram('eta', title='Track eta;#eta;Entries', type='TH1F', path=kwargs['MonGroupName'],
36  xbins=128, xmin=-4, xmax=4)
37  monitoringGroup.defineHistogram('phi', title='Track azimuthal angle;#phi;Entries', type='TH1F', path=kwargs['MonGroupName'],
38  xbins=128, xmin=-math.pi, xmax=math.pi)
39  monitoringGroup.defineHistogram('qoverp', title='track inverse momentum;q/p [1/GeV];Entries', type='TH1F', path=kwargs['MonGroupName'],
40  xbins=200, xmin=-1.2, xmax=1.2)
41  monitoringGroup.defineHistogram('chi2OverNdof', title='fit chi2 / ndof;#chi^{2}/nDoF;Entries', type='TH1F', path=kwargs['MonGroupName'],
42  xbins=100, xmin=0, xmax=20)
43  monitoringGroup.defineHistogram('nStates', title='Number of states / track;# states;Entries', type='TH1I', path=kwargs['MonGroupName'],
44  xbins=60, xmin=0, xmax=60)
45  monitoringGroup.defineHistogram('nMeasurements', title='Number of measurements / track;# measurements;Entries', type='TH1I', path=kwargs['MonGroupName'],
46  xbins=35, xmin=0, xmax=35)
47  monitoringGroup.defineHistogram('nShared', title='Number of shared hits per track;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
48  xbins=35, xmin=0, xmax=35)
49  monitoringGroup.defineHistogram('nOutliers', title='Number of outliers hits per track;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
50  xbins=35, xmin=0, xmax=35)
51  monitoringGroup.defineHistogram('nHoles', title='Number of holes hits per track;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
52  xbins=35, xmin=0, xmax=35)
53 
54  monitoringGroup.defineHistogram('nPixelHits', title='Number of pixel hits / track;# pixel hits;Entries', type='TH1I', path=kwargs['MonGroupName'],
55  xbins=35, xmin=0, xmax=35)
56  monitoringGroup.defineHistogram('nStripHits', title='Number of strip hits / track;# strip hits;Entries', type='TH1I', path=kwargs['MonGroupName'],
57  xbins=35, xmin=0, xmax=35)
58  monitoringGroup.defineHistogram('surfaceType', title='type of reference surface;type;Entries', type='TH1I', path=kwargs['MonGroupName'],
59  xbins=35, xmin=0, xmax=35)
60 
61 
62  monitoringGroup.defineHistogram('eta,nMeasurements', title='Track eta;#eta;Entries', type='TH2F', path=kwargs['MonGroupName'],
63  xbins=128, xmin=-4, xmax=4,
64  ybins=35, ymin=0, ymax=35)
65  monitoringGroup.defineHistogram('eta,nShared', title='Track eta;#eta;Entries', type='TH2F', path=kwargs['MonGroupName'],
66  xbins=128, xmin=-4, xmax=4,
67  ybins=35, ymin=0, ymax=35)
68  monitoringGroup.defineHistogram('eta,nOutliers', title='Track eta;#eta;Entries', type='TH2F', path=kwargs['MonGroupName'],
69  xbins=128, xmin=-4, xmax=4,
70  ybins=35, ymin=0, ymax=35)
71  monitoringGroup.defineHistogram('eta,nHoles', title='Track eta;#eta;Entries', type='TH2F', path=kwargs['MonGroupName'],
72  xbins=128, xmin=-4, xmax=4,
73  ybins=35, ymin=0, ymax=35)
74 
75  acc.merge(helper.result())
76  return acc
77 
79  name: str = 'ActsTrackParticleAnalysisAlg',
80  **kwargs) -> ComponentAccumulator:
81  acc = ComponentAccumulator()
82  kwargs.setdefault('MonitorTrackStateCounts',True)
83  kwargs.setdefault('TrackParticleLocation', 'ActsTrackParticles')
84 
85  kwargs.setdefault('MonGroupName', kwargs['TrackParticleLocation'])
86 
87  from AthenaMonitoring import AthMonitorCfgHelper
88  helper = AthMonitorCfgHelper(flags, 'TrackParticleAnalysisAlgCfg')
89  monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.TrackParticleAnalysisAlg, name, **kwargs)
90  monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs['MonGroupName'], '/'+name+'/')
91 
92  monitoringGroup.defineHistogram('pt', title='TrackParticle pt;pt (MeV);Entries', type='TH1F', path=kwargs['MonGroupName'],
93  xbins=100, xmin=0, xmax=10e3)
94  monitoringGroup.defineHistogram('eta', title='TrackParticle eta;eta;Entries', type='TH1F', path=kwargs['MonGroupName'],
95  xbins=50, xmin=-4, xmax=4)
96 
97  # hit counts
98  monitoringGroup.defineHistogram('pixelHits', title='Number of pixel hits;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
99  xbins=50, xmin=-1, xmax=49)
100  monitoringGroup.defineHistogram('innermostHits', title='Number of innermost pixel hits;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
101  xbins=6, xmin=-1, xmax=5)
102  monitoringGroup.defineHistogram('nextToInnermostHits', title='Number of next-to-innermost pixel hits;N;Entries', type='TH1I',
103  path=kwargs['MonGroupName'], xbins=6, xmin=-1, xmax=5)
104  monitoringGroup.defineHistogram('expectInnermostHit', title='Innermost pixel hit expected;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
105  xbins=3, xmin=-1, xmax=2)
106  monitoringGroup.defineHistogram('expectNextToInnermostHit', title='Next-to-innermost pixel hit expected;N;Entries', type='TH1I',
107  path=kwargs['MonGroupName'],xbins=3, xmin=-1, xmax=2)
108 
109  if kwargs['MonitorTrackStateCounts'] :
110  # have to add artifical dependency, because the ActsTracks are created by
111  # a special reader algorithm from the various component branches, but the
112  # element links pointing to the ActsTracks would not add this dependency
113  # by themselves.
114  if 'ExtraInputs' not in kwargs :
115  tracks_name = kwargs['TrackParticleLocation']
116  if tracks_name[-len('TrackParticles'):] == 'TrackParticles' :
117  kwargs.setdefault('ExtraInputs',{('ActsTrk::TrackContainer',tracks_name[:-len('TrackParticles')]+'Tracks')})
118 
119  monitoringGroup.defineHistogram('States', title='Number of states on track;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
120  xbins=50, xmin=0, xmax=50)
121  monitoringGroup.defineHistogram('Measurements', title='Number of measurements on track;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
122  xbins=50, xmin=0, xmax=50)
123  monitoringGroup.defineHistogram('Parameters', title='Number of parameters on track;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
124  xbins=50, xmin=0, xmax=50)
125  monitoringGroup.defineHistogram('Outliers', title='Number of outliers on track;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
126  xbins=50, xmin=0, xmax=50)
127  monitoringGroup.defineHistogram('Holes', title='Number of holes on track;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
128  xbins=50, xmin=0, xmax=50)
129  monitoringGroup.defineHistogram('SharedHits', title='Number of shared hits on track;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
130  xbins=50, xmin=0, xmax=50)
131  monitoringGroup.defineHistogram('MaterialStates', title='Number of material states on track;N;Entries', type='TH1I', path=kwargs['MonGroupName'],
132  xbins=50, xmin=0, xmax=50)
133  acc.merge(helper.result())
134 
135  acc.addEventAlgo( CompFactory.ActsTrk.TrackParticleAnalysisAlg(name, **kwargs) )
136  return acc
137 
139  name: str = "ActsHgtdClusterAnalysisAlg",
140  **kwargs) -> ComponentAccumulator:
141  if flags.HGTD.Geometry.useGeoModelXml:
142  from HGTD_GeoModelXml.HGTD_GeoModelConfig import HGTD_ReadoutGeometryCfg
143  else:
144  from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_ReadoutGeometryCfg
145  acc = HGTD_ReadoutGeometryCfg(flags)
146 
147  kwargs.setdefault("MonGroupName", "ActsHgtdClusters")
148 
149  from AthenaMonitoring import AthMonitorCfgHelper
150  helper = AthMonitorCfgHelper(flags, 'ActsHgtdClusterAnalysisAlgCfg')
151 
152  monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.HgtdClusterAnalysisAlg, name, **kwargs)
153  monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs['MonGroupName'], '/ActsAnalysis/')
154 
155  path = "ActsHgtdClusters"
156  monitoringGroup.defineHistogram('localX,localY;h_localXY', title="h_localXY; x [mm]; y [mm]", type="TH2F", path=path,
157  xbins=20, xmin=-30, xmax=30,
158  ybins=20, ymin=-30, ymax=30)
159  monitoringGroup.defineHistogram('globalX,globalY;h_globalXY', title="h_globalXY; x [mm]; y [mm]", type="TH2F", path=path,
160  xbins=100, xmin=-750, xmax=750,
161  ybins=100, ymin=-750, ymax=750)
162  monitoringGroup.defineHistogram('globalZ,globalR;h_globalZR', title="h_globalZR; z [mm]; r [mm]", type="TH2F", path=path,
163  xbins=100, xmin=-3600, xmax=3600,
164  ybins=100, ymin=0, ymax=800)
165  monitoringGroup.defineTree('localX,localY,localT,localCovXX,localCovYY,localCovTT,globalX,globalY,globalZ,globalR,eta;HgtdClusters',
166  path='ntuples',
167  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>')
168 
169  acc.merge(helper.result())
170  return acc
171 
173  name: str = "ActsPixelClusterAnalysisAlg",
174  extension: str = "Acts",
175  **kwargs) -> ComponentAccumulator:
176  path = extension.replace("Acts", "") + "PixelClusters"
177 
178  from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
179  acc = ITkPixelReadoutGeometryCfg(flags)
180 
181  kwargs.setdefault("MonGroupName", extension + "ClusterAnalysisAlg")
182 
183  from AthenaMonitoring import AthMonitorCfgHelper
184  helper = AthMonitorCfgHelper(flags, extension + 'ClusterAnalysisAlgCfg')
185 
186  monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.PixelClusterAnalysisAlg, name, **kwargs)
187  monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs['MonGroupName'], '/ActsAnalysis/')
188 
189  monitoringGroup.defineHistogram('globalZ,perp;h_globalZR', title="h_globalZR; z [mm]; r [mm]", type="TH2F", path=path,
190  xbins=1500, xmin=-3000, xmax=3000,
191  ybins=400, ymin=0, ymax=400)
192  monitoringGroup.defineHistogram('globalX,globalY;h_globalXY', title="h_globalXY; x [mm]; y [mm]", type="TH2F", path=path,
193  xbins=800, xmin=-400, xmax=400,
194  ybins=800, ymin=-400, ymax=400)
195  monitoringGroup.defineHistogram('eta;h_etaCluster', title="h_etaCluster; cluster #eta", type="TH1F", path=path,
196  xbins=100, xmin=-5, xmax=5)
197 
198  monitoringGroup.defineTree('barrelEndcap,layerDisk,phiModule,etaModule,isInnermost,isNextToInnermost,eta,globalX,globalY,globalZ,perp,localX,localY,localCovXX,localCovYY,sizeX,sizeY,widthY;PixelClusters',
199  path='ntuples',
200  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>')
201 
202  acc.merge(helper.result())
203  return acc
204 
205 
207  name: str = "ActsStripClusterAnalysisAlg",
208  extension: str = "Acts",
209  **kwargs) -> ComponentAccumulator:
210  path = extension.replace("Acts", "") + "StripClusters"
211 
212  from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
213  acc = ITkStripReadoutGeometryCfg(flags)
214 
215  kwargs.setdefault("MonGroupName", extension + "ClusterAnalysisAlg")
216 
217  from AthenaMonitoring import AthMonitorCfgHelper
218  helper = AthMonitorCfgHelper(flags, extension + "ClusterAnalysisAlgCfg")
219 
220  monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.StripClusterAnalysisAlg, name, **kwargs)
221  monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs['MonGroupName'], '/ActsAnalysis/')
222 
223  monitoringGroup.defineHistogram('globalZ,perp;h_globalZR', title="h_globalZR; z [mm]; r [mm]", type="TH2F", path=path,
224  xbins=1500, xmin=-3000, xmax=3000,
225  ybins=400, ymin=300, ymax=1100)
226  monitoringGroup.defineHistogram('globalX,globalY;h_globalXY', title="h_globalXY; x [mm]; y [mm]", type="TH2F", path=path,
227  xbins=1600, xmin=-1100, xmax=1100,
228  ybins=1600, ymin=-1100, ymax=1100)
229  monitoringGroup.defineHistogram('eta;h_etaCluster', title="h_etaCluster; cluster #eta", type="TH1F", path=path,
230  xbins=100, xmin=-5, xmax=5)
231 
232  monitoringGroup.defineTree(f'barrelEndcap,layerDisk,phiModule,etaModule,sideModule,eta,globalX,globalY,globalZ,perp,localX,localCovXX,sizeX;{path}',
233  path='ntuples',
234  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>')
235 
236  acc.merge(helper.result())
237  return acc
238 
240  name: str = "",
241  extension: str = "Acts",
242  histoPath = "",
243  ntupleName = "",
244  **kwargs) -> ComponentAccumulator:
245  isPixel = 'Pixel' in name
246  perp_min = 0 if isPixel else 300
247  perp_max = 400 if isPixel else 1100
248 
249  acc = ComponentAccumulator()
250  from AthenaMonitoring import AthMonitorCfgHelper
251  helper = AthMonitorCfgHelper(flags, extension + 'SpacePointAnalysisAlgCfg')
252 
253  kwargs.setdefault("MonGroupName", extension + "SpacePointAnalysisAlg")
254 
255  monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.SpacePointAnalysisAlg, name, **kwargs)
256  monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs['MonGroupName'], '/ActsAnalysis/')
257 
258 
259  monitoringGroup.defineHistogram('Nsp;h_Nsp', title="Number of Space Points;N;Entries", type="TH1I", path=f"{histoPath}",
260  xbins=100, xmin=0, xmax=0)
261 
262  monitoringGroup.defineHistogram('globalX,globalY;h_globalXY', title="h_globalXY; x [mm]; y [mm]", type="TH2F", path=f"{histoPath}",
263  xbins=800, xmin=-perp_max, xmax=perp_max,
264  ybins=800, ymin=-perp_max, ymax=perp_max)
265  monitoringGroup.defineHistogram('globalZ,perp;h_globalZR', title="h_globalZR; z [mm]; r [mm]", type="TH2F", path=f"{histoPath}",
266  xbins=1500, xmin=-3000, xmax=3000,
267  ybins=400, ymin=perp_min, ymax=perp_max)
268  monitoringGroup.defineHistogram('eta;h_etaSpacePoint', title="h_etaSpacePoint; space point #eta", type="TH1F", path=f"{histoPath}",
269  xbins=100, xmin=-5, xmax=5)
270 
271  monitoringGroup.defineTree(f'barrelEndcap,layerDisk,phiModule,etaModule,sideModule,isInnermost,isNextToInnermost,isOverlap,eta,globalX,globalY,globalZ,perp,globalCovR,globalCovZ;{ntupleName}',
272  path='ntuples',
273  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>')
274 
275  acc.merge(helper.result())
276  return acc
277 
279  name: str = "ActsPixelSpacePointAnalysisAlg",
280  extension: str = "Acts",
281  **kwargs) -> ComponentAccumulator:
282  acc = ComponentAccumulator()
283 
284  from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
285  acc.merge(ITkPixelReadoutGeometryCfg(flags))
286 
287  kwargs.setdefault("SpacePointContainerKey", "ITkPixelSpacePoints")
288  kwargs.setdefault("UsePixel", True)
289  kwargs.setdefault("UseOverlap", False)
290 
291  acc.merge(ActsBaseSpacePointAnalysisAlgCfg(flags,
292  name = name,
293  extension = extension,
294  histoPath = extension.replace("Acts", "") + "PixelSpacePoints",
295  ntupleName = extension.replace("Acts", "") + "PixelSpacePoints",
296  **kwargs))
297  return acc
298 
299 
300 
302  name: str = "ActsStripSpacePointAnalysisAlg",
303  extension: str = "Acts",
304  **kwargs) -> ComponentAccumulator:
305  acc = ComponentAccumulator()
306 
307  from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
308  acc.merge(ITkStripReadoutGeometryCfg(flags))
309 
310  kwargs.setdefault("SpacePointContainerKey", "ITkStripSpacePoints")
311  kwargs.setdefault("UsePixel", False)
312  kwargs.setdefault("UseOverlap", False)
313 
314  acc.merge(ActsBaseSpacePointAnalysisAlgCfg(flags,
315  name = name,
316  extension = extension,
317  histoPath = extension.replace("Acts", "") + "StripSpacePoints",
318  ntupleName = extension.replace("Acts", "") + "StripSpacePoints",
319  **kwargs))
320  return acc
321 
322 
324  name: str = "ActsStripOverlapSpacePointAnalysisAlg",
325  extension: str = "Acts",
326  **kwargs) -> ComponentAccumulator:
327  from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
328  acc = ITkStripReadoutGeometryCfg(flags)
329 
330  kwargs.setdefault("SpacePointContainerKey", "ITkStripOverlapSpacePoints")
331  kwargs.setdefault("UsePixel", False)
332  kwargs.setdefault("UseOverlap", True)
333 
334  acc.merge(ActsBaseSpacePointAnalysisAlgCfg(flags,
335  name = name,
336  extension = extension,
337  histoPath = extension.replace("Acts", "") + "StripOverlapSpacePoints",
338  ntupleName = extension.replace("Acts", "") + "StripOverlapSpacePoints",
339  **kwargs))
340  return acc
341 
342 
344  name: str = "",
345  extension: str = "Acts",
346  histoPath: str = "",
347  ntupleName: str = "",
348  **kwargs) -> ComponentAccumulator:
349  acc = ComponentAccumulator()
350 
351  isPixel = 'Pixel' in name
352  perp_min = 0 if isPixel else 300
353  perp_max = 400 if isPixel else 1100
354 
355  kwargs.setdefault('MonGroupName', extension + 'SeedAnalysisAlg')
356 
357  from AthenaMonitoring import AthMonitorCfgHelper
358  helper = AthMonitorCfgHelper(flags, extension + 'SeedAnalysisAlgCfg')
359 
360  from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
361  geoTool = acc.popToolsAndMerge(ActsTrackingGeometryToolCfg(flags))
362  acc.addPublicTool(geoTool)
363 
364  # ATLAS Converter Tool
365  from ActsConfig.ActsEventCnvConfig import ActsToTrkConverterToolCfg
366  converterTool = acc.popToolsAndMerge(ActsToTrkConverterToolCfg(flags))
367 
368  # Track Param Estimation Tool
369  from ActsConfig.ActsTrackParamsEstimationConfig import ActsTrackParamsEstimationToolCfg
370  trackEstimationTool = acc.popToolsAndMerge(ActsTrackParamsEstimationToolCfg(flags))
371 
372  kwargs.setdefault('TrackingGeometryTool', acc.getPublicTool(geoTool.name)) # PublicToolHandle
373  kwargs.setdefault('ATLASConverterTool', converterTool)
374  kwargs.setdefault('TrackParamsEstimationTool', trackEstimationTool)
375 
376  monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.SeedAnalysisAlg, name, **kwargs)
377  monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs['MonGroupName'], '/ActsAnalysis/')
378 
379  monitoringGroup.defineHistogram('Nseed', title='Number of Seeds;N;Entries', type='TH1I', path=f'{histoPath}',
380  xbins=100, xmin=0, xmax=0)
381 
382  monitoringGroup.defineHistogram('z1,r1;zr1', title='Bottom SP - Z coordinate vs R;z [mm];r [mm]', type='TH2F', path=f'{histoPath}',
383  xbins=1500, xmin=-3000, xmax=3000,
384  ybins=400, ymin=perp_min, ymax=perp_max)
385  monitoringGroup.defineHistogram('z2,r2;zr2', title='Middle SP - Z coordinate vs R;z [mm];r [mm]', type='TH2F', path=f'{histoPath}',
386  xbins=1500, xmin=-3000, xmax=3000,
387  ybins=400, ymin=perp_min, ymax=perp_max)
388  monitoringGroup.defineHistogram('z3,r3;zr3', title='Top SP - Z coordinate vs R;z [mm];r [mm]', type='TH2F', path=f'{histoPath}',
389  xbins=1500, xmin=-3000, xmax=3000,
390  ybins=400, ymin=perp_min, ymax=perp_max)
391 
392  monitoringGroup.defineHistogram('x1;x1', title='Bottom SP - x coordinate;x [mm];Entries;', type='TH1F', path=f'{histoPath}',
393  xbins=100, xmin=-perp_max, xmax=perp_max)
394  monitoringGroup.defineHistogram('y1;y1', title='Bottom SP - y coordinate;y [mm];Entries;', type='TH1F', path=f'{histoPath}',
395  xbins=100, xmin=-perp_max, xmax=perp_max)
396  monitoringGroup.defineHistogram('z1;z1', title='Bottom SP - z coordinate;z [mm];Entries;', type='TH1F', path=f'{histoPath}',
397  xbins=100, xmin=-3000, xmax=3000)
398  monitoringGroup.defineHistogram('r1;r1', title='Bottom SP - radius coordinate;r [mm];Entries;', type='TH1F', path=f'{histoPath}',
399  xbins=100, xmin=perp_min, xmax=perp_max)
400 
401  monitoringGroup.defineHistogram('x2;x2', title='Middle SP - x coordinate;x [mm];Entries;', type='TH1F', path=f'{histoPath}',
402  xbins=100, xmin=-perp_max, xmax=perp_max)
403  monitoringGroup.defineHistogram('y2;y2', title='Middle SP - y coordinate;y [mm];Entries;', type='TH1F', path=f'{histoPath}',
404  xbins=100, xmin=-perp_max, xmax=perp_max)
405  monitoringGroup.defineHistogram('z2;z2', title='Middle SP - z coordinate;z [mm];Entries;', type='TH1F', path=f'{histoPath}',
406  xbins=100, xmin=-3000, xmax=3000)
407  monitoringGroup.defineHistogram('r2;r2', title='Middle SP - radius coordinate;r [mm];Entries;', type='TH1F', path=f'{histoPath}',
408  xbins=100, xmin=perp_min, xmax=perp_max)
409 
410  monitoringGroup.defineHistogram('x3;x3', title='Top SP - x coordinate;x [mm];Entries;', type='TH1F', path=f'{histoPath}',
411  xbins=100, xmin=-perp_max, xmax=perp_max)
412  monitoringGroup.defineHistogram('y3;y3', title='Top SP - y coordinate;y [mm];Entries;', type='TH1F', path=f'{histoPath}',
413  xbins=100, xmin=-perp_max, xmax=perp_max)
414  monitoringGroup.defineHistogram('z3;z3', title='Top SP - z coordinate;z [mm];Entries;', type='TH1F', path=f'{histoPath}',
415  xbins=100, xmin=-3000, xmax=3000)
416  monitoringGroup.defineHistogram('r3;r3', title='Top SP - radius coordinate;r [mm];Entries;', type='TH1F', path=f'{histoPath}',
417  xbins=100, xmin=perp_min, xmax=perp_max)
418 
419  if 'PixelSeeds' in ntupleName:
420  monitoringGroup.defineHistogram('pt;pT', title='Pt;Pt;Entries;', type='TH1F', path=f'{histoPath}',
421  xbins=100, xmin=0, xmax=100)
422  monitoringGroup.defineHistogram('d0;d0', title='d0;d0 [mm];Entries;', type='TH1F', path=f'{histoPath}',
423  xbins=50, xmin=0, xmax=2)
424  monitoringGroup.defineHistogram('eta;Eta', title='Pseudo-Rapidity;Pseudo-Rapidity;Entries;', type='TH1F', path=f'{histoPath}',
425  xbins=50, xmin=0, xmax=4.5)
426  monitoringGroup.defineHistogram('theta;Theta', title='Theta;Theta;Entries;', type='TH1F', path=f'{histoPath}',
427  xbins=50, xmin=0, xmax=1.6)
428  monitoringGroup.defineHistogram('penalty;Penalty', title='Penalty;Penalty;Entries;', type='TH1F', path=f'{histoPath}',
429  xbins=50, xmin=0, xmax=200)
430  monitoringGroup.defineHistogram('dzdr_b;dzdr_b', title='dzdr_b;;;', type='TH1F', path=f'{histoPath}',
431  xbins=50, xmin=-30, xmax=30)
432  monitoringGroup.defineHistogram('dzdr_t;dzdr_t', title='dzdr_t;;;', type='TH1F', path=f'{histoPath}',
433  xbins=50, xmin=-30, xmax=30)
434  elif 'StripSeeds' in ntupleName:
435  monitoringGroup.defineHistogram('pt;pT', title='Pt;Pt;Entries;', type='TH1F', path=f'{histoPath}',
436  xbins=100, xmin=0, xmax=2300)
437  monitoringGroup.defineHistogram('d0;d0', title='d0;d0 [mm];Entries;', type='TH1F', path=f'{histoPath}',
438  xbins=50, xmin=0, xmax=120)
439  monitoringGroup.defineHistogram('eta;Eta', title='Pseudo-Rapidity;Pseudo-Rapidity;Entries;', type='TH1F', path=f'{histoPath}',
440  xbins=50, xmin=0, xmax=4.5)
441  monitoringGroup.defineHistogram('theta;Theta', title='Theta;Theta;Entries;', type='TH1F', path=f'{histoPath}',
442  xbins=50, xmin=0, xmax=1.6)
443  monitoringGroup.defineHistogram('penalty;Penalty', title='Penalty;Penalty;Entries;', type='TH1F', path=f'{histoPath}',
444  xbins=50, xmin=0, xmax=20000)
445  monitoringGroup.defineHistogram('dzdr_b;dzdr_b', title='dzdr_b;;;', type='TH1F', path=f'{histoPath}',
446  xbins=50, xmin=-6.5, xmax=6.5)
447  monitoringGroup.defineHistogram('dzdr_t;dzdr_t', title='dzdr_t;;;', type='TH1F', path=f'{histoPath}',
448  xbins=50, xmin=-6.5, xmax=6.5)
449 
450  if flags.Tracking.doTruth:
451  monitoringGroup.defineHistogram('passed,estimated_eta;EfficiencyEta', title='Efficiency vs eta;eta;Efficiency', type='TEfficiency', path=f'{histoPath}',
452  xbins=50, xmin=-5, xmax=5)
453  monitoringGroup.defineHistogram('passed,estimated_pt;EfficiencyPt', title='Efficiency vs pT;pT [GeV];Efficiency', type='TEfficiency', path=f'{histoPath}',
454  xbins=30, xmin=0, xmax=120)
455 
456  # Tree
457  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"
458  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>\
459 :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"
460  if flags.Tracking.doTruth:
461  list_variables += ",truth_barcode,truth_prob"
462  tree_def += ":truth_barcode/vector<int>:truth_prob/vector<double>"
463 
464  monitoringGroup.defineTree(f'{list_variables};{ntupleName}',
465  path='ntuples',
466  treedef=tree_def )
467 
468  acc.merge(helper.result())
469  return acc
470 
471 
472 
474  name: str = "ActsPixelSeedAnalysisAlg",
475  extension: str = "Acts",
476  **kwargs) -> ComponentAccumulator:
477  kwargs.setdefault('InputSeedCollection', 'ActsPixelSeeds')
478 
479  if flags.Tracking.doTruth:
480  kwargs.setdefault('DetectorElements', 'ITkPixelDetectorElementCollection')
481  kwargs.setdefault('ITkClustersTruth', '') #PRD_MultiTruthITkPixel')
482 
483  return ActsBaseSeedAnalysisAlgCfg(flags,
484  name,
485  extension,
486  histoPath = extension.replace("Acts", "") + 'PixelSeeds',
487  ntupleName = extension.replace("Acts", "") + 'PixelSeeds',
488  **kwargs)
489 
490 
492  name: str = "ActsStripSeedAnalysisAlg",
493  extension: str = "Acts",
494  **kwargs) -> ComponentAccumulator:
495  kwargs.setdefault('InputSeedCollection', 'ActsStripSeeds')
496  kwargs.setdefault('UsePixel', False)
497 
498  if flags.Tracking.doTruth:
499  kwargs.setdefault('DetectorElements', 'ITkStripDetectorElementCollection')
500  kwargs.setdefault('ITkClustersTruth', '') #PRD_MultiTruthITkStrip')
501 
502  return ActsBaseSeedAnalysisAlgCfg(flags,
503  name,
504  extension,
505  histoPath = extension.replace("Acts", "") + 'StripSeeds',
506  ntupleName = extension.replace("Acts", "") + 'StripSeeds',
507  **kwargs)
508 
509 
511  name: str = "",
512  extension: str = "Acts",
513  histoPath: str = "",
514  ntupleName: str = "",
515  **kwargs) -> ComponentAccumulator:
516  from AthenaMonitoring import AthMonitorCfgHelper
517  helper = AthMonitorCfgHelper(flags,extension + 'EstimatedTrackParamsAnalysisAlgCfg')
518 
519  kwargs.setdefault('MonGroupName', extension + 'SeedAnalysisAlg')
520 
521  monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.EstimatedTrackParamsAnalysisAlg, name, **kwargs)
522  monitoringGroup = helper.addGroup(monitoringAlgorithm, kwargs['MonGroupName'], '/ActsAnalysis/')
523 
524  monitoringGroup.defineHistogram('Nparams', title='Number of Estimated Parameters from Seeds;N;Entries', type='TH1I', path=f'{histoPath}',
525  xbins=100, xmin=0, xmax=0)
526 
527  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}",
528  path="ntuples",
529  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>")
530 
531  return helper.result()
532 
534  name: str = "ActsSeedingAlgorithmAnalysis",
535  **kwargs) -> ComponentAccumulator:
536  acc = ComponentAccumulator()
537 
538  MonitoringGroupNames = []
539 
540  if "SeedingTools" not in kwargs:
541  from InDetConfig.SiSpacePointsSeedToolConfig import ITkSiSpacePointsSeedMakerCfg
542  ITkSiSpacePointsSeedMaker = acc.popToolsAndMerge(ITkSiSpacePointsSeedMakerCfg(flags))
543  ITkSiSpacePointsSeedMaker.maxSize = 1e8
544  MonitoringGroupNames.append("ITkSiSpacePointSeedMaker")
545 
546  from ActsConfig.ActsSeedingConfig import ActsSiSpacePointsSeedMakerToolCfg
547  # The default Acts pixel seeding tool performs by default a seed selection after the seed finding
548  # We have to disable it or a fair comparison with the other seed computations
549  from ActsConfig.ActsSeedingConfig import ActsPixelSeedingToolCfg
550  seedToolPixel = acc.popToolsAndMerge(ActsPixelSeedingToolCfg(flags, doSeedQualitySelection=False))
551  # We then override the pixel seeding tool inside the ActsSiSpacePointsSeedMakerToolCfg so that we pick this one
552  ActsITkSiSpacePointsSeedMaker = acc.popToolsAndMerge(ActsSiSpacePointsSeedMakerToolCfg(flags, SeedToolPixel=seedToolPixel))
553  ActsITkSiSpacePointsSeedMaker.doSeedConversion = False
554  MonitoringGroupNames.append("ActsITkSiSpacePointSeedMaker")
555 
556  from ActsConfig.ActsSeedingConfig import ActsPixelGbtsSeedingToolCfg
557  gbtsSeedToolPixel = acc.popToolsAndMerge(ActsPixelGbtsSeedingToolCfg(flags))
558  # We then override the pixel seeding tool inside the ActsSiSpacePointsSeedMakerToolCfg so that we pick this one
559  # Strip will not be Gbts ... so we ignore it
560  ActsGbtsITkSiSpacePointsSeedMaker = acc.popToolsAndMerge(ActsSiSpacePointsSeedMakerToolCfg(flags,
561  name="ActsSiSpacePointsSeedMakerGbts",
562  SeedToolPixel=gbtsSeedToolPixel))
563  ActsGbtsITkSiSpacePointsSeedMaker.doSeedConversion = False
564  MonitoringGroupNames.append("ActsGbtsITkSiSpacePointSeedMaker")
565 
566  from ActsConfig.ActsSeedingConfig import ActsPixelOrthogonalSeedingToolCfg, ActsStripOrthogonalSeedingToolCfg
567  pixel_orthogonal_seeding_tool = acc.popToolsAndMerge(ActsPixelOrthogonalSeedingToolCfg(flags))
568  strip_orthogonal_seeding_tool = acc.popToolsAndMerge(ActsStripOrthogonalSeedingToolCfg(flags))
569  ActsITkSiSpacePointsSeedMakerOrthogonal = \
570  acc.popToolsAndMerge(ActsSiSpacePointsSeedMakerToolCfg(flags,
571  name="ActsSiSpacePointsSeedMakerOrthogonal",
572  SeedToolPixel=pixel_orthogonal_seeding_tool,
573  SeedToolStrip=strip_orthogonal_seeding_tool))
574  ActsITkSiSpacePointsSeedMakerOrthogonal.doSeedConversion = False
575  MonitoringGroupNames.append("ActsOrthogonalITkSiSpacePointSeedMaker")
576 
577  from GaudiKernel.GaudiHandles import PrivateToolHandleArray
578  kwargs.setdefault("SeedingTools",
579  PrivateToolHandleArray([ITkSiSpacePointsSeedMaker,
580  ActsITkSiSpacePointsSeedMaker,
581  ActsGbtsITkSiSpacePointsSeedMaker,
582  ActsITkSiSpacePointsSeedMakerOrthogonal]))
583 
584  kwargs.setdefault("MonitorNames", MonitoringGroupNames)
585 
586  from AthenaMonitoring import AthMonitorCfgHelper
587  helper = AthMonitorCfgHelper(flags, 'SeedingAlgorithmAnalysisAlgCfg')
588  monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.SeedingAlgorithmAnalysisAlg, name, **kwargs)
589 
590  for groupName in MonitoringGroupNames:
591  monitoringGroup = helper.addGroup(monitoringAlgorithm, groupName, '/'+groupName+'/')
592  monitoringGroup.defineTree('eventNumber,stripSeedInitialisationTime,stripSeedProductionTime,pixelSeedInitialisationTime,pixelSeedProductionTime,numberPixelSpacePoints,numberStripSpacePoints,numberPixelSeeds,numberStripSeeds;seedInformation',
593  path='ntuples',
594  treedef='eventNumber/I:stripSeedInitialisationTime/F:stripSeedProductionTime/F:pixelSeedInitialisationTime/F:pixelSeedProductionTime/F:numberPixelSpacePoints/I:numberStripSpacePoints/I:numberPixelSeeds/I:numberStripSeeds/I')
595 
596  acc.merge(helper.result())
597  return acc
598 
599 
601  name: str = 'ActsPixelEstimatedTrackParamsAnalysisAlg',
602  extension: str = "Acts",
603  **kwargs) -> ComponentAccumulator:
604  kwargs.setdefault('InputTrackParamsCollection', 'ActsPixelEstimatedTrackParams')
606  name,
607  extension,
608  histoPath = extension.replace("Acts", "") + 'PixelEstimatedTrackParams',
609  ntupleName = extension.replace("Acts", "") + 'PixelEstimatedTrackParams',
610  **kwargs)
611 
612 
614  name: str = 'ActsStripEstimatedTrackParamsAnalysisAlg',
615  extension: str = "Acts",
616  **kwargs) -> ComponentAccumulator:
617  kwargs.setdefault('InputTrackParamsCollection', 'ActsStripEstimatedTrackParams')
619  name,
620  extension,
621  histoPath = extension.replace("Acts", "") + 'StripEstimatedTrackParams',
622  ntupleName = extension.replace("Acts", "") + 'StripEstimatedTrackParams',
623  **kwargs)
624 
625 
627  name: str = "",
628  **kwargs) -> ComponentAccumulator:
629  acc = ComponentAccumulator()
630 
631  if 'ExtrapolationTool' not in kwargs:
632  from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
633  kwargs.setdefault(
634  'ExtrapolationTool',
635  acc.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)),
636  )
637 
638  if 'TrackingGeometryTool' not in kwargs:
639  from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
640  kwargs.setdefault(
641  'TrackingGeometryTool',
642  acc.popToolsAndMerge(ActsTrackingGeometryToolCfg(flags)),
643  )
644 
645  if 'ATLASConverterTool' not in kwargs:
646  from ActsConfig.ActsEventCnvConfig import ActsToTrkConverterToolCfg
647  kwargs.setdefault('ATLASConverterTool', acc.popToolsAndMerge(ActsToTrkConverterToolCfg(flags)))
648 
649  if 'TrackParamsEstimationTool' not in kwargs:
650  from ActsConfig.ActsTrackParamsEstimationConfig import ActsTrackParamsEstimationToolCfg
651  kwargs.setdefault('TrackParamsEstimationTool', acc.popToolsAndMerge(ActsTrackParamsEstimationToolCfg(flags)))
652 
653  acc.addEventAlgo(CompFactory.ActsTrk.SeedsToTrackParamsAlg(name, **kwargs))
654  return acc
655 
657  name: str = 'ActsPixelSeedsToTrackParamsAlg',
658  extension: str = "Acts",
659  **kwargs) -> ComponentAccumulator:
660  kwargs.setdefault('InputSeedContainerKey', 'ActsPixelSeeds')
661  kwargs.setdefault('DetectorElementsKey', 'ITkPixelDetectorElementCollection')
662  kwargs.setdefault('OutputTrackParamsCollectionKey', 'ActsPixelEstimatedTrackParams')
664  name,
665  **kwargs)
666 
667 
669  name: str = 'ActsStripSeedsToTrackParamsAlgCfg',
670  extension: str = "Acts",
671  **kwargs) -> ComponentAccumulator:
672  kwargs.setdefault('InputSeedContainerKey', 'ActsStripSeeds')
673  kwargs.setdefault('DetectorElementsKey', 'ITkStripDetectorElementCollection')
674  kwargs.setdefault('OutputTrackParamsCollectionKey', 'ActsStripEstimatedTrackParams')
676  name,
677  **kwargs)
678 
679 
680 def PhysValActsCfg(flags,
681  name: str = 'PhysValActs',
682  **kwargs) -> ComponentAccumulator:
683  acc = ComponentAccumulator()
684 
685  # deduce what to analyse from the collectiosn in the input file
686  typedCollections = flags.Input.TypedCollections
687  for col in typedCollections:
688  col_type, col_name = col.split("#")
689  if col_type == "xAOD::PixelClusterContainer":
690  kwargs.setdefault("doPixelClusters", True)
691  elif col_type == "xAOD::StripClusterContainer":
692  kwargs.setdefault("doStripClusters", True)
693  elif col_type == "xAOD::HGTDClusterContainer":
694  kwargs.setdefault("doHgtdClusters", flags.PhysVal.IDPVM.doHGTD)
695  elif col_type == "xAOD::SpacePointContainer":
696  if 'Pixel' in col_name:
697  kwargs.setdefault("doPixelSpacePoints", True)
698  elif 'Strip' in col_name:
699  kwargs.setdefault("doStripSpacePoints", True)
700  kwargs.setdefault("doStripOverlapSpacePoints", True)
701 
702  acc.setPrivateTools(CompFactory.ActsTrk.PhysValTool(name=name,
703  **kwargs))
704  return acc
705 
706 def ActsSeedAnalysisCfg(flags) -> ComponentAccumulator:
707  acc = ComponentAccumulator()
708  if flags.Detector.EnableITkPixel:
709  acc.merge(ActsPixelSeedAnalysisAlgCfg(flags))
710  if flags.Detector.EnableITkStrip:
711  acc.merge(ActsStripSeedAnalysisAlgCfg(flags))
712  return acc
713 
714 
715 def ActsEstimatedTrackParamsAnalysisCfg(flags) -> ComponentAccumulator:
716  acc = ComponentAccumulator()
717  if flags.Detector.EnableITkPixel:
719  if flags.Detector.EnableITkStrip:
721  return acc
722 
723 
724 def ActsSeedsToTrackParamsCfg(flags) -> ComponentAccumulator:
725  acc = ComponentAccumulator()
726  if flags.Detector.EnableITkPixel:
727  acc.merge(ActsPixelSeedsToTrackParamsAlgCfg(flags))
728  if flags.Detector.EnableITkStrip:
729  acc.merge(ActsStripSeedsToTrackParamsAlgCfg(flags))
730  return acc
731 
733  name : str = "ActsResidualAnalysisAlg",
734  **kwargs) -> ComponentAccumulator:
735 
736  acc = ComponentAccumulator()
737 
738  kwargs.setdefault('InDetTrackParticles', 'InDetTrackParticles')
739  kwargs.setdefault("MonGroupName", kwargs['InDetTrackParticles'])
740 
741  from AthenaMonitoring import AthMonitorCfgHelper
742  helper = AthMonitorCfgHelper(flags, kwargs['InDetTrackParticles'] + 'AnalysisAlgCfg')
743 
744  ResidualMonitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.ITkAlignMonResidualsAlg, name, **kwargs)
745 
746  layersPix = ['0', '1', '2', '3', '4']
747 
748  residualXArray = helper.addArray([len(layersPix)], ResidualMonitoringAlgorithm, 'PixResidualX', topPath = '/ActsAnalysis/Residuals')
749  residualYArray = helper.addArray([len(layersPix)], ResidualMonitoringAlgorithm, 'PixResidualY', topPath = '/ActsAnalysis/Residuals')
750  pullXArray = helper.addArray([len(layersPix)], ResidualMonitoringAlgorithm, 'PixPullX', topPath = '/ActsAnalysis/Residuals')
751  pullYArray = helper.addArray([len(layersPix)], ResidualMonitoringAlgorithm, 'PixPullY', topPath = '/ActsAnalysis/Residuals')
752 
753  layersStrip = ['0','1','2','3','4','5','6','7','8']
754  stripResidualXArray = helper.addArray([len(layersStrip)], ResidualMonitoringAlgorithm, 'StripResidualX', topPath = '/ActsAnalysis/Residuals')
755  stripPullXArray = helper.addArray([len(layersStrip)], ResidualMonitoringAlgorithm, 'StripPullX', topPath = '/ActsAnalysis/Residuals')
756 
757 
758  xminX = -100
759  xmaxX = 100
760  xminY = -200
761  xmaxY = 200
762  pullX = 6
763 
764  for postfix,tool in residualXArray.Tools.items():
765  layer = layersPix[int(postfix.split("_")[1])]
766  title = ('UnBiased X Residual Pixel Barrel %s' % layer)
767  name = 'm_pix_residualsx;pix_b' + layer + '_residualx'
768  tool.defineHistogram(name, title = title, type = 'TH1F',
769  xbins = 100, xmin = xminX, xmax = xmaxX) #in um
770 
771 
772  for postfix,tool in residualYArray.Tools.items():
773  layer = layersPix[int(postfix.split("_")[1])]
774  title = ('UnBiased Y Residual Pixel Barrel %s' % layer)
775  name = 'm_pix_residualsy;pix_b' + layer + '_residualy'
776  tool.defineHistogram(name, title = title, type = 'TH1F',
777  xbins = 100, xmin = xminY, xmax = xmaxY) #in um
778 
779 
780  for postfix,tool in pullXArray.Tools.items():
781 
782  layer = layersPix[int(postfix.split("_")[1])]
783  title = ('UnBiased X Pull Pixel Barrel %s' % layer)
784  name = 'm_pix_pullsx;pix_b' + layer + '_pullx'
785  tool.defineHistogram(name, title = title, type = 'TH1F',
786  xbins = 100, xmin = -pullX, xmax = pullX) #in um
787 
788 
789  for postfix,tool in pullYArray.Tools.items():
790  layer = layersPix[int(postfix.split("_")[1])]
791  title = ('UnBiased Y Pull Pixel Barrel %s' % layer)
792  name = 'm_pix_pullsy;pix_b' + layer + '_pully'
793  tool.defineHistogram(name, title = title, type = 'TH1F',
794  xbins = 100, xmin = -pullX, xmax = pullX) #in um
795 
796 
797 
798  for postfix,tool in stripResidualXArray.Tools.items():
799  layer = layersStrip[int(postfix.split("_")[1])]
800  title = ('UnBiased X Residual Strip Barrel %s' % layer)
801  name = 'm_strip_residualsx;strip_b' + layer + '_residualx'
802  tool.defineHistogram(name, title = title, type = 'TH1F',
803  xbins = 100, xmin = xminX, xmax = xmaxX) #in um
804 
805 
806  for postfix,tool in stripPullXArray.Tools.items():
807  layer = layersStrip[int(postfix.split("_")[1])]
808  title = ('UnBiased X Pull Strip Barrel %s' % layer)
809  name = 'm_strip_pullsx;strip_b' + layer + '_pullx'
810  tool.defineHistogram(name, title = title, type = 'TH1F',
811  xbins = 100, xmin = -pullX, xmax = pullX) #in um
812 
813  acc.merge(helper.result())
814  return acc
815 
816 
ActsSeedingConfig.ActsPixelOrthogonalSeedingToolCfg
ComponentAccumulator ActsPixelOrthogonalSeedingToolCfg(flags, str name="ActsPixelOrthogonalSeedingTool", **kwargs)
Definition: ActsSeedingConfig.py:135
ActsSeedingConfig.ActsPixelGbtsSeedingToolCfg
ComponentAccumulator ActsPixelGbtsSeedingToolCfg(flags, str name="ActsPixelGbtsSeedingTool", **kwargs)
Definition: ActsSeedingConfig.py:186
ActsAnalysisConfig.ActsSeedsToTrackParamsCfg
ComponentAccumulator ActsSeedsToTrackParamsCfg(flags)
Definition: ActsAnalysisConfig.py:724
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
ActsAnalysisConfig.ActsPixelEstimatedTrackParamsAnalysisAlgCfg
ComponentAccumulator ActsPixelEstimatedTrackParamsAnalysisAlgCfg(flags, str name='ActsPixelEstimatedTrackParamsAnalysisAlg', str extension="Acts", **kwargs)
Definition: ActsAnalysisConfig.py:600
ActsAnalysisConfig.ActsStripSpacePointAnalysisAlgCfg
ComponentAccumulator ActsStripSpacePointAnalysisAlgCfg(flags, str name="ActsStripSpacePointAnalysisAlg", str extension="Acts", **kwargs)
Definition: ActsAnalysisConfig.py:301
ActsAnalysisConfig.ActsStripSeedAnalysisAlgCfg
ComponentAccumulator ActsStripSeedAnalysisAlgCfg(flags, str name="ActsStripSeedAnalysisAlg", str extension="Acts", **kwargs)
Definition: ActsAnalysisConfig.py:491
ActsEventCnvConfig.ActsToTrkConverterToolCfg
ComponentAccumulator ActsToTrkConverterToolCfg(flags, str name="ActsToTrkConverterTool", **kwargs)
Definition: ActsEventCnvConfig.py:6
ActsAnalysisConfig.ActsSeedAnalysisCfg
ComponentAccumulator ActsSeedAnalysisCfg(flags)
Definition: ActsAnalysisConfig.py:706
ITkStripGeoModelConfig.ITkStripReadoutGeometryCfg
def ITkStripReadoutGeometryCfg(flags)
Definition: ITkStripGeoModelConfig.py:43
ActsSeedingConfig.ActsPixelSeedingToolCfg
ComponentAccumulator ActsPixelSeedingToolCfg(flags, str name="ActsPixelSeedingTool", **kwargs)
Definition: ActsSeedingConfig.py:33
ITkPixelGeoModelConfig.ITkPixelReadoutGeometryCfg
def ITkPixelReadoutGeometryCfg(flags)
Definition: ITkPixelGeoModelConfig.py:39
ActsAnalysisConfig.ActsStripClusterAnalysisAlgCfg
ComponentAccumulator ActsStripClusterAnalysisAlgCfg(flags, str name="ActsStripClusterAnalysisAlg", str extension="Acts", **kwargs)
Definition: ActsAnalysisConfig.py:206
ActsAnalysisConfig.ActsPixelSeedAnalysisAlgCfg
ComponentAccumulator ActsPixelSeedAnalysisAlgCfg(flags, str name="ActsPixelSeedAnalysisAlg", str extension="Acts", **kwargs)
Definition: ActsAnalysisConfig.py:473
ActsAnalysisConfig.ActsPixelSpacePointAnalysisAlgCfg
ComponentAccumulator ActsPixelSpacePointAnalysisAlgCfg(flags, str name="ActsPixelSpacePointAnalysisAlg", str extension="Acts", **kwargs)
Definition: ActsAnalysisConfig.py:278
ActsAnalysisConfig.ActsTrackAnalysisAlgCfg
ComponentAccumulator ActsTrackAnalysisAlgCfg(flags, str name="ActsTrackAnalysisAlg", **kwargs)
Definition: ActsAnalysisConfig.py:6
ActsAnalysisConfig.ActsHgtdClusterAnalysisAlgCfg
ComponentAccumulator ActsHgtdClusterAnalysisAlgCfg(flags, str name="ActsHgtdClusterAnalysisAlg", **kwargs)
Definition: ActsAnalysisConfig.py:138
ActsAnalysisConfig.ActsStripSeedsToTrackParamsAlgCfg
ComponentAccumulator ActsStripSeedsToTrackParamsAlgCfg(flags, str name='ActsStripSeedsToTrackParamsAlgCfg', str extension="Acts", **kwargs)
Definition: ActsAnalysisConfig.py:668
ActsAnalysisConfig.ActsSeedingAlgorithmAnalysisAlgCfg
ComponentAccumulator ActsSeedingAlgorithmAnalysisAlgCfg(flags, str name="ActsSeedingAlgorithmAnalysis", **kwargs)
Definition: ActsAnalysisConfig.py:533
ActsAnalysisConfig.ActsBaseEstimatedTrackParamsAnalysisAlgCfg
ComponentAccumulator ActsBaseEstimatedTrackParamsAnalysisAlgCfg(flags, str name="", str extension="Acts", str histoPath="", str ntupleName="", **kwargs)
Definition: ActsAnalysisConfig.py:510
ActsAnalysisConfig.ActsStripOverlapSpacePointAnalysisAlgCfg
ComponentAccumulator ActsStripOverlapSpacePointAnalysisAlgCfg(flags, str name="ActsStripOverlapSpacePointAnalysisAlg", str extension="Acts", **kwargs)
Definition: ActsAnalysisConfig.py:323
python.LArMinBiasAlgConfig.int
int
Definition: LArMinBiasAlgConfig.py:59
ActsGeometryConfig.ActsExtrapolationToolCfg
ComponentAccumulator ActsExtrapolationToolCfg(flags, str name="ActsExtrapolationTool", **kwargs)
Definition: ActsGeometryConfig.py:123
ActsTrackParamsEstimationConfig.ActsTrackParamsEstimationToolCfg
ComponentAccumulator ActsTrackParamsEstimationToolCfg(ConfigFlags, str name="ActsTrackParamsEstimationTool", **kwargs)
Definition: ActsTrackParamsEstimationConfig.py:6
ActsAnalysisConfig.ActsBaseSeedAnalysisAlgCfg
ComponentAccumulator ActsBaseSeedAnalysisAlgCfg(flags, str name="", str extension="Acts", str histoPath="", str ntupleName="", **kwargs)
Definition: ActsAnalysisConfig.py:343
HGTD_GeoModelConfig.HGTD_ReadoutGeometryCfg
def HGTD_ReadoutGeometryCfg(flags)
Definition: python/HGTD_GeoModelConfig.py:23
ActsGeometryConfig.ActsTrackingGeometryToolCfg
ComponentAccumulator ActsTrackingGeometryToolCfg(flags, str name="ActsTrackingGeometryTool")
Definition: ActsGeometryConfig.py:114
ActsAnalysisConfig.ActsBaseSeedsToTrackParamsAlgCfg
ComponentAccumulator ActsBaseSeedsToTrackParamsAlgCfg(flags, str name="", **kwargs)
Definition: ActsAnalysisConfig.py:626
ActsAnalysisConfig.ActsStripEstimatedTrackParamsAnalysisAlgCfg
ComponentAccumulator ActsStripEstimatedTrackParamsAnalysisAlgCfg(flags, str name='ActsStripEstimatedTrackParamsAnalysisAlg', str extension="Acts", **kwargs)
Definition: ActsAnalysisConfig.py:613
ActsSeedingConfig.ActsSiSpacePointsSeedMakerToolCfg
ComponentAccumulator ActsSiSpacePointsSeedMakerToolCfg(flags, str name='ActsSiSpacePointsSeedMakerTool', **kwargs)
Definition: ActsSeedingConfig.py:198
ActsAnalysisConfig.ActsEstimatedTrackParamsAnalysisCfg
ComponentAccumulator ActsEstimatedTrackParamsAnalysisCfg(flags)
Definition: ActsAnalysisConfig.py:715
python.SiSpacePointsSeedToolConfig.ITkSiSpacePointsSeedMakerCfg
def ITkSiSpacePointsSeedMakerCfg(flags, name="ITkSpSeedsMaker", **kwargs)
Definition: SiSpacePointsSeedToolConfig.py:203
ActsAnalysisConfig.PhysValActsCfg
ComponentAccumulator PhysValActsCfg(flags, str name='PhysValActs', **kwargs)
Definition: ActsAnalysisConfig.py:680
ActsAnalysisConfig.ActsResidualAnalysisAlgCfg
ComponentAccumulator ActsResidualAnalysisAlgCfg(flags, str name="ActsResidualAnalysisAlg", **kwargs)
Definition: ActsAnalysisConfig.py:732
ActsAnalysisConfig.ActsPixelSeedsToTrackParamsAlgCfg
ComponentAccumulator ActsPixelSeedsToTrackParamsAlgCfg(flags, str name='ActsPixelSeedsToTrackParamsAlg', str extension="Acts", **kwargs)
Definition: ActsAnalysisConfig.py:656
ActsAnalysisConfig.ActsTrackParticleAnalysisAlgCfg
ComponentAccumulator ActsTrackParticleAnalysisAlgCfg(flags, str name='ActsTrackParticleAnalysisAlg', **kwargs)
Definition: ActsAnalysisConfig.py:78
ActsSeedingConfig.ActsStripOrthogonalSeedingToolCfg
ComponentAccumulator ActsStripOrthogonalSeedingToolCfg(flags, str name="ActsStripOrthogonalSeedingTool", **kwargs)
Definition: ActsSeedingConfig.py:158
ActsAnalysisConfig.ActsBaseSpacePointAnalysisAlgCfg
ComponentAccumulator ActsBaseSpacePointAnalysisAlgCfg(flags, str name="", str extension="Acts", histoPath="", ntupleName="", **kwargs)
Definition: ActsAnalysisConfig.py:239
ActsAnalysisConfig.ActsPixelClusterAnalysisAlgCfg
ComponentAccumulator ActsPixelClusterAnalysisAlgCfg(flags, str name="ActsPixelClusterAnalysisAlg", str extension="Acts", **kwargs)
Definition: ActsAnalysisConfig.py:172