Skip to content

Commit

Permalink
Add methods to get beam energy in GeV, make getSqrtS to return GeV/nu…
Browse files Browse the repository at this point in the history
…cleon pair
  • Loading branch information
shahor02 authored and chiarazampolli committed Mar 11, 2024
1 parent 61f37d7 commit d0b1b9c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ class GRPLHCIFData

std::pair<long, int32_t> getBeamEnergyPerZWithTime() const { return mBeamEnergyPerZ; }
int32_t getBeamEnergyPerZ() const { return mBeamEnergyPerZ.second; }
float getBeamEnergyPerZinGeV() const { return mBeamEnergyPerZ.second * 0.12; }
long getBeamEnergyPerZTime() const { return mBeamEnergyPerZ.first; }
void setBeamEnergyPerZWithTime(std::pair<long, int32_t> p) { mBeamEnergyPerZ = p; }
void setBeamEnergyPerZWithTime(long t, int32_t v) { mBeamEnergyPerZ = std::make_pair(t, v); }
Expand Down Expand Up @@ -84,12 +85,18 @@ class GRPLHCIFData
/// getters/setters for given beam A and Z info, encoded as A<<16+Z
int getBeamZ(beamDirection beam) const { return mBeamAZ[static_cast<int>(beam)] & 0xffff; }
int getBeamA(beamDirection beam) const { return mBeamAZ[static_cast<int>(beam)] >> 16; }
int getBeamZ(int beam) const { return mBeamAZ[beam] & 0xffff; }
int getBeamA(int beam) const { return mBeamAZ[beam] >> 16; }
float getBeamZoverA(beamDirection beam) const;
float getBeamZoverA(int beam) const;
void setBeamAZ(int a, int z, beamDirection beam) { mBeamAZ[static_cast<int>(beam)] = (a << 16) + z; }
void setBeamAZ(beamDirection beam);
void setBeamAZ();
/// getters/setters for beam energy per charge and per nucleon
float getBeamEnergyPerNucleon(beamDirection beam) const { return mBeamEnergyPerZ.second * getBeamZoverA(beam); }
float getBeamEnergyPerNucleon(int beam) const { return mBeamEnergyPerZ.second * getBeamZoverA(beam); }
float getBeamEnergyPerNucleonInGeV(beamDirection beam) const { return getBeamEnergyPerZinGeV() * getBeamZoverA(beam); }
float getBeamEnergyPerNucleonInGeV(int beam) const { return getBeamEnergyPerZinGeV() * getBeamZoverA(beam); }
/// calculate center of mass energy per nucleon collision
float getSqrtS() const;
/// helper function for BunchFilling
Expand Down Expand Up @@ -119,6 +126,14 @@ inline float GRPLHCIFData::getBeamZoverA(beamDirection b) const
return a ? getBeamZ(b) / static_cast<float>(a) : 0.f;
}

//______________________________________________
inline float GRPLHCIFData::getBeamZoverA(int b) const
{
// Z/A of beam 0 or 1
int a = getBeamA(b);
return a ? getBeamZ(b) / static_cast<float>(a) : 0.f;
}

} // namespace parameters
} // namespace o2
#endif
4 changes: 2 additions & 2 deletions DataFormats/Parameters/src/GRPLHCIFData.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ void GRPLHCIFData::setBeamAZ()
float GRPLHCIFData::getSqrtS() const
{
// get center of mass energy
double e0 = getBeamEnergyPerNucleon(BeamC);
double e1 = getBeamEnergyPerNucleon(BeamA);
double e0 = getBeamEnergyPerNucleonInGeV(BeamC);
double e1 = getBeamEnergyPerNucleonInGeV(BeamA);
if (e0 <= MassProton || e1 <= MassProton) {
return 0.f;
}
Expand Down

0 comments on commit d0b1b9c

Please sign in to comment.