Skip to content

Commit 52a3824

Browse files
committed
AOD: switch to flag class for streamer steering
1 parent cb23031 commit 52a3824

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
@@ -1673,9 +1673,10 @@ 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:");
1679+
LOG(info) << mStreamerFlags;
16791680
} else {
16801681
LOGP(warn, "Specified non-default empty streamer mask!");
16811682
}
@@ -1766,7 +1767,7 @@ void AODProducerWorkflowDPL::init(InitContext& ic)
17661767

17671768
mTimer.Reset();
17681769

1769-
if (O2_ENUM_ANY_BIT(mStreamerMask)) {
1770+
if (mStreamerFlags) {
17701771
mStreamer = std::make_unique<o2::utils::TreeStreamRedirector>("AO2DStreamer.root", "RECREATE");
17711772
}
17721773
}
@@ -2642,7 +2643,7 @@ AODProducerWorkflowDPL::TrackQA AODProducerWorkflowDPL::processBarrelTrackQA(int
26422643
trackQAHolder.dRefGloTgl = safeInt8Clamp(((itsCopy.getTgl() + tpcCopy.getTgl()) * 0.5f - gloCopy.getTgl()) * scaleGlo(3));
26432644
trackQAHolder.dRefGloQ2Pt = safeInt8Clamp(((itsCopy.getQ2Pt() + tpcCopy.getQ2Pt()) * 0.5f - gloCopy.getQ2Pt()) * scaleGlo(4));
26442645

2645-
if (O2_ENUM_TEST_BIT(mStreamerMask, AODProducerStreamerMask::TrackQA)) {
2646+
if (mStreamerFlags[AODProducerStreamerFlags::TrackQA]) {
26462647
(*mStreamer) << "trackQA"
26472648
<< "trackITSOrig=" << itsOrig
26482649
<< "trackTPCOrig=" << tpcOrig

0 commit comments

Comments
 (0)