Skip to content

Commit 12c0de4

Browse files
committed
fix: zorrosummary toi names fix
1 parent 67421a5 commit 12c0de4

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

EventFiltering/Zorro.cxx

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include <CCDB/BasicCCDBManager.h>
1818
#include <CommonConstants/LHCConstants.h>
1919
#include <CommonDataFormat/IRFrame.h>
20+
#include <CommonUtils/StringUtils.h>
2021
#include <CommonDataFormat/InteractionRecord.h>
2122
#include <Framework/HistogramRegistry.h>
2223
#include <Framework/HistogramSpec.h>
@@ -198,24 +199,18 @@ std::vector<int> Zorro::initCCDB(o2::ccdb::BasicCCDBManager* ccdb, int runNumber
198199
mLastSelectedIdx = 0;
199200
mTOIs.clear();
200201
mTOIidx.clear();
201-
while (!tois.empty()) {
202-
size_t pos = tois.find(",");
203-
pos = (pos == std::string::npos) ? tois.size() : pos;
204-
std::string token = tois.substr(0, pos);
205-
// Trim leading and trailing whitespaces from the token
206-
token.erase(0, token.find_first_not_of(" "));
207-
token.erase(token.find_last_not_of(" ") + 1);
202+
std::vector<std::string> tokens = o2::utils::Str::tokenize(tois,','); // tokens are trimmed
203+
for(auto const& token:tokens) {
208204
int bin = findBin(mSelections, token) - 2;
209205
mTOIs.push_back(token);
210206
mTOIidx.push_back(bin);
211-
tois = tois.erase(0, pos + 1);
212207
}
213208
mTOIcounts.resize(mTOIs.size(), 0);
214209
LOGF(info, "Zorro initialized for run %d, triggers of interest:", runNumber);
215210
for (size_t i{0}; i < mTOIs.size(); ++i) {
216211
LOGF(info, ">>> %s : %i", mTOIs[i].data(), mTOIidx[i]);
217212
}
218-
mZorroSummary.setupTOIs(mTOIs.size(), tois);
213+
mZorroSummary.setupTOIs(mTOIs.size(), mTOIs);
219214
std::vector<double> toiCounters(mTOIs.size(), 0.);
220215
for (size_t i{0}; i < mTOIs.size(); ++i) {
221216
toiCounters[i] = mSelections->GetBinContent(mTOIidx[i] + 2);

EventFiltering/ZorroSummary.h

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include <string>
2222
#include <unordered_map>
2323
#include <vector>
24+
#include <iostream>
2425

2526
class ZorroSummary : public TNamed
2627
{
@@ -31,10 +32,17 @@ class ZorroSummary : public TNamed
3132
virtual void Copy(TObject& c) const; // NOLINT: Making this override breaks compilation for unknown reason
3233
virtual Long64_t Merge(TCollection* list);
3334

34-
void setupTOIs(int ntois, const std::string& toinames)
35+
void setupTOIs(int ntois, const std::vector<std::string>& toinames)
3536
{
3637
mNtois = ntois;
37-
mTOInames = toinames;
38+
if(toinames.size() == 0) {
39+
return;
40+
}
41+
mTOInames = toinames[0];
42+
for(size_t i = 1; i < toinames.size(); i++) {
43+
mTOInames += "," + toinames[i];
44+
}
45+
std::cout << "TOI names:" << mTOInames << std::endl;
3846
}
3947
void setupRun(int runNumber, double tvxCountes, const std::vector<double>& toiCounters)
4048
{
@@ -56,7 +64,7 @@ class ZorroSummary : public TNamed
5664
mCurrentAnalysedTOIcounters->at(toiId)++;
5765
}
5866

59-
std::string getTOInames() const { return mTOInames; }
67+
const auto& getTOInames() const {return mTOInames; }
6068
const auto& getTOIcounters() const { return mTOIcounters; }
6169
const auto& getTVXcounters() const { return mTVXcounters; }
6270
const auto& getAnalysedTOIcounters() const { return mAnalysedTOIcounters; }
@@ -71,7 +79,7 @@ class ZorroSummary : public TNamed
7179
std::unordered_map<int, std::vector<double>> mTOIcounters;
7280
std::unordered_map<int, double> mTVXcounters;
7381

74-
ClassDef(ZorroSummary, 1);
82+
ClassDef(ZorroSummary, 2);
7583
};
7684

7785
#endif // EVENTFILTERING_ZORROSUMMARY_H_

0 commit comments

Comments
 (0)