Skip to content

Commit 55607cf

Browse files
committed
Add methods to get beam energy in GeV, make getSqrtS to return GeV/nucleon pair
1 parent 938075e commit 55607cf

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

DataFormats/Parameters/include/DataFormatsParameters/GRPLHCIFData.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class GRPLHCIFData
4141

4242
std::pair<long, int32_t> getBeamEnergyPerZWithTime() const { return mBeamEnergyPerZ; }
4343
int32_t getBeamEnergyPerZ() const { return mBeamEnergyPerZ.second; }
44+
float getBeamEnergyPerZinGeV() const { return mBeamEnergyPerZ.second * 0.12; }
4445
long getBeamEnergyPerZTime() const { return mBeamEnergyPerZ.first; }
4546
void setBeamEnergyPerZWithTime(std::pair<long, int32_t> p) { mBeamEnergyPerZ = p; }
4647
void setBeamEnergyPerZWithTime(long t, int32_t v) { mBeamEnergyPerZ = std::make_pair(t, v); }
@@ -84,12 +85,18 @@ class GRPLHCIFData
8485
/// getters/setters for given beam A and Z info, encoded as A<<16+Z
8586
int getBeamZ(beamDirection beam) const { return mBeamAZ[static_cast<int>(beam)] & 0xffff; }
8687
int getBeamA(beamDirection beam) const { return mBeamAZ[static_cast<int>(beam)] >> 16; }
88+
int getBeamZ(int beam) const { return mBeamAZ[beam] & 0xffff; }
89+
int getBeamA(int beam) const { return mBeamAZ[beam] >> 16; }
8790
float getBeamZoverA(beamDirection beam) const;
91+
float getBeamZoverA(int beam) const;
8892
void setBeamAZ(int a, int z, beamDirection beam) { mBeamAZ[static_cast<int>(beam)] = (a << 16) + z; }
8993
void setBeamAZ(beamDirection beam);
9094
void setBeamAZ();
9195
/// getters/setters for beam energy per charge and per nucleon
9296
float getBeamEnergyPerNucleon(beamDirection beam) const { return mBeamEnergyPerZ.second * getBeamZoverA(beam); }
97+
float getBeamEnergyPerNucleon(int beam) const { return mBeamEnergyPerZ.second * getBeamZoverA(beam); }
98+
float getBeamEnergyPerNucleonInGeV(beamDirection beam) const { return getBeamEnergyPerZinGeV() * getBeamZoverA(beam); }
99+
float getBeamEnergyPerNucleonInGeV(int beam) const { return getBeamEnergyPerZinGeV() * getBeamZoverA(beam); }
93100
/// calculate center of mass energy per nucleon collision
94101
float getSqrtS() const;
95102
/// helper function for BunchFilling
@@ -119,6 +126,14 @@ inline float GRPLHCIFData::getBeamZoverA(beamDirection b) const
119126
return a ? getBeamZ(b) / static_cast<float>(a) : 0.f;
120127
}
121128

129+
//______________________________________________
130+
inline float GRPLHCIFData::getBeamZoverA(int b) const
131+
{
132+
// Z/A of beam 0 or 1
133+
int a = getBeamA(b);
134+
return a ? getBeamZ(b) / static_cast<float>(a) : 0.f;
135+
}
136+
122137
} // namespace parameters
123138
} // namespace o2
124139
#endif

DataFormats/Parameters/src/GRPLHCIFData.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ void GRPLHCIFData::setBeamAZ()
6060
float GRPLHCIFData::getSqrtS() const
6161
{
6262
// get center of mass energy
63-
double e0 = getBeamEnergyPerNucleon(BeamC);
64-
double e1 = getBeamEnergyPerNucleon(BeamA);
63+
double e0 = getBeamEnergyPerNucleonInGeV(BeamC);
64+
double e1 = getBeamEnergyPerNucleonInGeV(BeamA);
6565
if (e0 <= MassProton || e1 <= MassProton) {
6666
return 0.f;
6767
}

0 commit comments

Comments
 (0)