Skip to content

Commit 05473cc

Browse files
committed
GPU QA: Get rid of several sprintf
1 parent e302303 commit 05473cc

File tree

1 file changed

+39
-71
lines changed

1 file changed

+39
-71
lines changed

GPU/GPUTracking/qa/GPUQA.cxx

Lines changed: 39 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -2118,10 +2118,8 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
21182118
// Create Canvas / Pads for Efficiency Histograms
21192119
if (mQATasks & taskTrackingEff) {
21202120
for (int32_t ii = 0; ii < 6; ii++) {
2121-
int32_t i = ii == 5 ? 4 : ii;
2122-
snprintf(fname, 1024, "eff_vs_%s_layout", VSPARAMETER_NAMES[ii]);
2123-
snprintf(name, 2048, "Efficiency versus %s", VSPARAMETER_NAMES[i]);
2124-
mCEff[ii] = createGarbageCollected<TCanvas>(fname, name, 0, 0, 700, 700. * 2. / 3.);
2121+
snprintf(name, 1024, "eff_vs_%s_layout", VSPARAMETER_NAMES[ii]);
2122+
mCEff[ii] = createGarbageCollected<TCanvas>(name, name, 0, 0, 700, 700. * 2. / 3.);
21252123
mCEff[ii]->cd();
21262124
float dy = 1. / 2.;
21272125
mPEff[ii][0] = createGarbageCollected<TPad>("p0", "", 0.0, dy * 0, 0.5, dy * 1);
@@ -2144,15 +2142,12 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
21442142
// Create Canvas / Pads for Resolution Histograms
21452143
if (mQATasks & taskTrackingRes) {
21462144
for (int32_t ii = 0; ii < 7; ii++) {
2147-
int32_t i = ii == 5 ? 4 : ii;
21482145
if (ii == 6) {
2149-
snprintf(fname, 1024, "res_integral_layout");
2150-
snprintf(name, 2048, "Integral Resolution");
2146+
snprintf(name, 1024, "res_integral_layout");
21512147
} else {
2152-
snprintf(fname, 1024, "res_vs_%s_layout", VSPARAMETER_NAMES[ii]);
2153-
snprintf(name, 2048, "Resolution versus %s", VSPARAMETER_NAMES[i]);
2148+
snprintf(name, 1024, "res_vs_%s_layout", VSPARAMETER_NAMES[ii]);
21542149
}
2155-
mCRes[ii] = createGarbageCollected<TCanvas>(fname, name, 0, 0, 700, 700. * 2. / 3.);
2150+
mCRes[ii] = createGarbageCollected<TCanvas>(name, name, 0, 0, 700, 700. * 2. / 3.);
21562151
mCRes[ii]->cd();
21572152
gStyle->SetOptFit(1);
21582153

@@ -2185,16 +2180,12 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
21852180
// Create Canvas / Pads for Pull Histograms
21862181
if (mQATasks & taskTrackingResPull) {
21872182
for (int32_t ii = 0; ii < 7; ii++) {
2188-
int32_t i = ii == 5 ? 4 : ii;
2189-
21902183
if (ii == 6) {
2191-
snprintf(fname, 1024, "pull_integral_layout");
2192-
snprintf(name, 2048, "Integral Pull");
2184+
snprintf(name, 1024, "pull_integral_layout");
21932185
} else {
2194-
snprintf(fname, 1024, "pull_vs_%s_layout", VSPARAMETER_NAMES[ii]);
2195-
snprintf(name, 2048, "Pull versus %s", VSPARAMETER_NAMES[i]);
2186+
snprintf(name, 1024, "pull_vs_%s_layout", VSPARAMETER_NAMES[ii]);
21962187
}
2197-
mCPull[ii] = createGarbageCollected<TCanvas>(fname, name, 0, 0, 700, 700. * 2. / 3.);
2188+
mCPull[ii] = createGarbageCollected<TCanvas>(name, name, 0, 0, 700, 700. * 2. / 3.);
21982189
mCPull[ii]->cd();
21992190
gStyle->SetOptFit(1);
22002191

@@ -2227,8 +2218,8 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
22272218
// Create Canvas for Cluster Histos
22282219
if (mQATasks & taskClusterAttach) {
22292220
for (int32_t i = 0; i < 3; i++) {
2230-
snprintf(fname, 1024, "clusters_%s_layout", CLUSTER_TYPES[i]);
2231-
mCClust[i] = createGarbageCollected<TCanvas>(fname, CLUSTER_TITLES[i], 0, 0, 700, 700. * 2. / 3.);
2221+
snprintf(name, 1024, "clusters_%s_layout", CLUSTER_TYPES[i]);
2222+
mCClust[i] = createGarbageCollected<TCanvas>(name, name, 0, 0, 700, 700. * 2. / 3.);
22322223
mCClust[i]->cd();
22332224
mPClust[i] = createGarbageCollected<TPad>("p0", "", 0.0, 0.0, 1.0, 1.0);
22342225
mPClust[i]->Draw();
@@ -2240,7 +2231,7 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
22402231

22412232
// Create Canvas for track statistic histos
22422233
if (mQATasks & taskTrackStatistics) {
2243-
mCTracks = createGarbageCollected<TCanvas>("ctrackspt", "Track Pt", 0, 0, 700, 700. * 2. / 3.);
2234+
mCTracks = createGarbageCollected<TCanvas>("ctrackspt", "ctrackspt", 0, 0, 700, 700. * 2. / 3.);
22442235
mCTracks->cd();
22452236
mPTracks = createGarbageCollected<TPad>("p0", "", 0.0, 0.0, 1.0, 1.0);
22462237
mPTracks->Draw();
@@ -2249,42 +2240,42 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
22492240

22502241
for (int32_t i = 0; i < 2; i++) {
22512242
snprintf(name, 2048, "ctrackst0%d", i);
2252-
mCT0[i] = createGarbageCollected<TCanvas>(name, "Track T0", 0, 0, 700, 700. * 2. / 3.);
2243+
mCT0[i] = createGarbageCollected<TCanvas>(name, name, 0, 0, 700, 700. * 2. / 3.);
22532244
mCT0[i]->cd();
22542245
mPT0[i] = createGarbageCollected<TPad>("p0", "", 0.0, 0.0, 1.0, 1.0);
22552246
mPT0[i]->Draw();
22562247
mLT0[i] = createGarbageCollected<TLegend>(0.9 - legendSpacingString * 1.45, 0.93 - (0.93 - 0.86) / 2. * (float)ConfigNumInputs, 0.98, 0.949);
22572248
SetLegend(mLT0[i]);
22582249

22592250
snprintf(name, 2048, "cncl%d", i);
2260-
mCNCl[i] = createGarbageCollected<TCanvas>(name, i ? "Number of clusters (corrected for multiple per row)" : "Number of clusters per track", 0, 0, 700, 700. * 2. / 3.);
2251+
mCNCl[i] = createGarbageCollected<TCanvas>(name, name, 0, 0, 700, 700. * 2. / 3.);
22612252
mCNCl[i]->cd();
22622253
mPNCl[i] = createGarbageCollected<TPad>("p0", "", 0.0, 0.0, 1.0, 1.0);
22632254
mPNCl[i]->Draw();
22642255
mLNCl[i] = createGarbageCollected<TLegend>(0.9 - legendSpacingString * 1.45, 0.93 - (0.93 - 0.86) / 2. * (float)ConfigNumInputs, 0.98, 0.949); // TODO: Fix sizing of legend, and also fix font size
22652256
SetLegend(mLNCl[i], true);
22662257
}
22672258

2268-
mCClXY = createGarbageCollected<TCanvas>("clxy", "Number of clusters per X / Y", 0, 0, 700, 700. * 2. / 3.);
2259+
mCClXY = createGarbageCollected<TCanvas>("clxy", "clxy", 0, 0, 700, 700. * 2. / 3.);
22692260
mCClXY->cd();
22702261
mPClXY = createGarbageCollected<TPad>("p0", "", 0.0, 0.0, 1.0, 1.0);
22712262
mPClXY->Draw();
22722263

22732264
for (int32_t i = 0; i < 3; i++) {
22742265
snprintf(name, 2048, "cnclrej%d", i);
2275-
mCClRej[i] = createGarbageCollected<TCanvas>(name, i == 0 ? "Number of clusters" : (i == 1 ? "Rejected Clusters" : "Fraction of Rejected Clusters"), 0, 0, 700, 700. * 2. / 3.);
2266+
mCClRej[i] = createGarbageCollected<TCanvas>(name, name, 0, 0, 700, 700. * 2. / 3.);
22762267
mCClRej[i]->cd();
22772268
mPClRej[i] = createGarbageCollected<TPad>("p0", "", 0.0, 0.0, 1.0, 1.0);
22782269
mPClRej[i]->Draw();
22792270
}
2280-
mCClRejP = createGarbageCollected<TCanvas>("cnclrejp", "Fraction of Rejected Clusters", 0, 0, 700, 700. * 2. / 3.);
2271+
mCClRejP = createGarbageCollected<TCanvas>("cnclrejp", "cnclrejp", 0, 0, 700, 700. * 2. / 3.);
22812272
mCClRejP->cd();
22822273
mPClRejP = createGarbageCollected<TPad>("p0", "", 0.0, 0.0, 1.0, 1.0);
22832274
mPClRejP->Draw();
22842275

22852276
for (int32_t i = 0; i < 3; i++) {
22862277
snprintf(name, 2048, "cpadrow%d", i);
2287-
mCPadRow[i] = createGarbageCollected<TCanvas>(name, "First Track Pad Row", 0, 0, 700, 700. * 2. / 3.);
2278+
mCPadRow[i] = createGarbageCollected<TCanvas>(name, name, 0, 0, 700, 700. * 2. / 3.);
22882279
mCPadRow[i]->cd();
22892280
mPPadRow[i] = createGarbageCollected<TPad>("p0", "", 0.0, 0.0, 1.0, 1.0);
22902281
mPPadRow[i]->Draw();
@@ -2370,8 +2361,7 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
23702361
e->Draw(k || l ? "same P" : "AP");
23712362
if (j == 0) {
23722363
GetName(fname, k);
2373-
snprintf(name, 2048, "%s%s", fname, EFF_NAMES[l]);
2374-
mLEff[ii]->AddEntry(e, name, "l");
2364+
mLEff[ii]->AddEntry(e, Form("%s%s", fname, EFF_NAMES[l]), "l");
23752365
}
23762366
}
23772367
if (!mConfig.enableLocalOutput && !mConfig.shipToQCAsCanvas) {
@@ -2503,10 +2493,8 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
25032493
if (mConfig.inputHistogramsOnly) {
25042494
dstIntegral = createGarbageCollected<TH1D>();
25052495
}
2506-
snprintf(fname, 1024, p ? "IntPull%s" : "IntRes%s", VSPARAMETER_NAMES[j]);
2507-
snprintf(name, 2048, p ? "%s Pull" : "%s Resolution", p || mConfig.nativeFitResolutions ? PARAMETER_NAMES_NATIVE[j] : PARAMETER_NAMES[j]);
2508-
dstIntegral->SetName(fname);
2509-
dstIntegral->SetTitle(name);
2496+
dstIntegral->SetName(Form(p ? "IntPull%s" : "IntRes%s", VSPARAMETER_NAMES[j]));
2497+
dstIntegral->SetTitle(Form(p ? "%s Pull" : "%s Resolution", p || mConfig.nativeFitResolutions ? PARAMETER_NAMES_NATIVE[j] : PARAMETER_NAMES[j]));
25102498
}
25112499
if (mConfig.enableLocalOutput || mConfig.shipToQCAsCanvas) {
25122500
pad->cd();
@@ -2557,8 +2545,7 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
25572545
for (int32_t l = 0; l < 2; l++) {
25582546
TH1F* e = dst[l];
25592547
if (!mConfig.inputHistogramsOnly && k == 0) {
2560-
snprintf(name, 2048, p ? "%s Pull" : "%s Resolution", p || mConfig.nativeFitResolutions ? PARAMETER_NAMES_NATIVE[j] : PARAMETER_NAMES[j]);
2561-
e->SetTitle(name);
2548+
e->SetTitle(Form(p ? "%s Pull" : "%s Resolution", p || mConfig.nativeFitResolutions ? PARAMETER_NAMES_NATIVE[j] : PARAMETER_NAMES[j]));
25622549
e->SetStats(kFALSE);
25632550
if (tout) {
25642551
if (l == 0) {
@@ -2598,12 +2585,7 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
25982585
e->Draw(k || l ? "same" : "");
25992586
if (j == 0) {
26002587
GetName(fname, k);
2601-
if (p) {
2602-
snprintf(name, 2048, "%s%s", fname, l ? "Mean" : "Pull");
2603-
} else {
2604-
snprintf(name, 2048, "%s%s", fname, l ? "Mean" : "Resolution");
2605-
}
2606-
leg->AddEntry(e, name, "l");
2588+
leg->AddEntry(e, Form("%s%s", fname, l ? "Mean" : (p ? "Pull" : "Resolution")), "l");
26072589
}
26082590
}
26092591
}
@@ -2823,8 +2805,7 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
28232805
e->SetLineColor(colorNums[numColor++ % COLORCOUNT]);
28242806
e->Draw(j == end - 1 && k == 0 ? "" : "same");
28252807
GetName(fname, k);
2826-
snprintf(name, 2048, "%s%s", fname, CLUSTER_NAMES[j - begin]);
2827-
mLClust[i]->AddEntry(e, name, "l");
2808+
mLClust[i]->AddEntry(e, Form("%s%s", fname, CLUSTER_NAMES[j - begin]), "l");
28282809
}
28292810
}
28302811
if (ConfigNumInputs == 1) {
@@ -2868,17 +2849,15 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
28682849
}
28692850
mPPadRow[i]->cd();
28702851
e->SetOption("colz");
2871-
e->SetTitle(i == 2 ? "First Track Pad Row (row_{MC} = 0, row_{trk} #ne 0)" : "First Track Pad Row");
2872-
e->GetXaxis()->SetTitle(i ? "Phi (sector)" : "First MC Pad Row");
2852+
e->SetTitle(i == 2 ? "First Track Pad Row (row_{MC} = 0, row_{trk} > 0)" : "First Track Pad Row");
2853+
e->GetXaxis()->SetTitle(i ? "#Phi (sector)" : "First MC Pad Row");
28732854
e->GetYaxis()->SetTitle("First Pad Row");
28742855
e->Draw();
28752856
mCPadRow[i]->cd();
28762857
static const constexpr char* PADROW_NAMES[3] = {"MC", "Phi", "Phi1"};
2877-
snprintf(name, 2048, "%s/padRow%s.pdf", mConfig.plotsDir.c_str(), PADROW_NAMES[i]);
2878-
mCPadRow[i]->Print(name);
2858+
mCPadRow[i]->Print(Form("%s/padRow%s.pdf", mConfig.plotsDir.c_str(), PADROW_NAMES[i]));
28792859
if (mConfig.writeFileExt != "") {
2880-
snprintf(name, 2048, "%s/padRow%s.%s", mConfig.plotsDir.c_str(), PADROW_NAMES[i], mConfig.writeFileExt.c_str());
2881-
mCPadRow[i]->Print(name);
2860+
mCPadRow[i]->Print(Form("%s/padRow%s.%s", mConfig.plotsDir.c_str(), PADROW_NAMES[i], mConfig.writeFileExt.c_str()));
28822861
}
28832862
}
28842863
}
@@ -2935,8 +2914,7 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
29352914
e->SetLineColor(colorNums[k % COLORCOUNT]);
29362915
e->Draw(k == 0 ? "" : "same");
29372916
GetName(fname, k, mConfig.inputHistogramsOnly);
2938-
snprintf(name, 2048, mConfig.inputHistogramsOnly ? "%s" : "%sTrack #it{p}_{T}", fname);
2939-
mLTracks->AddEntry(e, name, "l");
2917+
mLTracks->AddEntry(e, Form(mConfig.inputHistogramsOnly ? "%s" : "%sTrack #it{p}_{T}", fname), "l");
29402918
}
29412919
mLTracks->Draw();
29422920
doPerfFigure(0.63, 0.7, 0.030);
@@ -2981,17 +2959,14 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
29812959
e->SetLineColor(colorNums[k % COLORCOUNT]);
29822960
e->Draw(k == 0 ? "" : "same");
29832961
GetName(fname, k, mConfig.inputHistogramsOnly);
2984-
snprintf(name, 2048, mConfig.inputHistogramsOnly ? "%s (%s)" : "%sTrack t_{0} %s", fname, i ? "" : "resolution");
2985-
mLT0[i]->AddEntry(e, name, "l");
2962+
mLT0[i]->AddEntry(e, Form(mConfig.inputHistogramsOnly ? "%s (%s)" : "%sTrack t_{0} %s", fname, i ? "" : "resolution"), "l");
29862963
}
29872964
mLT0[i]->Draw();
29882965
doPerfFigure(0.63, 0.7, 0.030);
29892966
mCT0[i]->cd();
2990-
snprintf(name, 2048, "%s/t0%s.pdf", mConfig.plotsDir.c_str(), i ? "_res" : "");
2991-
mCT0[i]->Print(name);
2967+
mCT0[i]->Print(Form("%s/t0%s.pdf", mConfig.plotsDir.c_str(), i ? "_res" : ""));
29922968
if (mConfig.writeFileExt != "") {
2993-
snprintf(name, 2048, "%s/t0%s.%s", mConfig.plotsDir.c_str(), i ? "_res" : "", mConfig.writeFileExt.c_str());
2994-
mCT0[i]->Print(name);
2969+
mCT0[i]->Print(Form("%s/t0%s.%s", mConfig.plotsDir.c_str(), i ? "_res" : "", mConfig.writeFileExt.c_str()));
29952970
}
29962971

29972972
tmpMax = 0.;
@@ -3028,17 +3003,14 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
30283003
e->SetLineColor(colorNums[k % COLORCOUNT]);
30293004
e->Draw(k == 0 ? "" : "same");
30303005
GetName(fname, k, mConfig.inputHistogramsOnly);
3031-
snprintf(name, 2048, mConfig.inputHistogramsOnly ? "%s" : (i ? "%sN_{Clusters}" : "%sN_{Rows with Clusters}"), fname);
3032-
mLNCl[i]->AddEntry(e, name, "l");
3006+
mLNCl[i]->AddEntry(e, Form(mConfig.inputHistogramsOnly ? "%s" : (i ? "%sN_{Clusters}" : "%sN_{Rows with Clusters}"), fname), "l");
30333007
}
30343008
mLNCl[i]->Draw();
30353009
doPerfFigure(0.6, 0.7, 0.030);
30363010
mCNCl[i]->cd();
3037-
snprintf(name, 2048, "%s/nClusters%s.pdf", mConfig.plotsDir.c_str(), i ? "_corrected" : "");
3038-
mCNCl[i]->Print(name);
3011+
mCNCl[i]->Print(Form("%s/nClusters%s.pdf", mConfig.plotsDir.c_str(), i ? "_corrected" : ""));
30393012
if (mConfig.writeFileExt != "") {
3040-
snprintf(name, 2048, "%s/nClusters%s.%s", mConfig.plotsDir.c_str(), i ? "_corrected" : "", mConfig.writeFileExt.c_str());
3041-
mCNCl[i]->Print(name);
3013+
mCNCl[i]->Print(Form("%s/nClusters%s.%s", mConfig.plotsDir.c_str(), i ? "_corrected" : "", mConfig.writeFileExt.c_str()));
30423014
}
30433015
}
30443016

@@ -3063,11 +3035,9 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
30633035
mClRej[i]->SetOption("colz");
30643036
mClRej[i]->Draw();
30653037
mCClRej[i]->cd();
3066-
snprintf(name, 2048, "%s/clustersRej%d%s.pdf", mConfig.plotsDir.c_str(), i, REJECTED_NAMES[i]);
3067-
mCClRej[i]->Print(name);
3038+
mCClRej[i]->Print(Form("%s/clustersRej%d%s.pdf", mConfig.plotsDir.c_str(), i, REJECTED_NAMES[i]));
30683039
if (mConfig.writeFileExt != "") {
3069-
snprintf(name, 2048, "%s/clustersRej%d%s.%s", mConfig.plotsDir.c_str(), i, REJECTED_NAMES[i], mConfig.writeFileExt.c_str());
3070-
mCClRej[i]->Print(name);
3040+
mCClRej[i]->Print(Form("%s/clustersRej%d%s.%s", mConfig.plotsDir.c_str(), i, REJECTED_NAMES[i], mConfig.writeFileExt.c_str()));
30713041
}
30723042
}
30733043

@@ -3077,15 +3047,13 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
30773047
if (GetHist(tmp, tin, k, nNewInput) == nullptr) {
30783048
continue;
30793049
}
3080-
snprintf(name, 2048, "clrejptmp1%d", k); // TODO: Clean up names, and how names are written to char arrays
3081-
TH1D* proj1 = tmp->ProjectionY(name);
3050+
TH1D* proj1 = tmp->ProjectionY(Form("clrejptmp1%d", k)); // TODO: Clean up names
30823051
proj1->SetDirectory(nullptr);
30833052
tmp = mClRej[1];
30843053
if (GetHist(tmp, tin, k, nNewInput) == nullptr) {
30853054
continue;
30863055
}
3087-
snprintf(name, 2048, "clrejptmp2%d", k); // TODO: Clean up names, and how names are written to char arrays
3088-
TH1D* proj2 = tmp->ProjectionY(name);
3056+
TH1D* proj2 = tmp->ProjectionY(Form("clrejptmp2%d", k));
30893057
proj2->SetDirectory(nullptr);
30903058

30913059
auto* e = mClRejP;
@@ -3131,7 +3099,7 @@ int32_t GPUQA::DrawQAHistograms(TObjArray* qcout)
31313099
if (!qcout) {
31323100
clearGarbagageCollector();
31333101
}
3134-
GPUInfo("GPU TPC QA histograms have been written to pdf%s%s files", (mConfig.writeFileExt == "" ? "" : " and ", mConfig.writeFileExt.c_str());
3102+
GPUInfo("GPU TPC QA histograms have been written to pdf%s%s files", mConfig.writeFileExt == "" ? "" : " and ", mConfig.writeFileExt.c_str());
31353103
gErrorIgnoreLevel = oldRootIgnoreLevel;
31363104
return (0);
31373105
}

0 commit comments

Comments
 (0)