85 B2FATAL(
"no valid configuration found for SVD reconstruction");
87 B2DEBUG(20,
"SVDRecoConfiguration: from now on we are using " <<
m_svdPlotsConfig->get_uniqueID());
94 if (gTools->getNumberOfLayers() == 0) {
95 B2FATAL(
"Missing geometry for VXD, check steering file.");
97 if (gTools->getNumberOfSVDLayers() == 0) {
98 B2WARNING(
"Missing geometry for SVD, SVD-DQM is skipped.");
103 TDirectory* oldDir = gDirectory;
111 int nSVDChips = gTools->getTotalSVDChips();
114 m_nEvents =
new TH1F(
"SVDDQM_nEvents",
"SVD Number of Events", 1, -0.5, 0.5);
115 m_nEvents->GetYaxis()->SetTitle(
"N events");
120 m_hitMapCountsU =
new TH1F(
"SVDDQM_StripCountsU",
"SVD Integrated Number of ZS5 Fired U-Strips per sensor",
121 nSVDSensors, 0, nSVDSensors);
125 m_hitMapCountsV =
new TH1F(
"SVDDQM_StripCountsV",
"SVD Integrated Number of ZS5 Fired V-Strips per sensor",
126 nSVDSensors, 0, nSVDSensors);
130 m_hitMapClCountsU =
new TH1F(
"SVDDQM_ClusterCountsU",
"SVD Integrated Number of U-Clusters per sensor",
131 nSVDSensors, 0, nSVDSensors);
135 m_hitMapClCountsV =
new TH1F(
"SVDDQM_ClusterCountsV",
"SVD Integrated Number of V-Clusters per sensor",
136 nSVDSensors, 0, nSVDSensors);
140 for (
int i = 0; i < nSVDSensors; i++) {
141 VxdID id = gTools->getSensorIDFromSVDIndex(i);
143 int iLadder =
id.getLadderNumber();
144 int iSensor =
id.getSensorNumber();
145 TString AxisTicks = Form(
"%i_%i_%i", iLayer, iLadder, iSensor);
153 m_hitMapCountsChip =
new TH1F(
"SVDDQM_StripCountsChip",
"SVD Integrated Number of ZS5 Fired Strips per chip",
154 nSVDChips, 0, nSVDChips);
158 m_hitMapClCountsChip =
new TH1F(
"SVDDQM_ClusterCountsChip",
"SVD Integrated Number of Clusters per chip",
159 nSVDChips, 0, nSVDChips);
204 float ChargeMax = 80;
208 float TimeMin = -150;
211 int GroupIdBins = 21;
212 float GroupIdMin = -1.5;
213 float GroupIdMax = 19.5;
218 TString refFrame =
"in FTSW reference";
220 refFrame =
"in SVD reference";
226 string name = str(format(
"SVDDQM_ClusterChargeUAll"));
227 string title = str(format(
"SVD U-Cluster Charge for all sensors"));
232 name = str(format(
"SVDDQM_ClusterChargeVAll"));
233 title = str(format(
"SVD V-Cluster Charge for all sensors"));
241 name = str(format(
"SVDDQM_ClusterChargeU3"));
242 title = str(format(
"SVD U-Cluster Charge for layer 3 sensors"));
243 m_clusterChargeU3 =
new TH1F(name.c_str(), title.c_str(), ChargeBins, 0, ChargeMax);
247 name = str(format(
"SVDDQM_ClusterChargeV3"));
248 title = str(format(
"SVD V-Cluster Charge for layer 3 sensors"));
249 m_clusterChargeV3 =
new TH1F(name.c_str(), title.c_str(), ChargeBins, 0, ChargeMax);
254 name = str(format(
"SVDDQM_ClusterChargeU456"));
255 title = str(format(
"SVD U-Cluster Charge for layers 4,5,6 sensors"));
261 name = str(format(
"SVDDQM_ClusterChargeV456"));
262 title = str(format(
"SVD V-Cluster Charge for layers 4,5,6 sensors"));
271 name = str(format(
"SVDDQM_ClusterSNRUAll"));
272 title = str(format(
"SVD U-Cluster SNR for all sensors"));
273 m_clusterSNRUAll =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
277 name = str(format(
"SVDDQM_ClusterSNRVAll"));
278 title = str(format(
"SVD V-Cluster SNR for all sensors"));
279 m_clusterSNRVAll =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
286 name = str(format(
"SVDDQM_ClusterSNRU3"));
287 title = str(format(
"SVD U-Cluster SNR for layer 3 sensors"));
288 m_clusterSNRU3 =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
292 name = str(format(
"SVDDQM_ClusterSNRV3"));
293 title = str(format(
"SVD V-Cluster SNR for layer 3 sensors"));
294 m_clusterSNRV3 =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
299 name = str(format(
"SVDDQM_ClusterSNRU456"));
300 title = str(format(
"SVD U-Cluster SNR for layers 4,5,6 sensors"));
301 m_clusterSNRU456 =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
305 name = str(format(
"SVDDQM_ClusterSNRV456"));
306 title = str(format(
"SVD V-Cluster SNR for layers 4,5,6 sensors"));
307 m_clusterSNRV456 =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
314 TString Name =
"SVDDQM_ClusterTimeUAll";
315 TString Title = Form(
"SVD U-Cluster Time %s for all sensors", refFrame.Data());
316 m_clusterTimeUAll =
new TH1F(Name.Data(), Title.Data(), TimeBins, TimeMin, TimeMax);
320 Name =
"SVDDQM_ClusterTimeVAll";
321 Title = Form(
"SVD V-Cluster Time %s for all sensors", refFrame.Data());
322 m_clusterTimeVAll =
new TH1F(Name.Data(), Title.Data(), TimeBins, TimeMin, TimeMax);
329 Name =
"SVDDQM_ClusterTimeU3";
330 Title = Form(
"SVD U-Cluster Time %s for layer 3 sensors", refFrame.Data());
331 m_clusterTimeU3 =
new TH1F(Name.Data(), Title.Data(), TimeBins, TimeMin, TimeMax);
335 name = str(format(
"SVDDQM_ClusterTimeV3"));
336 Title = Form(
"SVD V-Cluster Time %s for layer 3 sensors", refFrame.Data());
337 m_clusterTimeV3 =
new TH1F(name.c_str(), Title.Data(), TimeBins, TimeMin, TimeMax);
342 name = str(format(
"SVDDQM_ClusterTimeU456"));
343 Title = Form(
"SVD U-Cluster Time %s for layers 4,5,6 sensors", refFrame.Data());
344 m_clusterTimeU456 =
new TH1F(name.c_str(), Title.Data(), TimeBins, TimeMin, TimeMax);
348 name = str(format(
"SVDDQM_ClusterTimeV456"));
349 Title = Form(
"SVD V-Cluster Time %s for layers 4,5,6 sensors", refFrame.Data());
350 m_clusterTimeV456 =
new TH1F(name.c_str(), Title.Data(), TimeBins, TimeMin, TimeMax);
359 Name =
"SVDDQM_Cluster3TimeU3";
360 Title = Form(
"SVD U-Cluster Time %s for layer 3 sensors for 3 samples", refFrame.Data());
365 name = str(format(
"SVDDQM_Cluster3TimeV3"));
366 Title = Form(
"SVD V-Cluster Time %s for layer 3 sensors for 3 samples", refFrame.Data());
371 name = str(format(
"SVDDQM_Cluster3TimeU456"));
372 Title = Form(
"SVD U-Cluster Time %s for layers 4,5,6 sensors for 3 samples", refFrame.Data());
377 name = str(format(
"SVDDQM_Cluster3TimeV456"));
378 Title = Form(
"SVD V-Cluster Time %s for layers 4,5,6 sensors for 3 samples", refFrame.Data());
387 Name =
"SVDDQM_Cluster6TimeU3";
388 Title = Form(
"SVD U-Cluster Time %s for layer 3 sensors for 6 samples", refFrame.Data());
393 name = str(format(
"SVDDQM_Cluster6TimeV3"));
394 Title = Form(
"SVD V-Cluster Time %s for layer 3 sensors for 6 samples", refFrame.Data());
400 name = str(format(
"SVDDQM_Cluster6TimeU456"));
401 Title = Form(
"SVD U-Cluster Time %s for layers 4,5,6 sensors for 6 samples", refFrame.Data());
406 name = str(format(
"SVDDQM_Cluster6TimeV456"));
407 Title = Form(
"SVD V-Cluster Time %s for layers 4,5,6 sensors for 6 samples", refFrame.Data());
417 Name =
"SVDDQM_ClusterTimeGroupIdU";
418 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for U/P Side", refFrame.Data());
419 m_clusterTimeGroupIdU =
new TH2F(Name.Data(), Title.Data(), TimeBins / 2, TimeMin, TimeMax, GroupIdBins, GroupIdMin, GroupIdMax);
423 Name =
"SVDDQM_ClusterTimeGroupIdV";
424 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for V/N Side", refFrame.Data());
425 m_clusterTimeGroupIdV =
new TH2F(Name.Data(), Title.Data(), TimeBins / 2, TimeMin, TimeMax, GroupIdBins, GroupIdMin, GroupIdMax);
433 Name =
"SVDDQM_cluster6TimeGroupIdU";
434 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for U/P Side for coarse trigger", refFrame.Data());
440 Name =
"SVDDQM_cluster6TimeGroupIdV";
441 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for V/N Side for coarse trigger", refFrame.Data());
448 Name =
"SVDDQM_cluster3TimeGroupIdU";
449 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for U/P Side for fine trigger", refFrame.Data());
455 Name =
"SVDDQM_cluster3TimeGroupIdV";
456 Title = Form(
"SVD cluster Time Group Id %s vs cluster time for V/N Side for fine trigger", refFrame.Data());
466 name = str(format(
"SVDDQM_StripMaxBinUAll"));
467 title = str(format(
"SVD U-Strip MaxBin for all sensors"));
468 m_stripMaxBinUAll =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
472 name = str(format(
"SVDDQM_StripMaxBinVAll"));
473 title = str(format(
"SVD V-Strip MaxBin for all sensors"));
474 m_stripMaxBinVAll =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
479 name = str(format(
"SVDDQM_StripMaxBinU3"));
480 title = str(format(
"SVD U-Strip MaxBin for layer 3 sensors"));
481 m_stripMaxBinU3 =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
485 name = str(format(
"SVDDQM_StripMaxBinV3"));
486 title = str(format(
"SVD V-Strip MaxBin for layer 3 sensors"));
487 m_stripMaxBinV3 =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
492 name = str(format(
"SVDDQM_StripMaxBinU6"));
493 title = str(format(
"SVD U-Strip MaxBin for layer 6 sensors"));
494 m_stripMaxBinU6 =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
498 name = str(format(
"SVDDQM_StripMaxBinV6"));
499 title = str(format(
"SVD V-Strip MaxBin for layer 6 sensors"));
500 m_stripMaxBinV6 =
new TH1F(name.c_str(), title.c_str(), MaxBinBins, 0, MaxBinMax);
505 for (
int i = 0; i < nSVDSensors; i++) {
506 VxdID id = gTools->getSensorIDFromSVDIndex(i);
508 int iLadder =
id.getLadderNumber();
509 int iSensor =
id.getSensorNumber();
510 VxdID sensorID(iLayer, iLadder, iSensor);
512 string sensorDescr = str(format(
"%1%_%2%_%3%") % iLayer % iLadder % iSensor);
518 name = str(format(
"SVDDQM_%1%_FiredU") % sensorDescr);
519 title = str(format(
"SVD Sensor %1% Number of Fired U-Strips") % sensorDescr);
520 m_firedU[i] =
new TH1F(name.c_str(), title.c_str(), 50, 0, 50);
521 m_firedU[i]->GetXaxis()->SetTitle(
"# fired strips");
522 m_firedU[i]->GetYaxis()->SetTitle(
"count");
524 name = str(format(
"SVDDQM_%1%_FiredV") % sensorDescr);
525 title = str(format(
"SVD Sensor %1% Number of Fired V-Strips") % sensorDescr);
526 m_firedV[i] =
new TH1F(name.c_str(), title.c_str(), 50, 0, 50);
527 m_firedV[i]->GetXaxis()->SetTitle(
"# fired strips");
528 m_firedV[i]->GetYaxis()->SetTitle(
"count");
533 name = str(format(
"SVDDQM_%1%_ClustersU") % sensorDescr);
534 title = str(format(
"SVD Sensor %1% Number of U-Clusters") % sensorDescr);
535 m_clustersU[i] =
new TH1F(name.c_str(), title.c_str(), 20, 0, 20);
536 m_clustersU[i]->GetXaxis()->SetTitle(
"# clusters");
539 name = str(format(
"SVDDQM_%1%_ClustersV") % sensorDescr);
540 title = str(format(
"SVD Sensor %1% Number of V-Clusters") % sensorDescr);
541 m_clustersV[i] =
new TH1F(name.c_str(), title.c_str(), 20, 0, 20);
542 m_clustersV[i]->GetXaxis()->SetTitle(
"# clusters");
548 name = str(format(
"SVDDQM_%1%_ADCStripU") % sensorDescr);
549 title = str(format(
"SVD Sensor %1% U-Strip signal in ADC Counts, all 6 APV samples") % sensorDescr);
550 m_stripSignalU[i] =
new TH1F(name.c_str(), title.c_str(), 256, -0.5, 255.5);
554 name = str(format(
"SVDDQM_%1%_ADCStripV") % sensorDescr);
555 title = str(format(
"SVD Sensor %1% V-Strip signal in ADC Counts, all 6 APV samples") % sensorDescr);
556 m_stripSignalV[i] =
new TH1F(name.c_str(), title.c_str(), 256, -0.5, 255.5);
565 name = str(format(
"SVDDQM_%1%_ClusterChargeU") % sensorDescr);
566 title = str(format(
"SVD Sensor %1% U-Cluster Charge") % sensorDescr);
567 m_clusterChargeU[i] =
new TH1F(name.c_str(), title.c_str(), ChargeBins, 0, ChargeMax);
571 name = str(format(
"SVDDQM_%1%_ClusterChargeV") % sensorDescr);
572 title = str(format(
"SVD Sensor %1% V-Cluster Charge") % sensorDescr);
573 m_clusterChargeV[i] =
new TH1F(name.c_str(), title.c_str(), ChargeBins, 0, ChargeMax);
580 name = str(format(
"SVDDQM_%1%_ClusterSNRU") % sensorDescr);
581 title = str(format(
"SVD Sensor %1% U-Cluster SNR") % sensorDescr);
582 m_clusterSNRU[i] =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
586 name = str(format(
"SVDDQM_%1%_ClusterSNRV") % sensorDescr);
587 title = str(format(
"SVD Sensor %1% V-Cluster SNR") % sensorDescr);
588 m_clusterSNRV[i] =
new TH1F(name.c_str(), title.c_str(), SNRBins, 0, SNRMax);
596 name = str(format(
"SVDDQM_%1%_StripCountU") % sensorDescr);
597 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired U-Strip vs Strip Number") % sensorDescr);
598 m_stripCountU[i] =
new TH1F(name.c_str(), title.c_str(), 768, -0.5, 767.5);
602 name = str(format(
"SVDDQM_%1%_StripCountV") % sensorDescr);
603 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired V-Strip vs Strip Number") % sensorDescr);
604 m_stripCountV[i] =
new TH1F(name.c_str(), title.c_str(), 768, -0.5, 767.5);
611 name = str(format(
"SVDDQM_%1%_OnlineZSStripCountU") % sensorDescr);
612 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired U-Strip vs Strip Number") % sensorDescr);
617 name = str(format(
"SVDDQM_%1%_OnlineZSStripCountV") % sensorDescr);
618 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired V-Strip vs Strip Number") % sensorDescr);
628 name = str(format(
"SVDDQM_%1%_Strip3CountU") % sensorDescr);
629 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired U-Strip vs Strip Number for 3 samples") % sensorDescr);
634 name = str(format(
"SVDDQM_%1%_Strip3CountV") % sensorDescr);
635 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired V-Strip vs Strip Number for 3 samples") % sensorDescr);
644 name = str(format(
"SVDDQM_%1%_OnlineZSStrip3CountU") % sensorDescr);
645 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired U-Strip vs Strip Number for 3 samples") % sensorDescr);
650 name = str(format(
"SVDDQM_%1%_OnlineZSStrip3CountV") % sensorDescr);
651 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired V-Strip vs Strip Number for 3 samples") % sensorDescr);
660 name = str(format(
"SVDDQM_%1%_Strip6CountU") % sensorDescr);
661 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired U-Strip vs Strip Number for 6 samples") % sensorDescr);
666 name = str(format(
"SVDDQM_%1%_strip6CountV") % sensorDescr);
667 title = str(format(
"SVD Sensor %1% Integrated Number of ZS5 Fired V-Strip vs Strip Number for 6 samples") % sensorDescr);
675 name = str(format(
"SVDDQM_%1%_OnlineZSStrip6CountU") % sensorDescr);
676 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired U-Strip vs Strip Number for 6 samples") % sensorDescr);
681 name = str(format(
"SVDDQM_%1%_OnlineZSStrip6CountV") % sensorDescr);
682 title = str(format(
"SVD Sensor %1% Integrated Number of online-ZS Fired V-Strip vs Strip Number for 6 samples") % sensorDescr);
692 name = str(format(
"SVDDQM_%1%_StripCountGroupId0U") % sensorDescr);
693 title = str(format(
"SVD Sensor %1% Integrated NumberFired U-Strip for group Id = 0 vs Strip Number") % sensorDescr);
698 name = str(format(
"SVDDQM_%1%_StripCountGroupId0V") % sensorDescr);
699 title = str(format(
"SVD Sensor %1% Integrated Number of Fired V-Strip for group Id = 0 vs Strip Number") % sensorDescr);
708 name = str(format(
"SVDDQM_%1%_ClusterSizeU") % sensorDescr);
709 title = str(format(
"SVD Sensor %1% U-Cluster Size") % sensorDescr);
710 m_clusterSizeU[i] =
new TH1F(name.c_str(), title.c_str(), 9, 1, 10);
714 name = str(format(
"SVDDQM_%1%_ClusterSizeV") % sensorDescr);
715 title = str(format(
"SVD Sensor %1% V-Cluster Size") % sensorDescr);
716 m_clusterSizeV[i] =
new TH1F(name.c_str(), title.c_str(), 9, 1, 10);
723 name = str(format(
"SVDDQM_%1%_ClusterTimeU") % sensorDescr);
724 Title = Form(
"SVD Sensor %s U-Cluster Time %s", sensorDescr.c_str(), refFrame.Data());
725 m_clusterTimeU[i] =
new TH1F(name.c_str(), Title.Data(), TimeBins, TimeMin, TimeMax);
729 name = str(format(
"SVDDQM_%1%_ClusterTimeV") % sensorDescr);
730 Title = Form(
"SVD Sensor %s V-Cluster Time %s", sensorDescr.c_str(), refFrame.Data());
731 m_clusterTimeV[i] =
new TH1F(name.c_str(), Title.Data(), TimeBins, TimeMin, TimeMax);
737 for (
int i = 0; i < nSVDChips; i++) {
738 VxdID id = gTools->getChipIDFromSVDIndex(i);
740 int iLadder =
id.getLadderNumber();
741 int iSensor =
id.getSensorNumber();
742 int iChip = gTools->getSVDChipNumber(
id);
743 int IsU = gTools->isSVDSideU(
id);
744 TString AxisTicks = Form(
"%i_%i_%i_u%i", iLayer, iLadder, iSensor, iChip);
746 AxisTicks = Form(
"%i_%i_%i_v%i", iLayer, iLadder, iSensor, iChip);
758 TDirectory* dirShowAll =
nullptr;
759 dirShowAll = oldDir->mkdir(
"SVDDQMAll");
766 for (
int i = 0; i < nSVDSensors; i++) {
767 VxdID id = gTools->getSensorIDFromSVDIndex(i);
769 int iLadder =
id.getLadderNumber();
770 int iSensor =
id.getSensorNumber();
771 VxdID sensorID(iLayer, iLadder, iSensor);
773 string sensorDescr = str(format(
"%1%_%2%_%3%") % iLayer % iLadder % iSensor);
777 name = str(format(
"SVD_%1%_StripHitmapU") % sensorDescr);
778 title = str(format(
"SVD Sensor %1% Strip Hitmap in U") % sensorDescr);
782 m_hitMapU[i]->GetXaxis()->SetTitle(
"u position [pitch units]");
783 m_hitMapU[i]->GetYaxis()->SetTitle(
"timebin [time units]");
784 m_hitMapU[i]->GetZaxis()->SetTitle(
"hits");
786 name = str(format(
"SVD_%1%_StripHitmapV") % sensorDescr);
787 title = str(format(
"SVD Sensor %1% Strip Hitmap in V") % sensorDescr);
791 m_hitMapV[i]->GetXaxis()->SetTitle(
"v position [pitch units]");
792 m_hitMapV[i]->GetYaxis()->SetTitle(
"timebin [time units]");
793 m_hitMapV[i]->GetZaxis()->SetTitle(
"hits");
798 name = str(format(
"SVD_%1%_HitmapClstU") % sensorDescr);
799 title = str(format(
"SVD Sensor %1% Hitmap Clusters in U") % sensorDescr);
801 m_hitMapUCl[i] =
new TH1F(name.c_str(), title.c_str(), nStrips, 0, nStrips);
802 m_hitMapUCl[i]->GetXaxis()->SetTitle(
"u position [pitch units]");
805 name = str(format(
"SVD_%1%_HitmapClstV") % sensorDescr);
806 title = str(format(
"SVD Sensor %1% Hitmap Clusters in V") % sensorDescr);
808 m_hitMapVCl[i] =
new TH1F(name.c_str(), title.c_str(), nStrips, 0, nStrips);
809 m_hitMapVCl[i]->GetXaxis()->SetTitle(
"v position [pitch units]");
875 if (!eventAccepted)
return;
886 if (gTools->getNumberOfSVDLayers() == 0)
return;
897 int firstSVDLayer = gTools->getFirstSVDLayer();
898 int lastSVDLayer = gTools->getLastSVDLayer();
899 int nSVDSensors = gTools->getNumberOfSVDSensors();
902 vector< set<int> > uStrips(nSVDSensors);
903 vector< set<int> > vStrips(nSVDSensors);
905 int iLayer = digitIn.getSensorID().getLayerNumber();
906 if ((iLayer < firstSVDLayer) || (iLayer > lastSVDLayer))
continue;
907 int iLadder = digitIn.getSensorID().getLadderNumber();
908 int iSensor = digitIn.getSensorID().getSensorNumber();
909 VxdID sensorID(iLayer, iLadder, iSensor);
910 int index = gTools->getSVDSensorIndex(sensorID);
912 if (digitIn.isUStrip()) {
931 uStrips.at(index).insert(digitIn.getCellID());
932 int Chip = (int)(digitIn.getCellID() / gTools->getSVDChannelsPerChip()) + 1;
933 int indexChip = gTools->getSVDChipIndex(sensorID, kTRUE, Chip);
971 vStrips.at(index).insert(digitIn.getCellID());
972 int Chip = (int)(digitIn.getCellID() / gTools->getSVDChannelsPerChip()) + 1;
973 int indexChip = gTools->getSVDChipIndex(sensorID, kFALSE, Chip);
994 for (
int i = 0; i < nSVDSensors; i++) {
995 if ((
m_firedU[i] !=
nullptr) && (uStrips[i].size() > 0))
996 m_firedU[i]->Fill(uStrips[i].size());
997 if ((
m_firedV[i] !=
nullptr) && (vStrips[i].size() > 0))
998 m_firedV[i]->Fill(vStrips[i].size());
1003 if (storeNoZSSVDShaperDigits.
isValid())
1005 int iLayer = digitIn.getSensorID().getLayerNumber();
1006 if ((iLayer < firstSVDLayer) || (iLayer > lastSVDLayer))
continue;
1007 int iLadder = digitIn.getSensorID().getLadderNumber();
1008 int iSensor = digitIn.getSensorID().getSensorNumber();
1009 VxdID sensorID(iLayer, iLadder, iSensor);
1010 int index = gTools->getSVDSensorIndex(sensorID);
1012 if (digitIn.isUStrip()) {
1015 if (nSamples == 3) {
1024 if (nSamples == 3) {
1033 vector< set<int> > countsU(nSVDSensors);
1034 vector< set<int> > countsV(nSVDSensors);
1036 for (
const SVDCluster& cluster : storeSVDClusters) {
1038 int iLayer = cluster.getSensorID().getLayerNumber();
1039 if ((iLayer < firstSVDLayer) || (iLayer > lastSVDLayer))
continue;
1040 int iLadder = cluster.getSensorID().getLadderNumber();
1041 int iSensor = cluster.getSensorID().getSensorNumber();
1042 VxdID sensorID(iLayer, iLadder, iSensor);
1043 int index = gTools->getSVDSensorIndex(sensorID);
1046 float time = cluster.getClsTime();
1048 time = time -
m_svdEventInfo->getSVD2FTSWTimeShift(cluster.getFirstFrame());
1050 vector<int> vec = cluster.getTimeGroupId();
1051 auto minElement = min_element(vec.begin(), vec.end());
1053 if (vec.size() > 0) {
1054 groupId = *minElement;
1056 if (cluster.isUCluster()) {
1060 if (trgQuality == 1)
1062 if (trgQuality == 2)
1070 if (trgQuality == 1)
1072 if (trgQuality == 2)
1078 if (cluster.isUCluster()) {
1079 countsU.at(index).insert(SensorInfo.
getUCellID(cluster.getPosition()));
1080 int indexChip = gTools->getSVDChipIndex(sensorID, kTRUE,
1081 (
int)(SensorInfo.
getUCellID(cluster.getPosition()) / gTools->getSVDChannelsPerChip()) + 1);
1096 if (nSamples == 3) {
1107 if (nSamples == 3) {
1125 countsV.at(index).insert(SensorInfo.
getVCellID(cluster.getPosition()));
1126 int indexChip = gTools->getSVDChipIndex(sensorID, kFALSE,
1127 (
int)(SensorInfo.
getVCellID(cluster.getPosition()) / gTools->getSVDChannelsPerChip()) + 1);
1142 if (nSamples == 3) {
1153 if (nSamples == 3) {
1172 for (
int i = 0; i < nSVDSensors; i++) {
1173 if ((
m_clustersU[i] !=
nullptr) && (countsU[i].size() > 0))
1175 if ((
m_clustersV[i] !=
nullptr) && (countsV[i].size() > 0))