Skip to content

Commit 67b6248

Browse files
committed
cppcoreguidelines-pro-bounds-array-to-pointer-decay
1 parent 53c306a commit 67b6248

2 files changed

Lines changed: 46 additions & 32 deletions

File tree

PWGDQ/TableProducer/tableMakerMC_withAssoc.cxx

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,13 @@ constexpr static uint32_t gkMuonRealignFillMapWithCov = VarManager::ObjTypes::Mu
134134
constexpr static uint32_t gkMFTFillMap = VarManager::ObjTypes::TrackMFT;
135135
constexpr static uint32_t gkMFTCovFillMap = VarManager::ObjTypes::TrackMFT | VarManager::ObjTypes::MFTCov;
136136

137+
namespace dqtablemakermc_helpers
138+
{
139+
inline float* varValues() { return static_cast<float*>(VarManager::fgValues); }
140+
inline TString* varNames() { return static_cast<TString*>(VarManager::fgVariableNames); }
141+
inline TString* varUnits() { return static_cast<TString*>(VarManager::fgVariableUnits); }
142+
} // namespace dqtablemakermc_helpers
143+
137144
template <typename TMap>
138145
void PrintBitMap(TMap map, int nbits)
139146
{
@@ -334,7 +341,7 @@ struct TableMakerMC {
334341

335342
fHistMan = new HistogramManager("analysisHistos", "aa", VarManager::kNVars);
336343
fHistMan->SetUseDefaultVariableNames(kTRUE);
337-
fHistMan->SetDefaultVarNames(VarManager::fgVariableNames, VarManager::fgVariableUnits);
344+
fHistMan->SetDefaultVarNames(dqtablemakermc_helpers::varNames(), dqtablemakermc_helpers::varUnits());
338345

339346
// Only use detailed QA when QA is set true
340347
if (fConfigHistOutput.fConfigQA && fConfigHistOutput.fConfigDetailedQA) {
@@ -529,7 +536,7 @@ struct TableMakerMC {
529536
// Get MC collision information into the VarManager
530537
VarManager::FillEvent<gkEventMcFillMapWithCent>(mcCollision);
531538
// Fill histograms
532-
fHistMan->FillHistClass("Event_MCTruth", VarManager::fgValues);
539+
fHistMan->FillHistClass("Event_MCTruth", dqtablemakermc_helpers::varValues());
533540
// Create the skimmed table entry for this collision
534541
eventMC(mcCollision.generatorsID(), mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(),
535542
mcCollision.t(), mcCollision.weight(), mcCollision.impactParameter(), mcCollision.bestCollisionCentFT0C(),
@@ -619,7 +626,7 @@ struct TableMakerMC {
619626
int j = 0;
620627
for (auto signal = fMCSignals.begin(); signal != fMCSignals.end(); signal++, j++) {
621628
if (mcflags & (static_cast<uint16_t>(1) << j)) {
622-
fHistMan->FillHistClass(Form("MCTruth_%s", (*signal)->GetName()), VarManager::fgValues);
629+
fHistMan->FillHistClass(Form("MCTruth_%s", (*signal)->GetName()), dqtablemakermc_helpers::varValues());
623630
}
624631
}
625632
}
@@ -749,7 +756,7 @@ struct TableMakerMC {
749756
VarManager::FillEvent<gkEventMcFillMapWithCent>(mcCollision);
750757
}
751758
if (fDoDetailedQA) {
752-
fHistMan->FillHistClass("Event_BeforeCuts", VarManager::fgValues);
759+
fHistMan->FillHistClass("Event_BeforeCuts", dqtablemakermc_helpers::varValues());
753760
}
754761

755762
// fill stats information, before selections
@@ -761,7 +768,7 @@ struct TableMakerMC {
761768
(reinterpret_cast<TH2I*>(fStatsList->At(0)))->Fill(2.0, static_cast<float>(o2::aod::evsel::kNsel));
762769

763770
// Apply the user specified event selection
764-
if (!fEventCut->IsSelected(VarManager::fgValues) || (fConfigRCT.fConfigUseRCT.value && !(rctChecker(collision)))) {
771+
if (!fEventCut->IsSelected(dqtablemakermc_helpers::varValues()) || (fConfigRCT.fConfigUseRCT.value && !(rctChecker(collision)))) {
765772
continue;
766773
}
767774

@@ -774,7 +781,7 @@ struct TableMakerMC {
774781
(reinterpret_cast<TH2I*>(fStatsList->At(0)))->Fill(3.0, static_cast<float>(o2::aod::evsel::kNsel));
775782

776783
// Fill historams after event cuts
777-
fHistMan->FillHistClass("Event_AfterCuts", VarManager::fgValues);
784+
fHistMan->FillHistClass("Event_AfterCuts", dqtablemakermc_helpers::varValues());
778785

779786
// create the event tables
780787
event(tag, bc.runNumber(), collision.posX(), collision.posY(), collision.posZ(), collision.numContrib(), collision.collisionTime(), collision.collisionTimeRes());
@@ -861,16 +868,16 @@ struct TableMakerMC {
861868
VarManager::FillTrackCollision<TTrackFillMap>(track, collision);
862869
}
863870
if (fDoDetailedQA) {
864-
fHistMan->FillHistClass("TrackBarrel_BeforeCuts", VarManager::fgValues);
871+
fHistMan->FillHistClass("TrackBarrel_BeforeCuts", dqtablemakermc_helpers::varValues());
865872
}
866873

867874
// apply track cuts and fill histograms
868875
int i = 0;
869876
for (auto cut = fTrackCuts.begin(); cut != fTrackCuts.end(); cut++, i++) {
870-
if ((*cut)->IsSelected(VarManager::fgValues)) {
877+
if ((*cut)->IsSelected(dqtablemakermc_helpers::varValues())) {
871878
trackTempFilterMap |= (static_cast<uint32_t>(1) << i);
872879
if (fConfigHistOutput.fConfigQA) {
873-
fHistMan->FillHistClass(Form("TrackBarrel_%s", (*cut)->GetName()), VarManager::fgValues);
880+
fHistMan->FillHistClass(Form("TrackBarrel_%s", (*cut)->GetName()), dqtablemakermc_helpers::varValues());
874881
}
875882
(reinterpret_cast<TH1I*>(fStatsList->At(1)))->Fill(static_cast<float>(i));
876883
}
@@ -950,7 +957,7 @@ struct TableMakerMC {
950957
j = 0;
951958
for (auto& cut : fTrackCuts) {
952959
if (trackTempFilterMap & (uint8_t(1) << j)) {
953-
fHistMan->FillHistClass(Form("TrackBarrel_%s_%s", cut->GetName(), sig->GetName()), VarManager::fgValues); // fill the reconstructed truth
960+
fHistMan->FillHistClass(Form("TrackBarrel_%s_%s", cut->GetName(), sig->GetName()), dqtablemakermc_helpers::varValues()); // fill the reconstructed truth
954961
}
955962
j++;
956963
}
@@ -987,7 +994,7 @@ struct TableMakerMC {
987994

988995
if (fConfigHistOutput.fConfigQA) {
989996
VarManager::FillTrack<TMFTFillMap>(track);
990-
fHistMan->FillHistClass("MftTracks", VarManager::fgValues);
997+
fHistMan->FillHistClass("MftTracks", dqtablemakermc_helpers::varValues());
991998
}
992999

9931000
// write the MFT track global index in the map for skimming (to make sure we have it just once)
@@ -1012,7 +1019,7 @@ struct TableMakerMC {
10121019
mcflags |= (static_cast<uint16_t>(1) << i);
10131020
// If detailed QA is on, fill histograms for each MC signal and track cut combination
10141021
if (fDoDetailedQA) {
1015-
fHistMan->FillHistClass(Form("MFTTrack_%s", sig->GetName()), VarManager::fgValues); // fill the reconstructed truth
1022+
fHistMan->FillHistClass(Form("MFTTrack_%s", sig->GetName()), dqtablemakermc_helpers::varValues()); // fill the reconstructed truth
10161023
}
10171024
}
10181025
i++;
@@ -1148,15 +1155,15 @@ struct TableMakerMC {
11481155
}
11491156

11501157
if (fDoDetailedQA) {
1151-
fHistMan->FillHistClass("Muons_BeforeCuts", VarManager::fgValues);
1158+
fHistMan->FillHistClass("Muons_BeforeCuts", dqtablemakermc_helpers::varValues());
11521159
}
11531160
// check the cuts and fill histograms for each fulfilled cut
11541161
int i = 0;
11551162
for (auto cut = fMuonCuts.begin(); cut != fMuonCuts.end(); cut++, i++) {
1156-
if ((*cut)->IsSelected(VarManager::fgValues)) {
1163+
if ((*cut)->IsSelected(dqtablemakermc_helpers::varValues())) {
11571164
trackTempFilterMap |= (uint8_t(1) << i);
11581165
if (fConfigHistOutput.fConfigQA) {
1159-
fHistMan->FillHistClass(Form("Muons_%s", (*cut)->GetName()), VarManager::fgValues);
1166+
fHistMan->FillHistClass(Form("Muons_%s", (*cut)->GetName()), dqtablemakermc_helpers::varValues());
11601167
}
11611168
(reinterpret_cast<TH1I*>(fStatsList->At(2)))->Fill(static_cast<float>(i));
11621169
}
@@ -1196,7 +1203,7 @@ struct TableMakerMC {
11961203
j = 0;
11971204
for (auto& cut : fMuonCuts) {
11981205
if (trackTempFilterMap & (uint8_t(1) << j)) {
1199-
fHistMan->FillHistClass(Form("Muons_%s_%s", cut->GetName(), sig->GetName()), VarManager::fgValues); // fill the reconstructed truth
1206+
fHistMan->FillHistClass(Form("Muons_%s_%s", cut->GetName(), sig->GetName()), dqtablemakermc_helpers::varValues()); // fill the reconstructed truth
12001207
}
12011208
j++;
12021209
}

PWGDQ/TableProducer/tableMaker_withAssoc.cxx

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,13 @@ enum SkimStatsHists {
181181
kStatsZorroSel
182182
};
183183

184+
namespace dqtablemaker_helpers
185+
{
186+
inline float* varValues() { return static_cast<float*>(VarManager::fgValues); }
187+
inline TString* varNames() { return static_cast<TString*>(VarManager::fgVariableNames); }
188+
inline TString* varUnits() { return static_cast<TString*>(VarManager::fgVariableUnits); }
189+
} // namespace dqtablemaker_helpers
190+
184191
struct TableMaker {
185192

186193
struct : ProducesGroup {
@@ -454,7 +461,7 @@ struct TableMaker {
454461
// Initialize the histogram manager
455462
fHistMan = new HistogramManager("analysisHistos", "aa", VarManager::kNVars);
456463
fHistMan->SetUseDefaultVariableNames(kTRUE);
457-
fHistMan->SetDefaultVarNames(VarManager::fgVariableNames, VarManager::fgVariableUnits);
464+
fHistMan->SetDefaultVarNames(dqtablemaker_helpers::varNames(), dqtablemaker_helpers::varUnits());
458465

459466
// Only use detailed QA when QA is set true
460467
if (fConfigHistOutput.fConfigQA && fConfigHistOutput.fConfigDetailedQA) {
@@ -1117,7 +1124,7 @@ struct TableMaker {
11171124
}
11181125

11191126
if (fDoDetailedQA) {
1120-
fHistMan->FillHistClass("Event_BeforeCuts", VarManager::fgValues);
1127+
fHistMan->FillHistClass("Event_BeforeCuts", dqtablemaker_helpers::varValues());
11211128
}
11221129

11231130
// fill stats information, before selections
@@ -1134,7 +1141,7 @@ struct TableMaker {
11341141
zorro.initCCDB(fCCDB.service, fCurrentRun, bc.timestamp(), fConfigZorro.fConfigZorroTrigMask.value);
11351142
zorro.populateExternalHists(fCurrentRun, reinterpret_cast<TH2D*>(fStatsList->At(kStatsZorroInfo)), reinterpret_cast<TH2D*>(fStatsList->At(kStatsZorroSel)));
11361143

1137-
if (!fEventCut->IsSelected(VarManager::fgValues) || (fConfigRCT.fConfigUseRCT.value && !rctChecker(collision))) {
1144+
if (!fEventCut->IsSelected(dqtablemaker_helpers::varValues()) || (fConfigRCT.fConfigUseRCT.value && !rctChecker(collision))) {
11381145
continue;
11391146
}
11401147

@@ -1146,7 +1153,7 @@ struct TableMaker {
11461153
continue;
11471154
}
11481155
} else {
1149-
if (!fEventCut->IsSelected(VarManager::fgValues) || (fConfigRCT.fConfigUseRCT.value && !rctChecker(collision))) {
1156+
if (!fEventCut->IsSelected(dqtablemaker_helpers::varValues()) || (fConfigRCT.fConfigUseRCT.value && !rctChecker(collision))) {
11501157
continue;
11511158
}
11521159
}
@@ -1159,7 +1166,7 @@ struct TableMaker {
11591166
}
11601167
(reinterpret_cast<TH2D*>(fStatsList->At(kStatsEvent)))->Fill(3.0, static_cast<float>(o2::aod::evsel::kNsel));
11611168

1162-
fHistMan->FillHistClass("Event_AfterCuts", VarManager::fgValues);
1169+
fHistMan->FillHistClass("Event_AfterCuts", dqtablemaker_helpers::varValues());
11631170

11641171
// create the event tables
11651172
outTables.event(tag, bc.runNumber(), collision.posX(), collision.posY(), collision.posZ(), collision.numContrib(), collision.collisionTime(), collision.collisionTimeRes());
@@ -1303,18 +1310,18 @@ struct TableMaker {
13031310
}
13041311

13051312
if (fDoDetailedQA) {
1306-
fHistMan->FillHistClass("TrackBarrel_BeforeCuts", VarManager::fgValues);
1313+
fHistMan->FillHistClass("TrackBarrel_BeforeCuts", dqtablemaker_helpers::varValues());
13071314
}
13081315

13091316
// apply track cuts and fill stats histogram
13101317
int i = 0;
13111318
for (auto cut = fTrackCuts.begin(); cut != fTrackCuts.end(); cut++, i++) {
1312-
if ((*cut)->IsSelected(VarManager::fgValues)) {
1319+
if ((*cut)->IsSelected(dqtablemaker_helpers::varValues())) {
13131320
trackTempFilterMap |= (static_cast<uint32_t>(1) << i);
13141321
// NOTE: the QA is filled here just for the first occurence of this track.
13151322
// So if there are histograms of quantities which depend on the collision association, these will not be accurate
13161323
if (fConfigHistOutput.fConfigQA && (fTrackIndexMap.find(track.globalIndex()) == fTrackIndexMap.end())) {
1317-
fHistMan->FillHistClass(Form("TrackBarrel_%s", (*cut)->GetName()), VarManager::fgValues);
1324+
fHistMan->FillHistClass(Form("TrackBarrel_%s", (*cut)->GetName()), dqtablemaker_helpers::varValues());
13181325
}
13191326
(reinterpret_cast<TH1D*>(fStatsList->At(kStatsTracks)))->Fill(static_cast<float>(i));
13201327
}
@@ -1341,16 +1348,16 @@ struct TableMaker {
13411348
// TODO: this part should be removed since the calibration histogram can be filled as any other histogram
13421349
if (fConfigPostCalibTPC.fConfigIsOnlyforMaps) {
13431350
if (trackFilteringTag & (static_cast<uint64_t>(1) << VarManager::kIsConversionLeg)) { // for electron
1344-
fHistMan->FillHistClass("TrackBarrel_PostCalibElectron", VarManager::fgValues);
1351+
fHistMan->FillHistClass("TrackBarrel_PostCalibElectron", dqtablemaker_helpers::varValues());
13451352
}
13461353
if (trackFilteringTag & (static_cast<uint64_t>(1) << VarManager::kIsK0sLeg)) { // for pion
1347-
fHistMan->FillHistClass("TrackBarrel_PostCalibPion", VarManager::fgValues);
1354+
fHistMan->FillHistClass("TrackBarrel_PostCalibPion", dqtablemaker_helpers::varValues());
13481355
}
13491356
if ((static_cast<bool>(trackFilteringTag & (static_cast<uint64_t>(1) << VarManager::kIsLambdaLeg)) * (track.sign()) > 0)) { // for proton from Lambda
1350-
fHistMan->FillHistClass("TrackBarrel_PostCalibProton", VarManager::fgValues);
1357+
fHistMan->FillHistClass("TrackBarrel_PostCalibProton", dqtablemaker_helpers::varValues());
13511358
}
13521359
if ((static_cast<bool>(trackFilteringTag & (static_cast<uint64_t>(1) << VarManager::kIsALambdaLeg)) * (track.sign()) < 0)) { // for proton from AntiLambda
1353-
fHistMan->FillHistClass("TrackBarrel_PostCalibProton", VarManager::fgValues);
1360+
fHistMan->FillHistClass("TrackBarrel_PostCalibProton", dqtablemaker_helpers::varValues());
13541361
}
13551362
}
13561363
if (fConfigPostCalibTPC.fConfigSaveElectronSample) { // only save electron sample
@@ -1438,7 +1445,7 @@ struct TableMaker {
14381445

14391446
if (fConfigHistOutput.fConfigQA) {
14401447
VarManager::FillTrack<TMFTFillMap>(track);
1441-
fHistMan->FillHistClass("MftTracks", VarManager::fgValues);
1448+
fHistMan->FillHistClass("MftTracks", dqtablemaker_helpers::varValues());
14421449
}
14431450

14441451
// write the MFT track global index in the map for skimming (to make sure we have it just once)
@@ -1573,18 +1580,18 @@ struct TableMaker {
15731580
}
15741581

15751582
if (fDoDetailedQA) {
1576-
fHistMan->FillHistClass("Muons_BeforeCuts", VarManager::fgValues);
1583+
fHistMan->FillHistClass("Muons_BeforeCuts", dqtablemaker_helpers::varValues());
15771584
}
15781585
// check the cuts and filters
15791586
int i = 0;
15801587
for (auto cut = fMuonCuts.begin(); cut != fMuonCuts.end(); cut++, i++) {
1581-
if ((*cut)->IsSelected(VarManager::fgValues)) {
1588+
if ((*cut)->IsSelected(dqtablemaker_helpers::varValues())) {
15821589
trackTempFilterMap |= (static_cast<uint8_t>(1) << i);
15831590
// NOTE: the QA is filled here just for the first occurence of this muon, which means the current association
15841591
// will be skipped from histograms if this muon was already filled in the skimming map.
15851592
// So if there are histograms of quantities which depend on the collision association, these histograms will not be completely accurate
15861593
if (fConfigHistOutput.fConfigQA && (fFwdTrackIndexMap.find(muon.globalIndex()) == fFwdTrackIndexMap.end())) {
1587-
fHistMan->FillHistClass(Form("Muons_%s", (*cut)->GetName()), VarManager::fgValues);
1594+
fHistMan->FillHistClass(Form("Muons_%s", (*cut)->GetName()), dqtablemaker_helpers::varValues());
15881595
}
15891596
(reinterpret_cast<TH1D*>(fStatsList->At(kStatsMuons)))->Fill(static_cast<float>(i));
15901597
}

0 commit comments

Comments
 (0)