@@ -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
0 commit comments