12#ifndef ALICEO2_MCVEVENTLABEL_H
13#define ALICEO2_MCVEVENTLABEL_H
27 static constexpr uint32_t Dummy = 0xffffffff;
28 uint32_t mLabel = Dummy;
56 operator uint32_t()
const {
return mLabel; }
76 void set(
int evID,
int srcID,
float corrW)
78 uint32_t iw =
static_cast<uint32_t
>(std::round(corrW *
MaskCorrW));
80 mLabel = (iw << (nbitsEvID + nbitsSrcID)) | ((MaskSrcID & static_cast<uint32_t>(srcID)) <<
nbitsEvID) | (
MaskEvID &
static_cast<uint32_t
>(evID));
84 uint32_t iw =
static_cast<uint32_t
>(std::round(corrW *
MaskCorrW));
103 void get(
int& evID,
int& srcID,
float& corrW)
127struct hash<
o2::MCEventLabel> {
131 return static_cast<uint32_t
>(
label);
std::ostream & operator<<(std::ostream &os, const o2::MCEventLabel &c)
ClassDefNV(MCEventLabel, 1)
static constexpr int nbitsSrcID
static constexpr uint32_t MaskCorrW
void set(int evID, int srcID, float corrW)
compose label
void get(int &evID, int &srcID, float &corrW)
static constexpr int nbitsCorrW
static constexpr uint32_t MaskSrcID
static constexpr uint32_t NotSet
static constexpr int nbitsEvID
bool compare(const MCEventLabel &other, bool strict=false) const
static constexpr uint32_t MaxEventID()
uint32_t getIDOnly() const
static constexpr uint32_t MaskSrcEvID
std::string asString() const
static constexpr float WeightNorm
static constexpr float WeightPrecision()
uint32_t getRawValue() const
static constexpr uint32_t MaxSourceID()
MCEventLabel(int evID, int srcID, float corrw=1.0)
void setCorrWeight(float corrW)
float getCorrWeight() const
static constexpr uint32_t MaskEvID
bool operator==(const MCEventLabel &other) const
GLuint GLsizei const GLchar * label
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Defining DataPointCompositeObject explicitly as copiable.
size_t operator()(o2::MCEventLabel const &label) const
VectorOfTObjectPtrs other