32 const float xlumiMC = 0.158478605;
36 std::vector<float> lumiVec (MAX_BCID);
37 for (
size_t i = 0; i < MAX_BCID; i++) {
38 lumiVec[i] = bcData.
isFilled(i)*xlumiMC;
65 unsigned int nbefore =
m_coeffs.nshapes()-1;
67 unsigned int nafter =
m_coeffs.nsamples_coeff()-1;
69 m_lumiData.resize (nbefore + lumiVec.size() + nafter);
72 std::copy (lumiVec.end() - nbefore, lumiVec.end(),
76 std::copy (lumiVec.begin(), lumiVec.end(),
80 std::copy (lumiVec.begin(), lumiVec.begin() + nafter,
81 m_lumiData.begin() + nbefore + lumiVec.size());
95 const float averageInteractionsPerCrossing,
102 if (averageInteractionsPerCrossing != 1) {
103 for (
float& o : out) {
104 o *= averageInteractionsPerCrossing;
Replaces the BunchCrossing AlgTool used in run1/2.
Luminosity-dependent pileup offset correction conditions object.
Luminosity-dependent pileup offset correction conditions object.
Hold luminosity data produced by LuminosityCondAlg.
static constexpr int m_MAX_BCID
bool isFilled(const bcid_type bcid) const
The simplest query: Is the bunch crossing filled or not?
Luminosity-dependent pileup offset correction conditions object.
void calc(const size_t bcid, const float averageInteractionsPerCrossing, CxxUtils::vec_aligned_vector< float > &out) const
Perform the calculation for a given BCID.
const float * m_lumi
Pointer to the luminosity data for BCID 0 (after initial padding).
void initLumi(const std::vector< float > &lumiVec)
Initialize m_lumiData.
std::vector< float > m_lumiData
Per-BCID luminosities. Padded at the start and end as described above.
CaloBCIDLumi(const CaloBCIDCoeffs &coeffs, const BunchCrossingCondData &bcData)
Constructor (for MC).
const CaloBCIDCoeffs & m_coeffs
Associated coefficients conditions object.
const std::vector< float > & lbLuminosityPerBCIDVector() const
aligned_vector< T, 64 > vec_aligned_vector
A std::vector with alignment sufficient for any vector instructions on this platform.