154 std::set<Belle2::VxdID>::iterator itPxdLayers = pxdLayers.begin();
156 while (itPxdLayers != pxdLayers.end()) {
158 std::set<Belle2::VxdID> pxdLadders =
m_aGeometry.getLadders(*itPxdLayers);
159 std::set<Belle2::VxdID>::iterator itPxdLadders = pxdLadders.begin();
161 while (itPxdLadders != pxdLadders.end()) {
163 std::set<Belle2::VxdID> pxdSensors =
m_aGeometry.getSensors(*itPxdLadders);
164 std::set<Belle2::VxdID>::iterator itPxdSensors = pxdSensors.begin();
166 while (itPxdSensors != pxdSensors.end()) {
172 const int nPixelsU = wSensorInfo.
getUCells();
173 const int nPixelsV = wSensorInfo.
getVCells();
174 std::string sensorid = std::to_string(itPxdSensors->getLayerNumber()) +
"_" + std::to_string(
175 itPxdSensors->getLadderNumber()) +
"_" +
176 std::to_string(itPxdSensors->getSensorNumber());
182 name =
"hNROIs_" + sensorid;
183 title =
"number of m_roiIDs for sensor " + sensorid;
186 new TH1F(name.c_str(), title.c_str(), 25, 0, 25),
187 [](
const ROIid*,
double & val) {val++;},
188 [](TH1 * hPtr,
double & val) { hPtr->Fill(val); },
200 name =
"hCoorU_" + sensorid;
201 title =
"U coordinate of the extrapolation in U for sensor " + sensorid;
206 new TH1F(name.c_str(), title.c_str(), 100, -5, 5),
207 [](TH1 * hPtr,
const PXDIntercept * inter) { hPtr->Fill(inter->getCoorU()); }
212 name =
"hCoorV_" + sensorid;
213 title =
"V coordinate of the extrapolation in V for sensor " + sensorid;
218 new TH1F(name.c_str(), title.c_str(), 100, -5, 5),
219 [](TH1 * hPtr,
const PXDIntercept * inter) { hPtr->Fill(inter->getCoorV()); }
225 name =
"hCoorU_vs_CoorV_" + sensorid;
226 title =
"U vs V intercept (cm) " + sensorid;
227 tmp2D =
new TH2F(name.c_str(), title.c_str(), 100, -5, 5, 100, -5, 5);
228 tmp2D->GetXaxis()->SetTitle(
"intercept U coor (cm)");
229 tmp2D->GetYaxis()->SetTitle(
"intercept V coor (cm)");
242 name =
"hStatErrU_" + sensorid;
243 title =
"stat error of the extrapolation in U for sensor " + sensorid;
248 new TH1F(name.c_str(), title.c_str(), 100, 0, 0.35),
249 [](TH1 * hPtr,
const PXDIntercept * inter) { hPtr->Fill(inter->getSigmaU()); }
253 name =
"hStatErrV_" + sensorid;
254 title =
"stat error of the extrapolation in V for sensor " + sensorid;
259 new TH1F(name.c_str(), title.c_str(), 100, 0, 0.35),
260 [](TH1 * hPtr,
const PXDIntercept * inter) { hPtr->Fill(inter->getSigmaV()); }
266 name =
"hResidU_" + sensorid;
267 title =
"U residuals = intercept - digit, for sensor " + sensorid;
268 tmp1D =
new TH1F(name.c_str(), title.c_str(), 1000, -5, 5);
276 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
285 name =
"hResidV_" + sensorid;
286 title =
"V residuals = intercept - digit, for sensor " + sensorid;
287 tmp1D =
new TH1F(name.c_str(), title.c_str(), 1000, -5, 5);
295 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
304 name =
"hResidV_vs_ResidU_" + sensorid;
305 title =
"V vs U residuals = intercept - digit, for sensor " + sensorid;
306 tmp2D =
new TH2F(name.c_str(), title.c_str(), 1000, -5, 5, 1000, -5, 5);
307 tmp2D->GetXaxis()->SetTitle(
"U resid (cm)");
308 tmp2D->GetYaxis()->SetTitle(
"V resid (cm)");
316 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
320 hPtr->Fill(residU, residV);
327 name =
"hResidVm_vs_ResidU_" + sensorid;
328 title =
"V vs U residuals = intercept - digit, for sensor " + sensorid;
329 tmp2D =
new TH2F(name.c_str(), title.c_str(), 1000, -5, 5, 1000, -5, 5);
330 tmp2D->GetXaxis()->SetTitle(
"U resid (cm)");
331 tmp2D->GetYaxis()->SetTitle(
"V* resid (cm)");
339 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
343 hPtr->Fill(residU, residV);
350 name =
"hResidV_vs_ResidUm_" + sensorid;
351 title =
"V vs U residuals = intercept - digit, for sensor " + sensorid;
352 tmp2D =
new TH2F(name.c_str(), title.c_str(), 1000, -5, 5, 1000, -5, 5);
353 tmp2D->GetXaxis()->SetTitle(
"U* resid (cm)");
354 tmp2D->GetYaxis()->SetTitle(
"V resid (cm)");
362 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
366 hPtr->Fill(residU, residV);
373 name =
"hResidVm_vs_ResidUm_" + sensorid;
374 title =
"V vs U residuals = intercept - digit, for sensor " + sensorid;
375 tmp2D =
new TH2F(name.c_str(), title.c_str(), 1000, -5, 5, 1000, -5, 5);
376 tmp2D->GetXaxis()->SetTitle(
"U* resid (cm)");
377 tmp2D->GetYaxis()->SetTitle(
"V* resid (cm)");
385 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
389 hPtr->Fill(residU, residV);
397 name =
"hResidU_vs_CoorU_" + sensorid;
398 title =
"U residual (cm) vs coor U (cm) " + sensorid;
399 tmp2D =
new TH2F(name.c_str(), title.c_str(), 1000, -5, 5, 1000, -5, 5);
400 tmp2D->GetYaxis()->SetTitle(
"U resid (cm)");
401 tmp2D->GetXaxis()->SetTitle(
"U coor (cm)");
409 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
412 hPtr->Fill(inter->
getCoorU(), resid);
419 name =
"hResidV_vs_CoorV_" + sensorid;
420 title =
"V residual (cm) vs coor V (cm) " + sensorid;
421 tmp2D =
new TH2F(name.c_str(), title.c_str(), 1000, -5, 5, 1000, -5, 5);
422 tmp2D->GetYaxis()->SetTitle(
"V resid (cm)");
423 tmp2D->GetXaxis()->SetTitle(
"V coor (cm)");
431 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
434 hPtr->Fill(inter->
getCoorV(), resid);
442 name =
"hResidU_vs_CoorV_" + sensorid;
443 title =
"U residual (cm) vs coor V (cm) " + sensorid;
444 tmp2D =
new TH2F(name.c_str(), title.c_str(), 1000, -5, 5, 1000, -5, 5);
445 tmp2D->GetYaxis()->SetTitle(
"U resid (cm)");
446 tmp2D->GetXaxis()->SetTitle(
"V coor (cm)");
454 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
457 hPtr->Fill(inter->
getCoorV(), resid);
464 name =
"hResidV_vs_CoorU_" + sensorid;
465 title =
"V residual (cm) vs coor U (cm) " + sensorid;
466 tmp2D =
new TH2F(name.c_str(), title.c_str(), 1000, -5, 5, 1000, -5, 5);
467 tmp2D->GetYaxis()->SetTitle(
"V resid (cm)");
468 tmp2D->GetXaxis()->SetTitle(
"U coor (cm)");
476 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
479 hPtr->Fill(inter->
getCoorU(), resid);
489 name =
"hResidU_vs_charge_" + sensorid;
490 title =
"U residual (cm) vs charge " + sensorid;
491 tmp2D =
new TH2F(name.c_str(), title.c_str(), 250, 0, 250, 100, -5, 5);
492 tmp2D->GetYaxis()->SetTitle(
"U resid (cm)");
493 tmp2D->GetXaxis()->SetTitle(
"charge");
501 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
504 hPtr->Fill(it.getCharge(), resid);
511 name =
"hResidV_vs_charge_" + sensorid;
512 title =
"V residual (cm) vs charge " + sensorid;
513 tmp2D =
new TH2F(name.c_str(), title.c_str(), 250, 0, 250, 100, -5, 5);
514 tmp2D->GetYaxis()->SetTitle(
"V resid (cm)");
515 tmp2D->GetXaxis()->SetTitle(
"charge");
523 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
526 hPtr->Fill(it.getCharge(), resid);
535 name =
"hCoorU_vs_UDigit_" + sensorid;
536 title =
"U intercept (cm) vs U Digit (ID) " + sensorid;
537 tmp2D =
new TH2F(name.c_str(), title.c_str(), 1000, -5, 5, 1000, -5, 5);
538 tmp2D->GetXaxis()->SetTitle(
"intercept U coor (cm)");
539 tmp2D->GetYaxis()->SetTitle(
"digit U coor (cm)");
547 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
557 name =
"hCoorV_vs_VDigit_" + sensorid;
558 title =
"V intercept (cm) vs V Digit (ID) " + sensorid;
559 tmp2D =
new TH2F(name.c_str(), title.c_str(), 1000, -5, 5, 1000, -5, 5);
560 tmp2D->GetXaxis()->SetTitle(
"intercept V coor (cm)");
561 tmp2D->GetYaxis()->SetTitle(
"digi V coor (cm)");
569 if ((
int)it.getSensorID() == (
int)inter->
getSensorID()) {
586 name =
"hminU_" + sensorid;
587 title =
"ROI min in U for sensor " + sensorid;
592 new TH1F(name.c_str(), title.c_str(), nPixelsU, 0, nPixelsU),
593 [](TH1 * hPtr,
const ROIid * roi) { hPtr->Fill(roi->getMinUid()); }
597 name =
"hminV_" + sensorid;
598 title =
"ROI min in V for sensor " + sensorid;
603 new TH1F(name.c_str(), title.c_str(), nPixelsV, 0, nPixelsV),
604 [](TH1 * hPtr,
const ROIid * roi) { hPtr->Fill(roi->getMinVid()); }
610 name =
"hmaxU_" + sensorid;
611 title =
"ROI max in U for sensor " + sensorid;
616 new TH1F(name.c_str(), title.c_str(), nPixelsU, 0, nPixelsU),
617 [](TH1 * hPtr,
const ROIid * roi) { hPtr->Fill(roi->getMaxUid()); }
621 name =
"hmaxV_" + sensorid;
622 title =
"ROI max in V for sensor " + sensorid;
627 new TH1F(name.c_str(), title.c_str(), nPixelsV, 0, nPixelsV),
628 [](TH1 * hPtr,
const ROIid * roi) { hPtr->Fill(roi->getMaxVid()); }
635 name =
"hwidthU_" + sensorid;
636 title =
"ROI width in U for sensor " + sensorid;
641 new TH1F(name.c_str(), title.c_str(), nPixelsU, 0, nPixelsU),
642 [](TH1 * hPtr,
const ROIid * roi) { hPtr->Fill(roi->getMaxUid() - roi->getMinUid()); }
646 name =
"hwidthV_" + sensorid;
647 title =
"ROI width in V for sensor " + sensorid;
652 new TH1F(name.c_str(), title.c_str(), nPixelsV, 0, nPixelsV),
653 [](TH1 * hPtr,
const ROIid * roi) { hPtr->Fill(roi->getMaxVid() - roi->getMinVid()); }
659 name =
"hROIcenter_" + sensorid;
660 title =
"ROI center " + sensorid;
661 tmp2D =
new TH2F(name.c_str(), title.c_str(), nPixelsU, 0, nPixelsU, nPixelsV, 0, nPixelsV);
662 tmp2D->GetXaxis()->SetTitle(
" U (ID)");
663 tmp2D->GetYaxis()->SetTitle(
" V (ID)");
669 [](TH1 * hPtr,
const ROIid * roi) { hPtr->Fill((roi->getMaxUid() + roi->getMinUid()) / 2, (roi->getMaxVid() + roi->getMinVid()) / 2); }