9 #include "trg/cdc/modules/dqmneuro/CDCTriggerNeuroDQMModule.h"
11 #include <framework/dataobjects/EventMetaData.h>
13 #include "TDirectory.h"
14 #include <tracking/dataobjects/RecoTrack.h>
32 setDescription(
"CDC Trigger DQM module");
33 setPropertyFlags(c_ParallelProcessingCertified);
34 addParam(
"limitedoutput", m_limitedoutput,
35 "Switch to supress output for online dqm purposes. ",
37 addParam(
"unpackedSegmentHitsName", m_unpackedSegmentHitsName,
38 "The name of the StoreArray of the unpacked CDCTriggerSegmentHits",
39 string(
"CDCTriggerSegmentHits"));
40 addParam(
"unpacked2DTracksName", m_unpacked2DTracksName,
41 "The name of the StoreArray of the unpacked 2D finder tracks",
42 string(
"CDCTrigger2DFinderTracks"));
43 addParam(
"unpackedNeuroTracksName", m_unpackedNeuroTracksName,
44 "The name of the StoreArray of the unpacked neurotrigger tracks",
45 string(
"CDCTriggerNeuroTracks"));
46 addParam(
"unpackedNeuroInput2dTracksName", m_unpackedNeuroInput2DTracksName,
47 "The name of the StoreArray of the neurotrigger input 2d tracks",
48 string(
"CDCTriggerNNInput2DFinderTracks"));
49 addParam(
"unpackedNeuroInputSegmentHits", m_unpackedNeuroInputSegmentsName,
50 "The name of the StoreArray of the neurotrigger input segment hits",
51 string(
"CDCTriggerNNInputSegmentHits"));
52 addParam(
"simNeuroTracksName", m_simNeuroTracksName,
53 "The name of the StoreArray of the neurotrigger tracks from TSIM",
55 addParam(
"histogramDirectoryName", m_histogramDirectoryName,
56 "Name of the directory where histograms will be placed",
58 addParam(
"simSegmentHitsName", m_simSegmentHitsName,
59 "StoreArray name for simulated TS hits",
string(
""));
60 addParam(
"sim2DTracksSWTSName", m_sim2DTracksSWTSName,
61 "StoreArray name for simulated 2D finder tracks using simulated TS",
string(
""));
62 addParam(
"simNeuroTracksSWTSSW2DName", m_simNeuroTracksSWTSSW2DName,
63 "StoreArray name for neuro tracks using simulated TS and simulated 2D",
string(
""));
64 addParam(
"showRecoTracks", m_showRecoTracks,
65 "switch to turn on a comparison with the reconstruction, DEPRECATED! Use RecoTracks='RecoTracks' (='') instead!",
67 addParam(
"RecoTracks", m_recoTracksName,
68 "Name of the RecoTrack StoreArray. Leave empty for skipping them.",
70 addParam(
"recoTrackMultiplicity", m_recoTrackMultiplicity,
71 "Select events with a specific RecoTrack track multiplicity. -1 for all events",
73 addParam(
"skipWithoutHWTS", m_skipWithoutHWTS,
74 "Switch to skip events without unpacked TS",
76 addParam(
"maxRecoZDist", m_maxRecoZDist,
77 "Select only RecoTracks with a maximum z distance to the IP. -1.0 for all tracks",
79 addParam(
"maxRecoD0Dist", m_maxRecoD0Dist,
80 "Select only RecoTracks with a maximum d0 distance to the z axis. -1.0 for all tracks",
82 addParam(
"nSameTS", m_nsamets,
83 "Number of identical track segments to be required for matching between HW and SW Neurotrigger",
88 CDCTriggerNeuroDQMModule::~CDCTriggerNeuroDQMModule()
96 void CDCTriggerNeuroDQMModule::defineHisto()
99 TDirectory* oldDir = gDirectory;
100 if (m_histogramDirectoryName !=
"") {
101 oldDir->mkdir(m_histogramDirectoryName.c_str());
102 oldDir->cd(m_histogramDirectoryName.c_str());
107 if (m_unpackedNeuroTracksName !=
"") {
108 m_neuroHWOutZ =
new TH1F(
"NeuroHWOutZ",
109 "z distribution of unpacked neuro tracks; z [cm]",
111 m_neuroHWOutCosTheta =
new TH1F(
"NeuroHWOutCosTheta",
112 "cos theta distribution of unpacked neuro tracks; cos(#theta) ",
114 m_neuroHWOutPhi0 =
new TH1F(
"NeuroHWOutPhi0",
115 "phi distribution of unpacked neuro tracks; #phi [#circ]",
117 m_neuroHWOutInvPt =
new TH1F(
"NeuroHWOutInvPt",
118 "Inverse Pt distribution of unpacked neuro tracks; p_{T}^{-1} [GeV^{-1}]",
120 m_neuroHWOutPt =
new TH1F(
"NeuroHWOutPt",
121 "Pt distribution of unpacked neuro tracks; p_{T} [GeV]",
123 m_neuroHWOutHitPattern =
new TH1F(
"NeuroUnpackedHitPattern",
124 "stereo hit pattern of unpacked neuro tracks; pattern",
126 m_neuroHWOutm_time =
new TH1F(
"NeuroHWOutM_time",
"m_time distribution of unpacked neuro tracks; clock cycle",
128 m_neuroHWOutTrackCount =
new TH1F(
"NeuroHWOutTrackCount",
129 "number of unpacked neuro tracks per event",
131 m_neuroHWSector =
new TH1F(
"NeuroHWSector",
132 "sector of unpacked neuro tracks; sector",
136 m_neuroHWInInvPt =
new TH1F(
"NeuroHWInInvPt",
137 "Inverse Pt distribution from incoming 2dtrack; p_{T}^{-1} [GeV^{-1}]",
139 m_neuroHWInPhi0 =
new TH1F(
"NeuroHWInPhi0",
"Phi0 of incoming 2dtrack; #phi [#circ]",
141 m_neuroHWInm_time =
new TH1F(
"NeuroHWInM_time",
"m_time distribution from incoming 2dtracks; clock cycle",
143 m_neuroHWInTrackCount =
new TH1F(
"NeuroHWInTrackCount",
"number of neuro input 2dtracks per event",
145 m_neuroHWOutVsInTrackCount =
new TH1F(
"NeuroHWOutVsInTrackCount",
146 "number of neuroHWOutTracks - number of 2dinTracks",
148 m_neuroHWInTSID =
new TH1F(
"NeuroHWInTSID",
"ID of incoming track segments",
150 m_neuroHWInTSCount =
new TH1F(
"NeuroHWInTSCount",
" number of TS per event",
152 m_neuroHWSelTSID =
new TH1F(
"NeuroHWSelTSID",
"ID of selected track segments",
154 m_neuroHWSelTSCount =
new TH1F(
"NeuroHWSelTSCount",
"number of selected TS per SL; sl", 9, 0, 9);
156 if (!m_limitedoutput && m_unpacked2DTracksName !=
"") {
157 m_2DHWInTSPrioT_Layer0 =
new TH1F(
"2DHWInTSPrioT_Layer0",
"Priority time of track segments in layer 0",
159 m_2DHWInTSPrioT_Layer2 =
new TH1F(
"2DHWInTSPrioT_Layer2",
"Priority time of track segments in layer 2",
161 m_2DHWInTSPrioT_Layer4 =
new TH1F(
"2DHWInTSPrioT_Layer4",
"Priority time of track segments in layer 4",
163 m_2DHWInTSPrioT_Layer6 =
new TH1F(
"2DHWInTSPrioT_Layer6",
"Priority time of track segments in layer 6",
165 m_2DHWInTSPrioT_Layer8 =
new TH1F(
"2DHWInTSPrioT_Layer8",
"Priority time of track segments in layer 8",
167 m_2DHWInTSFoundT_Layer0 =
new TH1F(
"2DHWInTSFoundT_Layer0",
"Found time of track segments in layer 0",
169 m_2DHWInTSFoundT_Layer2 =
new TH1F(
"2DHWInTSFoundT_Layer2",
"Found time of track segments in layer 2",
171 m_2DHWInTSFoundT_Layer4 =
new TH1F(
"2DHWInTSFoundT_Layer4",
"Found time of track segments in layer 4",
173 m_2DHWInTSFoundT_Layer6 =
new TH1F(
"2DHWInTSFoundT_Layer6",
"Found time of track segments in layer 6",
175 m_2DHWInTSFoundT_Layer8 =
new TH1F(
"2DHWInTSFoundT_Layer8",
"Found time of track segments in layer 8",
179 m_2DHWInTSPrioB_Layer0 =
new TH1F(
"2DHWInTSPrioB_Layer0",
"Priority bits of track segments in layer 0",
181 m_2DHWInTSPrioB_Layer2 =
new TH1F(
"2DHWInTSPrioB_Layer2",
"Priority bits of track segments in layer 2",
183 m_2DHWInTSPrioB_Layer4 =
new TH1F(
"2DHWInTSPrioB_Layer4",
"Priority bits of track segments in layer 4",
185 m_2DHWInTSPrioB_Layer6 =
new TH1F(
"2DHWInTSPrioB_Layer6",
"Priority bits of track segments in layer 6",
187 m_2DHWInTSPrioB_Layer8 =
new TH1F(
"2DHWInTSPrioB_Layer8",
"Priority bits of track segments in layer 8",
189 m_2DHWInTSLR_Layer0 =
new TH1F(
"2DHWInTSLR_Layer0",
"Left/Right of track segments in layer 0",
191 m_2DHWInTSLR_Layer2 =
new TH1F(
"2DHWInTSLR_Layer2",
"Left/Right of track segments in layer 2",
193 m_2DHWInTSLR_Layer4 =
new TH1F(
"2DHWInTSLR_Layer4",
"Left/Right of track segments in layer 4",
195 m_2DHWInTSLR_Layer6 =
new TH1F(
"2DHWInTSLR_Layer6",
"Left/Right of track segments in layer 6",
197 m_2DHWInTSLR_Layer8 =
new TH1F(
"2DHWInTSLR_Layer8",
"Left/Right of track segments in layer 8",
200 if (!m_limitedoutput && m_unpackedNeuroTracksName !=
"") {
202 m_neuroHWOutQuad5Z =
new TH1F(
"NeuroHWOutQuad5Z",
203 "z distribution of neuro tracks; z [cm]",
205 m_neuroHWOutQuad5CosTheta =
new TH1F(
"NeuroHWOutQuad5CosTheta",
206 "cos theta distribution of neuro tracks; cos(#theta) ",
208 m_neuroHWOutQuad5InvPt =
new TH1F(
"NeuroHWOutQuad5InvPt",
209 "Pt distribution from unpacker; p_{T}^{-1} [GeV^{-1}]",
211 m_neuroHWOutQuad5Phi0 =
new TH1F(
"NeuroHWOutQuad5Phi0",
212 "phi distribution from unpacker; #phi [#circ]",
215 m_neuroHWOutQuad0Z =
new TH1F(
"NeuroHWOutQuad0Z",
216 "z distribution of neuro tracks; z [cm]",
218 m_neuroHWOutQuad0CosTheta =
new TH1F(
"NeuroHWOutQuad0CosTheta",
219 "cos theta distribution of neuro tracks; cos(#theta) ",
221 m_neuroHWOutQuad0InvPt =
new TH1F(
"NeuroHWOutQuad0InvPt",
222 "Pt distribution from unpacker; p_{T}^{-1} [GeV^{-1}]",
224 m_neuroHWOutQuad0Phi0 =
new TH1F(
"NeuroHWOutQuad0Phi0",
225 "phi distribution from unpacker; #phi [#circ]",
228 m_neuroHWOutQuad1Z =
new TH1F(
"NeuroHWOutQuad1Z",
229 "z distribution of neuro tracks; z [cm]",
231 m_neuroHWOutQuad1CosTheta =
new TH1F(
"NeuroHWOutQuad1CosTheta",
232 "cos theta distribution of neuro tracks; cos(#theta) ",
234 m_neuroHWOutQuad1Phi0 =
new TH1F(
"NeuroHWOutQuad1Phi0",
235 "phi distribution from unpacker; #phi [#circ]",
237 m_neuroHWOutQuad1InvPt =
new TH1F(
"NeuroHWOutQuad1InvPt",
238 "Pt distribution from unpacker; p_{T}^{-1} [GeV^{-1}]",
241 m_neuroHWOutQuad2Z =
new TH1F(
"NeuroHWOutQuad2Z",
242 "z distribution of neuro tracks; z [cm]",
244 m_neuroHWOutQuad2CosTheta =
new TH1F(
"NeuroHWOutQuad2CosTheta",
245 "cos theta distribution of neuro tracks; cos(#theta) ",
247 m_neuroHWOutQuad2Phi0 =
new TH1F(
"NeuroHWOutQuad2Phi0",
248 "phi distribution from unpacker; #phi [#circ]",
250 m_neuroHWOutQuad2InvPt =
new TH1F(
"NeuroHWOutQuad2InvPt",
251 "Pt distribution from unpacker; p_{T}^{-1} [GeV^{-1}]",
254 m_neuroHWOutQuad3Z =
new TH1F(
"NeuroHWOutQuad3Z",
255 "z distribution of neuro tracks; z [cm]",
257 m_neuroHWOutQuad3CosTheta =
new TH1F(
"NeuroHWOutQuad3CosTheta",
258 "cos theta distribution of neuro tracks; cos(#theta) ",
260 m_neuroHWOutQuad3Phi0 =
new TH1F(
"NeuroHWOutQuad3Phi0",
261 "phi distribution from unpacker; #phi [#circ]",
263 m_neuroHWOutQuad3InvPt =
new TH1F(
"NeuroHWOutQuad3InvPt",
264 "Pt distribution from unpacker; p_{T}^{-1} [GeV^{-1}]",
266 m_neuroHWInTSPrioT_Layer0 =
new TH1F(
"NeuroHWInTSPrioT_Layer0",
"Priority time of track segments in layer 0",
268 m_neuroHWInTSPrioT_Layer1 =
new TH1F(
"NeuroHWInTSPrioT_Layer1",
"Priority time of track segments in layer 1",
270 m_neuroHWInTSPrioT_Layer2 =
new TH1F(
"NeuroHWInTSPrioT_Layer2",
"Priority time of track segments in layer 2",
272 m_neuroHWInTSPrioT_Layer3 =
new TH1F(
"NeuroHWInTSPrioT_Layer3",
"Priority time of track segments in layer 3",
274 m_neuroHWInTSPrioT_Layer4 =
new TH1F(
"NeuroHWInTSPrioT_Layer4",
"Priority time of track segments in layer 4",
276 m_neuroHWInTSPrioT_Layer5 =
new TH1F(
"NeuroHWInTSPrioT_Layer5",
"Priority time of track segments in layer 5",
278 m_neuroHWInTSPrioT_Layer6 =
new TH1F(
"NeuroHWInTSPrioT_Layer6",
"Priority time of track segments in layer 6",
280 m_neuroHWInTSPrioT_Layer7 =
new TH1F(
"NeuroHWInTSPrioT_Layer7",
"Priority time of track segments in layer 7",
282 m_neuroHWInTSPrioT_Layer8 =
new TH1F(
"NeuroHWInTSPrioT_Layer8",
"Priority time of track segments in layer 8",
284 m_neuroHWInTSFoundT_Layer0 =
new TH1F(
"NeuroHWInTSFoundT_Layer0",
"Found time of track segments in layer 0",
286 m_neuroHWInTSFoundT_Layer1 =
new TH1F(
"NeuroHWInTSFoundT_Layer1",
"Found time of track segments in layer 1",
288 m_neuroHWInTSFoundT_Layer2 =
new TH1F(
"NeuroHWInTSFoundT_Layer2",
"Found time of track segments in layer 2",
290 m_neuroHWInTSFoundT_Layer3 =
new TH1F(
"NeuroHWInTSFoundT_Layer3",
"Found time of track segments in layer 3",
292 m_neuroHWInTSFoundT_Layer4 =
new TH1F(
"NeuroHWInTSFoundT_Layer4",
"Found time of track segments in layer 4",
294 m_neuroHWInTSFoundT_Layer5 =
new TH1F(
"NeuroHWInTSFoundT_Layer5",
"Found time of track segments in layer 5",
296 m_neuroHWInTSFoundT_Layer6 =
new TH1F(
"NeuroHWInTSFoundT_Layer6",
"Found time of track segments in layer 6",
298 m_neuroHWInTSFoundT_Layer7 =
new TH1F(
"NeuroHWInTSFoundT_Layer7",
"Found time of track segments in layer 7",
300 m_neuroHWInTSFoundT_Layer8 =
new TH1F(
"NeuroHWInTSFoundT_Layer8",
"Found time of track segments in layer 8",
304 m_neuroHWInTSPrioB_Layer0 =
new TH1F(
"NeuroHWInTSPrioB_Layer0",
"Priority bits of track segments in layer 0",
306 m_neuroHWInTSPrioB_Layer1 =
new TH1F(
"NeuroHWInTSPrioB_Layer1",
"Priority bits of track segments in layer 1",
308 m_neuroHWInTSPrioB_Layer2 =
new TH1F(
"NeuroHWInTSPrioB_Layer2",
"Priority bits of track segments in layer 2",
310 m_neuroHWInTSPrioB_Layer3 =
new TH1F(
"NeuroHWInTSPrioB_Layer3",
"Priority bits of track segments in layer 3",
312 m_neuroHWInTSPrioB_Layer4 =
new TH1F(
"NeuroHWInTSPrioB_Layer4",
"Priority bits of track segments in layer 4",
314 m_neuroHWInTSPrioB_Layer5 =
new TH1F(
"NeuroHWInTSPrioB_Layer5",
"Priority bits of track segments in layer 5",
316 m_neuroHWInTSPrioB_Layer6 =
new TH1F(
"NeuroHWInTSPrioB_Layer6",
"Priority bits of track segments in layer 6",
318 m_neuroHWInTSPrioB_Layer7 =
new TH1F(
"NeuroHWInTSPrioB_Layer7",
"Priority bits of track segments in layer 7",
320 m_neuroHWInTSPrioB_Layer8 =
new TH1F(
"NeuroHWInTSPrioB_Layer8",
"Priority bits of track segments in layer 8",
324 m_neuroHWInTSLR_Layer0 =
new TH1F(
"NeuroHWInTSLR_Layer0",
"Left/Right of track segments in layer 0",
326 m_neuroHWInTSLR_Layer1 =
new TH1F(
"NeuroHWInTSLR_Layer1",
"Left/Right of track segments in layer 1",
328 m_neuroHWInTSLR_Layer2 =
new TH1F(
"NeuroHWInTSLR_Layer2",
"Left/Right of track segments in layer 2",
330 m_neuroHWInTSLR_Layer3 =
new TH1F(
"NeuroHWInTSLR_Layer3",
"Left/Right of track segments in layer 3",
332 m_neuroHWInTSLR_Layer4 =
new TH1F(
"NeuroHWInTSLR_Layer4",
"Left/Right of track segments in layer 4",
334 m_neuroHWInTSLR_Layer5 =
new TH1F(
"NeuroHWInTSLR_Layer5",
"Left/Right of track segments in layer 5",
336 m_neuroHWInTSLR_Layer6 =
new TH1F(
"NeuroHWInTSLR_Layer6",
"Left/Right of track segments in layer 6",
338 m_neuroHWInTSLR_Layer7 =
new TH1F(
"NeuroHWInTSLR_Layer7",
"Left/Right of track segments in layer 7",
340 m_neuroHWInTSLR_Layer8 =
new TH1F(
"NeuroHWInTSLR_Layer8",
"Left/Right of track segments in layer 8",
342 m_neuroHWSelTSPrioT_Layer0 =
new TH1F(
"NeuroHWSelTSPrioT_Layer0",
"Priority time of track segments in layer 0",
344 m_neuroHWSelTSPrioT_Layer1 =
new TH1F(
"NeuroHWSelTSPrioT_Layer1",
"Priority time of track segments in layer 1",
346 m_neuroHWSelTSPrioT_Layer2 =
new TH1F(
"NeuroHWSelTSPrioT_Layer2",
"Priority time of track segments in layer 2",
348 m_neuroHWSelTSPrioT_Layer3 =
new TH1F(
"NeuroHWSelTSPrioT_Layer3",
"Priority time of track segments in layer 3",
350 m_neuroHWSelTSPrioT_Layer4 =
new TH1F(
"NeuroHWSelTSPrioT_Layer4",
"Priority time of track segments in layer 4",
352 m_neuroHWSelTSPrioT_Layer5 =
new TH1F(
"NeuroHWSelTSPrioT_Layer5",
"Priority time of track segments in layer 5",
354 m_neuroHWSelTSPrioT_Layer6 =
new TH1F(
"NeuroHWSelTSPrioT_Layer6",
"Priority time of track segments in layer 6",
356 m_neuroHWSelTSPrioT_Layer7 =
new TH1F(
"NeuroHWSelTSPrioT_Layer7",
"Priority time of track segments in layer 7",
358 m_neuroHWSelTSPrioT_Layer8 =
new TH1F(
"NeuroHWSelTSPrioT_Layer8",
"Priority time of track segments in layer 8",
360 m_neuroHWSelTSFoundT_Layer0 =
new TH1F(
"NeuroHWSelTSFoundT_Layer0",
361 "First found time of selected TS - found time of Neuro Track in SL 0",
363 m_neuroHWSelTSFoundT_Layer1 =
new TH1F(
"NeuroHWSelTSFoundT_Layer1",
364 "First found time of selected TS - found time of Neuro Track in SL 1",
366 m_neuroHWSelTSFoundT_Layer2 =
new TH1F(
"NeuroHWSelTSFoundT_Layer2",
367 "First found time of selected TS - found time of Neuro Track in SL 2",
369 m_neuroHWSelTSFoundT_Layer3 =
new TH1F(
"NeuroHWSelTSFoundT_Layer3",
370 "First found time of selected TS - found time of Neuro Track in SL 3",
372 m_neuroHWSelTSFoundT_Layer4 =
new TH1F(
"NeuroHWSelTSFoundT_Layer4",
373 "First found time of selected TS - found time of Neuro Track in SL 4",
375 m_neuroHWSelTSFoundT_Layer5 =
new TH1F(
"NeuroHWSelTSFoundT_Layer5",
376 "First found time of selected TS - found time of Neuro Track in SL 5",
378 m_neuroHWSelTSFoundT_Layer6 =
new TH1F(
"NeuroHWSelTSFoundT_Layer6",
379 "First found time of selected TS - found time of Neuro Track in SL 6",
381 m_neuroHWSelTSFoundT_Layer7 =
new TH1F(
"NeuroHWSelTSFoundT_Layer7",
382 "First found time of selected TS - found time of Neuro Track in SL 7",
384 m_neuroHWSelTSFoundT_Layer8 =
new TH1F(
"NeuroHWSelTSFoundT_Layer8",
385 "First found time of selected TS - found time of Neuro Track in SL 8",
389 m_neuroHWSelTSPrioB_Layer0 =
new TH1F(
"NeuroHWSelTSPrioB_Layer0",
"Priority bits of track segments in layer 0",
391 m_neuroHWSelTSPrioB_Layer1 =
new TH1F(
"NeuroHWSelTSPrioB_Layer1",
"Priority bits of track segments in layer 1",
393 m_neuroHWSelTSPrioB_Layer2 =
new TH1F(
"NeuroHWSelTSPrioB_Layer2",
"Priority bits of track segments in layer 2",
395 m_neuroHWSelTSPrioB_Layer3 =
new TH1F(
"NeuroHWSelTSPrioB_Layer3",
"Priority bits of track segments in layer 3",
397 m_neuroHWSelTSPrioB_Layer4 =
new TH1F(
"NeuroHWSelTSPrioB_Layer4",
"Priority bits of track segments in layer 4",
399 m_neuroHWSelTSPrioB_Layer5 =
new TH1F(
"NeuroHWSelTSPrioB_Layer5",
"Priority bits of track segments in layer 5",
401 m_neuroHWSelTSPrioB_Layer6 =
new TH1F(
"NeuroHWSelTSPrioB_Layer6",
"Priority bits of track segments in layer 6",
403 m_neuroHWSelTSPrioB_Layer7 =
new TH1F(
"NeuroHWSelTSPrioB_Layer7",
"Priority bits of track segments in layer 7",
405 m_neuroHWSelTSPrioB_Layer8 =
new TH1F(
"NeuroHWSelTSPrioB_Layer8",
"Priority bits of track segments in layer 8",
409 m_neuroHWSelTSLR_Layer0 =
new TH1F(
"NeuroHWSelTSLR_Layer0",
"Left/Right of track segments in layer 0",
411 m_neuroHWSelTSLR_Layer1 =
new TH1F(
"NeuroHWSelTSLR_Layer1",
"Left/Right of track segments in layer 1",
413 m_neuroHWSelTSLR_Layer2 =
new TH1F(
"NeuroHWSelTSLR_Layer2",
"Left/Right of track segments in layer 2",
415 m_neuroHWSelTSLR_Layer3 =
new TH1F(
"NeuroHWSelTSLR_Layer3",
"Left/Right of track segments in layer 3",
417 m_neuroHWSelTSLR_Layer4 =
new TH1F(
"NeuroHWSelTSLR_Layer4",
"Left/Right of track segments in layer 4",
419 m_neuroHWSelTSLR_Layer5 =
new TH1F(
"NeuroHWSelTSLR_Layer5",
"Left/Right of track segments in layer 5",
421 m_neuroHWSelTSLR_Layer6 =
new TH1F(
"NeuroHWSelTSLR_Layer6",
"Left/Right of track segments in layer 6",
423 m_neuroHWSelTSLR_Layer7 =
new TH1F(
"NeuroHWSelTSLR_Layer7",
"Left/Right of track segments in layer 7",
425 m_neuroHWSelTSLR_Layer8 =
new TH1F(
"NeuroHWSelTSLR_Layer8",
"Left/Right of track segments in layer 8",
427 m_neuroHWInputID_Layer0 =
new TH1F(
"NeuroHWInputID_Layer0",
428 "unpacked id input in layer 0; id",
430 m_neuroHWInputT_Layer0 =
new TH1F(
"NeuroHWInputT_Layer0",
431 "unpacked time input in layer 0; time",
433 m_neuroHWInputAlpha_Layer0 =
new TH1F(
"NeuroHWInputAlpha_Layer0",
434 "unpacked alpha input in layer 0; alpha",
436 m_neuroHWInputID_Layer1 =
new TH1F(
"NeuroHWInputID_Layer1",
437 "unpacked id input in layer 1; id",
439 m_neuroHWInputT_Layer1 =
new TH1F(
"NeuroHWInputT_Layer1",
440 "unpacked time input in layer 1; time",
442 m_neuroHWInputAlpha_Layer1 =
new TH1F(
"NeuroHWInputAlpha_Layer1",
443 "unpacked alpha input in layer 1; alpha",
445 m_neuroHWInputID_Layer2 =
new TH1F(
"NeuroHWInputID_Layer2",
446 "unpacked id input in layer 2; id",
448 m_neuroHWInputT_Layer2 =
new TH1F(
"NeuroHWInputT_Layer2",
449 "unpacked time input in layer 2; time",
451 m_neuroHWInputAlpha_Layer2 =
new TH1F(
"NeuroHWInputAlpha_Layer2",
452 "unpacked alpha input in layer 2; alpha",
454 m_neuroHWInputID_Layer3 =
new TH1F(
"NeuroHWInputID_Layer3",
455 "unpacked id input in layer 3; id",
457 m_neuroHWInputT_Layer3 =
new TH1F(
"NeuroHWInputT_Layer3",
458 "unpacked time input in layer 3; time",
460 m_neuroHWInputAlpha_Layer3 =
new TH1F(
"NeuroHWInputAlpha_Layer3",
461 "unpacked alpha input in layer 3; alpha",
463 m_neuroHWInputID_Layer4 =
new TH1F(
"NeuroHWInputID_Layer4",
464 "unpacked id input in layer 4; id",
466 m_neuroHWInputT_Layer4 =
new TH1F(
"NeuroHWInputT_Layer4",
467 "unpacked time input in layer 4; time",
469 m_neuroHWInputAlpha_Layer4 =
new TH1F(
"NeuroHWInputAlpha_Layer4",
470 "unpacked alpha input in layer 4; alpha",
472 m_neuroHWInputID_Layer5 =
new TH1F(
"NeuroHWInputID_Layer5",
473 "unpacked id input in layer 5; id",
475 m_neuroHWInputT_Layer5 =
new TH1F(
"NeuroHWInputT_Layer5",
476 "unpacked time input in layer 5; time",
478 m_neuroHWInputAlpha_Layer5 =
new TH1F(
"NeuroHWInputAlpha_Layer5",
479 "unpacked alpha input in layer 5; alpha",
481 m_neuroHWInputID_Layer6 =
new TH1F(
"NeuroHWInputID_Layer6",
482 "unpacked id input in layer 6; id",
484 m_neuroHWInputT_Layer6 =
new TH1F(
"NeuroHWInputT_Layer6",
485 "unpacked time input in layer 6; time",
487 m_neuroHWInputAlpha_Layer6 =
new TH1F(
"NeuroHWInputAlpha_Layer6",
488 "unpacked alpha input in layer 6; alpha",
490 m_neuroHWInputID_Layer7 =
new TH1F(
"NeuroHWInputID_Layer7",
491 "unpacked id input in layer 7; id",
493 m_neuroHWInputT_Layer7 =
new TH1F(
"NeuroHWInputT_Layer7",
494 "unpacked time input in layer 7; time",
496 m_neuroHWInputAlpha_Layer7 =
new TH1F(
"NeuroHWInputAlpha_Layer7",
497 "unpacked alpha input in layer 7; alpha",
499 m_neuroHWInputID_Layer8 =
new TH1F(
"NeuroHWInputID_Layer8",
500 "unpacked id input in layer 8; id",
502 m_neuroHWInputT_Layer8 =
new TH1F(
"NeuroHWInputT_Layer8",
503 "unpacked time input in layer 8; time",
505 m_neuroHWInputAlpha_Layer8 =
new TH1F(
"NeuroHWInputAlpha_Layer8",
506 "unpacked alpha input in layer 8; alpha",
509 if (m_unpacked2DTracksName !=
"") {
510 m_2DHWOutInvPt =
new TH1F(
"2DHWOutInvPt",
511 "Inverse Pt of 2dtracks; p_{T}^{-1} [GeV^{-1}]",
513 m_2DHWOutPhi0 =
new TH1F(
"2DHWOutPhi0",
"Phi0 of 2dtracks; #phi [#circ]",
515 m_2DHWOutm_time =
new TH1F(
"2DHWOutM_time",
"m_time of 2dtracks; clock cycle",
517 m_2DHWOutTrackCount =
new TH1F(
"2DHWOutTrackCount",
"number of 2dtracks per event", 20, 0, 20);
518 m_neuroHWInVs2DOutTrackCount =
new TH1F(
"NeuroHWInVs2DOutTrackCount",
"neuro in tracks - 2d out tracks",
522 if (!m_limitedoutput && m_simNeuroTracksName !=
"") {
523 m_neuroSWOutZ =
new TH1F(
"NeuroSWOutZ",
524 "z distribution from simulation, hw TS hw 2D; z [cm]",
526 m_neuroSWOutCosTheta =
new TH1F(
"NeuroSWOutCosTheta",
527 "cos theta distribution from simulation, hw TS hw 2D; cos(#theta) ",
529 m_neuroSWOutInvPt =
new TH1F(
"NeuroSWOutInvPt",
530 "Inverse Pt distribution from simulation, hw TS hw 2D; p_{T}^{-1} [GeV^{-1}]",
532 m_neuroSWOutPhi0 =
new TH1F(
"NeuroSWOutPhi0",
533 "phi distribution from simulation, hw TS hw 2D; #phi [#circ]",
535 m_neuroSWOutHitPattern =
new TH1F(
"NeuroSWOutHitPattern",
536 "stereo hit pattern of simulated neuro tracks, hw TS hw 2D; pattern",
538 m_neuroSWOutTrackCount =
new TH1F(
"NeuroSWOutTrackCount",
539 "number of neuro tracks per event from simulation, hw TS hw 2D",
541 m_neuroSWSector =
new TH1F(
"NeuroSWSector",
542 "sector of simulated neuro tracks, hw TS hw 2D; sector",
545 m_neuroSWSelTSID =
new TH1F(
"NeuroSWSelTSID",
"ID of selected track segments",
547 m_neuroSWSelTSCount =
new TH1F(
"NeuroSWSelTSCount",
"number of selected TS per SL; sl", 9, 0, 9);
548 m_neuroSWSelTSPrioT_Layer0 =
new TH1F(
"NeuroSWSelTSPrioT_Layer0",
"Priority time of track segments in layer 0",
550 m_neuroSWSelTSPrioT_Layer1 =
new TH1F(
"NeuroSWSelTSPrioT_Layer1",
"Priority time of track segments in layer 1",
552 m_neuroSWSelTSPrioT_Layer2 =
new TH1F(
"NeuroSWSelTSPrioT_Layer2",
"Priority time of track segments in layer 2",
554 m_neuroSWSelTSPrioT_Layer3 =
new TH1F(
"NeuroSWSelTSPrioT_Layer3",
"Priority time of track segments in layer 3",
556 m_neuroSWSelTSPrioT_Layer4 =
new TH1F(
"NeuroSWSelTSPrioT_Layer4",
"Priority time of track segments in layer 4",
558 m_neuroSWSelTSPrioT_Layer5 =
new TH1F(
"NeuroSWSelTSPrioT_Layer5",
"Priority time of track segments in layer 5",
560 m_neuroSWSelTSPrioT_Layer6 =
new TH1F(
"NeuroSWSelTSPrioT_Layer6",
"Priority time of track segments in layer 6",
562 m_neuroSWSelTSPrioT_Layer7 =
new TH1F(
"NeuroSWSelTSPrioT_Layer7",
"Priority time of track segments in layer 7",
564 m_neuroSWSelTSPrioT_Layer8 =
new TH1F(
"NeuroSWSelTSPrioT_Layer8",
"Priority time of track segments in layer 8",
566 m_neuroSWSelTSFoundT_Layer0 =
new TH1F(
"NeuroSWSelTSFoundT_Layer0",
567 "First found time of selected TS - found time of Neuro Track in SL 0",
569 m_neuroSWSelTSFoundT_Layer1 =
new TH1F(
"NeuroSWSelTSFoundT_Layer1",
570 "First found time of selected TS - found time of Neuro Track in SL 1",
572 m_neuroSWSelTSFoundT_Layer2 =
new TH1F(
"NeuroSWSelTSFoundT_Layer2",
573 "First found time of selected TS - found time of Neuro Track in SL 2",
575 m_neuroSWSelTSFoundT_Layer3 =
new TH1F(
"NeuroSWSelTSFoundT_Layer3",
576 "First found time of selected TS - found time of Neuro Track in SL 3",
578 m_neuroSWSelTSFoundT_Layer4 =
new TH1F(
"NeuroSWSelTSFoundT_Layer4",
579 "First found time of selected TS - found time of Neuro Track in SL 4",
581 m_neuroSWSelTSFoundT_Layer5 =
new TH1F(
"NeuroSWSelTSFoundT_Layer5",
582 "First found time of selected TS - found time of Neuro Track in SL 5",
584 m_neuroSWSelTSFoundT_Layer6 =
new TH1F(
"NeuroSWSelTSFoundT_Layer6",
585 "First found time of selected TS - found time of Neuro Track in SL 6",
587 m_neuroSWSelTSFoundT_Layer7 =
new TH1F(
"NeuroSWSelTSFoundT_Layer7",
588 "First found time of selected TS - found time of Neuro Track in SL 7",
590 m_neuroSWSelTSFoundT_Layer8 =
new TH1F(
"NeuroSWSelTSFoundT_Layer8",
591 "First found time of selected TS - found time of Neuro Track in SL 8",
595 m_neuroSWSelTSPrioB_Layer0 =
new TH1F(
"NeuroSWSelTSPrioB_Layer0",
"Priority bits of track segments in layer 0",
597 m_neuroSWSelTSPrioB_Layer1 =
new TH1F(
"NeuroSWSelTSPrioB_Layer1",
"Priority bits of track segments in layer 1",
599 m_neuroSWSelTSPrioB_Layer2 =
new TH1F(
"NeuroSWSelTSPrioB_Layer2",
"Priority bits of track segments in layer 2",
601 m_neuroSWSelTSPrioB_Layer3 =
new TH1F(
"NeuroSWSelTSPrioB_Layer3",
"Priority bits of track segments in layer 3",
603 m_neuroSWSelTSPrioB_Layer4 =
new TH1F(
"NeuroSWSelTSPrioB_Layer4",
"Priority bits of track segments in layer 4",
605 m_neuroSWSelTSPrioB_Layer5 =
new TH1F(
"NeuroSWSelTSPrioB_Layer5",
"Priority bits of track segments in layer 5",
607 m_neuroSWSelTSPrioB_Layer6 =
new TH1F(
"NeuroSWSelTSPrioB_Layer6",
"Priority bits of track segments in layer 6",
609 m_neuroSWSelTSPrioB_Layer7 =
new TH1F(
"NeuroSWSelTSPrioB_Layer7",
"Priority bits of track segments in layer 7",
611 m_neuroSWSelTSPrioB_Layer8 =
new TH1F(
"NeuroSWSelTSPrioB_Layer8",
"Priority bits of track segments in layer 8",
615 m_neuroSWSelTSLR_Layer0 =
new TH1F(
"NeuroSWSelTSLR_Layer0",
"Left/Right of track segments in layer 0",
617 m_neuroSWSelTSLR_Layer1 =
new TH1F(
"NeuroSWSelTSLR_Layer1",
"Left/Right of track segments in layer 1",
619 m_neuroSWSelTSLR_Layer2 =
new TH1F(
"NeuroSWSelTSLR_Layer2",
"Left/Right of track segments in layer 2",
621 m_neuroSWSelTSLR_Layer3 =
new TH1F(
"NeuroSWSelTSLR_Layer3",
"Left/Right of track segments in layer 3",
623 m_neuroSWSelTSLR_Layer4 =
new TH1F(
"NeuroSWSelTSLR_Layer4",
"Left/Right of track segments in layer 4",
625 m_neuroSWSelTSLR_Layer5 =
new TH1F(
"NeuroSWSelTSLR_Layer5",
"Left/Right of track segments in layer 5",
627 m_neuroSWSelTSLR_Layer6 =
new TH1F(
"NeuroSWSelTSLR_Layer6",
"Left/Right of track segments in layer 6",
629 m_neuroSWSelTSLR_Layer7 =
new TH1F(
"NeuroSWSelTSLR_Layer7",
"Left/Right of track segments in layer 7",
631 m_neuroSWSelTSLR_Layer8 =
new TH1F(
"NeuroSWSelTSLR_Layer8",
"Left/Right of track segments in layer 8",
634 m_neuroSWInputID_Layer0 =
new TH1F(
"NeuroSWInputID_Layer0",
635 "simulated id input in layer 0; id",
637 m_neuroSWInputT_Layer0 =
new TH1F(
"NeuroSWInputT_Layer0",
638 "simulated time input in layer 0; time",
640 m_neuroSWInputAlpha_Layer0 =
new TH1F(
"NeuroSWInputAlpha_Layer0",
641 "simulated alpha input in layer 0; alpha",
643 m_neuroSWInputID_Layer1 =
new TH1F(
"NeuroSWInputID_Layer1",
644 "simulated id input in layer 1; id",
646 m_neuroSWInputT_Layer1 =
new TH1F(
"NeuroSWInputT_Layer1",
647 "simulated time input in layer 1; time",
649 m_neuroSWInputAlpha_Layer1 =
new TH1F(
"NeuroSWInputAlpha_Layer1",
650 "simulated alpha input in layer 1; alpha",
652 m_neuroSWInputID_Layer2 =
new TH1F(
"NeuroSWInputID_Layer2",
653 "simulated id input in layer 2; id",
655 m_neuroSWInputT_Layer2 =
new TH1F(
"NeuroSWInputT_Layer2",
656 "simulated time input in layer 2; time",
658 m_neuroSWInputAlpha_Layer2 =
new TH1F(
"NeuroSWInputAlpha_Layer2",
659 "simulated alpha input in layer 2; alpha",
661 m_neuroSWInputID_Layer3 =
new TH1F(
"NeuroSWInputID_Layer3",
662 "simulated id input in layer 3; id",
664 m_neuroSWInputT_Layer3 =
new TH1F(
"NeuroSWInputT_Layer3",
665 "simulated time input in layer 3; time",
667 m_neuroSWInputAlpha_Layer3 =
new TH1F(
"NeuroSWInputAlpha_Layer3",
668 "simulated alpha input in layer 3; alpha",
670 m_neuroSWInputID_Layer4 =
new TH1F(
"NeuroSWInputID_Layer4",
671 "simulated id input in layer 4; id",
673 m_neuroSWInputT_Layer4 =
new TH1F(
"NeuroSWInputT_Layer4",
674 "simulated time input in layer 4; time",
676 m_neuroSWInputAlpha_Layer4 =
new TH1F(
"NeuroSWInputAlpha_Layer4",
677 "simulated alpha input in layer 4; alpha",
679 m_neuroSWInputID_Layer5 =
new TH1F(
"NeuroSWInputID_Layer5",
680 "simulated id input in layer 5; id",
682 m_neuroSWInputT_Layer5 =
new TH1F(
"NeuroSWInputT_Layer5",
683 "simulated time input in layer 5; time",
685 m_neuroSWInputAlpha_Layer5 =
new TH1F(
"NeuroSWInputAlpha_Layer5",
686 "simulated alpha input in layer 5; alpha",
688 m_neuroSWInputID_Layer6 =
new TH1F(
"NeuroSWInputID_Layer6",
689 "simulated id input in layer 6; id",
691 m_neuroSWInputT_Layer6 =
new TH1F(
"NeuroSWInputT_Layer6",
692 "simulated time input in layer 6; time",
694 m_neuroSWInputAlpha_Layer6 =
new TH1F(
"NeuroSWInputAlpha_Layer6",
695 "simulated alpha input in layer 6; alpha",
697 m_neuroSWInputID_Layer7 =
new TH1F(
"NeuroSWInputID_Layer7",
698 "simulated id input in layer 7; id",
700 m_neuroSWInputT_Layer7 =
new TH1F(
"NeuroSWInputT_Layer7",
701 "simulated time input in layer 7; time",
703 m_neuroSWInputAlpha_Layer7 =
new TH1F(
"NeuroSWInputAlpha_Layer7",
704 "simulated alpha input in layer 7; alpha",
706 m_neuroSWInputID_Layer8 =
new TH1F(
"NeuroSWInputID_Layer8",
707 "simulated id input in layer 8; id",
709 m_neuroSWInputT_Layer8 =
new TH1F(
"NeuroSWInputT_Layer8",
710 "simulated time input in layer 8; time",
712 m_neuroSWInputAlpha_Layer8 =
new TH1F(
"NeuroSWInputAlpha_Layer8",
713 "simulated alpha input in layer 8; alpha",
717 if (!m_limitedoutput && m_sim2DTracksSWTSName !=
"") {
719 m_2DSWOutInvPt =
new TH1F(
"2DSWOutInvPt",
720 "Inverse Pt of 2dtracks from simulation, sw TS sw 2D; p_{T}^{-1} [GeV^{-1}]",
722 m_2DSWOutPhi0 =
new TH1F(
"2DSWOutPhi0",
"Phi0 of 2dtracks from simulation, sw TS sw 2D; #phi [#circ]",
724 m_2DSWOutm_time =
new TH1F(
"2DSWOutM_time",
"m_time of 2dtracks from simulation, sw TS sw 2D; clock cycle",
726 m_2DSWOutTrackCount =
new TH1F(
"2DSWOutTrackCount",
"number of 2dtracks per event from simulation, sw TS sw 2D", 20, 0, 20);
729 if (!m_limitedoutput && m_simNeuroTracksSWTSSW2DName !=
"") {
731 m_neuroSWTSSW2DOutZ =
new TH1F(
"NeuroSWTSSW2DOutZ",
732 "z distribution from simulation, sw TS sw 2D; z [cm]",
734 m_neuroSWTSSW2DOutCosTheta =
new TH1F(
"NeuroSWTSSW2DOutCosTheta",
735 "cos theta distribution from simulation, sw TS sw 2D; cos(#theta) ",
737 m_neuroSWTSSW2DOutInvPt =
new TH1F(
"NeuroSWTSSW2DOutInvPt",
738 "Inverse Pt distribution from simulation, sw TS sw 2D; p_{T}^{-1} [GeV^{-1}]",
740 m_neuroSWTSSW2DOutPhi0 =
new TH1F(
"NeuroSWTSSW2DOutPhi0",
741 "phi distribution from simulation, sw TS sw 2D; #phi [#circ]",
743 m_neuroSWTSSW2DOutHitPattern =
new TH1F(
"NeuroSWTSSW2DOutHitPattern",
744 "stereo hit pattern of simulated neuro tracks, sw TS sw 2D; pattern",
746 m_neuroSWTSSW2DOutTrackCount =
new TH1F(
"NeuroSWTSSW2DOutTrackCount",
747 "number of simulated neuro tracks per event, sw TS sw 2D",
749 m_neuroSWTSSW2DSector =
new TH1F(
"NeuroSWTSSW2DSector",
750 "sector of simulated neuro tracks, sw TS sw 2D; sector",
753 m_neuroSWTSSW2DInTSID =
new TH1F(
"NeuroSWTSSW2DInTSID",
"ID of simulated track segments",
755 m_neuroSWTSSW2DInTSCount =
new TH1F(
"NeuroSWTSSW2DInTSCount",
"number of simulated TS per event", 200, 0, 800);
756 m_neuroSWTSSW2DInTSPrioT_Layer0 =
new TH1F(
"NeuroSWTSSW2DInTSPrioT_Layer0",
"Priority time of track segments in layer 0",
758 m_neuroSWTSSW2DInTSPrioT_Layer1 =
new TH1F(
"NeuroSWTSSW2DInTSPrioT_Layer1",
"Priority time of track segments in layer 1",
760 m_neuroSWTSSW2DInTSPrioT_Layer2 =
new TH1F(
"NeuroSWTSSW2DInTSPrioT_Layer2",
"Priority time of track segments in layer 2",
762 m_neuroSWTSSW2DInTSPrioT_Layer3 =
new TH1F(
"NeuroSWTSSW2DInTSPrioT_Layer3",
"Priority time of track segments in layer 3",
764 m_neuroSWTSSW2DInTSPrioT_Layer4 =
new TH1F(
"NeuroSWTSSW2DInTSPrioT_Layer4",
"Priority time of track segments in layer 4",
766 m_neuroSWTSSW2DInTSPrioT_Layer5 =
new TH1F(
"NeuroSWTSSW2DInTSPrioT_Layer5",
"Priority time of track segments in layer 5",
768 m_neuroSWTSSW2DInTSPrioT_Layer6 =
new TH1F(
"NeuroSWTSSW2DInTSPrioT_Layer6",
"Priority time of track segments in layer 6",
770 m_neuroSWTSSW2DInTSPrioT_Layer7 =
new TH1F(
"NeuroSWTSSW2DInTSPrioT_Layer7",
"Priority time of track segments in layer 7",
772 m_neuroSWTSSW2DInTSPrioT_Layer8 =
new TH1F(
"NeuroSWTSSW2DInTSPrioT_Layer8",
"Priority time of track segments in layer 8",
774 m_neuroSWTSSW2DInTSFoundT_Layer0 =
new TH1F(
"NeuroSWTSSW2DInTSFoundT_Layer0",
775 "First found time of selected TS - found time of Neuro Track in SL 0",
777 m_neuroSWTSSW2DInTSFoundT_Layer1 =
new TH1F(
"NeuroSWTSSW2DInTSFoundT_Layer1",
778 "First found time of selected TS - found time of Neuro Track in SL 1",
780 m_neuroSWTSSW2DInTSFoundT_Layer2 =
new TH1F(
"NeuroSWTSSW2DInTSFoundT_Layer2",
781 "First found time of selected TS - found time of Neuro Track in SL 2",
783 m_neuroSWTSSW2DInTSFoundT_Layer3 =
new TH1F(
"NeuroSWTSSW2DInTSFoundT_Layer3",
784 "First found time of selected TS - found time of Neuro Track in SL 3",
786 m_neuroSWTSSW2DInTSFoundT_Layer4 =
new TH1F(
"NeuroSWTSSW2DInTSFoundT_Layer4",
787 "First found time of selected TS - found time of Neuro Track in SL 4",
789 m_neuroSWTSSW2DInTSFoundT_Layer5 =
new TH1F(
"NeuroSWTSSW2DInTSFoundT_Layer5",
790 "First found time of selected TS - found time of Neuro Track in SL 5",
792 m_neuroSWTSSW2DInTSFoundT_Layer6 =
new TH1F(
"NeuroSWTSSW2DInTSFoundT_Layer6",
793 "First found time of selected TS - found time of Neuro Track in SL 6",
795 m_neuroSWTSSW2DInTSFoundT_Layer7 =
new TH1F(
"NeuroSWTSSW2DInTSFoundT_Layer7",
796 "First found time of selected TS - found time of Neuro Track in SL 7",
798 m_neuroSWTSSW2DInTSFoundT_Layer8 =
new TH1F(
"NeuroSWTSSW2DInTSFoundT_Layer8",
799 "First found time of selected TS - found time of Neuro Track in SL 8",
803 m_neuroSWTSSW2DInTSPrioB_Layer0 =
new TH1F(
"NeuroSWTSSW2DInTSPrioB_Layer0",
"Priority bits of track segments in layer 0",
805 m_neuroSWTSSW2DInTSPrioB_Layer1 =
new TH1F(
"NeuroSWTSSW2DInTSPrioB_Layer1",
"Priority bits of track segments in layer 1",
807 m_neuroSWTSSW2DInTSPrioB_Layer2 =
new TH1F(
"NeuroSWTSSW2DInTSPrioB_Layer2",
"Priority bits of track segments in layer 2",
809 m_neuroSWTSSW2DInTSPrioB_Layer3 =
new TH1F(
"NeuroSWTSSW2DInTSPrioB_Layer3",
"Priority bits of track segments in layer 3",
811 m_neuroSWTSSW2DInTSPrioB_Layer4 =
new TH1F(
"NeuroSWTSSW2DInTSPrioB_Layer4",
"Priority bits of track segments in layer 4",
813 m_neuroSWTSSW2DInTSPrioB_Layer5 =
new TH1F(
"NeuroSWTSSW2DInTSPrioB_Layer5",
"Priority bits of track segments in layer 5",
815 m_neuroSWTSSW2DInTSPrioB_Layer6 =
new TH1F(
"NeuroSWTSSW2DInTSPrioB_Layer6",
"Priority bits of track segments in layer 6",
817 m_neuroSWTSSW2DInTSPrioB_Layer7 =
new TH1F(
"NeuroSWTSSW2DInTSPrioB_Layer7",
"Priority bits of track segments in layer 7",
819 m_neuroSWTSSW2DInTSPrioB_Layer8 =
new TH1F(
"NeuroSWTSSW2DInTSPrioB_Layer8",
"Priority bits of track segments in layer 8",
823 m_neuroSWTSSW2DInTSLR_Layer0 =
new TH1F(
"NeuroSWTSSW2DInTSLR_Layer0",
"Left/Right of track segments in layer 0",
825 m_neuroSWTSSW2DInTSLR_Layer1 =
new TH1F(
"NeuroSWTSSW2DInTSLR_Layer1",
"Left/Right of track segments in layer 1",
827 m_neuroSWTSSW2DInTSLR_Layer2 =
new TH1F(
"NeuroSWTSSW2DInTSLR_Layer2",
"Left/Right of track segments in layer 2",
829 m_neuroSWTSSW2DInTSLR_Layer3 =
new TH1F(
"NeuroSWTSSW2DInTSLR_Layer3",
"Left/Right of track segments in layer 3",
831 m_neuroSWTSSW2DInTSLR_Layer4 =
new TH1F(
"NeuroSWTSSW2DInTSLR_Layer4",
"Left/Right of track segments in layer 4",
833 m_neuroSWTSSW2DInTSLR_Layer5 =
new TH1F(
"NeuroSWTSSW2DInTSLR_Layer5",
"Left/Right of track segments in layer 5",
835 m_neuroSWTSSW2DInTSLR_Layer6 =
new TH1F(
"NeuroSWTSSW2DInTSLR_Layer6",
"Left/Right of track segments in layer 6",
837 m_neuroSWTSSW2DInTSLR_Layer7 =
new TH1F(
"NeuroSWTSSW2DInTSLR_Layer7",
"Left/Right of track segments in layer 7",
839 m_neuroSWTSSW2DInTSLR_Layer8 =
new TH1F(
"NeuroSWTSSW2DInTSLR_Layer8",
"Left/Right of track segments in layer 8",
844 m_neuroSWTSSW2DSelTSID =
new TH1F(
"NeuroSWTSSW2DSelTSID",
"ID of selected track segments",
846 m_neuroSWTSSW2DSelTSCount =
new TH1F(
"NeuroSWTSSW2DSelTSCount",
"number of selected TS per SL; sl", 9, 0, 9);
847 m_neuroSWTSSW2DSelTSPrioT_Layer0 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioT_Layer0",
"Priority time of track segments in layer 0",
849 m_neuroSWTSSW2DSelTSPrioT_Layer1 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioT_Layer1",
"Priority time of track segments in layer 1",
851 m_neuroSWTSSW2DSelTSPrioT_Layer2 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioT_Layer2",
"Priority time of track segments in layer 2",
853 m_neuroSWTSSW2DSelTSPrioT_Layer3 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioT_Layer3",
"Priority time of track segments in layer 3",
855 m_neuroSWTSSW2DSelTSPrioT_Layer4 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioT_Layer4",
"Priority time of track segments in layer 4",
857 m_neuroSWTSSW2DSelTSPrioT_Layer5 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioT_Layer5",
"Priority time of track segments in layer 5",
859 m_neuroSWTSSW2DSelTSPrioT_Layer6 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioT_Layer6",
"Priority time of track segments in layer 6",
861 m_neuroSWTSSW2DSelTSPrioT_Layer7 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioT_Layer7",
"Priority time of track segments in layer 7",
863 m_neuroSWTSSW2DSelTSPrioT_Layer8 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioT_Layer8",
"Priority time of track segments in layer 8",
865 m_neuroSWTSSW2DSelTSFoundT_Layer0 =
new TH1F(
"NeuroSWTSSW2DSelTSFoundT_Layer0",
866 "First found time of selected TS - found time of Neuro Track in SL 0",
868 m_neuroSWTSSW2DSelTSFoundT_Layer1 =
new TH1F(
"NeuroSWTSSW2DSelTSFoundT_Layer1",
869 "First found time of selected TS - found time of Neuro Track in SL 1",
871 m_neuroSWTSSW2DSelTSFoundT_Layer2 =
new TH1F(
"NeuroSWTSSW2DSelTSFoundT_Layer2",
872 "First found time of selected TS - found time of Neuro Track in SL 2",
874 m_neuroSWTSSW2DSelTSFoundT_Layer3 =
new TH1F(
"NeuroSWTSSW2DSelTSFoundT_Layer3",
875 "First found time of selected TS - found time of Neuro Track in SL 3",
877 m_neuroSWTSSW2DSelTSFoundT_Layer4 =
new TH1F(
"NeuroSWTSSW2DSelTSFoundT_Layer4",
878 "First found time of selected TS - found time of Neuro Track in SL 4",
880 m_neuroSWTSSW2DSelTSFoundT_Layer5 =
new TH1F(
"NeuroSWTSSW2DSelTSFoundT_Layer5",
881 "First found time of selected TS - found time of Neuro Track in SL 5",
883 m_neuroSWTSSW2DSelTSFoundT_Layer6 =
new TH1F(
"NeuroSWTSSW2DSelTSFoundT_Layer6",
884 "First found time of selected TS - found time of Neuro Track in SL 6",
886 m_neuroSWTSSW2DSelTSFoundT_Layer7 =
new TH1F(
"NeuroSWTSSW2DSelTSFoundT_Layer7",
887 "First found time of selected TS - found time of Neuro Track in SL 7",
889 m_neuroSWTSSW2DSelTSFoundT_Layer8 =
new TH1F(
"NeuroSWTSSW2DSelTSFoundT_Layer8",
890 "First found time of selected TS - found time of Neuro Track in SL 8",
894 m_neuroSWTSSW2DSelTSPrioB_Layer0 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioB_Layer0",
"Priority bits of track segments in layer 0",
896 m_neuroSWTSSW2DSelTSPrioB_Layer1 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioB_Layer1",
"Priority bits of track segments in layer 1",
898 m_neuroSWTSSW2DSelTSPrioB_Layer2 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioB_Layer2",
"Priority bits of track segments in layer 2",
900 m_neuroSWTSSW2DSelTSPrioB_Layer3 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioB_Layer3",
"Priority bits of track segments in layer 3",
902 m_neuroSWTSSW2DSelTSPrioB_Layer4 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioB_Layer4",
"Priority bits of track segments in layer 4",
904 m_neuroSWTSSW2DSelTSPrioB_Layer5 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioB_Layer5",
"Priority bits of track segments in layer 5",
906 m_neuroSWTSSW2DSelTSPrioB_Layer6 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioB_Layer6",
"Priority bits of track segments in layer 6",
908 m_neuroSWTSSW2DSelTSPrioB_Layer7 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioB_Layer7",
"Priority bits of track segments in layer 7",
910 m_neuroSWTSSW2DSelTSPrioB_Layer8 =
new TH1F(
"NeuroSWTSSW2DSelTSPrioB_Layer8",
"Priority bits of track segments in layer 8",
914 m_neuroSWTSSW2DSelTSLR_Layer0 =
new TH1F(
"NeuroSWTSSW2DSelTSLR_Layer0",
"Left/Right of track segments in layer 0",
916 m_neuroSWTSSW2DSelTSLR_Layer1 =
new TH1F(
"NeuroSWTSSW2DSelTSLR_Layer1",
"Left/Right of track segments in layer 1",
918 m_neuroSWTSSW2DSelTSLR_Layer2 =
new TH1F(
"NeuroSWTSSW2DSelTSLR_Layer2",
"Left/Right of track segments in layer 2",
920 m_neuroSWTSSW2DSelTSLR_Layer3 =
new TH1F(
"NeuroSWTSSW2DSelTSLR_Layer3",
"Left/Right of track segments in layer 3",
922 m_neuroSWTSSW2DSelTSLR_Layer4 =
new TH1F(
"NeuroSWTSSW2DSelTSLR_Layer4",
"Left/Right of track segments in layer 4",
924 m_neuroSWTSSW2DSelTSLR_Layer5 =
new TH1F(
"NeuroSWTSSW2DSelTSLR_Layer5",
"Left/Right of track segments in layer 5",
926 m_neuroSWTSSW2DSelTSLR_Layer6 =
new TH1F(
"NeuroSWTSSW2DSelTSLR_Layer6",
"Left/Right of track segments in layer 6",
928 m_neuroSWTSSW2DSelTSLR_Layer7 =
new TH1F(
"NeuroSWTSSW2DSelTSLR_Layer7",
"Left/Right of track segments in layer 7",
930 m_neuroSWTSSW2DSelTSLR_Layer8 =
new TH1F(
"NeuroSWTSSW2DSelTSLR_Layer8",
"Left/Right of track segments in layer 8",
932 m_neuroSWTSSW2DInputID_Layer0 =
new TH1F(
"NeuroSWTSSW2DInputID_Layer0",
933 "simulated id input in layer 0; id",
935 m_neuroSWTSSW2DInputT_Layer0 =
new TH1F(
"NeuroSWTSSW2DInputT_Layer0",
936 "simulated time input in layer 0; time",
938 m_neuroSWTSSW2DInputAlpha_Layer0 =
new TH1F(
"NeuroSWTSSW2DInputAlpha_Layer0",
939 "simulated alpha input in layer 0; alpha",
941 m_neuroSWTSSW2DInputID_Layer1 =
new TH1F(
"NeuroSWTSSW2DInputID_Layer1",
942 "simulated id input in layer 1; id",
944 m_neuroSWTSSW2DInputT_Layer1 =
new TH1F(
"NeuroSWTSSW2DInputT_Layer1",
945 "simulated time input in layer 1; time",
947 m_neuroSWTSSW2DInputAlpha_Layer1 =
new TH1F(
"NeuroSWTSSW2DInputAlpha_Layer1",
948 "simulated alpha input in layer 1; alpha",
950 m_neuroSWTSSW2DInputID_Layer2 =
new TH1F(
"NeuroSWTSSW2DInputID_Layer2",
951 "simulated id input in layer 2; id",
953 m_neuroSWTSSW2DInputT_Layer2 =
new TH1F(
"NeuroSWTSSW2DInputT_Layer2",
954 "simulated time input in layer 2; time",
956 m_neuroSWTSSW2DInputAlpha_Layer2 =
new TH1F(
"NeuroSWTSSW2DInputAlpha_Layer2",
957 "simulated alpha input in layer 2; alpha",
959 m_neuroSWTSSW2DInputID_Layer3 =
new TH1F(
"NeuroSWTSSW2DInputID_Layer3",
960 "simulated id input in layer 3; id",
962 m_neuroSWTSSW2DInputT_Layer3 =
new TH1F(
"NeuroSWTSSW2DInputT_Layer3",
963 "simulated time input in layer 3; time",
965 m_neuroSWTSSW2DInputAlpha_Layer3 =
new TH1F(
"NeuroSWTSSW2DInputAlpha_Layer3",
966 "simulated alpha input in layer 3; alpha",
968 m_neuroSWTSSW2DInputID_Layer4 =
new TH1F(
"NeuroSWTSSW2DInputID_Layer4",
969 "simulated id input in layer 4; id",
971 m_neuroSWTSSW2DInputT_Layer4 =
new TH1F(
"NeuroSWTSSW2DInputT_Layer4",
972 "simulated time input in layer 4; time",
974 m_neuroSWTSSW2DInputAlpha_Layer4 =
new TH1F(
"NeuroSWTSSW2DInputAlpha_Layer4",
975 "simulated alpha input in layer 4; alpha",
977 m_neuroSWTSSW2DInputID_Layer5 =
new TH1F(
"NeuroSWTSSW2DInputID_Layer5",
978 "simulated id input in layer 5; id",
980 m_neuroSWTSSW2DInputT_Layer5 =
new TH1F(
"NeuroSWTSSW2DInputT_Layer5",
981 "simulated time input in layer 5; time",
983 m_neuroSWTSSW2DInputAlpha_Layer5 =
new TH1F(
"NeuroSWTSSW2DInputAlpha_Layer5",
984 "simulated alpha input in layer 5; alpha",
986 m_neuroSWTSSW2DInputID_Layer6 =
new TH1F(
"NeuroSWTSSW2DInputID_Layer6",
987 "simulated id input in layer 6; id",
989 m_neuroSWTSSW2DInputT_Layer6 =
new TH1F(
"NeuroSWTSSW2DInputT_Layer6",
990 "simulated time input in layer 6; time",
992 m_neuroSWTSSW2DInputAlpha_Layer6 =
new TH1F(
"NeuroSWTSSW2DInputAlpha_Layer6",
993 "simulated alpha input in layer 6; alpha",
995 m_neuroSWTSSW2DInputID_Layer7 =
new TH1F(
"NeuroSWTSSW2DInputID_Layer7",
996 "simulated id input in layer 7; id",
998 m_neuroSWTSSW2DInputT_Layer7 =
new TH1F(
"NeuroSWTSSW2DInputT_Layer7",
999 "simulated time input in layer 7; time",
1001 m_neuroSWTSSW2DInputAlpha_Layer7 =
new TH1F(
"NeuroSWTSSW2DInputAlpha_Layer7",
1002 "simulated alpha input in layer 7; alpha",
1004 m_neuroSWTSSW2DInputID_Layer8 =
new TH1F(
"NeuroSWTSSW2DInputID_Layer8",
1005 "simulated id input in layer 8; id",
1007 m_neuroSWTSSW2DInputT_Layer8 =
new TH1F(
"NeuroSWTSSW2DInputT_Layer8",
1008 "simulated time input in layer 8; time",
1010 m_neuroSWTSSW2DInputAlpha_Layer8 =
new TH1F(
"NeuroSWTSSW2DInputAlpha_Layer8",
1011 "simulated alpha input in layer 8; alpha",
1017 if (!m_limitedoutput && m_unpackedNeuroTracksName !=
"" && m_simNeuroTracksName !=
"") {
1018 m_neuroDeltaZ =
new TH1F(
"NeuroDeltaZ",
1019 "difference between unpacked and simulated neuro z; #Delta z [cm]",
1021 m_neuroDeltaTheta =
new TH1F(
"NeuroDeltaTheta",
1022 "difference between unpacked and simulated neuro theta; #Delta #theta [#circ]",
1024 m_neuroScatterZ =
new TH2F(
"NeuroScatterZ",
1025 "unpacked z vs TSIM; hw z [cm]; sw z [cm]",
1026 100, -150, 150, 100, -150, 150);
1027 m_neuroScatterTheta =
new TH2F(
"NeuroScatterTheta",
1028 "unpacked theta vs TSIM; hw #theta [#circ]; sw #theta [#circ]",
1029 100, 0, 270, 100, 0, 270);
1031 m_neuroDeltaInputID =
new TH1F(
"NeuroDeltaInputID",
1032 "difference between unpacked and simulated ID input; #Delta ID",
1034 m_neuroDeltaInputT =
new TH1F(
"NeuroDeltaInputT",
1035 "difference between unpacked and simulated time input; #Delta t",
1037 m_neuroDeltaInputAlpha =
new TH1F(
"NeuroDeltaInputAlpha",
1038 "difference between unpacked and simulated alpha input; #Delta alpha",
1040 m_neuroDeltaTSID =
new TH1F(
"NeuroDeltaTSID",
1041 "difference between unpacked and simulated tsid; #Delta TSID",
1043 m_neuroDeltaSector =
new TH1F(
"NeuroDeltaSector",
1044 "difference between unpacked and simulated sector; #Delta sector",
1046 m_simSameTS =
new TH1F(
"NeuroSimSameTS",
1047 "number of TS selected in both, unpacked and TSIM tracks",
1049 m_simDiffTS =
new TH1F(
"NeuroSimDiffTS",
1050 "number of TS selcted in TSIM but not in unpacker",
1054 if (m_recoTracksName !=
"") {
1056 m_RecoZ =
new TH1F(
"RecoZ",
1057 "z distribution of reconstructed tracks;z [cm]",
1059 m_RecoCosTheta =
new TH1F(
"RecoCosTheta",
1060 "cos theta distribution of reconstructed tracks; cos(#theta) ",
1062 m_RecoInvPt =
new TH1F(
"RecoInvPt",
1063 "Pt distribution of reconstructed tracks; p_{T}^{-1} [GeV^{-1}]",
1065 m_RecoPhi =
new TH1F(
"RecoPhi",
1066 "phi distribution of reconstructed tracks ; #phi [#circ]",
1068 m_RecoD0 =
new TH1F(
"RecoD0",
1069 "d0 distribution of reconstructed tracks ; d_{0} [cm]",
1071 m_RecoTrackCount =
new TH1F(
"RecoTrackCount",
1072 "number of reconstructed tracks per event",
1075 if (m_recoTracksName !=
"" && m_unpackedNeuroTracksName !=
"") {
1077 m_RecoHWZ =
new TH1F(
"RecoHWZ",
1078 "hw matched z distribution of reconstructed tracks; z [cm]",
1080 m_RecoHWCosTheta =
new TH1F(
"RecoHWCosTheta",
1081 "hw matched cos theta distribution of reconstructed tracks; cos(#theta) ",
1083 m_RecoHWInvPt =
new TH1F(
"RecoHWInvPt",
1084 "hw matched Pt distribution of reconstructed tracks; p_{T}^{-1} [GeV^{-1}]",
1086 m_RecoHWPhi =
new TH1F(
"RecoHWPhi",
1087 "hw matched phi distribution of reconstructed tracks; #phi [#circ]",
1089 m_RecoHWD0 =
new TH1F(
"RecoHWD0",
1090 "hw matched d0 distribution of reconstructed tracks ; d_{0} [cm]",
1093 m_neuroRecoHWOutZ =
new TH1F(
"NeuroRecoHWOutZ",
1094 "reco matched z distribution of unpacked neuro tracks; z [cm]",
1096 m_neuroRecoHWOutCosTheta =
new TH1F(
"NeuroRecoHWOutCosTheta",
1097 "reco matched cos theta distribution of unpacked neuro tracks; cos(#theta) ",
1099 m_neuroRecoHWOutInvPt =
new TH1F(
"NeuroRecoHWOutInvPt",
1100 "reco matched Pt distribution of unpacked neuro tracks; p_{T}^{-1} [GeV^{-1}]",
1102 m_neuroRecoHWOutPhi0 =
new TH1F(
"NeuroRecoHWOutPhi0",
1103 "reco matched phi distribution of unpacked neuro tracks; #phi [#circ]",
1105 m_neuroRecoHWOutHitPattern =
new TH1F(
"NeuroRecoUnpackedHitPattern",
1106 "reco matched stereo hit pattern of unpacked neuro tracks; pattern",
1108 m_neuroRecoHWOutTrackCount =
new TH1F(
"NeuroRecoHWOutTrackCount",
1109 "reco matched number of unpacked neuro tracks per event",
1111 m_neuroRecoHWSector =
new TH1F(
"NeuroRecoHWSector",
1112 "reco matched sector of unpacked neuro tracks; sector",
1116 m_DeltaRecoHWZ =
new TH1F(
"DeltaRecoHWZ",
1117 "difference between reconstructed and unpacked neuro z; #Delta z [cm]",
1119 m_DeltaRecoHWCosTheta =
new TH1F(
"DeltaRecoHWCosTheta",
1120 "difference between reconstructed and unpacked neuro cos(theta); #Delta cos(#theta)",
1122 m_DeltaRecoHWInvPt =
new TH1F(
"DeltaRecoHWInvPt",
1123 "difference between reconstructed and unpacked neuro Pt; #Delta p_{T}^{-1} [GeV^{-1}]",
1125 m_DeltaRecoHWPhi =
new TH1F(
"DeltaRecoHWPhi",
1126 "difference between reconstructed and unpacked neuro phi; #Delta #phi [#circ]",
1129 if (!m_limitedoutput && m_recoTracksName !=
"" && m_unpackedNeuroTracksName !=
"") {
1130 m_RecoHWZScatter =
new TH2F(
"RecoHWZScatter",
1131 "hw matched reconstruction; reco z [cm]; hw z [cm]",
1132 100, -150, 150, 100, -150, 150);
1137 if (!m_limitedoutput && m_simNeuroTracksName !=
"") {
1139 m_RecoSWZ =
new TH1F(
"RecoSWZ",
1140 "sw matched z distribution of reconstructed tracks; z [cm]",
1142 m_RecoSWCosTheta =
new TH1F(
"RecoSWCosTheta",
1143 "sw matched cos theta distribution of reconstructed tracks; cos(#theta) ",
1145 m_RecoSWInvPt =
new TH1F(
"RecoSWInvPt",
1146 "sw matched Pt distribution of reconstructed tracks; p_{T}^{-1} [GeV^{-1}]",
1148 m_RecoSWPhi =
new TH1F(
"RecoSWPhi",
1149 "sw matched phi distribution of reconstructed tracks ; #phi [#circ]",
1151 m_RecoSWD0 =
new TH1F(
"RecoSWD0",
1152 "sw matched d0 distribution of reconstructed tracks ; d_{0} [cm]",
1154 m_RecoSWZScatter =
new TH2F(
"RecoSWZScatter",
1155 "sw matched reconstruction; reco z [cm]; sw z [cm]",
1156 100, -150, 150, 100, -150, 150);
1160 m_neuroRecoSWOutZ =
new TH1F(
"NeuroRecoSWOutZ",
1161 "reco matched z distribution from simulation; z [cm]",
1163 m_neuroRecoSWOutCosTheta =
new TH1F(
"NeuroRecoSWOutCosTheta",
1164 "reco matched cos theta distribution from simulation; cos(#theta) ",
1166 m_neuroRecoSWOutInvPt =
new TH1F(
"NeuroRecoSWOutInvPt",
1167 "reco matched Pt distribution from simulation; p_{T}^{-1} [GeV^{-1}]",
1169 m_neuroRecoSWOutPhi0 =
new TH1F(
"NeuroRecoSWOutPhi0",
1170 "reco matched phi distribution from simulation; #phi [#circ]",
1172 m_neuroRecoSWOutHitPattern =
new TH1F(
"NeuroRecoSWHitPattern",
1173 "reco matched stereo hit pattern from simulation; pattern",
1175 m_neuroRecoSWOutTrackCount =
new TH1F(
"NeuroRecoSWOutTrackCount",
1176 "reco matched number of SW neuro tracks per event",
1178 m_neuroRecoSWSector =
new TH1F(
"NeuroRecoSWSector",
1179 "reco matched sector from simulation; sector",
1183 m_DeltaRecoSWZ =
new TH1F(
"DeltaRecoSWZ",
1184 "difference between reconstructed and simulated neuro z; #Delta z [cm]",
1186 m_DeltaRecoSWCosTheta =
new TH1F(
"DeltaRecoSWCosTheta",
1187 "difference between reconstructed and simulated neuro cos(theta); #Delta cos(#theta)",
1189 m_DeltaRecoSWInvPt =
new TH1F(
"DeltaRecoSWInvPt",
1190 "difference between reconstructed and simulated neuro Pt; #Delta p_{T}^{-1} [GeV^{-1}]",
1192 m_DeltaRecoSWPhi =
new TH1F(
"DeltaRecoSWPhi",
1193 "difference between reconstructed and simulated neuro phi; #Delta #phi [#circ]",
1198 if (!m_limitedoutput && m_simNeuroTracksSWTSSW2DName !=
"") {
1200 m_RecoSWTSSW2DZ =
new TH1F(
"RecoSWTSSW2DZ",
1201 "sw matched z distribution of reconstructed tracks; z [cm]",
1203 m_RecoSWTSSW2DCosTheta =
new TH1F(
"RecoSWTSSW2DCosTheta",
1204 "sw matched cos theta distribution of reconstructed tracks; cos(#theta) ",
1206 m_RecoSWTSSW2DInvPt =
new TH1F(
"RecoSWTSSW2DInvPt",
1207 "sw matched Pt distribution of reconstructed tracks; p_{T}^{-1} [GeV^{-1}]",
1209 m_RecoSWTSSW2DPhi =
new TH1F(
"RecoSWTSSW2DPhi",
1210 "sw matched phi distribution of reconstructed tracks ; #phi [#circ]",
1212 m_RecoSWTSSW2DD0 =
new TH1F(
"RecoSWTSSW2DD0",
1213 "sw matched d0 distribution of reconstructed tracks ; d_{0} [cm]",
1215 m_RecoSWTSSW2DZScatter =
new TH2F(
"RecoSWTSSW2DZScatter",
1216 "sw matched reconstruction; reco z [cm]; sw z [cm]",
1217 100, -150, 150, 100, -150, 150);
1221 m_neuroRecoSWTSSW2DOutZ =
new TH1F(
"NeuroRecoSWTSSW2DOutZ",
1222 "reco matched z distribution from simulation; z [cm]",
1224 m_neuroRecoSWTSSW2DOutCosTheta =
new TH1F(
"NeuroRecoSWTSSW2DOutCosTheta",
1225 "reco matched cos theta distribution from simulation; cos(#theta) ",
1227 m_neuroRecoSWTSSW2DOutInvPt =
new TH1F(
"NeuroRecoSWTSSW2DOutInvPt",
1228 "reco matched Pt distribution from simulation; p_{T}^{-1} [GeV^{-1}]",
1230 m_neuroRecoSWTSSW2DOutPhi0 =
new TH1F(
"NeuroRecoSWTSSW2DOutPhi0",
1231 "reco matched phi distribution from simulation; #phi [#circ]",
1233 m_neuroRecoSWTSSW2DOutHitPattern =
new TH1F(
"NeuroRecoSWTSSW2DHitPattern",
1234 "reco matched stereo hit pattern from simulation; pattern",
1236 m_neuroRecoSWTSSW2DOutTrackCount =
new TH1F(
"NeuroRecoSWTSSW2DOutTrackCount",
1237 "reco matched number of SW neuro tracks per event",
1239 m_neuroRecoSWTSSW2DSector =
new TH1F(
"NeuroRecoSWTSSW2DSector",
1240 "reco matched sector from simulation; sector",
1244 m_DeltaRecoSWTSSW2DZ =
new TH1F(
"DeltaRecoSWTSSW2DZ",
1245 "difference between reconstructed and simulated neuro z; #Delta z [cm]",
1247 m_DeltaRecoSWTSSW2DCosTheta =
new TH1F(
"DeltaRecoSWTSSW2DCosTheta",
1248 "difference between reconstructed and simulated neuro cos(theta); #Delta cos(#theta)",
1250 m_DeltaRecoSWTSSW2DInvPt =
new TH1F(
"DeltaRecoSWTSSW2DInvPt",
1251 "difference between reconstructed and simulated neuro Pt; #Delta p_{T}^{-1} [GeV^{-1}]",
1253 m_DeltaRecoSWTSSW2DPhi =
new TH1F(
"DeltaRecoSWTSSW2DPhi",
1254 "difference between reconstructed and simulated neuro phi;#Delta #phi [#circ]",
1263 void CDCTriggerNeuroDQMModule::initialize()
1267 if (m_showRecoTracks && m_recoTracksName ==
"") {
1268 m_recoTracksName =
"RecoTracks";
1270 if (m_unpackedSegmentHitsName !=
"") {
1271 m_unpackedSegmentHits.isRequired(m_unpackedSegmentHitsName);
1273 if (m_unpacked2DTracksName !=
"") {
1274 m_unpacked2DTracks.isRequired(m_unpacked2DTracksName);
1276 if (m_unpackedNeuroTracksName !=
"") {
1277 m_unpackedNeuroTracks.isRequired(m_unpackedNeuroTracksName);
1278 m_unpackedNeuroInput2DTracks.isRequired(m_unpackedNeuroInput2DTracksName);
1279 m_unpackedNeuroInputSegments.isRequired(m_unpackedNeuroInputSegmentsName);
1280 m_unpackedNeuroTracks.requireRelationTo(m_unpackedNeuroInputSegments);
1281 m_unpackedNeuroInput2DTracks.requireRelationTo(m_unpackedNeuroTracks);
1282 m_unpackedNeuroInputVectorName = m_unpackedNeuroTracksName +
"Input";
1283 m_unpackedNeuroInputVector.isRequired(m_unpackedNeuroInputVectorName);
1284 m_unpackedNeuroTracks.requireRelationTo(m_unpackedNeuroInputVector);
1287 if (!m_limitedoutput && m_simNeuroTracksName !=
"") {
1288 m_simNeuroInputVectorName = m_simNeuroTracksName +
"Input";
1289 m_simNeuroTracks.isRequired(m_simNeuroTracksName);
1290 m_simNeuroInputVector.isRequired(m_simNeuroInputVectorName);
1291 m_unpackedNeuroInput2DTracks.requireRelationTo(m_simNeuroTracks);
1292 m_simNeuroTracks.requireRelationTo(m_simNeuroInputVector);
1293 m_simNeuroTracks.requireRelationTo(m_unpackedNeuroInputSegments);
1295 if (!m_limitedoutput && m_simNeuroTracksSWTSSW2DName !=
"") {
1296 m_simSegmentHits.isRequired(m_simSegmentHitsName);
1297 m_sim2DTracksSWTS.isRequired(m_sim2DTracksSWTSName);
1298 m_simNeuroInputVectorSWTSSW2DName = m_simNeuroTracksSWTSSW2DName +
"Input";
1299 m_simNeuroTracksSWTSSW2D.isRequired(m_simNeuroTracksSWTSSW2DName);
1300 m_simNeuroInputVectorSWTSSW2D.isRequired(m_simNeuroInputVectorSWTSSW2DName);
1301 m_simNeuroTracksSWTSSW2D.requireRelationTo(m_simNeuroInputVectorSWTSSW2D);
1302 m_simNeuroTracksSWTSSW2D.requireRelationTo(m_simSegmentHits);
1303 m_sim2DTracksSWTS.requireRelationTo(m_simNeuroTracksSWTSSW2D);
1305 if (m_recoTracksName !=
"") {
1306 m_RecoTracks.isRequired(
"RecoTracks");
1307 m_RecoTracks.requireRelationTo(m_unpackedNeuroTracks);
1309 if (!m_limitedoutput && m_recoTracksName !=
"" && m_simNeuroTracksName !=
"") {
1310 m_RecoTracks.requireRelationTo(m_simNeuroTracks);
1312 if (!m_limitedoutput && m_recoTracksName !=
"" && m_simNeuroTracksSWTSSW2DName !=
"") {
1313 m_RecoTracks.requireRelationTo(m_simNeuroTracksSWTSSW2D);
1317 void CDCTriggerNeuroDQMModule::beginRun()
1320 if (m_unpackedNeuroTracksName !=
"") {
1322 m_neuroHWOutZ->Reset();
1323 m_neuroHWOutCosTheta->Reset();
1324 m_neuroHWOutInvPt->Reset();
1325 m_neuroHWOutPt->Reset();
1326 m_neuroHWOutPhi0->Reset();
1327 m_neuroHWOutHitPattern->Reset();
1328 m_neuroHWOutm_time->Reset();
1329 m_neuroHWOutTrackCount->Reset();
1330 m_neuroHWOutVsInTrackCount->Reset();
1331 m_neuroHWSector->Reset();
1333 m_neuroHWInInvPt->Reset();
1334 m_neuroHWInPhi0->Reset();
1335 m_neuroHWInm_time->Reset();
1336 m_neuroHWInTrackCount->Reset();
1338 m_neuroHWInTSID->Reset();
1339 m_neuroHWInTSCount->Reset();
1341 m_neuroHWSelTSID->Reset();
1342 m_neuroHWSelTSCount->Reset();
1344 if (m_unpacked2DTracksName !=
"") {
1345 m_2DHWOutInvPt->Reset();
1346 m_2DHWOutPhi0->Reset();
1347 m_2DHWOutm_time->Reset();
1348 m_2DHWOutTrackCount->Reset();
1351 if (m_unpacked2DTracksName !=
"" && m_unpackedNeuroTracksName !=
"") {
1352 m_neuroHWInVs2DOutTrackCount->Reset();
1354 if (!m_limitedoutput && m_unpackedNeuroTracksName !=
"") {
1355 m_neuroHWOutQuad5Z->Reset();
1356 m_neuroHWOutQuad5CosTheta->Reset();
1357 m_neuroHWOutQuad5InvPt->Reset();
1358 m_neuroHWOutQuad5Phi0->Reset();
1359 m_neuroHWOutQuad0Z->Reset();
1360 m_neuroHWOutQuad0CosTheta->Reset();
1361 m_neuroHWOutQuad0InvPt->Reset();
1362 m_neuroHWOutQuad0Phi0->Reset();
1363 m_neuroHWOutQuad1Z->Reset();
1364 m_neuroHWOutQuad1CosTheta->Reset();
1365 m_neuroHWOutQuad1InvPt->Reset();
1366 m_neuroHWOutQuad1Phi0->Reset();
1367 m_neuroHWOutQuad2Z->Reset();
1368 m_neuroHWOutQuad2CosTheta->Reset();
1369 m_neuroHWOutQuad2InvPt->Reset();
1370 m_neuroHWOutQuad2Phi0->Reset();
1371 m_neuroHWOutQuad3Z->Reset();
1372 m_neuroHWOutQuad3CosTheta->Reset();
1373 m_neuroHWOutQuad3InvPt->Reset();
1374 m_neuroHWOutQuad3Phi0->Reset();
1376 m_neuroHWInTSPrioT_Layer0->Reset();
1377 m_neuroHWInTSPrioT_Layer1->Reset();
1378 m_neuroHWInTSPrioT_Layer2->Reset();
1379 m_neuroHWInTSPrioT_Layer3->Reset();
1380 m_neuroHWInTSPrioT_Layer4->Reset();
1381 m_neuroHWInTSPrioT_Layer5->Reset();
1382 m_neuroHWInTSPrioT_Layer6->Reset();
1383 m_neuroHWInTSPrioT_Layer7->Reset();
1384 m_neuroHWInTSPrioT_Layer8->Reset();
1385 m_neuroHWInTSFoundT_Layer0->Reset();
1386 m_neuroHWInTSFoundT_Layer1->Reset();
1387 m_neuroHWInTSFoundT_Layer2->Reset();
1388 m_neuroHWInTSFoundT_Layer3->Reset();
1389 m_neuroHWInTSFoundT_Layer4->Reset();
1390 m_neuroHWInTSFoundT_Layer5->Reset();
1391 m_neuroHWInTSFoundT_Layer6->Reset();
1392 m_neuroHWInTSFoundT_Layer7->Reset();
1393 m_neuroHWInTSFoundT_Layer8->Reset();
1395 m_neuroHWInTSPrioB_Layer0->Reset();
1396 m_neuroHWInTSPrioB_Layer1->Reset();
1397 m_neuroHWInTSPrioB_Layer2->Reset();
1398 m_neuroHWInTSPrioB_Layer3->Reset();
1399 m_neuroHWInTSPrioB_Layer4->Reset();
1400 m_neuroHWInTSPrioB_Layer5->Reset();
1401 m_neuroHWInTSPrioB_Layer6->Reset();
1402 m_neuroHWInTSPrioB_Layer7->Reset();
1403 m_neuroHWInTSPrioB_Layer8->Reset();
1404 m_neuroHWInTSLR_Layer0->Reset();
1405 m_neuroHWInTSLR_Layer1->Reset();
1406 m_neuroHWInTSLR_Layer2->Reset();
1407 m_neuroHWInTSLR_Layer3->Reset();
1408 m_neuroHWInTSLR_Layer4->Reset();
1409 m_neuroHWInTSLR_Layer5->Reset();
1410 m_neuroHWInTSLR_Layer6->Reset();
1411 m_neuroHWInTSLR_Layer7->Reset();
1412 m_neuroHWInTSLR_Layer8->Reset();
1414 m_neuroHWSelTSPrioT_Layer0->Reset();
1415 m_neuroHWSelTSPrioT_Layer1->Reset();
1416 m_neuroHWSelTSPrioT_Layer2->Reset();
1417 m_neuroHWSelTSPrioT_Layer3->Reset();
1418 m_neuroHWSelTSPrioT_Layer4->Reset();
1419 m_neuroHWSelTSPrioT_Layer5->Reset();
1420 m_neuroHWSelTSPrioT_Layer6->Reset();
1421 m_neuroHWSelTSPrioT_Layer7->Reset();
1422 m_neuroHWSelTSPrioT_Layer8->Reset();
1423 m_neuroHWSelTSFoundT_Layer0->Reset();
1424 m_neuroHWSelTSFoundT_Layer1->Reset();
1425 m_neuroHWSelTSFoundT_Layer2->Reset();
1426 m_neuroHWSelTSFoundT_Layer3->Reset();
1427 m_neuroHWSelTSFoundT_Layer4->Reset();
1428 m_neuroHWSelTSFoundT_Layer5->Reset();
1429 m_neuroHWSelTSFoundT_Layer6->Reset();
1430 m_neuroHWSelTSFoundT_Layer7->Reset();
1431 m_neuroHWSelTSFoundT_Layer8->Reset();
1433 m_neuroHWSelTSPrioB_Layer0->Reset();
1434 m_neuroHWSelTSPrioB_Layer1->Reset();
1435 m_neuroHWSelTSPrioB_Layer2->Reset();
1436 m_neuroHWSelTSPrioB_Layer3->Reset();
1437 m_neuroHWSelTSPrioB_Layer4->Reset();
1438 m_neuroHWSelTSPrioB_Layer5->Reset();
1439 m_neuroHWSelTSPrioB_Layer6->Reset();
1440 m_neuroHWSelTSPrioB_Layer7->Reset();
1441 m_neuroHWSelTSPrioB_Layer8->Reset();
1442 m_neuroHWSelTSLR_Layer0->Reset();
1443 m_neuroHWSelTSLR_Layer1->Reset();
1444 m_neuroHWSelTSLR_Layer2->Reset();
1445 m_neuroHWSelTSLR_Layer3->Reset();
1446 m_neuroHWSelTSLR_Layer4->Reset();
1447 m_neuroHWSelTSLR_Layer5->Reset();
1448 m_neuroHWSelTSLR_Layer6->Reset();
1449 m_neuroHWSelTSLR_Layer7->Reset();
1450 m_neuroHWSelTSLR_Layer8->Reset();
1452 m_neuroHWInputID_Layer0->Reset();
1453 m_neuroHWInputT_Layer0->Reset();
1454 m_neuroHWInputAlpha_Layer0->Reset();
1455 m_neuroHWInputID_Layer1->Reset();
1456 m_neuroHWInputT_Layer1->Reset();
1457 m_neuroHWInputAlpha_Layer1->Reset();
1458 m_neuroHWInputID_Layer2->Reset();
1459 m_neuroHWInputT_Layer2->Reset();
1460 m_neuroHWInputAlpha_Layer2->Reset();
1461 m_neuroHWInputID_Layer3->Reset();
1462 m_neuroHWInputT_Layer3->Reset();
1463 m_neuroHWInputAlpha_Layer3->Reset();
1464 m_neuroHWInputID_Layer4->Reset();
1465 m_neuroHWInputT_Layer4->Reset();
1466 m_neuroHWInputAlpha_Layer4->Reset();
1467 m_neuroHWInputID_Layer5->Reset();
1468 m_neuroHWInputT_Layer5->Reset();
1469 m_neuroHWInputAlpha_Layer5->Reset();
1470 m_neuroHWInputID_Layer6->Reset();
1471 m_neuroHWInputT_Layer6->Reset();
1472 m_neuroHWInputAlpha_Layer6->Reset();
1473 m_neuroHWInputID_Layer7->Reset();
1474 m_neuroHWInputT_Layer7->Reset();
1475 m_neuroHWInputAlpha_Layer7->Reset();
1476 m_neuroHWInputID_Layer8->Reset();
1477 m_neuroHWInputT_Layer8->Reset();
1478 m_neuroHWInputAlpha_Layer8->Reset();
1480 if (!m_limitedoutput && m_simNeuroTracksName !=
"") {
1481 m_neuroSWOutZ->Reset();
1482 m_neuroSWOutCosTheta->Reset();
1483 m_neuroSWOutPhi0->Reset();
1484 m_neuroSWOutInvPt->Reset();
1485 m_neuroSWOutHitPattern->Reset();
1486 m_neuroSWOutTrackCount->Reset();
1487 m_neuroSWSector->Reset();
1489 if (!m_limitedoutput && m_simNeuroTracksSWTSSW2DName !=
"") {
1490 m_2DSWOutInvPt->Reset();
1491 m_2DSWOutPhi0->Reset();
1492 m_2DSWOutm_time->Reset();
1493 m_2DSWOutTrackCount->Reset();
1495 m_neuroSWTSSW2DOutZ->Reset();
1496 m_neuroSWTSSW2DOutCosTheta->Reset();
1497 m_neuroSWTSSW2DOutInvPt->Reset();
1498 m_neuroSWTSSW2DOutPhi0->Reset();
1499 m_neuroSWTSSW2DOutHitPattern->Reset();
1500 m_neuroSWTSSW2DOutTrackCount->Reset();
1501 m_neuroSWTSSW2DSector->Reset();
1503 if (!m_limitedoutput && m_simNeuroTracksName !=
"") {
1504 m_neuroDeltaZ->Reset();
1505 m_neuroDeltaTheta->Reset();
1506 m_neuroScatterZ->Reset();
1507 m_neuroScatterTheta->Reset();
1509 m_neuroDeltaInputID->Reset();
1510 m_neuroDeltaInputT->Reset();
1511 m_neuroDeltaInputAlpha->Reset();
1512 m_neuroDeltaTSID->Reset();
1513 m_neuroDeltaSector->Reset();
1514 m_simSameTS->Reset();
1515 m_simDiffTS->Reset();
1517 if (!m_limitedoutput && m_unpacked2DTracksName !=
"") {
1518 m_2DHWInTSPrioT_Layer0->Reset();
1519 m_2DHWInTSPrioT_Layer2->Reset();
1520 m_2DHWInTSPrioT_Layer4->Reset();
1521 m_2DHWInTSPrioT_Layer6->Reset();
1522 m_2DHWInTSPrioT_Layer8->Reset();
1523 m_2DHWInTSFoundT_Layer0->Reset();
1524 m_2DHWInTSFoundT_Layer2->Reset();
1525 m_2DHWInTSFoundT_Layer4->Reset();
1526 m_2DHWInTSFoundT_Layer6->Reset();
1527 m_2DHWInTSFoundT_Layer8->Reset();
1529 m_2DHWInTSPrioB_Layer0->Reset();
1530 m_2DHWInTSPrioB_Layer2->Reset();
1531 m_2DHWInTSPrioB_Layer4->Reset();
1532 m_2DHWInTSPrioB_Layer6->Reset();
1533 m_2DHWInTSPrioB_Layer8->Reset();
1534 m_2DHWInTSLR_Layer0->Reset();
1535 m_2DHWInTSLR_Layer2->Reset();
1536 m_2DHWInTSLR_Layer4->Reset();
1537 m_2DHWInTSLR_Layer6->Reset();
1538 m_2DHWInTSLR_Layer8->Reset();
1540 if (!m_limitedoutput && m_simNeuroTracksName !=
"") {
1541 m_neuroSWSelTSID->Reset();
1542 m_neuroSWSelTSCount->Reset();
1543 m_neuroSWSelTSPrioT_Layer0->Reset();
1544 m_neuroSWSelTSPrioT_Layer1->Reset();
1545 m_neuroSWSelTSPrioT_Layer2->Reset();
1546 m_neuroSWSelTSPrioT_Layer3->Reset();
1547 m_neuroSWSelTSPrioT_Layer4->Reset();
1548 m_neuroSWSelTSPrioT_Layer5->Reset();
1549 m_neuroSWSelTSPrioT_Layer6->Reset();
1550 m_neuroSWSelTSPrioT_Layer7->Reset();
1551 m_neuroSWSelTSPrioT_Layer8->Reset();
1552 m_neuroSWSelTSFoundT_Layer0->Reset();
1553 m_neuroSWSelTSFoundT_Layer1->Reset();
1554 m_neuroSWSelTSFoundT_Layer2->Reset();
1555 m_neuroSWSelTSFoundT_Layer3->Reset();
1556 m_neuroSWSelTSFoundT_Layer4->Reset();
1557 m_neuroSWSelTSFoundT_Layer5->Reset();
1558 m_neuroSWSelTSFoundT_Layer6->Reset();
1559 m_neuroSWSelTSFoundT_Layer7->Reset();
1560 m_neuroSWSelTSFoundT_Layer8->Reset();
1562 m_neuroSWSelTSPrioB_Layer0->Reset();
1563 m_neuroSWSelTSPrioB_Layer1->Reset();
1564 m_neuroSWSelTSPrioB_Layer2->Reset();
1565 m_neuroSWSelTSPrioB_Layer3->Reset();
1566 m_neuroSWSelTSPrioB_Layer4->Reset();
1567 m_neuroSWSelTSPrioB_Layer5->Reset();
1568 m_neuroSWSelTSPrioB_Layer6->Reset();
1569 m_neuroSWSelTSPrioB_Layer7->Reset();
1570 m_neuroSWSelTSPrioB_Layer8->Reset();
1572 m_neuroSWSelTSLR_Layer0->Reset();
1573 m_neuroSWSelTSLR_Layer1->Reset();
1574 m_neuroSWSelTSLR_Layer2->Reset();
1575 m_neuroSWSelTSLR_Layer3->Reset();
1576 m_neuroSWSelTSLR_Layer4->Reset();
1577 m_neuroSWSelTSLR_Layer5->Reset();
1578 m_neuroSWSelTSLR_Layer6->Reset();
1579 m_neuroSWSelTSLR_Layer7->Reset();
1580 m_neuroSWSelTSLR_Layer8->Reset();
1582 m_neuroSWInputID_Layer0->Reset();
1583 m_neuroSWInputT_Layer0->Reset();
1584 m_neuroSWInputAlpha_Layer0->Reset();
1585 m_neuroSWInputID_Layer1->Reset();
1586 m_neuroSWInputT_Layer1->Reset();
1587 m_neuroSWInputAlpha_Layer1->Reset();
1588 m_neuroSWInputID_Layer2->Reset();
1589 m_neuroSWInputT_Layer2->Reset();
1590 m_neuroSWInputAlpha_Layer2->Reset();
1591 m_neuroSWInputID_Layer3->Reset();
1592 m_neuroSWInputT_Layer3->Reset();
1593 m_neuroSWInputAlpha_Layer3->Reset();
1594 m_neuroSWInputID_Layer4->Reset();
1595 m_neuroSWInputT_Layer4->Reset();
1596 m_neuroSWInputAlpha_Layer4->Reset();
1597 m_neuroSWInputID_Layer5->Reset();
1598 m_neuroSWInputT_Layer5->Reset();
1599 m_neuroSWInputAlpha_Layer5->Reset();
1600 m_neuroSWInputID_Layer6->Reset();
1601 m_neuroSWInputT_Layer6->Reset();
1602 m_neuroSWInputAlpha_Layer6->Reset();
1603 m_neuroSWInputID_Layer7->Reset();
1604 m_neuroSWInputT_Layer7->Reset();
1605 m_neuroSWInputAlpha_Layer7->Reset();
1606 m_neuroSWInputID_Layer8->Reset();
1607 m_neuroSWInputT_Layer8->Reset();
1608 m_neuroSWInputAlpha_Layer8->Reset();
1611 if (!m_limitedoutput && m_simNeuroTracksSWTSSW2DName !=
"") {
1612 m_neuroSWTSSW2DInTSID->Reset();
1613 m_neuroSWTSSW2DInTSCount->Reset();
1614 m_neuroSWTSSW2DInTSPrioT_Layer0->Reset();
1615 m_neuroSWTSSW2DInTSPrioT_Layer1->Reset();
1616 m_neuroSWTSSW2DInTSPrioT_Layer2->Reset();
1617 m_neuroSWTSSW2DInTSPrioT_Layer3->Reset();
1618 m_neuroSWTSSW2DInTSPrioT_Layer4->Reset();
1619 m_neuroSWTSSW2DInTSPrioT_Layer5->Reset();
1620 m_neuroSWTSSW2DInTSPrioT_Layer6->Reset();
1621 m_neuroSWTSSW2DInTSPrioT_Layer7->Reset();
1622 m_neuroSWTSSW2DInTSPrioT_Layer8->Reset();
1623 m_neuroSWTSSW2DInTSFoundT_Layer0->Reset();
1624 m_neuroSWTSSW2DInTSFoundT_Layer1->Reset();
1625 m_neuroSWTSSW2DInTSFoundT_Layer2->Reset();
1626 m_neuroSWTSSW2DInTSFoundT_Layer3->Reset();
1627 m_neuroSWTSSW2DInTSFoundT_Layer4->Reset();
1628 m_neuroSWTSSW2DInTSFoundT_Layer5->Reset();
1629 m_neuroSWTSSW2DInTSFoundT_Layer6->Reset();
1630 m_neuroSWTSSW2DInTSFoundT_Layer7->Reset();
1631 m_neuroSWTSSW2DInTSFoundT_Layer8->Reset();
1632 m_neuroSWTSSW2DInTSPrioB_Layer0->Reset();
1633 m_neuroSWTSSW2DInTSPrioB_Layer1->Reset();
1634 m_neuroSWTSSW2DInTSPrioB_Layer2->Reset();
1635 m_neuroSWTSSW2DInTSPrioB_Layer3->Reset();
1636 m_neuroSWTSSW2DInTSPrioB_Layer4->Reset();
1637 m_neuroSWTSSW2DInTSPrioB_Layer5->Reset();
1638 m_neuroSWTSSW2DInTSPrioB_Layer6->Reset();
1639 m_neuroSWTSSW2DInTSPrioB_Layer7->Reset();
1640 m_neuroSWTSSW2DInTSPrioB_Layer8->Reset();
1641 m_neuroSWTSSW2DInTSLR_Layer0->Reset();
1642 m_neuroSWTSSW2DInTSLR_Layer1->Reset();
1643 m_neuroSWTSSW2DInTSLR_Layer2->Reset();
1644 m_neuroSWTSSW2DInTSLR_Layer3->Reset();
1645 m_neuroSWTSSW2DInTSLR_Layer4->Reset();
1646 m_neuroSWTSSW2DInTSLR_Layer5->Reset();
1647 m_neuroSWTSSW2DInTSLR_Layer6->Reset();
1648 m_neuroSWTSSW2DInTSLR_Layer7->Reset();
1649 m_neuroSWTSSW2DInTSLR_Layer8->Reset();
1651 m_neuroSWTSSW2DSelTSID->Reset();
1652 m_neuroSWTSSW2DSelTSCount->Reset();
1653 m_neuroSWTSSW2DSelTSPrioT_Layer0->Reset();
1654 m_neuroSWTSSW2DSelTSPrioT_Layer1->Reset();
1655 m_neuroSWTSSW2DSelTSPrioT_Layer2->Reset();
1656 m_neuroSWTSSW2DSelTSPrioT_Layer3->Reset();
1657 m_neuroSWTSSW2DSelTSPrioT_Layer4->Reset();
1658 m_neuroSWTSSW2DSelTSPrioT_Layer5->Reset();
1659 m_neuroSWTSSW2DSelTSPrioT_Layer6->Reset();
1660 m_neuroSWTSSW2DSelTSPrioT_Layer7->Reset();
1661 m_neuroSWTSSW2DSelTSPrioT_Layer8->Reset();
1662 m_neuroSWTSSW2DSelTSFoundT_Layer0->Reset();
1663 m_neuroSWTSSW2DSelTSFoundT_Layer1->Reset();
1664 m_neuroSWTSSW2DSelTSFoundT_Layer2->Reset();
1665 m_neuroSWTSSW2DSelTSFoundT_Layer3->Reset();
1666 m_neuroSWTSSW2DSelTSFoundT_Layer4->Reset();
1667 m_neuroSWTSSW2DSelTSFoundT_Layer5->Reset();
1668 m_neuroSWTSSW2DSelTSFoundT_Layer6->Reset();
1669 m_neuroSWTSSW2DSelTSFoundT_Layer7->Reset();
1670 m_neuroSWTSSW2DSelTSFoundT_Layer8->Reset();
1671 m_neuroSWTSSW2DSelTSPrioB_Layer0->Reset();
1672 m_neuroSWTSSW2DSelTSPrioB_Layer1->Reset();
1673 m_neuroSWTSSW2DSelTSPrioB_Layer2->Reset();
1674 m_neuroSWTSSW2DSelTSPrioB_Layer3->Reset();
1675 m_neuroSWTSSW2DSelTSPrioB_Layer4->Reset();
1676 m_neuroSWTSSW2DSelTSPrioB_Layer5->Reset();
1677 m_neuroSWTSSW2DSelTSPrioB_Layer6->Reset();
1678 m_neuroSWTSSW2DSelTSPrioB_Layer7->Reset();
1679 m_neuroSWTSSW2DSelTSPrioB_Layer8->Reset();
1680 m_neuroSWTSSW2DSelTSLR_Layer0->Reset();
1681 m_neuroSWTSSW2DSelTSLR_Layer1->Reset();
1682 m_neuroSWTSSW2DSelTSLR_Layer2->Reset();
1683 m_neuroSWTSSW2DSelTSLR_Layer3->Reset();
1684 m_neuroSWTSSW2DSelTSLR_Layer4->Reset();
1685 m_neuroSWTSSW2DSelTSLR_Layer5->Reset();
1686 m_neuroSWTSSW2DSelTSLR_Layer6->Reset();
1687 m_neuroSWTSSW2DSelTSLR_Layer7->Reset();
1688 m_neuroSWTSSW2DSelTSLR_Layer8->Reset();
1690 m_neuroSWTSSW2DInputID_Layer0->Reset();
1691 m_neuroSWTSSW2DInputT_Layer0->Reset();
1692 m_neuroSWTSSW2DInputAlpha_Layer0->Reset();
1693 m_neuroSWTSSW2DInputID_Layer1->Reset();
1694 m_neuroSWTSSW2DInputT_Layer1->Reset();
1695 m_neuroSWTSSW2DInputAlpha_Layer1->Reset();
1696 m_neuroSWTSSW2DInputID_Layer2->Reset();
1697 m_neuroSWTSSW2DInputT_Layer2->Reset();
1698 m_neuroSWTSSW2DInputAlpha_Layer2->Reset();
1699 m_neuroSWTSSW2DInputID_Layer3->Reset();
1700 m_neuroSWTSSW2DInputT_Layer3->Reset();
1701 m_neuroSWTSSW2DInputAlpha_Layer3->Reset();
1702 m_neuroSWTSSW2DInputID_Layer4->Reset();
1703 m_neuroSWTSSW2DInputT_Layer4->Reset();
1704 m_neuroSWTSSW2DInputAlpha_Layer4->Reset();
1705 m_neuroSWTSSW2DInputID_Layer5->Reset();
1706 m_neuroSWTSSW2DInputT_Layer5->Reset();
1707 m_neuroSWTSSW2DInputAlpha_Layer5->Reset();
1708 m_neuroSWTSSW2DInputID_Layer6->Reset();
1709 m_neuroSWTSSW2DInputT_Layer6->Reset();
1710 m_neuroSWTSSW2DInputAlpha_Layer6->Reset();
1711 m_neuroSWTSSW2DInputID_Layer7->Reset();
1712 m_neuroSWTSSW2DInputT_Layer7->Reset();
1713 m_neuroSWTSSW2DInputAlpha_Layer7->Reset();
1714 m_neuroSWTSSW2DInputID_Layer8->Reset();
1715 m_neuroSWTSSW2DInputT_Layer8->Reset();
1716 m_neuroSWTSSW2DInputAlpha_Layer8->Reset();
1718 if (m_recoTracksName !=
"") {
1720 m_RecoCosTheta->Reset();
1721 m_RecoInvPt->Reset();
1724 m_RecoTrackCount->Reset();
1727 m_RecoHWCosTheta->Reset();
1728 m_RecoHWInvPt->Reset();
1729 m_RecoHWPhi->Reset();
1730 m_RecoHWD0->Reset();
1732 if (!m_limitedoutput && m_recoTracksName !=
"") {
1733 m_RecoHWZScatter->Reset();
1735 if (m_unpackedNeuroTracksName !=
"" && m_recoTracksName !=
"") {
1736 m_neuroRecoHWOutZ->Reset();
1737 m_neuroRecoHWOutCosTheta->Reset();
1738 m_neuroRecoHWOutInvPt->Reset();
1739 m_neuroRecoHWOutPhi0->Reset();
1740 m_neuroRecoHWOutHitPattern->Reset();
1741 m_neuroRecoHWOutTrackCount->Reset();
1742 m_neuroRecoHWSector->Reset();
1744 m_DeltaRecoHWZ->Reset();
1745 m_DeltaRecoHWCosTheta->Reset();
1746 m_DeltaRecoHWInvPt->Reset();
1747 m_DeltaRecoHWPhi->Reset();
1749 if (!m_limitedoutput && m_simNeuroTracksName !=
"" && m_recoTracksName !=
"") {
1751 m_RecoSWCosTheta->Reset();
1752 m_RecoSWInvPt->Reset();
1753 m_RecoSWPhi->Reset();
1754 m_RecoSWD0->Reset();
1755 m_RecoSWZScatter->Reset();
1757 m_neuroRecoSWOutZ->Reset();
1758 m_neuroRecoSWOutCosTheta->Reset();
1759 m_neuroRecoSWOutInvPt->Reset();
1760 m_neuroRecoSWOutPhi0->Reset();
1761 m_neuroRecoSWOutHitPattern->Reset();
1762 m_neuroRecoSWOutTrackCount->Reset();
1763 m_neuroRecoSWSector->Reset();
1765 m_DeltaRecoSWZ->Reset();
1766 m_DeltaRecoSWCosTheta->Reset();
1767 m_DeltaRecoSWInvPt->Reset();
1768 m_DeltaRecoSWPhi->Reset();
1770 if (!m_limitedoutput && m_simNeuroTracksSWTSSW2DName !=
"" && m_recoTracksName !=
"") {
1771 m_RecoSWTSSW2DZ->Reset();
1772 m_RecoSWTSSW2DCosTheta->Reset();
1773 m_RecoSWTSSW2DInvPt->Reset();
1774 m_RecoSWTSSW2DPhi->Reset();
1775 m_RecoSWTSSW2DD0->Reset();
1776 m_RecoSWTSSW2DZScatter->Reset();
1778 m_neuroRecoSWTSSW2DOutZ->Reset();
1779 m_neuroRecoSWTSSW2DOutCosTheta->Reset();
1780 m_neuroRecoSWTSSW2DOutInvPt->Reset();
1781 m_neuroRecoSWTSSW2DOutPhi0->Reset();
1782 m_neuroRecoSWTSSW2DOutHitPattern->Reset();
1783 m_neuroRecoSWTSSW2DOutTrackCount->Reset();
1784 m_neuroRecoSWTSSW2DSector->Reset();
1786 m_DeltaRecoSWTSSW2DZ->Reset();
1787 m_DeltaRecoSWTSSW2DCosTheta->Reset();
1788 m_DeltaRecoSWTSSW2DInvPt->Reset();
1789 m_DeltaRecoSWTSSW2DPhi->Reset();
1794 void CDCTriggerNeuroDQMModule::event()
1797 if (m_skipWithoutHWTS and m_unpackedNeuroInputSegments.getEntries() == 0) {
1799 B2DEBUG(150,
"No unpacked TS found, skipping event.");
1802 if (m_recoTrackMultiplicity != -1 and m_RecoTracks.getEntries() != m_recoTrackMultiplicity) {
1803 B2DEBUG(150,
"Wrong track multiplicity " << m_RecoTracks.getEntries() <<
", skipping event.");
1809 if (m_recoTracksName !=
"") {
1812 m_RecoTrackCount->Fill(m_RecoTracks.getEntries());
1813 bool foundValidRep =
false;
1815 for (
RecoTrack& recoTrack : m_RecoTracks) {
1818 int nswtssw2dmatched = 0;
1819 double phi0Target = 0;
1820 double invptTarget = 0;
1821 double cosThetaTarget = 0;
1823 double d0Target = 0;
1825 if (!recoTrack.wasFitSuccessful(rep))
1831 recoTrack.getMeasuredStateOnPlaneClosestTo(TVector3(0, 0, 0), rep);
1832 rep->extrapolateToLine(state, TVector3(0, 0, -1000), TVector3(0, 0, 2000));
1841 phi0Target = state.getMom().Phi() * 180. / M_PI ;
1842 if (phi0Target < 0.) {phi0Target = phi0Target + 360. ;}
1843 invptTarget = state.getCharge() * state.getMom().Pt();
1844 cosThetaTarget = state.getMom().CosTheta();
1845 zTarget = state.getPos().Z();
1846 d0Target = state.getPos().Perp();
1851 foundValidRep =
true;
1854 if (!foundValidRep) {
1855 B2DEBUG(150,
"No valid representation found for RecoTrack, skipping.");
1858 if (m_maxRecoZDist != -1.0 and abs(zTarget) > m_maxRecoZDist) {
1859 B2DEBUG(150,
"RecoTrack not close to IP (maxRecoZDist), zReco = " << zTarget);
1862 if (m_maxRecoD0Dist != -1.0 and abs(d0Target) > m_maxRecoD0Dist) {
1863 B2DEBUG(150,
"RecoTrack not close to the z axis (maxRecoD0Dist), d0Reco = " << d0Target);
1866 m_RecoZ->Fill(zTarget);
1867 m_RecoCosTheta->Fill(cosThetaTarget);
1868 m_RecoPhi->Fill(phi0Target);
1869 m_RecoD0->Fill(d0Target);
1870 m_RecoInvPt->Fill(invptTarget);
1871 if (m_unpackedNeuroTracksName !=
"") {
1875 bool valtrack =
false;
1879 B2WARNING(
"HWTrack doesn't have 'valid bit', get it from relations now... ");
1880 unsigned checkpattern = getPattern(neuroHWTrack, m_unpackedNeuroInputSegmentsName);
1881 valtrack = isValidPattern(checkpattern);
1887 m_RecoHWZ->Fill(zTarget);
1888 m_RecoHWCosTheta->Fill(cosThetaTarget);
1889 m_RecoHWPhi->Fill(phi0Target);
1890 m_RecoHWD0->Fill(d0Target);
1891 m_RecoHWInvPt->Fill(invptTarget);
1893 double neuroHWZ = neuroHWTrack->getZ0() ;
1894 m_neuroRecoHWOutZ->Fill(neuroHWZ);
1895 double cotTh = neuroHWTrack->getCotTheta() ;
1896 double cosTh = copysign(1.0, cotTh) / sqrt(1. / (cotTh * cotTh) + 1);
1897 double neuroHWcosTh = cosTh ;
1898 m_neuroRecoHWOutCosTheta->Fill(neuroHWcosTh);
1899 double neuroHWPt = neuroHWTrack->
getPt() ;
1900 m_neuroRecoHWOutInvPt->Fill(neuroHWPt);
1901 phinorm = neuroHWTrack->getPhi0() * 180 / M_PI ;
1902 if (phinorm < 0.) {phinorm = phinorm + 360. ;}
1903 double neuroHWPhi0 = phinorm;
1904 m_neuroRecoHWOutPhi0->Fill(neuroHWPhi0);
1905 m_neuroRecoHWOutHitPattern->Fill(getPattern(neuroHWTrack, m_unpackedNeuroInputSegmentsName));
1907 unsigned hwMatchedSector =
1908 neuroHWTrack->getRelatedTo<
CDCTriggerMLPInput>(m_unpackedNeuroInputVectorName)->getSector();
1909 m_neuroRecoHWSector->Fill(hwMatchedSector);
1911 m_DeltaRecoHWZ->Fill(zTarget - neuroHWZ);
1912 m_DeltaRecoHWCosTheta->Fill(cosThetaTarget - neuroHWcosTh);
1913 m_DeltaRecoHWPhi->Fill(phi0Target - neuroHWPhi0);
1914 m_DeltaRecoHWInvPt->Fill(invptTarget - neuroHWPt);
1915 if (!m_limitedoutput) {
1916 m_RecoHWZScatter->Fill(zTarget, neuroHWZ);
1919 if (!m_limitedoutput && m_simNeuroTracksName !=
"") {
1922 bool valtrack =
false;
1926 B2INFO(
"SWTrack doesn't have 'valid bit', get it from relations now... ");
1927 unsigned checkpattern = getPattern(neuroSWTrack, m_unpackedNeuroInputSegmentsName);
1928 valtrack = isValidPattern(checkpattern);
1934 m_RecoSWZ->Fill(zTarget);
1935 m_RecoSWCosTheta->Fill(cosThetaTarget);
1936 m_RecoSWPhi->Fill(phi0Target);
1937 m_RecoSWD0->Fill(d0Target);
1938 m_RecoSWInvPt->Fill(invptTarget);
1940 double neuroSWZ = neuroSWTrack->getZ0() ;
1941 m_neuroRecoSWOutZ->Fill(neuroSWZ);
1942 double cotTh = neuroSWTrack->getCotTheta() ;
1943 double cosTh = copysign(1.0, cotTh) / sqrt(1. / (cotTh * cotTh) + 1);
1944 double neuroSWcosTh = cosTh ;
1945 m_neuroRecoSWOutCosTheta->Fill(neuroSWcosTh);
1946 double neuroSWPt = neuroSWTrack->
getPt() ;
1947 m_neuroRecoSWOutInvPt->Fill(neuroSWPt);
1948 phinorm = neuroSWTrack->getPhi0() * 180 / M_PI ;
1949 if (phinorm < 0.) {phinorm = phinorm + 360. ;}
1950 double neuroSWPhi0 = phinorm ;
1951 m_neuroRecoSWOutPhi0->Fill(neuroSWPhi0);
1952 m_neuroRecoSWOutHitPattern->Fill(getPattern(neuroSWTrack, m_unpackedNeuroInputSegmentsName));
1954 unsigned swMatchedSector =
1955 neuroSWTrack->getRelatedTo<
CDCTriggerMLPInput>(m_simNeuroInputVectorName)->getSector();
1956 m_neuroRecoSWSector->Fill(swMatchedSector);
1958 m_DeltaRecoSWZ->Fill(zTarget - neuroSWZ);
1959 m_DeltaRecoSWCosTheta->Fill(cosThetaTarget - neuroSWcosTh);
1960 m_DeltaRecoSWPhi->Fill(phi0Target - neuroSWPhi0);
1961 m_DeltaRecoSWInvPt->Fill(invptTarget - neuroSWPt);
1962 m_RecoSWZScatter->Fill(zTarget, neuroSWZ);
1965 if (!m_limitedoutput && m_simNeuroTracksSWTSSW2DName !=
"") {
1967 if (neuroSWTSSW2DTrack) {
1968 m_RecoSWTSSW2DZ->Fill(zTarget);
1969 m_RecoSWTSSW2DCosTheta->Fill(cosThetaTarget);
1970 m_RecoSWTSSW2DPhi->Fill(phi0Target);
1971 m_RecoSWTSSW2DD0->Fill(d0Target);
1972 m_RecoSWTSSW2DInvPt->Fill(invptTarget);
1974 m_neuroRecoSWTSSW2DOutZ->Fill(neuroSWTSSW2DTrack->getZ0());
1976 double cotTh = neuroSWTSSW2DTrack->getCotTheta();
1977 double cosTh = copysign(1.0, cotTh) / sqrt(1. / (cotTh * cotTh) + 1);
1978 m_neuroRecoSWTSSW2DOutCosTheta->Fill(cosTh);
1979 phinorm = neuroSWTSSW2DTrack->getPhi0() * 180 / M_PI;
1980 if (phinorm < 0.) {phinorm = phinorm + 360. ;}
1981 double phiNeuro = phinorm ;
1982 double invptNeuro = neuroSWTSSW2DTrack->
getPt() ;
1983 m_neuroRecoSWTSSW2DOutInvPt->Fill(invptNeuro);
1984 m_neuroRecoSWTSSW2DOutPhi0->Fill(phiNeuro);
1985 m_neuroRecoSWTSSW2DOutHitPattern->Fill(getPattern(neuroSWTSSW2DTrack, m_simSegmentHitsName));
1987 unsigned swtssw2dMatchedSector =
1988 neuroSWTSSW2DTrack->getRelatedTo<
CDCTriggerMLPInput>(m_simNeuroInputVectorSWTSSW2DName)->getSector();
1989 m_neuroRecoSWTSSW2DSector->Fill(swtssw2dMatchedSector);
1991 m_DeltaRecoSWTSSW2DZ->Fill(zTarget - neuroSWTSSW2DTrack->getZ0());
1994 m_DeltaRecoSWTSSW2DCosTheta->Fill(cosThetaTarget - cosTh);
1995 phinorm = neuroSWTSSW2DTrack->getPhi0() * 180. / M_PI ;
1996 if (phinorm < 0.) {phinorm = phinorm + 360. ;}
1997 m_DeltaRecoSWTSSW2DPhi->Fill(phi0Target - phinorm);
1998 m_DeltaRecoSWTSSW2DInvPt->Fill(invptTarget - neuroSWTSSW2DTrack->
getPt());
1999 m_RecoSWTSSW2DZScatter->Fill(zTarget, neuroSWTSSW2DTrack->getZ0());
2004 if (m_unpackedNeuroTracksName !=
"") {
2005 m_neuroRecoHWOutTrackCount->Fill(nhwmatched);
2006 if (!m_limitedoutput && m_simNeuroTracksName !=
"") {
2007 m_neuroRecoSWOutTrackCount->Fill(nswmatched);
2009 if (!m_limitedoutput && m_simNeuroTracksSWTSSW2DName !=
"") {
2010 m_neuroRecoSWTSSW2DOutTrackCount->Fill(nswtssw2dmatched);
2016 if (!m_limitedoutput && m_simNeuroTracksSWTSSW2DName !=
"") {
2017 m_neuroSWTSSW2DOutTrackCount->Fill(m_simNeuroTracksSWTSSW2D.getEntries());
2019 m_neuroSWTSSW2DOutZ->Fill(neuroswTrack.getZ0());
2020 double cotThSW = neuroswTrack.getCotTheta();
2021 double cosThSW = copysign(1.0, cotThSW) / sqrt(1. / (cotThSW * cotThSW) + 1);
2022 m_neuroSWTSSW2DOutCosTheta->Fill(cosThSW);
2023 phinorm = neuroswTrack.getPhi0() * 180. / M_PI ;
2025 phinorm = phinorm + 360. ;
2027 m_neuroSWTSSW2DOutPhi0->Fill(phinorm);
2028 m_neuroSWTSSW2DOutInvPt->Fill(neuroswTrack.getPt());
2029 unsigned simSWTSSW2DSector =
2030 neuroswTrack.getRelatedTo<
CDCTriggerMLPInput>(m_simNeuroInputVectorSWTSSW2DName)->getSector();
2031 m_neuroSWTSSW2DSector->Fill(simSWTSSW2DSector);
2034 unsigned pattern = 0;
2037 m_neuroSWTSSW2DSelTSID->Fill(hit.getSegmentID());
2038 unsigned int sl = hit.getISuperLayer();
2039 m_neuroSWTSSW2DSelTSCount->Fill(sl);
2040 float neuroTime = neuroswTrack.getTime();
2045 if (
compare.getISuperLayer() == hit.getISuperLayer() &&
2046 compare.getIWireCenter() == hit.getIWireCenter() &&
2047 compare.getPriorityPosition() == hit.getPriorityPosition() &&
2048 compare.getLeftRight() == hit.getLeftRight() &&
2049 compare.priorityTime() == hit.priorityTime() &&
2056 case 0: m_neuroSWTSSW2DSelTSPrioT_Layer0->Fill(hit.priorityTime());
2057 m_neuroSWTSSW2DSelTSFoundT_Layer0->Fill(firstHit.
foundTime() - neuroTime);
2058 m_neuroSWTSSW2DSelTSPrioB_Layer0->Fill(hit.getPriorityPosition());
2059 m_neuroSWTSSW2DSelTSLR_Layer0->Fill(hit.getLeftRight());
2061 case 1: m_neuroSWTSSW2DSelTSPrioT_Layer1->Fill(hit.priorityTime());
2062 m_neuroSWTSSW2DSelTSFoundT_Layer1->Fill(firstHit.
foundTime() - neuroTime);
2063 m_neuroSWTSSW2DSelTSPrioB_Layer1->Fill(hit.getPriorityPosition());
2064 m_neuroSWTSSW2DSelTSLR_Layer1->Fill(hit.getLeftRight());
2066 case 2: m_neuroSWTSSW2DSelTSPrioT_Layer2->Fill(hit.priorityTime());
2067 m_neuroSWTSSW2DSelTSFoundT_Layer2->Fill(firstHit.
foundTime() - neuroTime);
2068 m_neuroSWTSSW2DSelTSPrioB_Layer2->Fill(hit.getPriorityPosition());
2069 m_neuroSWTSSW2DSelTSLR_Layer2->Fill(hit.getLeftRight());
2071 case 3: m_neuroSWTSSW2DSelTSPrioT_Layer3->Fill(hit.priorityTime());
2072 m_neuroSWTSSW2DSelTSFoundT_Layer3->Fill(firstHit.
foundTime() - neuroTime);
2073 m_neuroSWTSSW2DSelTSPrioB_Layer3->Fill(hit.getPriorityPosition());
2074 m_neuroSWTSSW2DSelTSLR_Layer3->Fill(hit.getLeftRight());
2076 case 4: m_neuroSWTSSW2DSelTSPrioT_Layer4->Fill(hit.priorityTime());
2077 m_neuroSWTSSW2DSelTSFoundT_Layer4->Fill(firstHit.
foundTime() - neuroTime);
2078 m_neuroSWTSSW2DSelTSPrioB_Layer4->Fill(hit.getPriorityPosition());
2079 m_neuroSWTSSW2DSelTSLR_Layer4->Fill(hit.getLeftRight());
2081 case 5: m_neuroSWTSSW2DSelTSPrioT_Layer5->Fill(hit.priorityTime());
2082 m_neuroSWTSSW2DSelTSFoundT_Layer5->Fill(firstHit.
foundTime() - neuroTime);
2083 m_neuroSWTSSW2DSelTSPrioB_Layer5->Fill(hit.getPriorityPosition());
2084 m_neuroSWTSSW2DSelTSLR_Layer5->Fill(hit.getLeftRight());
2086 case 6: m_neuroSWTSSW2DSelTSPrioT_Layer6->Fill(hit.priorityTime());
2087 m_neuroSWTSSW2DSelTSFoundT_Layer6->Fill(firstHit.
foundTime() - neuroTime);
2088 m_neuroSWTSSW2DSelTSPrioB_Layer6->Fill(hit.getPriorityPosition());
2089 m_neuroSWTSSW2DSelTSLR_Layer6->Fill(hit.getLeftRight());
2091 case 7: m_neuroSWTSSW2DSelTSPrioT_Layer7->Fill(hit.priorityTime());
2092 m_neuroSWTSSW2DSelTSFoundT_Layer7->Fill(firstHit.
foundTime() - neuroTime);
2093 m_neuroSWTSSW2DSelTSPrioB_Layer7->Fill(hit.getPriorityPosition());
2094 m_neuroSWTSSW2DSelTSLR_Layer7->Fill(hit.getLeftRight());
2096 case 8: m_neuroSWTSSW2DSelTSPrioT_Layer8->Fill(hit.priorityTime());
2097 m_neuroSWTSSW2DSelTSFoundT_Layer8->Fill(firstHit.
foundTime() - neuroTime);
2098 m_neuroSWTSSW2DSelTSPrioB_Layer8->Fill(hit.getPriorityPosition());
2099 m_neuroSWTSSW2DSelTSLR_Layer8->Fill(hit.getLeftRight());
2102 if (sl % 2 == 1) pattern |= (1 << ((sl - 1) / 2));
2104 m_neuroSWTSSW2DOutHitPattern->Fill(pattern);
2107 vector<float> nnInput =
2108 neuroswTrack.getRelatedTo<
CDCTriggerMLPInput>(m_simNeuroInputVectorSWTSSW2DName)->getInput();
2109 condFill(m_neuroSWTSSW2DInputID_Layer0 , nnInput[0]);
2110 condFill(m_neuroSWTSSW2DInputT_Layer0 , nnInput[1]);
2111 condFill(m_neuroSWTSSW2DInputAlpha_Layer0 , nnInput[2]);
2112 condFill(m_neuroSWTSSW2DInputID_Layer1 , nnInput[3]);
2113 condFill(m_neuroSWTSSW2DInputT_Layer1 , nnInput[4]);
2114 condFill(m_neuroSWTSSW2DInputAlpha_Layer1 , nnInput[5]);
2115 condFill(m_neuroSWTSSW2DInputID_Layer2 , nnInput[6]);
2116 condFill(m_neuroSWTSSW2DInputT_Layer2 , nnInput[7]);
2117 condFill(m_neuroSWTSSW2DInputAlpha_Layer2 , nnInput[8]);
2118 condFill(m_neuroSWTSSW2DInputID_Layer3 , nnInput[9]);
2119 condFill(m_neuroSWTSSW2DInputT_Layer3 , nnInput[10]);
2120 condFill(m_neuroSWTSSW2DInputAlpha_Layer3 , nnInput[11]);
2121 condFill(m_neuroSWTSSW2DInputID_Layer4 , nnInput[12]);
2122 condFill(m_neuroSWTSSW2DInputT_Layer4 , nnInput[13]);
2123 condFill(m_neuroSWTSSW2DInputAlpha_Layer4 , nnInput[14]);
2124 condFill(m_neuroSWTSSW2DInputID_Layer5 , nnInput[15]);
2125 condFill(m_neuroSWTSSW2DInputT_Layer5 , nnInput[16]);
2126 condFill(m_neuroSWTSSW2DInputAlpha_Layer5 , nnInput[17]);
2127 condFill(m_neuroSWTSSW2DInputID_Layer6 , nnInput[18]);
2128 condFill(m_neuroSWTSSW2DInputT_Layer6 , nnInput[19]);
2129 condFill(m_neuroSWTSSW2DInputAlpha_Layer6 , nnInput[20]);
2130 condFill(m_neuroSWTSSW2DInputID_Layer7 , nnInput[21]);
2131 condFill(m_neuroSWTSSW2DInputT_Layer7 , nnInput[22]);
2132 condFill(m_neuroSWTSSW2DInputAlpha_Layer7 , nnInput[23]);
2133 condFill(m_neuroSWTSSW2DInputID_Layer8 , nnInput[24]);
2134 condFill(m_neuroSWTSSW2DInputT_Layer8 , nnInput[25]);
2135 condFill(m_neuroSWTSSW2DInputAlpha_Layer8 , nnInput[26]);
2138 if (!m_limitedoutput && m_simNeuroTracksName !=
"") {
2139 m_neuroSWOutTrackCount->Fill(m_simNeuroTracks.getEntries());
2141 bool valtrack =
false;
2143 valtrack = neuroswTrack.getValidStereoBit();
2145 B2INFO(
"HWTrack doesn't have 'valid bit', get it from relations now... ");
2146 unsigned checkpattern = getPattern(&neuroswTrack, m_unpackedNeuroInputSegmentsName);
2147 valtrack = isValidPattern(checkpattern);
2153 m_neuroSWOutZ->Fill(neuroswTrack.getZ0());
2154 double cotThSW = neuroswTrack.getCotTheta();
2155 double cosThSW = copysign(1.0, cotThSW) / sqrt(1. / (cotThSW * cotThSW) + 1);
2156 m_neuroSWOutCosTheta->Fill(cosThSW);
2157 phinorm = neuroswTrack.getPhi0() * 180. / M_PI ;
2158 if (phinorm < 0.) {phinorm = phinorm + 360. ;}
2159 m_neuroSWOutPhi0->Fill(phinorm);
2160 m_neuroSWOutInvPt->Fill(neuroswTrack.getPt());
2162 unsigned simSector =
2163 neuroswTrack.getRelatedTo<
CDCTriggerMLPInput>(m_simNeuroInputVectorName)->getSector();
2164 m_neuroSWSector->Fill(simSector);
2167 unsigned pattern = 0;
2170 m_neuroSWSelTSID->Fill(hit.getSegmentID());
2171 unsigned int sl = hit.getISuperLayer();
2172 m_neuroSWSelTSCount->Fill(sl);
2173 float neuroTime = neuroswTrack.getTime();
2178 if (
compare.getISuperLayer() == hit.getISuperLayer() &&
2179 compare.getIWireCenter() == hit.getIWireCenter() &&
2180 compare.getPriorityPosition() == hit.getPriorityPosition() &&
2181 compare.getLeftRight() == hit.getLeftRight() &&
2182 compare.priorityTime() == hit.priorityTime() &&
2189 case 0: m_neuroSWSelTSPrioT_Layer0->Fill(hit.priorityTime());
2190 m_neuroSWSelTSFoundT_Layer0->Fill(firstHit.
foundTime() - neuroTime);
2191 m_neuroSWSelTSPrioB_Layer0->Fill(hit.getPriorityPosition());
2192 m_neuroSWSelTSLR_Layer0->Fill(hit.getLeftRight());
2194 case 1: m_neuroSWSelTSPrioT_Layer1->Fill(hit.priorityTime());
2195 m_neuroSWSelTSFoundT_Layer1->Fill(firstHit.
foundTime() - neuroTime);
2196 m_neuroSWSelTSPrioB_Layer1->Fill(hit.getPriorityPosition());
2197 m_neuroSWSelTSLR_Layer1->Fill(hit.getLeftRight());
2199 case 2: m_neuroSWSelTSPrioT_Layer2->Fill(hit.priorityTime());
2200 m_neuroSWSelTSFoundT_Layer2->Fill(firstHit.
foundTime() - neuroTime);
2201 m_neuroSWSelTSPrioB_Layer2->Fill(hit.getPriorityPosition());
2202 m_neuroSWSelTSLR_Layer2->Fill(hit.getLeftRight());
2204 case 3: m_neuroSWSelTSPrioT_Layer3->Fill(hit.priorityTime());
2205 m_neuroSWSelTSFoundT_Layer3->Fill(firstHit.
foundTime() - neuroTime);
2206 m_neuroSWSelTSPrioB_Layer3->Fill(hit.getPriorityPosition());
2207 m_neuroSWSelTSLR_Layer3->Fill(hit.getLeftRight());
2209 case 4: m_neuroSWSelTSPrioT_Layer4->Fill(hit.priorityTime());
2210 m_neuroSWSelTSFoundT_Layer4->Fill(firstHit.
foundTime() - neuroTime);
2211 m_neuroSWSelTSPrioB_Layer4->Fill(hit.getPriorityPosition());
2212 m_neuroSWSelTSLR_Layer4->Fill(hit.getLeftRight());
2214 case 5: m_neuroSWSelTSPrioT_Layer5->Fill(hit.priorityTime());
2215 m_neuroSWSelTSFoundT_Layer5->Fill(firstHit.
foundTime() - neuroTime);
2216 m_neuroSWSelTSPrioB_Layer5->Fill(hit.getPriorityPosition());
2217 m_neuroSWSelTSLR_Layer5->Fill(hit.getLeftRight());
2219 case 6: m_neuroSWSelTSPrioT_Layer6->Fill(hit.priorityTime());
2220 m_neuroSWSelTSFoundT_Layer6->Fill(firstHit.
foundTime() - neuroTime);
2221 m_neuroSWSelTSPrioB_Layer6->Fill(hit.getPriorityPosition());
2222 m_neuroSWSelTSLR_Layer6->Fill(hit.getLeftRight());
2224 case 7: m_neuroSWSelTSPrioT_Layer7->Fill(hit.priorityTime());
2225 m_neuroSWSelTSFoundT_Layer7->Fill(firstHit.
foundTime() - neuroTime);
2226 m_neuroSWSelTSPrioB_Layer7->Fill(hit.getPriorityPosition());
2227 m_neuroSWSelTSLR_Layer7->Fill(hit.getLeftRight());
2229 case 8: m_neuroSWSelTSPrioT_Layer8->Fill(hit.priorityTime());
2230 m_neuroSWSelTSFoundT_Layer8->Fill(firstHit.
foundTime() - neuroTime);
2231 m_neuroSWSelTSPrioB_Layer8->Fill(hit.getPriorityPosition());
2232 m_neuroSWSelTSLR_Layer8->Fill(hit.getLeftRight());
2235 if (sl % 2 == 1) pattern |= (1 << ((sl - 1) / 2));
2237 m_neuroSWOutHitPattern->Fill(pattern);
2241 vector<float> nnInput =
2242 neuroswTrack.getRelatedTo<
CDCTriggerMLPInput>(m_simNeuroInputVectorName)->getInput();
2243 condFill(m_neuroSWInputID_Layer0 , nnInput[0]);
2244 condFill(m_neuroSWInputT_Layer0 , nnInput[1]);
2245 condFill(m_neuroSWInputAlpha_Layer0 , nnInput[2]);
2246 condFill(m_neuroSWInputID_Layer1 , nnInput[3]);
2247 condFill(m_neuroSWInputT_Layer1 , nnInput[4]);
2248 condFill(m_neuroSWInputAlpha_Layer1 , nnInput[5]);
2249 condFill(m_neuroSWInputID_Layer2 , nnInput[6]);
2250 condFill(m_neuroSWInputT_Layer2 , nnInput[7]);
2251 condFill(m_neuroSWInputAlpha_Layer2 , nnInput[8]);
2252 condFill(m_neuroSWInputID_Layer3 , nnInput[9]);
2253 condFill(m_neuroSWInputT_Layer3 , nnInput[10]);
2254 condFill(m_neuroSWInputAlpha_Layer3 , nnInput[11]);
2255 condFill(m_neuroSWInputID_Layer4 , nnInput[12]);
2256 condFill(m_neuroSWInputT_Layer4 , nnInput[13]);
2257 condFill(m_neuroSWInputAlpha_Layer4 , nnInput[14]);
2258 condFill(m_neuroSWInputID_Layer5 , nnInput[15]);
2259 condFill(m_neuroSWInputT_Layer5 , nnInput[16]);
2260 condFill(m_neuroSWInputAlpha_Layer5 , nnInput[17]);
2261 condFill(m_neuroSWInputID_Layer6 , nnInput[18]);
2262 condFill(m_neuroSWInputT_Layer6 , nnInput[19]);
2263 condFill(m_neuroSWInputAlpha_Layer6 , nnInput[20]);
2264 condFill(m_neuroSWInputID_Layer7 , nnInput[21]);
2265 condFill(m_neuroSWInputT_Layer7 , nnInput[22]);
2266 condFill(m_neuroSWInputAlpha_Layer7 , nnInput[23]);
2267 condFill(m_neuroSWInputID_Layer8 , nnInput[24]);
2268 condFill(m_neuroSWInputT_Layer8 , nnInput[25]);
2269 condFill(m_neuroSWInputAlpha_Layer8 , nnInput[26]);
2273 int nofintracks = 0;
2274 if (m_unpackedNeuroTracksName !=
"") {
2275 int nofouttracks = 0;
2276 int nofinsegments = 0;
2279 bool valtrack =
false;
2281 valtrack = neuroTrack.getValidStereoBit();
2283 B2WARNING(
"NeuroTrack doesn't have 'valid bit', get it from relations now... ");
2284 unsigned checkpattern = getPattern(&neuroTrack, m_unpackedNeuroInputSegmentsName);
2285 valtrack = isValidPattern(checkpattern);
2293 m_neuroHWOutZ->Fill(neuroTrack.getZ0());
2294 double cotTh = neuroTrack.getCotTheta();
2295 double cosTh = copysign(1.0, cotTh) / sqrt(1. / (cotTh * cotTh) + 1);
2296 m_neuroHWOutCosTheta->Fill(cosTh);
2297 phinorm = neuroTrack.getPhi0() * 180. / M_PI ;
2298 if (phinorm < 0.) {phinorm = phinorm + 360. ;}
2299 m_neuroHWOutPhi0->Fill(phinorm);
2300 m_neuroHWOutInvPt->Fill(neuroTrack.getPt());
2301 m_neuroHWOutPt->Fill(neuroTrack.getPt());
2302 m_neuroHWOutm_time->Fill(neuroTrack.getTime());
2305 neuroTrack.getRelatedTo<
CDCTriggerMLPInput>(m_unpackedNeuroInputVectorName)->getSector();
2306 m_neuroHWSector->Fill(hwSector);
2309 if (!m_limitedoutput) {
2310 switch (neuroTrack.getQuadrant()) {
2312 m_neuroHWOutQuad5Z->Fill(neuroTrack.getZ0());
2313 m_neuroHWOutQuad5CosTheta->Fill(cosTh);
2314 phinorm = neuroTrack.getPhi0() * 180. / M_PI ;
2315 if (phinorm < 0.) { phinorm = phinorm + 360. ;}
2316 m_neuroHWOutQuad5Phi0->Fill(phinorm);
2317 m_neuroHWOutQuad5InvPt->Fill(neuroTrack.getPt());
2320 m_neuroHWOutQuad0Z->Fill(neuroTrack.getZ0());
2321 m_neuroHWOutQuad0CosTheta->Fill(cosTh);
2322 phinorm = neuroTrack.getPhi0() * 180. / M_PI ;
2323 if (phinorm < 0.) { phinorm = phinorm + 360. ;}
2324 m_neuroHWOutQuad0Phi0->Fill(phinorm);
2325 m_neuroHWOutQuad0InvPt->Fill(neuroTrack.getPt());
2328 m_neuroHWOutQuad1Z->Fill(neuroTrack.getZ0());
2329 m_neuroHWOutQuad1CosTheta->Fill(cosTh);
2330 phinorm = neuroTrack.getPhi0() * 180. / M_PI ;
2331 if (phinorm < 0.) { phinorm = phinorm + 360. ;}
2332 m_neuroHWOutQuad1Phi0->Fill(phinorm);
2333 m_neuroHWOutQuad1InvPt->Fill(neuroTrack.getPt());
2336 m_neuroHWOutQuad2Z->Fill(neuroTrack.getZ0());
2337 m_neuroHWOutQuad2CosTheta->Fill(cosTh);
2338 phinorm = neuroTrack.getPhi0() * 180. / M_PI ;
2339 if (phinorm < 0.) { phinorm = phinorm + 360. ;}
2340 m_neuroHWOutQuad2Phi0->Fill(phinorm);
2341 m_neuroHWOutQuad2InvPt->Fill(neuroTrack.getPt());
2344 m_neuroHWOutQuad3Z->Fill(neuroTrack.getZ0());
2345 m_neuroHWOutQuad3CosTheta->Fill(cosTh);
2346 phinorm = neuroTrack.getPhi0() * 180. / M_PI ;
2347 if (phinorm < 0.) { phinorm = phinorm + 360. ;}
2348 m_neuroHWOutQuad3Phi0->Fill(phinorm);
2349 m_neuroHWOutQuad3InvPt->Fill(neuroTrack.getPt());
2355 unsigned pattern = 0;
2358 m_neuroHWSelTSID->Fill(hit.getSegmentID());
2359 unsigned int sl = hit.getISuperLayer();
2360 m_neuroHWSelTSCount->Fill(sl);
2361 float neuroTime = neuroTrack.getTime();
2365 if (
compare.getISuperLayer() == hit.getISuperLayer() &&
2366 compare.getIWireCenter() == hit.getIWireCenter() &&
2367 compare.getPriorityPosition() == hit.getPriorityPosition() &&
2368 compare.getLeftRight() == hit.getLeftRight() &&
2369 compare.priorityTime() == hit.priorityTime() &&
2375 if (!m_limitedoutput) {
2377 case 0: m_neuroHWSelTSPrioT_Layer0->Fill(hit.priorityTime());
2378 m_neuroHWSelTSFoundT_Layer0->Fill(firstHit.
foundTime() - neuroTime);
2379 m_neuroHWSelTSPrioB_Layer0->Fill(hit.getPriorityPosition());
2380 m_neuroHWSelTSLR_Layer0->Fill(hit.getLeftRight());
2382 case 1: m_neuroHWSelTSPrioT_Layer1->Fill(hit.priorityTime());
2383 m_neuroHWSelTSFoundT_Layer1->Fill(firstHit.
foundTime() - neuroTime);
2384 m_neuroHWSelTSPrioB_Layer1->Fill(hit.getPriorityPosition());
2385 m_neuroHWSelTSLR_Layer1->Fill(hit.getLeftRight());
2387 case 2: m_neuroHWSelTSPrioT_Layer2->Fill(hit.priorityTime());
2388 m_neuroHWSelTSFoundT_Layer2->Fill(firstHit.
foundTime() - neuroTime);
2389 m_neuroHWSelTSPrioB_Layer2->Fill(hit.getPriorityPosition());
2390 m_neuroHWSelTSLR_Layer2->Fill(hit.getLeftRight());
2392 case 3: m_neuroHWSelTSPrioT_Layer3->Fill(hit.priorityTime());
2393 m_neuroHWSelTSFoundT_Layer3->Fill(firstHit.
foundTime() - neuroTime);
2394 m_neuroHWSelTSPrioB_Layer3->Fill(hit.getPriorityPosition());
2395 m_neuroHWSelTSLR_Layer3->Fill(hit.getLeftRight());
2397 case 4: m_neuroHWSelTSPrioT_Layer4->Fill(hit.priorityTime());
2398 m_neuroHWSelTSFoundT_Layer4->Fill(firstHit.
foundTime() - neuroTime);
2399 m_neuroHWSelTSPrioB_Layer4->Fill(hit.getPriorityPosition());
2400 m_neuroHWSelTSLR_Layer4->Fill(hit.getLeftRight());
2402 case 5: m_neuroHWSelTSPrioT_Layer5->Fill(hit.priorityTime());
2403 m_neuroHWSelTSFoundT_Layer5->Fill(firstHit.
foundTime() - neuroTime);
2404 m_neuroHWSelTSPrioB_Layer5->Fill(hit.getPriorityPosition());
2405 m_neuroHWSelTSLR_Layer5->Fill(hit.getLeftRight());
2407 case 6: m_neuroHWSelTSPrioT_Layer6->Fill(hit.priorityTime());
2408 m_neuroHWSelTSFoundT_Layer6->Fill(firstHit.
foundTime() - neuroTime);
2409 m_neuroHWSelTSPrioB_Layer6->Fill(hit.getPriorityPosition());
2410 m_neuroHWSelTSLR_Layer6->Fill(hit.getLeftRight());
2412 case 7: m_neuroHWSelTSPrioT_Layer7->Fill(hit.priorityTime());
2413 m_neuroHWSelTSFoundT_Layer7->Fill(firstHit.
foundTime() - neuroTime);
2414 m_neuroHWSelTSPrioB_Layer7->Fill(hit.getPriorityPosition());
2415 m_neuroHWSelTSLR_Layer7->Fill(hit.getLeftRight());
2417 case 8: m_neuroHWSelTSPrioT_Layer8->Fill(hit.priorityTime());
2418 m_neuroHWSelTSFoundT_Layer8->Fill(firstHit.
foundTime() - neuroTime);
2419 m_neuroHWSelTSPrioB_Layer8->Fill(hit.getPriorityPosition());
2420 m_neuroHWSelTSLR_Layer8->Fill(hit.getLeftRight());
2424 if (sl % 2 == 1) pattern |= (1 << ((sl - 1) / 2));
2426 m_neuroHWOutHitPattern->Fill(pattern);
2429 if (!m_limitedoutput) {
2430 vector<float> nnInput =
2431 neuroTrack.getRelatedTo<
CDCTriggerMLPInput>(m_unpackedNeuroInputVectorName)->getInput();
2432 condFill(m_neuroHWInputID_Layer0 , nnInput[0]);
2433 condFill(m_neuroHWInputT_Layer0 , nnInput[1]);
2434 condFill(m_neuroHWInputAlpha_Layer0 , nnInput[2]);
2435 condFill(m_neuroHWInputID_Layer1 , nnInput[3]);
2436 condFill(m_neuroHWInputT_Layer1 , nnInput[4]);
2437 condFill(m_neuroHWInputAlpha_Layer1 , nnInput[5]);
2438 condFill(m_neuroHWInputID_Layer2 , nnInput[6]);
2439 condFill(m_neuroHWInputT_Layer2 , nnInput[7]);
2440 condFill(m_neuroHWInputAlpha_Layer2 , nnInput[8]);
2441 condFill(m_neuroHWInputID_Layer3 , nnInput[9]);
2442 condFill(m_neuroHWInputT_Layer3 , nnInput[10]);
2443 condFill(m_neuroHWInputAlpha_Layer3 , nnInput[11]);
2444 condFill(m_neuroHWInputID_Layer4 , nnInput[12]);
2445 condFill(m_neuroHWInputT_Layer4 , nnInput[13]);
2446 condFill(m_neuroHWInputAlpha_Layer4 , nnInput[14]);
2447 condFill(m_neuroHWInputID_Layer5 , nnInput[15]);
2448 condFill(m_neuroHWInputT_Layer5 , nnInput[16]);
2449 condFill(m_neuroHWInputAlpha_Layer5 , nnInput[17]);
2450 condFill(m_neuroHWInputID_Layer6 , nnInput[18]);
2451 condFill(m_neuroHWInputT_Layer6 , nnInput[19]);
2452 condFill(m_neuroHWInputAlpha_Layer6 , nnInput[20]);
2453 condFill(m_neuroHWInputID_Layer7 , nnInput[21]);
2454 condFill(m_neuroHWInputT_Layer7 , nnInput[22]);
2455 condFill(m_neuroHWInputAlpha_Layer7 , nnInput[23]);
2456 condFill(m_neuroHWInputID_Layer8 , nnInput[24]);
2457 condFill(m_neuroHWInputT_Layer8 , nnInput[25]);
2458 condFill(m_neuroHWInputAlpha_Layer8 , nnInput[26]);
2461 if (m_simNeuroTracksName !=
"") {
2464 neuroTrack.getRelatedFrom<
CDCTriggerTrack>(m_unpackedNeuroInput2DTracksName);
2468 if (neuroSimTrack) {
2474 unsigned int simsl = simhit.getISuperLayer();
2477 unsigned int sl = hit.getISuperLayer();
2479 m_neuroDeltaTSID->Fill(hit.getSegmentID() - simhit.getSegmentID());
2480 if (simhit.getSegmentID() == hit.getSegmentID() &&
2481 simhit.getPriorityPosition() == hit.getPriorityPosition() &&
2482 simhit.getLeftRight() == hit.getLeftRight() &&
2483 simhit.priorityTime() == hit.priorityTime()
2492 m_simSameTS->Fill(nsameTS);
2493 m_simDiffTS->Fill(ndiffTS);
2497 if (nsameTS >= m_nsamets) {
2498 if (abs(neuroTrack.getZ0() - neuroSimTrack->getZ0()) > 1) {
2501 m_neuroDeltaZ->Fill(neuroTrack.getZ0() - neuroSimTrack->getZ0());
2502 double nnHWtheta = neuroTrack.getDirection().Theta() * 180. / M_PI;
2503 double nnSWtheta = neuroSimTrack->getDirection().Theta() * 180. / M_PI;
2504 m_neuroDeltaTheta->Fill(nnHWtheta - nnSWtheta);
2505 m_neuroScatterZ->Fill(neuroTrack.getZ0(), neuroSimTrack->getZ0());
2506 m_neuroScatterTheta->Fill(nnHWtheta, nnSWtheta);
2507 vector<float> unpackedInput =
2508 neuroTrack.getRelatedTo<
CDCTriggerMLPInput>(m_unpackedNeuroInputVectorName)->getInput();
2509 vector<float> simInput =
2510 neuroSimTrack->getRelatedTo<
CDCTriggerMLPInput>(m_simNeuroInputVectorName)->getInput();
2511 unsigned unpackedSector =
2512 neuroTrack.getRelatedTo<
CDCTriggerMLPInput>(m_unpackedNeuroInputVectorName)->getSector();
2513 unsigned simSector =
2514 neuroSimTrack->getRelatedTo<
CDCTriggerMLPInput>(m_simNeuroInputVectorName)->getSector();
2515 m_neuroDeltaSector->Fill(unpackedSector - simSector);
2517 for (
unsigned ii = 0; ii < unpackedInput.size(); ii += 3) {
2518 m_neuroDeltaInputID->Fill(unpackedInput[ii] - simInput[ii]);
2519 m_neuroDeltaInputT->Fill(unpackedInput[ii + 1] - simInput[ii + 1]);
2520 m_neuroDeltaInputAlpha->Fill(unpackedInput[ii + 2] - simInput[ii + 2]);
2528 for (
CDCTriggerTrack& neuroinput2dtrack : m_unpackedNeuroInput2DTracks) {
2530 phinorm = neuroinput2dtrack.getPhi0() * 180. / M_PI ;
2531 if (phinorm < 0.) { phinorm = phinorm + 360. ;}
2532 m_neuroHWInPhi0->Fill(phinorm);
2533 m_neuroHWInm_time->Fill(neuroinput2dtrack.getTime());
2534 m_neuroHWInInvPt->Fill(neuroinput2dtrack.getPt());
2536 if (nofintracks > 0 || nofouttracks > 0) {
2537 m_neuroHWInTrackCount->Fill(nofintracks);
2538 m_neuroHWOutTrackCount->Fill(nofouttracks);
2539 m_neuroHWOutVsInTrackCount->Fill((nofouttracks - nofintracks));
2543 m_neuroHWInTSID->Fill(neuroinputsegment.getSegmentID());
2544 if (!m_limitedoutput) {
2545 unsigned int sl = neuroinputsegment.getISuperLayer();
2547 case 0: m_neuroHWInTSPrioT_Layer0->Fill(neuroinputsegment.priorityTime());
2548 m_neuroHWInTSFoundT_Layer0->Fill(neuroinputsegment.foundTime());
2549 m_neuroHWInTSPrioB_Layer0->Fill(neuroinputsegment.getPriorityPosition());
2550 m_neuroHWInTSLR_Layer0->Fill(neuroinputsegment.getLeftRight());
2552 case 1: m_neuroHWInTSPrioT_Layer1->Fill(neuroinputsegment.priorityTime());
2553 m_neuroHWInTSFoundT_Layer1->Fill(neuroinputsegment.foundTime());
2554 m_neuroHWInTSPrioB_Layer1->Fill(neuroinputsegment.getPriorityPosition());
2555 m_neuroHWInTSLR_Layer1->Fill(neuroinputsegment.getLeftRight());
2557 case 2: m_neuroHWInTSPrioT_Layer2->Fill(neuroinputsegment.priorityTime());
2558 m_neuroHWInTSFoundT_Layer2->Fill(neuroinputsegment.foundTime());
2559 m_neuroHWInTSPrioB_Layer2->Fill(neuroinputsegment.getPriorityPosition());
2560 m_neuroHWInTSLR_Layer2->Fill(neuroinputsegment.getLeftRight());
2562 case 3: m_neuroHWInTSPrioT_Layer3->Fill(neuroinputsegment.priorityTime());
2563 m_neuroHWInTSFoundT_Layer3->Fill(neuroinputsegment.foundTime());
2564 m_neuroHWInTSPrioB_Layer3->Fill(neuroinputsegment.getPriorityPosition());
2565 m_neuroHWInTSLR_Layer3->Fill(neuroinputsegment.getLeftRight());
2567 case 4: m_neuroHWInTSPrioT_Layer4->Fill(neuroinputsegment.priorityTime());
2568 m_neuroHWInTSFoundT_Layer4->Fill(neuroinputsegment.foundTime());
2569 m_neuroHWInTSPrioB_Layer4->Fill(neuroinputsegment.getPriorityPosition());
2570 m_neuroHWInTSLR_Layer4->Fill(neuroinputsegment.getLeftRight());
2572 case 5: m_neuroHWInTSPrioT_Layer5->Fill(neuroinputsegment.priorityTime());
2573 m_neuroHWInTSFoundT_Layer5->Fill(neuroinputsegment.foundTime());
2574 m_neuroHWInTSPrioB_Layer5->Fill(neuroinputsegment.getPriorityPosition());
2575 m_neuroHWInTSLR_Layer5->Fill(neuroinputsegment.getLeftRight());
2577 case 6: m_neuroHWInTSPrioT_Layer6->Fill(neuroinputsegment.priorityTime());
2578 m_neuroHWInTSFoundT_Layer6->Fill(neuroinputsegment.foundTime());
2579 m_neuroHWInTSPrioB_Layer6->Fill(neuroinputsegment.getPriorityPosition());
2580 m_neuroHWInTSLR_Layer6->Fill(neuroinputsegment.getLeftRight());
2582 case 7: m_neuroHWInTSPrioT_Layer7->Fill(neuroinputsegment.priorityTime());
2583 m_neuroHWInTSFoundT_Layer7->Fill(neuroinputsegment.foundTime());
2584 m_neuroHWInTSPrioB_Layer7->Fill(neuroinputsegment.getPriorityPosition());
2585 m_neuroHWInTSLR_Layer7->Fill(neuroinputsegment.getLeftRight());
2587 case 8: m_neuroHWInTSPrioT_Layer8->Fill(neuroinputsegment.priorityTime());
2588 m_neuroHWInTSFoundT_Layer8->Fill(neuroinputsegment.foundTime());
2589 m_neuroHWInTSPrioB_Layer8->Fill(neuroinputsegment.getPriorityPosition());
2590 m_neuroHWInTSLR_Layer8->Fill(neuroinputsegment.getLeftRight());
2595 if (nofinsegments > 0) {
2596 m_neuroHWInTSCount->Fill(nofinsegments);
2601 if (!m_limitedoutput && m_simSegmentHitsName !=
"" && m_sim2DTracksSWTSName !=
"") {
2602 m_2DSWOutTrackCount->Fill(m_sim2DTracksSWTS.getEntries());
2604 phinorm = sim2dtrack.getPhi0() * 180. / M_PI ;
2605 if (phinorm < 0.) { phinorm = phinorm + 360. ;}
2606 m_2DSWOutPhi0->Fill(phinorm);
2607 m_2DSWOutm_time->Fill(sim2dtrack.getTime());
2608 m_2DSWOutInvPt->Fill(sim2dtrack.getPt());
2611 if (m_unpacked2DTracksName !=
"") {
2612 int nof2douttracks = 0;
2615 phinorm = finder2dtrack.getPhi0() * 180. / M_PI ;
2616 if (phinorm < 0.) {phinorm = phinorm + 360. ;}
2617 m_2DHWOutPhi0->Fill(phinorm);
2618 m_2DHWOutm_time->Fill(finder2dtrack.getTime());
2619 m_2DHWOutInvPt->Fill(finder2dtrack.getPt());
2621 if (nof2douttracks > 0) {
2622 m_2DHWOutTrackCount->Fill(nof2douttracks);
2623 if (m_unpackedNeuroTracksName !=
"") {
2624 m_neuroHWInVs2DOutTrackCount->Fill((nofintracks - nof2douttracks));
2628 int nof2dinsegments = 0;
2632 if (!m_limitedoutput) {
2633 unsigned int sl = hit.getISuperLayer();
2635 case 0: m_2DHWInTSPrioT_Layer0->Fill(hit.priorityTime());
2636 m_2DHWInTSFoundT_Layer0->Fill(hit.foundTime());
2637 m_2DHWInTSPrioB_Layer0->Fill(hit.getPriorityPosition());
2638 m_2DHWInTSLR_Layer0->Fill(hit.getLeftRight());
2640 case 2: m_2DHWInTSPrioT_Layer2->Fill(hit.priorityTime());
2641 m_2DHWInTSFoundT_Layer2->Fill(hit.foundTime());
2642 m_2DHWInTSPrioB_Layer2->Fill(hit.getPriorityPosition());
2643 m_2DHWInTSLR_Layer2->Fill(hit.getLeftRight());
2645 case 4: m_2DHWInTSPrioT_Layer4->Fill(hit.priorityTime());
2646 m_2DHWInTSFoundT_Layer4->Fill(hit.foundTime());
2647 m_2DHWInTSPrioB_Layer4->Fill(hit.getPriorityPosition());
2648 m_2DHWInTSLR_Layer4->Fill(hit.getLeftRight());
2650 case 6: m_2DHWInTSPrioT_Layer6->Fill(hit.priorityTime());
2651 m_2DHWInTSFoundT_Layer6->Fill(hit.foundTime());
2652 m_2DHWInTSPrioB_Layer6->Fill(hit.getPriorityPosition());
2653 m_2DHWInTSLR_Layer6->Fill(hit.getLeftRight());
2655 case 8: m_2DHWInTSPrioT_Layer8->Fill(hit.priorityTime());
2656 m_2DHWInTSFoundT_Layer8->Fill(hit.foundTime());
2657 m_2DHWInTSPrioB_Layer8->Fill(hit.getPriorityPosition());
2658 m_2DHWInTSLR_Layer8->Fill(hit.getLeftRight());
2663 if (nof2dinsegments > 0) {
2669 if (!m_limitedoutput && m_simNeuroTracksSWTSSW2DName !=
"") {
2670 m_neuroSWTSSW2DInTSCount->Fill(m_simSegmentHits.getEntries());
2672 m_neuroSWTSSW2DInTSID->Fill(hit.getSegmentID());
2673 unsigned int sl = hit.getISuperLayer();
2675 case 0: m_neuroSWTSSW2DInTSPrioT_Layer0->Fill(hit.priorityTime());
2676 m_neuroSWTSSW2DInTSFoundT_Layer0->Fill(hit.foundTime());
2677 m_neuroSWTSSW2DInTSPrioB_Layer0->Fill(hit.getPriorityPosition());
2678 m_neuroSWTSSW2DInTSLR_Layer0->Fill(hit.getLeftRight());
2680 case 1: m_neuroSWTSSW2DInTSPrioT_Layer1->Fill(hit.priorityTime());
2681 m_neuroSWTSSW2DInTSFoundT_Layer1->Fill(hit.foundTime());
2682 m_neuroSWTSSW2DInTSPrioB_Layer1->Fill(hit.getPriorityPosition());
2683 m_neuroSWTSSW2DInTSLR_Layer1->Fill(hit.getLeftRight());
2685 case 2: m_neuroSWTSSW2DInTSPrioT_Layer2->Fill(hit.priorityTime());
2686 m_neuroSWTSSW2DInTSFoundT_Layer2->Fill(hit.foundTime());
2687 m_neuroSWTSSW2DInTSPrioB_Layer2->Fill(hit.getPriorityPosition());
2688 m_neuroSWTSSW2DInTSLR_Layer2->Fill(hit.getLeftRight());
2690 case 3: m_neuroSWTSSW2DInTSPrioT_Layer3->Fill(hit.priorityTime());
2691 m_neuroSWTSSW2DInTSFoundT_Layer3->Fill(hit.foundTime());
2692 m_neuroSWTSSW2DInTSPrioB_Layer3->Fill(hit.getPriorityPosition());
2693 m_neuroSWTSSW2DInTSLR_Layer3->Fill(hit.getLeftRight());
2695 case 4: m_neuroSWTSSW2DInTSPrioT_Layer4->Fill(hit.priorityTime());
2696 m_neuroSWTSSW2DInTSFoundT_Layer4->Fill(hit.foundTime());
2697 m_neuroSWTSSW2DInTSPrioB_Layer4->Fill(hit.getPriorityPosition());
2698 m_neuroSWTSSW2DInTSLR_Layer4->Fill(hit.getLeftRight());
2700 case 5: m_neuroSWTSSW2DInTSPrioT_Layer5->Fill(hit.priorityTime());
2701 m_neuroSWTSSW2DInTSFoundT_Layer5->Fill(hit.foundTime());
2702 m_neuroSWTSSW2DInTSPrioB_Layer5->Fill(hit.getPriorityPosition());
2703 m_neuroSWTSSW2DInTSLR_Layer5->Fill(hit.getLeftRight());
2705 case 6: m_neuroSWTSSW2DInTSPrioT_Layer6->Fill(hit.priorityTime());
2706 m_neuroSWTSSW2DInTSFoundT_Layer6->Fill(hit.foundTime());
2707 m_neuroSWTSSW2DInTSPrioB_Layer6->Fill(hit.getPriorityPosition());
2708 m_neuroSWTSSW2DInTSLR_Layer6->Fill(hit.getLeftRight());
2710 case 7: m_neuroSWTSSW2DInTSPrioT_Layer7->Fill(hit.priorityTime());
2711 m_neuroSWTSSW2DInTSFoundT_Layer7->Fill(hit.foundTime());
2712 m_neuroSWTSSW2DInTSPrioB_Layer7->Fill(hit.getPriorityPosition());
2713 m_neuroSWTSSW2DInTSLR_Layer7->Fill(hit.getLeftRight());
2715 case 8: m_neuroSWTSSW2DInTSPrioT_Layer8->Fill(hit.priorityTime());
2716 m_neuroSWTSSW2DInTSFoundT_Layer8->Fill(hit.foundTime());
2717 m_neuroSWTSSW2DInTSPrioB_Layer8->Fill(hit.getPriorityPosition());
2718 m_neuroSWTSSW2DInTSLR_Layer8->Fill(hit.getLeftRight());
2724 static constexpr std::array<int, 9> nWiresInSuperLayer = {
2725 160, 160, 192, 224, 256, 288, 320, 352, 384
2727 unsigned axhwts = 0;
2728 unsigned sthwts = 0;
2729 unsigned axswts = 0;
2730 unsigned stswts = 0;
2732 std::vector<TSLine> hwtsoutput;
2733 std::vector<TSLine> swtsoutput;
2734 if (m_unpackedSegmentHitsName !=
"") {
2736 if (xhit.getISuperLayer() % 2 == 0) {
2741 int iSL = xhit.getISuperLayer();
2742 int iTS = xhit.getIWire();
2743 int nwires = nWiresInSuperLayer[ iSL ];
2750 int tsIDInTracker = iTS - nwires * xhit.getQuadrant() / 4;
2751 if (tsIDInTracker < 0) {
2752 tsIDInTracker += nwires;
2756 + padto(std::to_string(xhit.getISuperLayer()), 2) +
", "
2757 + padto(std::to_string(xhit.getQuadrant()), 1) +
", "
2758 + padto(std::to_string(xhit.getSegmentID()), 4) +
", "
2759 + padto(std::to_string(xhit.getIWire()), 5) +
", "
2760 + padto(std::to_string(xhit.getPriorityPosition()), 2) +
", "
2761 + padto(std::to_string(xhit.getLeftRight()), 2) +
", "
2762 + padto(std::to_string(xhit.priorityTime()), 4) +
", "
2763 + padto(std::to_string(xhit.foundTime()), 3) +
", "
2764 + padto(std::to_string(tsIDInTracker), 4) +
") | ";
2766 if (m_unpackedNeuroTracksName !=
"") {
2767 unsigned count2d = 0;
2770 if (have_relation(track, xhit, m_unpackedNeuroInputSegmentsName)) {
2771 l.strline += std::to_string(count2d);
2777 unsigned counthwn = 0;
2780 if (have_relation(track, xhit, m_unpackedNeuroInputSegmentsName)) {
2781 if (track.getValidStereoBit()) {
2782 l.strline += std::to_string(counthwn);
2792 if (m_simNeuroTracksName !=
"") {
2793 unsigned countswn = 0;
2796 if (have_relation(track, xhit, m_unpackedNeuroInputSegmentsName)) {
2797 l.strline += std::to_string(countswn);
2804 if (m_recoTracksName !=
"") {
2805 unsigned countreco = 0;
2806 for (
const auto& track : m_RecoTracks) {
2808 bool related =
false;
2810 if (&ts == &xhit) {related =
true;}
2813 l.strline += std::to_string(countreco);
2820 if (m_unpackedNeuroTracksName !=
"") {
2821 sorted_insert(hwtsoutput, l, m_unpackedNeuroInputSegmentsName, m_unpackedNeuroInput2DTracksName, m_unpackedNeuroTracksName);
2823 hwtsoutput.push_back(l);
2827 std::string axhw = std::to_string(axhwts) +
" / " + std::to_string(sthwts);
2828 if (!m_limitedoutput && m_simSegmentHitsName !=
"") {
2830 if (xhit.getISuperLayer() % 2 == 0) {
2835 int iSL = xhit.getISuperLayer();
2836 int iTS = xhit.getIWire();
2837 int nwires = nWiresInSuperLayer[ iSL ];
2844 int tsIDInTracker = iTS - nwires * xhit.getQuadrant() / 4;
2845 if (tsIDInTracker < 0) {
2846 tsIDInTracker += nwires;
2850 + padto(std::to_string(xhit.getISuperLayer()), 2) +
", "
2851 + padto(std::to_string(xhit.getSegmentID()), 4) +
", "
2852 + padto(std::to_string(xhit.getIWire()), 5) +
", "
2853 + padto(std::to_string(xhit.getPriorityPosition()), 2) +
", "
2854 + padto(std::to_string(xhit.getLeftRight()), 2) +
", "
2855 + padto(std::to_string(xhit.priorityTime()), 4) +
", "
2856 + padto(std::to_string(xhit.foundTime()), 3) +
", "
2857 + padto(std::to_string(tsIDInTracker), 4) +
") ";
2859 if (m_sim2DTracksSWTSName !=
"") {
2860 unsigned count2d = 0;
2863 if (have_relation(track, xhit, m_simSegmentHitsName)) {
2864 l.strline += std::to_string(count2d);
2871 if (m_simNeuroTracksSWTSSW2DName !=
"") {
2872 unsigned countswn = 0;
2875 if (have_relation(track, xhit, m_simSegmentHitsName)) {
2876 l.strline += std::to_string(countswn);
2883 if (m_recoTracksName !=
"") {
2884 unsigned countreco = 0;
2885 for (
const auto& track : m_RecoTracks) {
2887 bool related =
false;
2889 if (&ts == &xhit) {related =
true;}
2892 l.strline += std::to_string(countreco);
2899 if (m_simNeuroTracksSWTSSW2DName !=
"") {
2900 sorted_insert(swtsoutput, l, m_simSegmentHitsName, m_sim2DTracksSWTSName, m_simNeuroTracksSWTSSW2DName);
2902 swtsoutput.push_back(l);
2906 std::string hwtsstring =
"(SL, Q, SID , WID , PP, LR, pT , fT , TSID) | HWNNIn2D | HWNeuro | SWNeuro | ";
2907 std::string swtsstring =
"(SL, Q, SID , WID , PP, LR, pT , fT , TSID) | SW2D | SWNeuro | ";
2908 if (m_recoTracksName !=
"") {
2909 hwtsstring +=
"Reco | ";
2910 swtsstring +=
"Reco | ";
2912 B2DEBUG(10, padright(
" ", 100));
2913 B2DEBUG(10,
"----------------------------------------------------------------------------------------------------");
2914 B2DEBUG(10, padright(
" ", 100));
2915 std::string experimentstring =
"Experiment " + std::to_string(eventMetaData->getExperiment()) +
" Run " +
2916 std::to_string(eventMetaData->getRun()) +
" Event " + std::to_string(eventMetaData->getEvent());
2917 B2DEBUG(10, padright(experimentstring, 100));
2918 B2DEBUG(10, padright(
" ", 100));
2919 B2DEBUG(10, padright(
" ", 100));
2920 if (m_unpackedNeuroTracksName !=
"" && m_unpacked2DTracksName !=
"") {
2921 B2DEBUG(10, padright(
"Number of NN HW TS (Axial/Stereo): ", 40) << padright(axhw, 60));
2922 B2DEBUG(10, padright(
"Number of HW 2DFinderTracks: ", 40) << padright(std::to_string(m_unpacked2DTracks.getEntries()),
2924 unsigned f2dtrn = 0;
2927 std::stringstream strpt;
2928 std::stringstream stromega;
2929 std::stringstream strphi;
2930 strpt << std::fixed << std::setprecision(2) << ltrack.getPt();
2931 stromega << std::fixed << std::setprecision(2) << ltrack.getOmega();
2932 strphi << std::fixed << std::setprecision(2) << (ltrack.getPhi0() * 180. / M_PI);
2933 std::string trs =
" HW2DFinderTrack Nr. " + std::to_string(f2dtrn) +
" (pt, omega, phi) = ";
2934 trs += padto(strpt.str(), 6) +
", " + padto(stromega.str(), 6) +
", " + padto(strphi.str(), 6) +
")";
2935 B2DEBUG(15, padright(trs, 100));
2937 B2DEBUG(10, padright(
"Number of HW NNInput2DFinderTracks: ",
2938 40) << padright(std::to_string(m_unpackedNeuroInput2DTracks.getEntries()), 60));
2939 unsigned n2dtrn = 0;
2942 std::stringstream strpt;
2943 std::stringstream stromega;
2944 std::stringstream strphi;
2945 strpt << std::fixed << std::setprecision(2) << ltrack.getPt();
2946 stromega << std::fixed << std::setprecision(2) << ltrack.getOmega();
2947 strphi << std::fixed << std::setprecision(2) << (ltrack.getPhi0() * 180. / M_PI);
2948 std::string trs =
" HWNeuroInput2DTrack Nr. " + std::to_string(n2dtrn) +
" (pt, omega, phi) = ";
2949 trs += padto(strpt.str(), 6) +
", " + padto(stromega.str(), 6) +
", " + padto(strphi.str(), 6) +
", " +
")";
2950 B2DEBUG(15, padright(trs, 100));
2952 B2DEBUG(10, padright(
"Number of HW NeuroTracks: ",
2953 40) << padright(std::to_string(m_unpackedNeuroTracks.getEntries()), 60));
2954 unsigned hwntrn = 0;
2957 std::stringstream strpt;
2958 std::stringstream stromega;
2959 std::stringstream strphi;
2960 std::stringstream strtheta;
2961 std::stringstream strz;
2962 strpt << std::fixed << std::setprecision(2) << ltrack.getPt();
2963 stromega << std::fixed << std::setprecision(2) << ltrack.getOmega();
2964 strphi << std::fixed << std::setprecision(2) << (ltrack.getPhi0() * 180. / M_PI);
2965 strtheta << std::fixed << std::setprecision(2) << (ltrack.getDirection().Theta() * 180. / M_PI);
2966 strz << std::fixed << std::setprecision(2) << ltrack.getZ0();
2967 std::string trs =
" HWNeuroTrack Nr. " + std::to_string(hwntrn) +
" (pt, omega, phi, theta, z) = ";
2968 trs += padto(strpt.str(), 6) +
", " + padto(stromega.str(), 6) +
", " + padto(strphi.str(), 6) +
", " + padto(strtheta.str(),
2969 6) +
", " + padto(strz.str(), 6) +
")";
2970 B2DEBUG(15, padright(trs, 100));
2971 std::string infostr =
" Found old track: ( ";
2972 for (
bool x : ltrack.getFoundOldTrack()) {
2973 infostr += std::to_string(x) +
" ";
2976 infostr = padright(infostr, 50);
2977 infostr +=
"Drift threshold: ( ";
2978 for (
bool x : ltrack.getDriftThreshold()) {
2979 infostr += std::to_string(x) +
" ";
2982 infostr += (ltrack.getValidStereoBit()) ?
" valid" :
" NOT valid";
2983 B2DEBUG(15, padright(infostr, 100));
2984 std::string info2str =
" Expert Network Number: " + std::to_string(ltrack.getExpert());
2985 info2str +=
", TSVector: (";
2986 for (
bool x : ltrack.getTSVector()) {
2987 info2str += std::to_string(x) +
" ";
2991 info2str += std::to_string(ltrack.getQualityVector());
2992 B2DEBUG(15, padright(info2str, 100));
2996 vector<float> unpackedInput =
2999 vector<float> simInput =
3001 B2DEBUG(20, padright(
" Input Vector unpacked (id, t, alpha), sim (id, t, alpha), delta (id, t, alpha):", 100));
3002 for (
unsigned ii = 0; ii < unpackedInput.size(); ii += 3) {
3003 std::string lla =
" " + std::to_string(ii / 3) +
")";
3004 std::string llb =
" " + std::to_string(ii / 3) +
")";
3005 lla +=
"(" + padright(std::to_string(unpackedInput[ii]), 8) +
" " + padright(std::to_string(unpackedInput[ii + 1]),
3006 8) +
" " + padright(std::to_string(unpackedInput[ii + 2]), 8) +
"),(" + padright(std::to_string(simInput[ii]),
3007 8) +
" " + padright(std::to_string(simInput[ii + 1]), 8) +
" " + padright(std::to_string(simInput[ii + 2]),
3008 8) +
"),(" + padright(std::to_string(unpackedInput[ii] - simInput[ii]),
3009 8) +
" " + padright(std::to_string(unpackedInput[ii + 1] - simInput[ii + 1]),
3010 8) +
" " + padright(std::to_string(unpackedInput[ii + 2] - simInput[ii + 2]), 8) +
")";
3011 llb +=
" (" + padright(std::to_string(
int(unpackedInput[ii] * 4096)),
3012 8) +
" " + padright(std::to_string(
int(unpackedInput[ii + 1] * 4096)),
3013 8) +
" " + padright(std::to_string(
int(unpackedInput[ii + 2] * 4096)),
3014 8) +
"),(" + padright(std::to_string(
int(simInput[ii] * 4096)), 8) +
" " + padright(std::to_string(
int(simInput[ii + 1] * 4096)),
3015 8) +
" " + padright(std::to_string(
int(simInput[ii + 2] * 4096)),
3016 8) +
"),(" + padright(std::to_string(
int(unpackedInput[ii] * 4096 - simInput[ii] * 4096)),
3017 8) +
" " + padright(std::to_string(
int(unpackedInput[ii + 1] * 4096 - simInput[ii + 1] * 4096)),
3018 8) +
" " + padright(std::to_string(
int(unpackedInput[ii + 2] * 4096 - simInput[ii + 2] * 4096)), 8) +
")";
3033 B2DEBUG(30, padright(lla, 100));
3034 B2DEBUG(20, padright(llb, 100));
3041 if (!m_limitedoutput && m_simNeuroTracksName !=
"") {
3042 B2DEBUG(10, padright(
"Number of SW NeuroTracks: ", 40) << padright(std::to_string(m_simNeuroTracks.getEntries()), 60));
3043 unsigned swntrn = 0;
3046 std::stringstream strpt;
3047 std::stringstream stromega;
3048 std::stringstream strphi;
3049 std::stringstream strtheta;
3050 std::stringstream strz;
3051 std::stringstream strquality;
3052 strpt << std::fixed << std::setprecision(2) << ltrack.getPt();
3053 stromega << std::fixed << std::setprecision(2) << ltrack.getOmega();
3054 strphi << std::fixed << std::setprecision(2) << (ltrack.getPhi0() * 180. / M_PI);
3055 strtheta << std::fixed << std::setprecision(2) << (ltrack.getDirection().Theta() * 180. / M_PI);
3056 strz << std::fixed << std::setprecision(2) << ltrack.getZ0();
3057 strquality << std::fixed << ltrack.getQualityVector();
3058 std::string trs =
" SWNeuroTrack Nr. " + std::to_string(swntrn) +
" (pt, omega, phi, theta, z) = ";
3059 trs += padto(strpt.str(), 6) +
", " + padto(stromega.str(), 6) +
", " + padto(strphi.str(), 6) +
", " + padto(strtheta.str(),
3060 6) +
", " + padto(strz.str(), 6) +
")" +
", Q=" + strquality.str();
3061 B2DEBUG(15, padright(trs, 100));
3064 if (!m_limitedoutput && m_simSegmentHitsName !=
"") {
3065 std::string axsw = std::to_string(axswts) +
" / " + std::to_string(stswts);
3066 B2DEBUG(10, padright(
"Number of AllSW TS (Axial/Stereo): ", 40) << padright(axsw, 60));
3067 if (m_sim2DTracksSWTSName !=
"" && m_simNeuroTracksSWTSSW2DName !=
"") {
3068 B2DEBUG(10, padright(
"Number of SW 2DFinderSWTSTracks: ", 40) << padright(std::to_string(m_sim2DTracksSWTS.getEntries()),
3070 unsigned sf2dtrn = 0;
3073 std::stringstream strpt;
3074 std::stringstream stromega;
3075 std::stringstream strphi;
3076 strpt << std::fixed << std::setprecision(2) << ltrack.getPt();
3077 stromega << std::fixed << std::setprecision(2) << ltrack.getOmega();
3078 strphi << std::fixed << std::setprecision(2) << (ltrack.getPhi0() * 180. / M_PI);
3079 std::string trs =
" SW2DFinderSWTSTrack Nr. " + std::to_string(sf2dtrn) +
" (pt, omega, phi) = ";
3080 trs += padto(strpt.str(), 6) +
", " + padto(stromega.str(), 6) +
", " + padto(strphi.str(), 6) +
")";
3081 B2DEBUG(15, padright(trs, 100));
3083 B2DEBUG(10, padright(
"Number of SW NeuroSWTSSW2DTracks: ",
3084 40) << padright(std::to_string(m_simNeuroTracksSWTSSW2D.getEntries()), 60));
3085 unsigned aswntrn = 0;
3088 std::stringstream strpt;
3089 std::stringstream stromega;
3090 std::stringstream strphi;
3091 std::stringstream strtheta;
3092 std::stringstream strz;
3093 strpt << std::fixed << std::setprecision(2) << ltrack.getPt();
3094 stromega << std::fixed << std::setprecision(2) << ltrack.getOmega();
3095 strphi << std::fixed << std::setprecision(2) << (ltrack.getPhi0() * 180. / M_PI);
3096 strtheta << std::fixed << std::setprecision(2) << (ltrack.getDirection().Theta() * 180. / M_PI);
3097 strz << std::fixed << std::setprecision(2) << ltrack.getZ0();
3098 std::string trs =
" SWNeuroSWTSSW2DTrack Nr. " + std::to_string(aswntrn) +
" (pt, omega, phi, theta, z) = ";
3099 trs += padto(strpt.str(), 6) +
", " + padto(stromega.str(), 6) +
", " + padto(strphi.str(), 6) +
", " + padto(strtheta.str(),
3100 6) +
", " + padto(strz.str(), 6) +
")";
3101 B2DEBUG(15, padright(trs, 100));
3102 vector<float> simInputSWTSSW2D =
3103 ltrack.getRelatedTo<
CDCTriggerMLPInput>(m_simNeuroInputVectorSWTSSW2DName)->getInput();
3104 B2DEBUG(20, padright(
" Input Vector simulated (id, t, alpha):", 100));
3105 for (
unsigned ii = 0; ii < simInputSWTSSW2D.size(); ii += 3) {
3106 std::string lla =
" " + std::to_string(ii / 3) +
")";
3107 std::string llb =
" " + std::to_string(ii / 3) +
")";
3108 lla +=
"(" + padright(std::to_string(simInputSWTSSW2D[ii]),
3109 8) +
" " + padright(std::to_string(simInputSWTSSW2D[ii + 1]), 8) +
" " + padright(std::to_string(simInputSWTSSW2D[ii + 2]),
3111 llb +=
" (" + padright(std::to_string(
int(simInputSWTSSW2D[ii] * 4096)),
3112 8) +
" " + padright(std::to_string(
int(simInputSWTSSW2D[ii + 1] * 4096)),
3113 8) +
" " + padright(std::to_string(
int(simInputSWTSSW2D[ii + 2] * 4096)),
3115 B2DEBUG(30, padright(lla, 100));
3116 B2DEBUG(20, padright(llb, 100));
3122 if (m_recoTracksName !=
"") {
3123 B2DEBUG(10, padright(
"Number of RecoTracks: ", 40) << padright(std::to_string(m_RecoTracks.getEntries()), 60));
3124 unsigned recotrn = 0;
3125 for (
RecoTrack& ltrack : m_RecoTracks) {
3126 double phi0Target = 0;
3127 double invptTarget = 0;
3128 double thetaTarget = 0;
3130 double d0Target = 0;
3131 bool foundValidRep =
false;
3133 if (!ltrack.wasFitSuccessful(rep))
3139 ltrack.getMeasuredStateOnPlaneClosestTo(TVector3(0, 0, 0), rep);
3140 rep->extrapolateToLine(state, TVector3(0, 0, -1000), TVector3(0, 0, 2000));
3149 phi0Target = state.getMom().Phi() * 180. / M_PI ;
3150 if (phi0Target < 0.) {phi0Target = phi0Target + 360. ;}
3151 invptTarget = state.getCharge() * state.getMom().Pt();
3152 thetaTarget = acos(state.getMom().CosTheta()) * 180 / M_PI;
3153 zTarget = state.getPos().Z();
3154 d0Target = state.getPos().Perp();
3159 foundValidRep =
true;
3162 if (!foundValidRep) {
3163 B2DEBUG(150,
"No valid representation found for RecoTrack, skipping.");
3166 if (m_maxRecoZDist != -1.0 and abs(zTarget) > m_maxRecoZDist) {
3167 B2DEBUG(150,
"RecoTrack not close to IP (maxRecoZDist), zReco = " << zTarget);
3170 if (m_maxRecoD0Dist != -1.0 and abs(d0Target) > m_maxRecoD0Dist) {
3171 B2DEBUG(150,
"RecoTrack not close to the z axis (maxRecoD0Dist), d0Reco = " << d0Target);
3176 std::stringstream strpt;
3177 std::stringstream stromega;
3178 std::stringstream strphi;
3179 std::stringstream strtheta;
3180 std::stringstream strz;
3181 strpt << std::fixed << std::setprecision(2) << invptTarget;
3182 stromega << std::fixed << std::setprecision(2) << d0Target;
3183 strphi << std::fixed << std::setprecision(2) << phi0Target;
3184 strtheta << std::fixed << std::setprecision(2) << thetaTarget;
3185 strz << std::fixed << std::setprecision(2) << zTarget;
3186 std::string trs =
" RecoTrack Nr. " + std::to_string(recotrn) +
" (invpt, d0, phi, theta, z) = ";
3187 trs += padto(strpt.str(), 6) +
", " + padto(stromega.str(), 6) +
", " + padto(strphi.str(), 6) +
", " + padto(strtheta.str(),
3188 6) +
", " + padto(strz.str(), 6) +
")";
3189 B2DEBUG(15, padright(trs, 100));
3192 B2DEBUG(10, padright(
" ", 100));
3193 B2DEBUG(10, padright(
" ", 100));
3194 if (m_unpackedSegmentHitsName !=
"") {
3195 B2DEBUG(15, padright(
"Detailed information about HW TS ", 100));
3196 B2DEBUG(15, padright(
" ", 100));
3197 B2DEBUG(15, padright(hwtsstring, 100));
3198 for (
auto x : hwtsoutput) {
3199 B2DEBUG(15, padright(x.strline, 100));
3201 B2DEBUG(15, padright(
" ", 100));
3203 if (!m_limitedoutput && m_simSegmentHitsName !=
"") {
3204 B2DEBUG(15, padright(
" ", 100));
3205 B2DEBUG(15, padright(
"Detailed information about SW TS ", 100));
3206 B2DEBUG(15, padright(
" ", 100));
3207 B2DEBUG(15, padright(swtsstring, 100));
3208 for (
auto x : swtsoutput) {
3209 B2DEBUG(15, padright(x.strline, 100));
3215 void CDCTriggerNeuroDQMModule::endRun()
3220 void CDCTriggerNeuroDQMModule::terminate()
Combination of several CDCHits to a track segment hit for the trigger.
short foundTime() const
get time when segment hit was found in trigger clocks
Track created by the CDC trigger.
bool getValidStereoBit() const
returns true, if at least 3 stereo ts were found
void setQualityVector(const unsigned newbits)
setter and getter for the quality vector.
double getPt() const
get the absolute value of the transverse momentum at the perigee assuming d0 = 0
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
This is the Reconstruction Event-Data Model Track.
Type-safe access to single objects in the data store.
Abstract base class for a track representation.
#StateOnPlane with additional covariance matrix.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Abstract base class for different kinds of events.