ATLAS Offline Software
|
Luminosity-dependent pileup offset correction conditions object. More...
#include <CaloBCIDLumi.h>
Public Member Functions | |
CaloBCIDLumi (const CaloBCIDCoeffs &coeffs, const BunchCrossingCondData &bcData) | |
Constructor (for MC). More... | |
CaloBCIDLumi (const CaloBCIDCoeffs &coeffs, const LuminosityCondData &lumiData) | |
Constructor (for data). More... | |
void | calc (const size_t bcid, const float averageInteractionsPerCrossing, CxxUtils::vec_aligned_vector< float > &out) const |
Perform the calculation for a given BCID. More... | |
Private Member Functions | |
void | initLumi (const std::vector< float > &lumiVec) |
Initialize m_lumiData . More... | |
Private Attributes | |
std::vector< float > | m_lumiData |
Per-BCID luminosities. Padded at the start and end as described above. More... | |
const float * | m_lumi = nullptr |
Pointer to the luminosity data for BCID 0 (after initial padding). More... | |
const CaloBCIDCoeffs & | m_coeffs |
Associated coefficients conditions object. More... | |
Luminosity-dependent pileup offset correction conditions object.
This implements the cell-by-cell luminosity-dependent offset correction for adjacent bunches. This was previously implemented as an algorithm (CaloBCIDAvgAlg), but it took too long to be usable in the trigger. We can, however, speed it up drastically by preformatting the constant data and saving it in a conditions object. The per-bunch luminosity data are stored here. The processed calibration/shape information is stored in a separate conditions object CaloBCIDCoeffs, as it has a different lifetime.
The per-bunch luminosity vector is considered to be circular. To make this more efficient, we allocate a bit more than is needed, and duplicate the entries at the ends:
bcid[NBCID-nbefore, NBCID) bcid[0, NBCID) bcid [0, nafter)
where nbefore is nshapes-1 and nafter is nsamples_coeff-1.
Definition at line 46 of file CaloBCIDLumi.h.
CaloBCIDLumi::CaloBCIDLumi | ( | const CaloBCIDCoeffs & | coeffs, |
const BunchCrossingCondData & | bcData | ||
) |
Constructor (for MC).
coeffs | Corresponding coefficiencts conditions object. |
bcData | Flags of occupied bunches. |
Definition at line 23 of file CaloBCIDLumi.cxx.
CaloBCIDLumi::CaloBCIDLumi | ( | const CaloBCIDCoeffs & | coeffs, |
const LuminosityCondData & | lumiData | ||
) |
Constructor (for data).
coeffs | Corresponding coefficiencts conditions object. |
lumiData | Per-bunch luminosity information. |
Definition at line 50 of file CaloBCIDLumi.cxx.
void CaloBCIDLumi::calc | ( | const size_t | bcid, |
const float | averageInteractionsPerCrossing, | ||
CxxUtils::vec_aligned_vector< float > & | out | ||
) | const |
Perform the calculation for a given BCID.
bcid | Desired BCID. |
averageInteractionsPerCrossing | Scale to be applied to all outputs. |
out | Output per-cell offsets. |
Definition at line 94 of file CaloBCIDLumi.cxx.
|
private |
Initialize m_lumiData
.
lumiVec | Per-BCID luminosities. |
Definition at line 62 of file CaloBCIDLumi.cxx.
|
private |
Associated coefficients conditions object.
Definition at line 95 of file CaloBCIDLumi.h.
|
private |
Pointer to the luminosity data for BCID 0 (after initial padding).
Definition at line 91 of file CaloBCIDLumi.h.
|
private |
Per-BCID luminosities. Padded at the start and end as described above.
Definition at line 87 of file CaloBCIDLumi.h.