14#ifndef ALICEO2_BUNCHFILLING_H
15#define ALICEO2_BUNCHFILLING_H
28 using Pattern = std::bitset<o2::constants::lhc::LHCMaxBunches>;
31 BunchFilling(
const std::string& beamA,
const std::string& beamC);
57 int getNBunches(
int dir = -1)
const {
return dir < 0 ? mPattern.count() : mBeamAC[dir].count(); }
63 bool testBeamBunch(
int bcID,
int dir)
const {
return mBeamAC[dir][bcID]; }
69 void setBC(
int bcID,
bool active =
true,
int dir = -1);
70 void setBCTrain(
int nBC,
int bcSpacing,
int firstBC,
int dir = -1);
71 void setBCTrains(
int nTrains,
int trainSpacingInBC,
int nBC,
int bcSpacing,
int firstBC,
int dir = -1);
74 void setBCFilling(
const std::string& patt,
int dir = -1);
82 void print(
int dir = -2,
bool filledOnly =
true,
int bcPerLine = 20)
const;
103 static bool parsePattern(
const unsigned char*& input,
Pattern& patt,
int& ibit,
int&
level);
106 std::array<Pattern, o2::constants::lhc::NBeamDirections> mBeamAC{};
115struct is_messageable;
117struct is_messageable<
o2::BunchFilling> : std::true_type {
Header to collect LHC related constants.
const auto & getPattern(int dir=-1) const
void mergeWith(o2::BunchFilling const &other)
std::bitset< o2::constants::lhc::LHCMaxBunches > Pattern
void setBCTrains(int nTrains, int trainSpacingInBC, int nBC, int bcSpacing, int firstBC, int dir=-1)
static std::string buckets2PatternString(const std::vector< int > &buckets, int ibeam)
bool testBeamBunch(int bcID, int dir) const
void setBCTrain(int nBC, int bcSpacing, int firstBC, int dir=-1)
std::vector< int > getFilledBCs(int dir=-1) const
bool testInteractingBC(int bcID) const
int getNBunches(int dir=-1) const
int getLastFilledBC(int dir=-1) const
void setBC(int bcID, bool active=true, int dir=-1)
bool testBC(int bcID, int dir=-1) const
int getFirstFilledBC(int dir=-1) const
void setBCFilling(const std::string &patt, int dir=-1)
void setInteractingBCsFromBeams()
const auto & getBCPattern() const
void buckets2BeamPattern(const std::vector< int > &buckets, int ibeam)
const auto & getBeamPattern(int beam) const
static BunchFilling * loadFrom(const std::string &fileName, const std::string &objName="")
static Pattern createPattern(const std::string &p)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
VectorOfTObjectPtrs other