83 if (gTools->getNumberOfLayers() == 0) {
84 B2FATAL(
"Missing geometry for VXD, check steering file.");
86 if (gTools->getNumberOfSVDLayers() == 0) {
87 B2WARNING(
"Missing geometry for SVD, SVD-DQM is skipped.");
92 TDirectory* oldDir = gDirectory;
100 int nSVDChips = gTools->getTotalSVDChips();
103 m_nEvents =
new TH1F(
"SVDDQM_nEvents",
"SVD Number of Events", 1, -0.5, 0.5);
104 m_nEvents->GetYaxis()->SetTitle(
"N events");
109 m_hitMapCountsU =
new TH1F(
"SVDDQM_StripCountsU",
"SVD Integrated Number of ZS5 Fired U-Strips per sensor",
110 nSVDSensors, 0, nSVDSensors);
114 m_hitMapCountsV =
new TH1F(
"SVDDQM_StripCountsV",
"SVD Integrated Number of ZS5 Fired V-Strips per sensor",
115 nSVDSensors, 0, nSVDSensors);
119 m_hitMapClCountsU =
new TH1F(
"SVDDQM_ClusterCountsU",
"SVD Integrated Number of U-Clusters per sensor",
120 nSVDSensors, 0, nSVDSensors);
124 m_hitMapClCountsV =
new TH1F(
"SVDDQM_ClusterCountsV",
"SVD Integrated Number of V-Clusters per sensor",
125 nSVDSensors, 0, nSVDSensors);
129 for (
int i = 0; i < nSVDSensors; i++) {
130 VxdID id = gTools->getSensorIDFromSVDIndex(i);
132 int iLadder =
id.getLadderNumber();
133 int iSensor =
id.getSensorNumber();
134 TString AxisTicks = Form(
"%i_%i_%i", iLayer, iLadder, iSensor);
142 m_hitMapCountsChip =
new TH1F(
"SVDDQM_StripCountsChip",
"SVD Integrated Number of ZS5 Fired Strips per chip",
143 nSVDChips, 0, nSVDChips);
147 m_hitMapClCountsChip =
new TH1F(
"SVDDQM_ClusterCountsChip",
"SVD Integrated Number of Clusters per chip",
148 nSVDChips, 0, nSVDChips);
193 float ChargeMax = 80;
197 float TimeMin = -150;
200 int GroupIdBins = 21;
201 float GroupIdMin = -1.5;
202 float GroupIdMax = 19.5;
207 TString refFrame =
"in FTSW reference";
209 refFrame =
"in SVD reference";
215 string name = str(format(
"SVDDQM_ClusterChargeUAll"));
216 string title = str(format(
"SVD U-Cluster Charge for all sensors"));
221 name = str(format(
"SVDDQM_ClusterChargeVAll"));
222 title = str(format(
"SVD V-Cluster Charge for all sensors"));
230 name = str(format(
"SVDDQM_ClusterChargeU3"));
231 title = str(format(
"SVD U-Cluster Charge for layer 3 sensors"));
232 m_clusterChargeU3 =
new TH1F(name.c_str(), title.c_str(), ChargeBins, 0, ChargeMax);
236 name = str(format(
"SVDDQM_ClusterChargeV3"));
237 title = str(format(
"SVD V-Cluster Charge for layer 3 sensors"));
238 m_clusterChargeV3 =
new TH1F(name.c_str(), title.c_str(), ChargeBins, 0, ChargeMax);
243 name = str(format(
"SVDDQM_ClusterChargeU456"));
244 title = str(format(
"SVD U-Cluster Charge for layers 4,5,6 sensors"));
250 name = str(format(
"SVDDQM_ClusterChargeV456"));
251 title = str(format(
"SVD V-Cluster Charge for layers 4,5,6 sensors"));
260 name = str(format(
"SVDDQM_ClusterSNRUAll"));
261 title = str(format(
"SVD U-Cluster SNR for all sensors"));
262 m_clusterSNRUAll =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
266 name = str(format(
"SVDDQM_ClusterSNRVAll"));
267 title = str(format(
"SVD V-Cluster SNR for all sensors"));
268 m_clusterSNRVAll =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
275 name = str(format(
"SVDDQM_ClusterSNRU3"));
276 title = str(format(
"SVD U-Cluster SNR for layer 3 sensors"));
277 m_clusterSNRU3 =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
281 name = str(format(
"SVDDQM_ClusterSNRV3"));
282 title = str(format(
"SVD V-Cluster SNR for layer 3 sensors"));
283 m_clusterSNRV3 =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
288 name = str(format(
"SVDDQM_ClusterSNRU456"));
289 title = str(format(
"SVD U-Cluster SNR for layers 4,5,6 sensors"));
290 m_clusterSNRU456 =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
294 name = str(format(
"SVDDQM_ClusterSNRV456"));
295 title = str(format(
"SVD V-Cluster SNR for layers 4,5,6 sensors"));
296 m_clusterSNRV456 =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
303 TString Name =
"SVDDQM_ClusterTimeUAll";
304 TString Title = Form(
"SVD U-Cluster Time %s for all sensors", refFrame.Data());
305 m_clusterTimeUAll =
new TH1F(Name.Data(), Title.Data(), TimeBins, TimeMin, TimeMax);
309 Name =
"SVDDQM_ClusterTimeVAll";
310 Title = Form(
"SVD V-Cluster Time %s for all sensors", refFrame.Data());
311 m_clusterTimeVAll =
new TH1F(Name.Data(), Title.Data(), TimeBins, TimeMin, TimeMax);
318 Name =
"SVDDQM_ClusterTimeU3";
319 Title = Form(
"SVD U-Cluster Time %s for layer 3 sensors", refFrame.Data());
320 m_clusterTimeU3 =
new TH1F(Name.Data(), Title.Data(), TimeBins, TimeMin, TimeMax);
324 name = str(format(
"SVDDQM_ClusterTimeV3"));
325 Title = Form(
"SVD V-Cluster Time %s for layer 3 sensors", refFrame.Data());
326 m_clusterTimeV3 =
new TH1F(name.c_str(), Title.Data(), TimeBins, TimeMin, TimeMax);
331 name = str(format(
"SVDDQM_ClusterTimeU456"));
332 Title = Form(
"SVD U-Cluster Time %s for layers 4,5,6 sensors", refFrame.Data());
333 m_clusterTimeU456 =
new TH1F(name.c_str(), Title.Data(), TimeBins, TimeMin, TimeMax);
337 name = str(format(
"SVDDQM_ClusterTimeV456"));
338 Title = Form(
"SVD V-Cluster Time %s for layers 4,5,6 sensors", refFrame.Data());
339 m_clusterTimeV456 =
new TH1F(name.c_str(), Title.Data(), TimeBins, TimeMin, TimeMax);
348 Name =
"SVDDQM_Cluster3TimeU3";
349 Title = Form(
"SVD U-Cluster Time %s for layer 3 sensors for 3 samples", refFrame.Data());
354 name = str(format(
"SVDDQM_Cluster3TimeV3"));
355 Title = Form(
"SVD V-Cluster Time %s for layer 3 sensors for 3 samples", refFrame.Data());
360 name = str(format(
"SVDDQM_Cluster3TimeU456"));
361 Title = Form(
"SVD U-Cluster Time %s for layers 4,5,6 sensors for 3 samples", refFrame.Data());
366 name = str(format(
"SVDDQM_Cluster3TimeV456"));
367 Title = Form(
"SVD V-Cluster Time %s for layers 4,5,6 sensors for 3 samples", refFrame.Data());
376 Name =
"SVDDQM_Cluster6TimeU3";
377 Title = Form(
"SVD U-Cluster Time %s for layer 3 sensors for 6 samples", refFrame.Data());
382 name = str(format(
"SVDDQM_Cluster6TimeV3"));
383 Title = Form(
"SVD V-Cluster Time %s for layer 3 sensors for 6 samples", refFrame.Data());
389 name = str(format(
"SVDDQM_Cluster6TimeU456"));
390 Title = Form(
"SVD U-Cluster Time %s for layers 4,5,6 sensors for 6 samples", refFrame.Data());
395 name = str(format(
"SVDDQM_Cluster6TimeV456"));
396 Title = Form(
"SVD V-Cluster Time %s for layers 4,5,6 sensors for 6 samples", refFrame.Data());
406 Name =
"SVDDQM_ClusterTimeGroupIdU";
407 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for U/P Side", refFrame.Data());
408 m_clusterTimeGroupIdU =
new TH2F(Name.Data(), Title.Data(), TimeBins / 2, TimeMin, TimeMax, GroupIdBins, GroupIdMin, GroupIdMax);
412 Name =
"SVDDQM_ClusterTimeGroupIdV";
413 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for V/N Side", refFrame.Data());
414 m_clusterTimeGroupIdV =
new TH2F(Name.Data(), Title.Data(), TimeBins / 2, TimeMin, TimeMax, GroupIdBins, GroupIdMin, GroupIdMax);
422 Name =
"SVDDQM_cluster6TimeGroupIdU";
423 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for U/P Side for coarse trigger", refFrame.Data());
429 Name =
"SVDDQM_cluster6TimeGroupIdV";
430 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for V/N Side for coarse trigger", refFrame.Data());
437 Name =
"SVDDQM_cluster3TimeGroupIdU";
438 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for U/P Side for fine trigger", refFrame.Data());
444 Name =
"SVDDQM_cluster3TimeGroupIdV";
445 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for V/N Side for fine trigger", refFrame.Data());
455 name = str(format(
"SVDDQM_StripMaxBinUAll"));
456 title = str(format(
"SVD U-Strip MaxBin for all sensors"));
457 m_stripMaxBinUAll =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
461 name = str(format(
"SVDDQM_StripMaxBinVAll"));
462 title = str(format(
"SVD V-Strip MaxBin for all sensors"));
463 m_stripMaxBinVAll =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
468 name = str(format(
"SVDDQM_StripMaxBinU3"));
469 title = str(format(
"SVD U-Strip MaxBin for layer 3 sensors"));
470 m_stripMaxBinU3 =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
474 name = str(format(
"SVDDQM_StripMaxBinV3"));
475 title = str(format(
"SVD V-Strip MaxBin for layer 3 sensors"));
476 m_stripMaxBinV3 =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
481 name = str(format(
"SVDDQM_StripMaxBinU6"));
482 title = str(format(
"SVD U-Strip MaxBin for layer 6 sensors"));
483 m_stripMaxBinU6 =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
487 name = str(format(
"SVDDQM_StripMaxBinV6"));
488 title = str(format(
"SVD V-Strip MaxBin for layer 6 sensors"));
489 m_stripMaxBinV6 =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
494 for (
int i = 0; i < nSVDSensors; i++) {
495 VxdID id = gTools->getSensorIDFromSVDIndex(i);
497 int iLadder =
id.getLadderNumber();
498 int iSensor =
id.getSensorNumber();
499 VxdID sensorID(iLayer, iLadder, iSensor);
501 string sensorDescr = str(format(
"%1%_%2%_%3%") % iLayer % iLadder % iSensor);
507 name = str(format(
"SVDDQM_%1%_FiredU") % sensorDescr);
508 title = str(format(
"SVD Sensor %1% Number of Fired U-Strips") % sensorDescr);
509 m_firedU[i] =
new TH1F(name.c_str(), title.c_str(), 50, 0, 50);
510 m_firedU[i]->GetXaxis()->SetTitle(
"# fired strips");
511 m_firedU[i]->GetYaxis()->SetTitle(
"count");
513 name = str(format(
"SVDDQM_%1%_FiredV") % sensorDescr);
514 title = str(format(
"SVD Sensor %1% Number of Fired V-Strips") % sensorDescr);
515 m_firedV[i] =
new TH1F(name.c_str(), title.c_str(), 50, 0, 50);
516 m_firedV[i]->GetXaxis()->SetTitle(
"# fired strips");
517 m_firedV[i]->GetYaxis()->SetTitle(
"count");
522 name = str(format(
"SVDDQM_%1%_ClustersU") % sensorDescr);
523 title = str(format(
"SVD Sensor %1% Number of U-Clusters") % sensorDescr);
524 m_clustersU[i] =
new TH1F(name.c_str(), title.c_str(), 20, 0, 20);
525 m_clustersU[i]->GetXaxis()->SetTitle(
"# clusters");
528 name = str(format(
"SVDDQM_%1%_ClustersV") % sensorDescr);
529 title = str(format(
"SVD Sensor %1% Number of V-Clusters") % sensorDescr);
530 m_clustersV[i] =
new TH1F(name.c_str(), title.c_str(), 20, 0, 20);
531 m_clustersV[i]->GetXaxis()->SetTitle(
"# clusters");
537 name = str(format(
"SVDDQM_%1%_ADCStripU") % sensorDescr);
538 title = str(format(
"SVD Sensor %1% U-Strip signal in ADC Counts, all 6 APV samples") % sensorDescr);
539 m_stripSignalU[i] =
new TH1F(name.c_str(), title.c_str(), 256, -0.5, 255.5);
543 name = str(format(
"SVDDQM_%1%_ADCStripV") % sensorDescr);
544 title = str(format(
"SVD Sensor %1% V-Strip signal in ADC Counts, all 6 APV samples") % sensorDescr);
545 m_stripSignalV[i] =
new TH1F(name.c_str(), title.c_str(), 256, -0.5, 255.5);
554 name = str(format(
"SVDDQM_%1%_ClusterChargeU") % sensorDescr);
555 title = str(format(
"SVD Sensor %1% U-Cluster Charge") % sensorDescr);
556 m_clusterChargeU[i] =
new TH1F(name.c_str(), title.c_str(), ChargeBins, 0, ChargeMax);
560 name = str(format(
"SVDDQM_%1%_ClusterChargeV") % sensorDescr);
561 title = str(format(
"SVD Sensor %1% V-Cluster Charge") % sensorDescr);
562 m_clusterChargeV[i] =
new TH1F(name.c_str(), title.c_str(), ChargeBins, 0, ChargeMax);
569 name = str(format(
"SVDDQM_%1%_ClusterSNRU") % sensorDescr);
570 title = str(format(
"SVD Sensor %1% U-Cluster SNR") % sensorDescr);
571 m_clusterSNRU[i] =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
575 name = str(format(
"SVDDQM_%1%_ClusterSNRV") % sensorDescr);
576 title = str(format(
"SVD Sensor %1% V-Cluster SNR") % sensorDescr);
577 m_clusterSNRV[i] =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
585 name = str(format(
"SVDDQM_%1%_StripCountU") % sensorDescr);
586 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired U-Strip vs Strip Number") % sensorDescr);
587 m_stripCountU[i] =
new TH1F(name.c_str(), title.c_str(), 768, -0.5, 767.5);
591 name = str(format(
"SVDDQM_%1%_StripCountV") % sensorDescr);
592 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired V-Strip vs Strip Number") % sensorDescr);
593 m_stripCountV[i] =
new TH1F(name.c_str(), title.c_str(), 768, -0.5, 767.5);
600 name = str(format(
"SVDDQM_%1%_OnlineZSStripCountU") % sensorDescr);
601 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired U-Strip vs Strip Number") % sensorDescr);
606 name = str(format(
"SVDDQM_%1%_OnlineZSStripCountV") % sensorDescr);
607 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired V-Strip vs Strip Number") % sensorDescr);
617 name = str(format(
"SVDDQM_%1%_Strip3CountU") % sensorDescr);
618 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired U-Strip vs Strip Number for 3 samples") % sensorDescr);
623 name = str(format(
"SVDDQM_%1%_Strip3CountV") % sensorDescr);
624 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired V-Strip vs Strip Number for 3 samples") % sensorDescr);
633 name = str(format(
"SVDDQM_%1%_OnlineZSStrip3CountU") % sensorDescr);
634 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired U-Strip vs Strip Number for 3 samples") % sensorDescr);
639 name = str(format(
"SVDDQM_%1%_OnlineZSStrip3CountV") % sensorDescr);
640 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired V-Strip vs Strip Number for 3 samples") % sensorDescr);
649 name = str(format(
"SVDDQM_%1%_Strip6CountU") % sensorDescr);
650 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired U-Strip vs Strip Number for 6 samples") % sensorDescr);
655 name = str(format(
"SVDDQM_%1%_strip6CountV") % sensorDescr);
656 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired V-Strip vs Strip Number for 6 samples") % sensorDescr);
664 name = str(format(
"SVDDQM_%1%_OnlineZSStrip6CountU") % sensorDescr);
665 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired U-Strip vs Strip Number for 6 samples") % sensorDescr);
670 name = str(format(
"SVDDQM_%1%_OnlineZSStrip6CountV") % sensorDescr);
671 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired V-Strip vs Strip Number for 6 samples") % sensorDescr);
681 name = str(format(
"SVDDQM_%1%_StripCountGroupId0U") % sensorDescr);
682 title = str(format(
"SVD Sensor %1% Integrated NumberFired U-Strip for group Id = 0 vs Strip Number") % sensorDescr);
687 name = str(format(
"SVDDQM_%1%_StripCountGroupId0V") % sensorDescr);
688 title = str(format(
"SVD Sensor %1% Integrated Number of Fired V-Strip for group Id = 0 vs Strip Number") % sensorDescr);
697 name = str(format(
"SVDDQM_%1%_ClusterSizeU") % sensorDescr);
698 title = str(format(
"SVD Sensor %1% U-Cluster Size") % sensorDescr);
699 m_clusterSizeU[i] =
new TH1F(name.c_str(), title.c_str(), 9, 1, 10);
703 name = str(format(
"SVDDQM_%1%_ClusterSizeV") % sensorDescr);
704 title = str(format(
"SVD Sensor %1% V-Cluster Size") % sensorDescr);
705 m_clusterSizeV[i] =
new TH1F(name.c_str(), title.c_str(), 9, 1, 10);
712 name = str(format(
"SVDDQM_%1%_ClusterTimeU") % sensorDescr);
713 Title = Form(
"SVD Sensor %s U-Cluster Time %s", sensorDescr.c_str(), refFrame.Data());
714 m_clusterTimeU[i] =
new TH1F(name.c_str(), Title.Data(), TimeBins, TimeMin, TimeMax);
718 name = str(format(
"SVDDQM_%1%_ClusterTimeV") % sensorDescr);
719 Title = Form(
"SVD Sensor %s V-Cluster Time %s", sensorDescr.c_str(), refFrame.Data());
720 m_clusterTimeV[i] =
new TH1F(name.c_str(), Title.Data(), TimeBins, TimeMin, TimeMax);
726 for (
int i = 0; i < nSVDChips; i++) {
727 VxdID id = gTools->getChipIDFromSVDIndex(i);
729 int iLadder =
id.getLadderNumber();
730 int iSensor =
id.getSensorNumber();
731 int iChip = gTools->getSVDChipNumber(
id);
732 int IsU = gTools->isSVDSideU(
id);
733 TString AxisTicks = Form(
"%i_%i_%i_u%i", iLayer, iLadder, iSensor, iChip);
735 AxisTicks = Form(
"%i_%i_%i_v%i", iLayer, iLadder, iSensor, iChip);
747 TDirectory* dirShowAll =
nullptr;
748 dirShowAll = oldDir->mkdir(
"SVDDQMAll");
755 for (
int i = 0; i < nSVDSensors; i++) {
756 VxdID id = gTools->getSensorIDFromSVDIndex(i);
758 int iLadder =
id.getLadderNumber();
759 int iSensor =
id.getSensorNumber();
760 VxdID sensorID(iLayer, iLadder, iSensor);
762 string sensorDescr = str(format(
"%1%_%2%_%3%") % iLayer % iLadder % iSensor);
766 name = str(format(
"SVD_%1%_StripHitmapU") % sensorDescr);
767 title = str(format(
"SVD Sensor %1% Strip Hitmap in U") % sensorDescr);
771 m_hitMapU[i]->GetXaxis()->SetTitle(
"u position [pitch units]");
772 m_hitMapU[i]->GetYaxis()->SetTitle(
"timebin [time units]");
773 m_hitMapU[i]->GetZaxis()->SetTitle(
"hits");
775 name = str(format(
"SVD_%1%_StripHitmapV") % sensorDescr);
776 title = str(format(
"SVD Sensor %1% Strip Hitmap in V") % sensorDescr);
780 m_hitMapV[i]->GetXaxis()->SetTitle(
"v position [pitch units]");
781 m_hitMapV[i]->GetYaxis()->SetTitle(
"timebin [time units]");
782 m_hitMapV[i]->GetZaxis()->SetTitle(
"hits");
787 name = str(format(
"SVD_%1%_HitmapClstU") % sensorDescr);
788 title = str(format(
"SVD Sensor %1% Hitmap Clusters in U") % sensorDescr);
790 m_hitMapUCl[i] =
new TH1F(name.c_str(), title.c_str(), nStrips, 0, nStrips);
791 m_hitMapUCl[i]->GetXaxis()->SetTitle(
"u position [pitch units]");
794 name = str(format(
"SVD_%1%_HitmapClstV") % sensorDescr);
795 title = str(format(
"SVD Sensor %1% Hitmap Clusters in V") % sensorDescr);
797 m_hitMapVCl[i] =
new TH1F(name.c_str(), title.c_str(), nStrips, 0, nStrips);
798 m_hitMapVCl[i]->GetXaxis()->SetTitle(
"v position [pitch units]");
867 if (!eventAccepted)
return;
878 if (gTools->getNumberOfSVDLayers() == 0)
return;
889 int firstSVDLayer = gTools->getFirstSVDLayer();
890 int lastSVDLayer = gTools->getLastSVDLayer();
891 int nSVDSensors = gTools->getNumberOfSVDSensors();
894 vector< set<int> > uStrips(nSVDSensors);
895 vector< set<int> > vStrips(nSVDSensors);
897 int iLayer = digitIn.getSensorID().getLayerNumber();
898 if ((iLayer < firstSVDLayer) || (iLayer > lastSVDLayer))
continue;
899 int iLadder = digitIn.getSensorID().getLadderNumber();
900 int iSensor = digitIn.getSensorID().getSensorNumber();
901 VxdID sensorID(iLayer, iLadder, iSensor);
902 int index = gTools->getSVDSensorIndex(sensorID);
904 if (digitIn.isUStrip()) {
923 uStrips.at(index).insert(digitIn.getCellID());
924 int Chip = (int)(digitIn.getCellID() / gTools->getSVDChannelsPerChip()) + 1;
925 int indexChip = gTools->getSVDChipIndex(sensorID, kTRUE, Chip);
963 vStrips.at(index).insert(digitIn.getCellID());
964 int Chip = (int)(digitIn.getCellID() / gTools->getSVDChannelsPerChip()) + 1;
965 int indexChip = gTools->getSVDChipIndex(sensorID, kFALSE, Chip);
986 for (
int i = 0; i < nSVDSensors; i++) {
987 if ((
m_firedU[i] !=
nullptr) && (uStrips[i].size() > 0))
988 m_firedU[i]->Fill(uStrips[i].size());
989 if ((
m_firedV[i] !=
nullptr) && (vStrips[i].size() > 0))
990 m_firedV[i]->Fill(vStrips[i].size());
995 if (storeNoZSSVDShaperDigits.
isValid())
997 int iLayer = digitIn.getSensorID().getLayerNumber();
998 if ((iLayer < firstSVDLayer) || (iLayer > lastSVDLayer))
continue;
999 int iLadder = digitIn.getSensorID().getLadderNumber();
1000 int iSensor = digitIn.getSensorID().getSensorNumber();
1001 VxdID sensorID(iLayer, iLadder, iSensor);
1002 int index = gTools->getSVDSensorIndex(sensorID);
1004 if (digitIn.isUStrip()) {
1007 if (nSamples == 3) {
1016 if (nSamples == 3) {
1025 vector< set<int> > countsU(nSVDSensors);
1026 vector< set<int> > countsV(nSVDSensors);
1028 for (
const SVDCluster& cluster : storeSVDClusters) {
1030 int iLayer = cluster.getSensorID().getLayerNumber();
1031 if ((iLayer < firstSVDLayer) || (iLayer > lastSVDLayer))
continue;
1032 int iLadder = cluster.getSensorID().getLadderNumber();
1033 int iSensor = cluster.getSensorID().getSensorNumber();
1034 VxdID sensorID(iLayer, iLadder, iSensor);
1035 int index = gTools->getSVDSensorIndex(sensorID);
1038 float time = cluster.getClsTime();
1040 time = time -
m_svdEventInfo->getSVD2FTSWTimeShift(cluster.getFirstFrame());
1042 vector<int> vec = cluster.getTimeGroupId();
1043 auto minElement = min_element(vec.begin(), vec.end());
1045 if (vec.size() > 0) {
1046 groupId = *minElement;
1048 if (cluster.isUCluster()) {
1052 if (trgQuality == 1)
1054 if (trgQuality == 2)
1062 if (trgQuality == 1)
1064 if (trgQuality == 2)
1070 if (cluster.isUCluster()) {
1071 countsU.at(index).insert(SensorInfo.
getUCellID(cluster.getPosition()));
1072 int indexChip = gTools->getSVDChipIndex(sensorID, kTRUE,
1073 (
int)(SensorInfo.
getUCellID(cluster.getPosition()) / gTools->getSVDChannelsPerChip()) + 1);
1088 if (nSamples == 3) {
1099 if (nSamples == 3) {
1117 countsV.at(index).insert(SensorInfo.
getVCellID(cluster.getPosition()));
1118 int indexChip = gTools->getSVDChipIndex(sensorID, kFALSE,
1119 (
int)(SensorInfo.
getVCellID(cluster.getPosition()) / gTools->getSVDChannelsPerChip()) + 1);
1134 if (nSamples == 3) {
1145 if (nSamples == 3) {
1164 for (
int i = 0; i < nSVDSensors; i++) {
1165 if ((
m_clustersU[i] !=
nullptr) && (countsU[i].size() > 0))
1167 if ((
m_clustersV[i] !=
nullptr) && (countsV[i].size() > 0))