9 **kwargs) -> ComponentAccumulator:
10 acc = ComponentAccumulator()
11 kwargs.setdefault("InputSeedCollection", "")
12 kwargs.setdefault("InputTrackParamsCollection", "")
13 kwargs.setdefault("InputDestinyCollection", "")
14
15 if flags.Tracking.doTruth:
16 if flags.Detector.EnableITkPixel:
17 kwargs.setdefault("PixelTruthAssociationMap", "ITkPixelClustersToTruthParticles")
18 if flags.Detector.EnableITkStrip:
19 kwargs.setdefault("StripTruthAssociationMap", "ITkStripClustersToTruthParticles")
20
21 from AthenaMonitoring import AthMonitorCfgHelper
22 helper = AthMonitorCfgHelper(flags, kwargs['InputDestinyCollection'] + 'AnalysisAlgCfg')
23
24 monitoringAlgorithm = helper.addAlgorithm(CompFactory.ActsTrk.SeedToTrackAnalysisAlg, name, **kwargs)
25 destinyTypes = ['UNKNOWN', 'SUCCEED', 'DUPLICATE', 'FAILURE', 'INCLUSIVE']
26 nTypes = len(destinyTypes)
27
28 histoPath = f'/ActsAnalysis/{kwargs["InputDestinyCollection"]}'
29
30 seedVars = helper.addArray([nTypes], monitoringAlgorithm, 'seedVars', topPath=histoPath)
31
32 for postfix, tool in seedVars.Tools.items():
33 layer = destinyTypes[ int(postfix.split("_")[1]) ]
34 tool.defineHistogram(f"eta,bottomR;Eta_Vs_bottomR_{layer}", title=f"Bottom R vs Eta for {layer}", type='TH2F', path='2D',
35 xbins=50, xmin=-4.5, xmax=4.5,
36 ybins=320, ymin=0, ymax=320)
37 tool.defineHistogram(f"eta,middleR;Eta_Vs_middleR_{layer}", title=f"Middle R vs Eta for {layer}", type='TH2F', path='2D',
38 xbins=50, xmin=-4.5, xmax=4.5,
39 ybins=320, ymin=0, ymax=320)
40 tool.defineHistogram(f"eta,topR;Eta_Vs_topR_{layer}", title=f"Top R vs Eta for {layer}", type='TH2F', path='2D',
41 xbins=50, xmin=-4.5, xmax=4.5,
42 ybins=320, ymin=0, ymax=320)
43
44 tool.defineHistogram(f"deltaR_BT,deltaR_BM;DeltaR_BT_vs_Delta_BM_{layer}", title=f"Delta Radius BT vs BM for {layer}", type='TH2F', path='2D',
45 xbins=320, xmin=0, xmax=320,
46 ybins=320, ymin=0, ymax=320)
47 tool.defineHistogram(f"deltaR_BT,deltaR_MT;DeltaR_BT_vs_Delta_MT_{layer}", title=f"Delta Radius BT vs MT for {layer}", type='TH2F', path='2D',
48 xbins=320, xmin=0, xmax=320,
49 ybins=320, ymin=0, ymax=320)
50 tool.defineHistogram(f"deltaR_BM,deltaR_MT;DeltaR_BM_vs_Delta_MT_{layer}", title=f"Delta Radius MB vs MT for {layer}", type='TH2F', path='2D',
51 xbins=320, xmin=0, xmax=320,
52 ybins=320, ymin=0, ymax=320)
53
54 tool.defineHistogram(f"bottomZ,bottomR;BottomZR_{layer}", title=f"Bottom SP ZR for {layer}", type='TH2F', path='2D',
55 xbins=12000, xmin=-3000, xmax=3000,
56 ybins=1000, ymin=0, ymax=320)
57 tool.defineHistogram(f"middleZ,middleR;MiddleZR_{layer}", title=f"Middle SP ZR for {layer}", type='TH2F', path='2D',
58 xbins=12000, xmin=-3000, xmax=3000,
59 ybins=1000, ymin=0, ymax=320)
60 tool.defineHistogram(f"topZ,topR;TopZR_{layer}", title=f"Top SP ZR for {layer}", type='TH2F', path='2D',
61 xbins=12000, xmin=-3000, xmax=3000,
62 ybins=1000, ymin=0, ymax=320)
63
64 tool.defineHistogram(f"cotTheta_BM;cotTheta_BM_{layer}", title=f"CotTheta bottom-middle for {layer}", type='TH1F', path='SPVars',
65 xbins=80, xmin=0, xmax=40,
66 ybins=80, ymin=0, ymax=40)
67 tool.defineHistogram(f"cotTheta_MT;cotTheta_MR_{layer}", title=f"CotTheta middle-top for {layer}", type='TH1F', path='SPVars',
68 xbins=80, xmin=0, xmax=40,
69 ybins=80, ymin=0, ymax=40)
70 tool.defineHistogram(f"cotTheta_BM;cotTheta_BT_{layer}", title=f"CotTheta bottom-top for {layer}", type='TH1F', path='SPVars',
71 xbins=80, xmin=0, xmax=40,
72 ybins=80, ymin=0, ymax=40)
73
74 tool.defineHistogram(f"deltaCotTheta_BM_MT;deltaCotTheta_BM_MT_{layer}", title=f"Delta CotTheta bottom-top vs middle-top for {layer}", type='TH1F', path='SPVars',
75 xbins=80, xmin=-2, xmax=2,
76 ybins=80, ymin=-2, ymax=2)
77
78 rangeQuality = 10000
79 tool.defineHistogram(f"bottomR,quality;Quality_vs_BottomR_{layer}", title=f"Seed Bottom Radius Vs Quality for {layer};Bottom SP radius;Quality", type='TH2F', path='Quality',
80 xbins=320, xmin=0, xmax=320,
81 ybins=1000, ymin=-rangeQuality, ymax=rangeQuality)
82 tool.defineHistogram(f"middleR,quality;Quality_vs_MiddleR_{layer}", title=f"Seed Middle Radius Vs Quality for {layer};Middle SP radius;Quality", type='TH2F', path='Quality',
83 xbins=320, xmin=0, xmax=320,
84 ybins=1000, ymin=-rangeQuality, ymax=rangeQuality)
85 tool.defineHistogram(f"topR,quality;Quality_vs_TopR_{layer}", title=f"Seed Top Radius Vs Quality for {layer};Top SP radius;Quality", type='TH2F', path='Quality',
86 xbins=320, xmin=0, xmax=320,
87 ybins=1000, ymin=-rangeQuality, ymax=rangeQuality)
88
89 tool.defineHistogram(f"deltaR_BT,quality;Quality_vs_deltaR_BT_{layer}", title=f"Seed Bottom Radius Vs Quality for {layer};Bottom SP radius;Quality", type='TH2F', path='Quality',
90 xbins=320, xmin=0, xmax=320,
91 ybins=1000, ymin=-rangeQuality, ymax=rangeQuality)
92 tool.defineHistogram(f"deltaR_BM,quality;Quality_vs_deltaR_BM_{layer}", title=f"Seed Bottom Radius Vs Quality for {layer};Bottom SP radius;Quality", type='TH2F', path='Quality',
93 xbins=320, xmin=0, xmax=320,
94 ybins=1000, ymin=-rangeQuality, ymax=rangeQuality)
95 tool.defineHistogram(f"deltaR_MT,quality;Quality_vs_deltaR_MT_{layer}", title=f"Seed Bottom Radius Vs Quality for {layer};Bottom SP radius;Quality", type='TH2F', path='Quality',
96 xbins=320, xmin=0, xmax=320,
97 ybins=1000, ymin=-rangeQuality, ymax=rangeQuality)
98
99 tool.defineHistogram(f"bottomR,truthProb;Truth_Probability_vs_bottomR_{layer}", title=f"bottom R vs truth prob. for {layer};R;Truth Prob.", type='TH2F', path='Quality',
100 xbins=320, xmin=0, xmax=320,
101 ybins=12, ymin=0, ymax=1.2)
102 tool.defineHistogram(f"middleR,truthProb;Truth_Probability_vs_middleR_{layer}", title=f"middle R vs truth prob. for {layer};R;Truth Prob.", type='TH2F', path='Quality',
103 xbins=320, xmin=0, xmax=320,
104 ybins=12, ymin=0, ymax=1.2)
105 tool.defineHistogram(f"topR,truthProb;Truth_Probability_vs_topR_{layer}", title=f"top R vs truth prob. for {layer};R;Truth Prob.", type='TH2F', path='Quality',
106 xbins=320, xmin=0, xmax=320,
107 ybins=12, ymin=0, ymax=1.2)
108
109 tool.defineHistogram(f"vtxZ,quality;Quality_vs_vtxZ_{layer}", title=f"Seed Vtxz Vs Quality for {layer};vtx Z;Quality", type='TH2F', path='Quality',
110 xbins=100, xmin=-200, xmax=200,
111 ybins=1000, ymin=-rangeQuality, ymax=rangeQuality)
112
113 tool.defineHistogram(f"truthProb;Truth_Probability_{layer}", title=f"Seed Truth Probability for {layer}", type="TH1F", path='Quality',
114 xbins=12, xmin=0, xmax=1.2)
115 tool.defineHistogram(f"eta,truthProb;Truth_Probability_vs_Eta_{layer}", title=f"Seed Truth Probability VS Eta for {layer}", type="TH2F", path='Quality',
116 xbins=50, xmin=-4.5, xmax=4.5,
117 ybins=12, ymin=0, ymax=1.2)
118 tool.defineHistogram(f"quality,truthProb;Truth_Probability_vs_Quality_{layer}", title=f"Seed Truth Probability VS Eta for {layer}", type="TH2F", path='Quality',
119 xbins=1000, xmin=-rangeQuality, xmax=rangeQuality,
120 ybins=12, ymin=0, ymax=1.2)
121
122 tool.defineHistogram(f"deltaR_BT,truthProb;deltaR_BT_vs_Truth_Probability_{layer}", title=f"Seed Truth Probability for {layer}", type="TH2F", path='Quality',
123 xbins=320, xmin=0, xmax=320,
124 ybins=12, ymin=0, ymax=1.2)
125 tool.defineHistogram(f"deltaR_BM,truthProb;deltaR_BM_vs_Truth_Probability_{layer}", title=f"Seed Truth Probability for {layer}", type="TH2F", path='Quality',
126 xbins=320, xmin=0, xmax=320,
127 ybins=12, ymin=0, ymax=1.2)
128 tool.defineHistogram(f"deltaR_MT,truthProb;deltaR_MT_vs_Truth_Probability_{layer}", title=f"Seed Truth Probability for {layer}", type="TH2F", path='Quality',
129 xbins=320, xmin=0, xmax=320,
130 ybins=12, ymin=0, ymax=1.2)
131
132 tool.defineHistogram(f"eta;Eta_{layer}", title=f"Eta for {layer}", type='TH1F', path='SeedVars',
133 xbins=50, xmin=-4.5, xmax=4.5)
134 tool.defineHistogram(f"pt;Pt_{layer}", title=f"Pt for {layer}", type='TH1F', path='SeedVars',
135 xbins=100, xmin=0, xmax=100)
136 tool.defineHistogram(f"quality;Quality_{layer}", title=f"Quality for {layer}", type='TH1F', path='SeedVars',
137 xbins=1000, xmin=-rangeQuality, xmax=rangeQuality)
138 tool.defineHistogram(f"vtxZ;VtxZ_{layer}", title=f"Vtx Z for {layer}", type='TH1F', path='SeedVars',
139 xbins=100, xmin=-200, xmax=200)
140
141 tool.defineHistogram(f"bottomX;BottomX_{layer}", title=f"Bottom X for {layer}", type='TH1F', path='SPVars',
142 xbins=320, xmin=-320, xmax=320)
143 tool.defineHistogram(f"bottomY;BottomY_{layer}", title=f"Bottom Y for {layer}", type='TH1F', path='SPVars',
144 xbins=320, xmin=-320, xmax=320)
145 tool.defineHistogram(f"bottomZ;BottomZ_{layer}", title=f"Bottom Z for {layer}", type='TH1F', path='SPVars',
146 xbins=500, xmin=-3000, xmax=3000)
147 tool.defineHistogram(f"bottomR;BottomR_{layer}", title=f"Bottom Radius for {layer}", type='TH1F', path='SPVars',
148 xbins=320, xmin=0, xmax=320)
149
150 tool.defineHistogram(f"middleX;MiddleX_{layer}", title=f"Middle X for {layer}", type='TH1F', path='SPVars',
151 xbins=320, xmin=-320, xmax=320)
152 tool.defineHistogram(f"middleY;MiddleY_{layer}", title=f"Middle Y for {layer}", type='TH1F', path='SPVars',
153 xbins=320, xmin=-320, xmax=320)
154 tool.defineHistogram(f"middleZ;MiddleZ_{layer}", title=f"Middle Z for {layer}", type='TH1F', path='SPVars',
155 xbins=500, xmin=-3000, xmax=3000)
156 tool.defineHistogram(f"middleR;MiddleR_{layer}", title=f"Middle Radius for {layer}", type='TH1F', path='SPVars',
157 xbins=320, xmin=0, xmax=320)
158
159 tool.defineHistogram(f"topX;TopX_{layer}", title=f"Top X for {layer}", type='TH1F', path='SPVars',
160 xbins=320, xmin=-320, xmax=320)
161 tool.defineHistogram(f"topY;TopY_{layer}", title=f"Top Y for {layer}", type='TH1F', path='SPVars',
162 xbins=320, xmin=-320, xmax=320)
163 tool.defineHistogram(f"topZ;TopZ_{layer}", title=f"Top Z for {layer}", type='TH1F', path='SPVars',
164 xbins=500, xmin=-3000, xmax=3000)
165 tool.defineHistogram(f"topR;TopR_{layer}", title=f"Top Radius for {layer}", type='TH1F', path='SPVars',
166 xbins=320, xmin=0, xmax=320)
167
168 tool.defineHistogram(f"deltaR_BT;DeltaR_BT_{layer}", title=f"Delta Radius between Bottom and Top for {layer}", type='TH1F', path='SPVars',
169 xbins=320, xmin=0, xmax=320)
170 tool.defineHistogram(f"deltaR_BM;DeltaR_BM_{layer}", title=f"Delta Radius between Bottom and Middle for {layer}", type='TH1F', path='SPVars',
171 xbins=320, xmin=0, xmax=320)
172 tool.defineHistogram(f"deltaR_MT;DeltaR_MT_{layer}", title=f"Delta Radius between Middle and Top for {layer}", type='TH1F', path='SPVars',
173 xbins=320, xmin=0, xmax=320)
174
175 acc.merge(helper.result())
176 return acc
177
178