15#ifndef O2_GRP_LHCIFDATA_H
16#define O2_GRP_LHCIFDATA_H
20#include <unordered_map>
40 static const std::unordered_map<unsigned int, unsigned int>
mZtoA;
88 int getBeamZ(
int beam)
const {
return mBeamAZ[beam] & 0xffff; }
89 int getBeamA(
int beam)
const {
return mBeamAZ[beam] >> 16; }
109 std::pair<long, int32_t> mBeamEnergyPerZ{};
110 std::pair<long, int32_t> mFillNumber{};
111 std::pair<long, std::string> mInjectionScheme{};
112 std::pair<long, int32_t> mAtomicNumberB1{};
113 std::pair<long, int32_t> mAtomicNumberB2{};
114 std::pair<long, o2::units::AngleRad_t> mCrossingAngle{};
115 int mBeamAZ[beamDirection::NBeamDirections] = {0, 0};
116 std::pair<long, o2::BunchFilling> mBunchFilling{};
126 return a ?
getBeamZ(
b) /
static_cast<float>(
a) : 0.f;
134 return a ?
getBeamZ(
b) /
static_cast<float>(
a) : 0.f;
Header to collect LHC related constants.
Header to collect definitions for different units.
void setAtomicNumberB1WithTime(long t, int32_t v)
std::pair< long, o2::units::AngleRad_t > getCrossingAngleWithTime() const
long getAtomicNumberB1Time() const
float getBeamEnergyPerNucleon(int beam) const
float getBeamEnergyPerNucleonInGeV(int beam) const
std::pair< long, int32_t > getBeamEnergyPerZWithTime() const
void setBeamAZ(int a, int z, beamDirection beam)
float getBeamEnergyPerNucleonInGeV(beamDirection beam) const
long getBeamEnergyPerZTime() const
std::pair< long, int32_t > getFillNumberWithTime() const
void setBunchFillingWithTime(std::pair< long, o2::BunchFilling > p)
void setBeamEnergyPerZWithTime(std::pair< long, int32_t > p)
void setCrossingAngleWithTime(std::pair< long, o2::units::AngleRad_t > p)
int getBeamA(beamDirection beam) const
void translateBucketsToBCNumbers(std::vector< int32_t > &bcNb, std::vector< int32_t > &buckets, int beam)
helper function for BunchFilling
const std::string & getInjectionScheme() const
long getBunchFillingTime() const
long getFillNumberTime() const
float getBeamZoverA(beamDirection beam) const
int getBeamZ(beamDirection beam) const
getters/setters for given beam A and Z info, encoded as A<<16+Z
void setBunchFillingWithTime(long t, o2::BunchFilling v)
o2::units::AngleRad_t getCrossingAngle() const
void setBeamEnergyPerZWithTime(long t, int32_t v)
void setAtomicNumberB1WithTime(std::pair< long, int32_t > p)
void setFillNumberWithTime(long t, int32_t v)
const o2::BunchFilling & getBunchFilling() const
float getBeamEnergyPerZinGeV() const
int32_t getAtomicNumberB2() const
int32_t getBeamEnergyPerZ() const
long getInjectionSchemeTime() const
static GRPLHCIFData * loadFrom(const std::string &grpLHCIFFileName="")
void setFillNumberWithTime(std::pair< long, int32_t > p)
static const std::unordered_map< unsigned int, unsigned int > mZtoA
void setCrossingAngleWithTime(long t, o2::units::AngleRad_t v)
void setAtomicNumberB2WithTime(long t, int32_t v)
int32_t getAtomicNumberB1() const
long getCrossingAngleTime() const
int32_t getFillNumber() const
float getBeamEnergyPerNucleon(beamDirection beam) const
getters/setters for beam energy per charge and per nucleon
void setInjectionSchemeWithTime(std::pair< long, std::string > p)
const std::pair< long, std::string > & getInjectionSchemeWithTime() const
void setAtomicNumberB2WithTime(std::pair< long, int32_t > p)
std::pair< long, int32_t > getAtomicNumberB1WithTime() const
long getAtomicNumberB2Time() const
void setInjectionSchemeWithTime(long t, std::string v)
std::pair< long, int32_t > getAtomicNumberB2WithTime() const
const std::pair< long, o2::BunchFilling > & getBunchFillingWithTime() const
int getBeamZ(int beam) const
int getBeamA(int beam) const
float getSqrtS() const
calculate center of mass energy per nucleon collision
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
GLdouble GLdouble GLdouble z
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...