Skip to content

Commit 11f7b5c

Browse files
f3schsawenzel
authored andcommitted
AOD: switch to flag class for streamer steering
1 parent 773a098 commit 11f7b5c

File tree

2 files changed

+10
-12
lines changed

2 files changed

+10
-12
lines changed

Detectors/AOD/include/AODProducerWorkflow/AODProducerWorkflowSpec.h

Lines changed: 4 additions & 7 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/EnumFlags.h"
3434

3535
#include <cstdint>
3636
#include <limits>
@@ -208,12 +208,9 @@ class BunchCrossings
208208
}; // end internal class
209209

210210
// Steering bits for additional output during AOD production
211-
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(),
211+
enum struct AODProducerStreamerFlags : uint8_t {
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::utils::EnumFlags<AODProducerStreamerFlags> mStreamerFlags;
255252
std::shared_ptr<o2::utils::TreeStreamRedirector> mStreamer;
256253

257254
int mNThreads = 1;

Detectors/AOD/src/AODProducerWorkflowSpec.cxx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1675,9 +1675,10 @@ void AODProducerWorkflowDPL::init(InitContext& ic)
16751675
mPropTracks = ic.options().get<bool>("propagate-tracks");
16761676
mPropMuons = ic.options().get<bool>("propagate-muons");
16771677
if (auto s = ic.options().get<std::string>("with-streamers"); !s.empty()) {
1678-
mStreamerMask = static_cast<AODProducerStreamerMask>(std::stoul(s, nullptr, 2));
1679-
if (O2_ENUM_ANY_BIT(mStreamerMask)) {
1680-
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);
1678+
mStreamerFlags.set(s);
1679+
if (mStreamerFlags) {
1680+
LOGP(info, "Writing streamer data with mask:");
1681+
LOG(info) << mStreamerFlags;
16811682
} else {
16821683
LOGP(warn, "Specified non-default empty streamer mask!");
16831684
}
@@ -1768,7 +1769,7 @@ void AODProducerWorkflowDPL::init(InitContext& ic)
17681769

17691770
mTimer.Reset();
17701771

1771-
if (O2_ENUM_ANY_BIT(mStreamerMask)) {
1772+
if (mStreamerFlags) {
17721773
mStreamer = std::make_unique<o2::utils::TreeStreamRedirector>("AO2DStreamer.root", "RECREATE");
17731774
}
17741775
}
@@ -2654,7 +2655,7 @@ AODProducerWorkflowDPL::TrackQA AODProducerWorkflowDPL::processBarrelTrackQA(int
26542655
trackQAHolder.dRefGloQ2Pt = safeInt8Clamp(((itsCopy.getQ2Pt() + tpcCopy.getQ2Pt()) * 0.5f - gloCopy.getQ2Pt()) * scaleGlo(4));
26552656
//
26562657

2657-
if (O2_ENUM_TEST_BIT(mStreamerMask, AODProducerStreamerMask::TrackQA)) {
2658+
if (mStreamerFlags[AODProducerStreamerFlags::TrackQA]) {
26582659
(*mStreamer) << "trackQA"
26592660
<< "trackITSOrig=" << itsOrig
26602661
<< "trackTPCOrig=" << tpcOrig

0 commit comments

Comments
 (0)