Skip to content

Commit 5c669ae

Browse files
committed
AOD: switch to flag class for streamer steering
1 parent f6304d2 commit 5c669ae

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

Detectors/AOD/include/AODProducerWorkflow/AODProducerWorkflowSpec.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#include "ZDCBase/Constants.h"
3131
#include "GlobalTracking/MatchGlobalFwd.h"
3232
#include "CommonUtils/TreeStreamRedirector.h"
33-
#include "CommonUtils/EnumBitOperators.h"
33+
#include "CommonUtils/Flags.h"
3434

3535
#include <cstdint>
3636
#include <limits>
@@ -209,11 +209,8 @@ class BunchCrossings
209209

210210
// Steering bits for additional output during AOD production
211211
enum struct AODProducerStreamerMask : uint8_t {
212-
None = 0,
213-
TrackQA = O2_ENUM_SET_BIT(0),
214-
All = std::numeric_limits<std::underlying_type_t<AODProducerStreamerMask>>::max(),
212+
TrackQA,
215213
};
216-
O2_DEFINE_ENUM_BIT_OPERATORS(AODProducerStreamerMask)
217214

218215
class AODProducerWorkflowDPL : public Task
219216
{
@@ -251,7 +248,7 @@ class AODProducerWorkflowDPL : public Task
251248
std::unordered_set<GIndex> mGIDUsedBySVtx;
252249
std::unordered_set<GIndex> mGIDUsedByStr;
253250

254-
AODProducerStreamerMask mStreamerMask{0};
251+
o2::flags::Flags<AODProducerStreamerMask> mStreamerFlags;
255252
std::shared_ptr<o2::utils::TreeStreamRedirector> mStreamer;
256253

257254
int mNThreads = 1;

Detectors/AOD/src/AODProducerWorkflowSpec.cxx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1673,9 +1673,9 @@ void AODProducerWorkflowDPL::init(InitContext& ic)
16731673
mPropTracks = ic.options().get<bool>("propagate-tracks");
16741674
mPropMuons = ic.options().get<bool>("propagate-muons");
16751675
if (auto s = ic.options().get<std::string>("with-streamers"); !s.empty()) {
1676-
mStreamerMask = static_cast<AODProducerStreamerMask>(std::stoul(s, nullptr, 2));
1677-
if (O2_ENUM_ANY_BIT(mStreamerMask)) {
1678-
LOGP(info, "Writing streamer data with mask {:0{}b}", static_cast<std::underlying_type_t<AODProducerStreamerMask>>(mStreamerMask), std::numeric_limits<std::underlying_type_t<AODProducerStreamerMask>>::digits);
1676+
mStreamerFlags.set(s);
1677+
if (mStreamerFlags) {
1678+
LOGP(info, "Writing streamer data with mask {}", mStreamerFlags.string());
16791679
} else {
16801680
LOGP(warn, "Specified non-default empty streamer mask!");
16811681
}
@@ -1766,7 +1766,7 @@ void AODProducerWorkflowDPL::init(InitContext& ic)
17661766

17671767
mTimer.Reset();
17681768

1769-
if (O2_ENUM_ANY_BIT(mStreamerMask)) {
1769+
if (mStreamerFlags) {
17701770
mStreamer = std::make_unique<o2::utils::TreeStreamRedirector>("AO2DStreamer.root", "RECREATE");
17711771
}
17721772
}
@@ -2642,7 +2642,7 @@ AODProducerWorkflowDPL::TrackQA AODProducerWorkflowDPL::processBarrelTrackQA(int
26422642
trackQAHolder.dRefGloTgl = safeInt8Clamp(((itsCopy.getTgl() + tpcCopy.getTgl()) * 0.5f - gloCopy.getTgl()) * scaleGlo(3));
26432643
trackQAHolder.dRefGloQ2Pt = safeInt8Clamp(((itsCopy.getQ2Pt() + tpcCopy.getQ2Pt()) * 0.5f - gloCopy.getQ2Pt()) * scaleGlo(4));
26442644

2645-
if (O2_ENUM_TEST_BIT(mStreamerMask, AODProducerStreamerMask::TrackQA)) {
2645+
if (mStreamerFlags.test(AODProducerStreamerMask::TrackQA)) {
26462646
(*mStreamer) << "trackQA"
26472647
<< "trackITSOrig=" << itsOrig
26482648
<< "trackTPCOrig=" << tpcOrig

0 commit comments

Comments
 (0)