Skip to content
Snippets Groups Projects

Online qa manager

Merged Sergei Zharko requested to merge s.zharko/cbmroot:online-qa-manager into master

Files

+ 20
23
/* Copyright (C) 2023-2024 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
/* Copyright (C) 2023-2025 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
SPDX-License-Identifier: GPL-3.0-only
Authors: Sergei Zharko [committer] */
@@ -61,7 +61,7 @@ void Qa::Init()
using cbm::algo::qa::Prof2D;
using fmt::format;
if (!fpSender.get()) {
if (!IsActive()) {
return;
}
@@ -122,26 +122,26 @@ void Qa::Init()
auto titl = format("{} hit occupancy in XY plane for station {} ({}{});x [cm];y [cm]", setTl, iSt,
kDetName[detID], iStLoc);
fvphHitOccupXY[iSt][hitSet] =
fQaData.MakeObj<H2D>(name, titl, nBinsXY, vMinX[iSt], vMaxX[iSt], nBinsXY, vMinY[iSt], vMaxY[iSt]);
MakeObj<H2D>(name, titl, nBinsXY, vMinX[iSt], vMaxX[iSt], nBinsXY, vMinY[iSt], vMaxY[iSt]);
}
{
auto name = format("hit_{}_occup_zx_sta_{}", setNm, iSt);
auto titl = format("{} hit occupancy in ZX plane for station {} ({}{});z [cm];x [cm]", setTl, iSt,
kDetName[detID], iStLoc);
fvphHitOccupZX[iSt][hitSet] = fQaData.MakeObj<H2D>(name, titl, nBinsZ, zMinA, zMaxA, nBinsXY, xMinA, xMaxA);
fvphHitOccupZX[iSt][hitSet] = MakeObj<H2D>(name, titl, nBinsZ, zMinA, zMaxA, nBinsXY, xMinA, xMaxA);
}
if (kDebug) {
auto name = format("hit_{}_occup_zy_sta_{}", setNm, iSt);
auto titl = format("{} hit occupancy in ZY plane for station {} ({}{});z [cm];y [cm]", setTl, iSt,
kDetName[detID], iStLoc);
fvphHitOccupZY[iSt][hitSet] = fQaData.MakeObj<H2D>(name, titl, nBinsZ, zMinA, zMaxA, nBinsXY, yMinA, yMaxA);
fvphHitOccupZY[iSt][hitSet] = MakeObj<H2D>(name, titl, nBinsZ, zMinA, zMaxA, nBinsXY, yMinA, yMaxA);
}
}
if (kDebug) {
auto name = format("hit_usage_xy_sta_{}", iSt);
auto titl = format("Hit usage in XY plane for station {} ({}{});x [cm];y [cm]", iSt, kDetName[detID], iStLoc);
fvphHitUsageXY[iSt] =
fQaData.MakeObj<Prof2D>(name, titl, nBinsXY, vMinX[iSt], vMaxX[iSt], nBinsXY, vMinY[iSt], vMaxY[iSt], 0., 1.);
MakeObj<Prof2D>(name, titl, nBinsXY, vMinX[iSt], vMaxX[iSt], nBinsXY, vMinY[iSt], vMaxY[iSt], 0., 1.);
}
}
if (kDebug) {
@@ -152,12 +152,12 @@ void Qa::Init()
{
auto name = format("hit_{}_front_key_index", setNm);
auto titl = format("{} hit front key index;ID_{{key}}/N_{{keys}};Count", setTl);
fvphHitFrontKeyIndex[hitSet] = fQaData.MakeObj<H1D>(name, titl, NBins, 0., 1.);
fvphHitFrontKeyIndex[hitSet] = MakeObj<H1D>(name, titl, NBins, 0., 1.);
}
{
auto name = format("hit_{}_back_key_index", setNm);
auto titl = format("{} hit back key index;ID_{{key}}/N_{{keys}};Count", setTl);
fvphHitBackKeyIndex[hitSet] = fQaData.MakeObj<H1D>(name, titl, NBins, 0., 1.);
fvphHitBackKeyIndex[hitSet] = MakeObj<H1D>(name, titl, NBins, 0., 1.);
}
}
}
@@ -173,7 +173,7 @@ void Qa::Init()
auto setTl = EHitSet::Input == hitSet ? "Input" : "Used";
auto name = format("hit_{}_rel_time{}", setNm, staNm);
auto titl = format("{} hit relative time{}; #delta t_{{hit}};Count", setTl, staTl);
fvphHitTime[iSt][hitSet] = fQaData.MakeObj<H1D>(name, titl, 10000, -0.1, 1.1);
fvphHitTime[iSt][hitSet] = MakeObj<H1D>(name, titl, 10000, -0.1, 1.1);
}
}
}
@@ -189,22 +189,22 @@ void Qa::Init()
{
auto sName = format("track_{}_theta", vsPointName[i]);
auto sTitl = format("#theta at {} hit; #theta", vsPointName[i]);
fvphTrkTheta[i] = fQaData.MakeObj<H1D>(sName, sTitl, 62, 0., 90.);
fvphTrkTheta[i] = MakeObj<H1D>(sName, sTitl, 62, 0., 90.);
}
{
auto sName = format("track_{}_phi", vsPointName[i]);
auto sTitl = format("#phi at {} hit; #phi", vsPointName[i]);
fvphTrkPhi[i] = fQaData.MakeObj<H1D>(sName, sTitl, 62, -180., 180.);
fvphTrkPhi[i] = MakeObj<H1D>(sName, sTitl, 62, -180., 180.);
}
{
auto sName = format("track_{}_thata_phi", vsPointName[i]);
auto sTitl = format("#theta vs #phi at {} hit; #phi; #theta", vsPointName[i]);
fvphTrkPhiTheta[i] = fQaData.MakeObj<H2D>(sName, sTitl, 62, -180., 180., 62, 0., 90.);
fvphTrkPhiTheta[i] = MakeObj<H2D>(sName, sTitl, 62, -180., 180., 62, 0., 90.);
}
{
auto sName = format("track_{}_chi2_ndf", vsPointName[i]);
auto sTitl = format("#chi^{{2}}/NDF at {} hit; #chi^{{2}}/NDF", vsPointName[i]);
fvphTrkChi2Ndf[i] = fQaData.MakeObj<H1D>(sName, sTitl, 100, 0., 20.);
fvphTrkChi2Ndf[i] = MakeObj<H1D>(sName, sTitl, 100, 0., 20.);
}
}
{
@@ -214,9 +214,9 @@ void Qa::Init()
{
auto sName = "track_fst_lst_sta";
auto sTitl = "First vs. last station index;ID^{last}_{station};ID^{first}_{station}";
fphTrkFstLstSta = fQaData.MakeObj<H2D>(sName, sTitl, nBins, xMin, xMax, nBins, xMin, xMax);
fphTrkFstLstSta = MakeObj<H2D>(sName, sTitl, nBins, xMin, xMax, nBins, xMin, xMax);
}
fphTrkNofHits = fQaData.MakeObj<H1D>("n_hits", "Number of hits;N_{hit}", nBins, xMin, xMax);
fphTrkNofHits = MakeObj<H1D>("n_hits", "Number of hits;N_{hit}", nBins, xMin, xMax);
}
// ---- Init canvases
@@ -235,7 +235,7 @@ void Qa::Init()
pad.RegisterHistogram(fvphHitOccupXY[iSt][hitSet], "colz");
canv.AddPadConfig(pad);
}
fQaData.AddCanvasConfig(canv);
AddCanvasConfig(canv);
}
{ // ZX and ZY
auto name = format("ca_hit_{}_occupancy_zx_zy", setNm);
@@ -255,7 +255,7 @@ void Qa::Init()
}
canv.AddPadConfig(pad);
}
fQaData.AddCanvasConfig(canv);
AddCanvasConfig(canv);
}
}
if (kDebug) {
@@ -267,7 +267,7 @@ void Qa::Init()
pad.RegisterHistogram(fvphHitUsageXY[iSt], "colz");
canv.AddPadConfig(pad);
}
fQaData.AddCanvasConfig(canv);
AddCanvasConfig(canv);
}
}
@@ -294,9 +294,8 @@ void Qa::Init()
pad.RegisterHistogram(fphTrkFstLstSta, "colz");
canv.AddPadConfig(pad);
}
fQaData.AddCanvasConfig(canv);
AddCanvasConfig(canv);
}
fQaData.Init(fpSender);
}
}
@@ -304,7 +303,7 @@ void Qa::Init()
//
void Qa::Exec()
{
if (!fpSender.get()) {
if (!IsActive()) {
return;
}
@@ -375,8 +374,6 @@ void Qa::Exec()
trkFirstHit += nHits;
}
}
fQaData.Send(fpSender);
}
// ---------------------------------------------------------------------------------------------------------------------
Loading