CMS 3D CMS Logo

EcalMultifitConditionsSoA.h
Go to the documentation of this file.
1 #ifndef CondFormats_EcalObjects_EcalMultifitConditionsSoA_h
2 #define CondFormats_EcalObjects_EcalMultifitConditionsSoA_h
3 
4 #include <array>
5 #include <Eigen/Dense>
11 
12 using PulseShapeArray = std::array<float, EcalPulseShape::TEMPLATESAMPLES>;
13 using SampleCorrelationArray = std::array<double, ecalPh1::sampleSize>;
14 
15 using CovarianceMatrix = Eigen::Matrix<float, EcalPulseShape::TEMPLATESAMPLES, EcalPulseShape::TEMPLATESAMPLES>;
16 
17 constexpr size_t kMaxTimeBiasCorrectionBinsEB = 71;
18 constexpr size_t kMaxTimeBiasCorrectionBinsEE = 58;
19 using TimeBiasCorrArrayEB = std::array<float, kMaxTimeBiasCorrectionBinsEB>;
20 using TimeBiasCorrArrayEE = std::array<float, kMaxTimeBiasCorrectionBinsEE>;
21 
23  SOA_COLUMN(uint32_t, rawid),
24  SOA_COLUMN(float, pedestals_mean_x12),
25  SOA_COLUMN(float, pedestals_mean_x6),
26  SOA_COLUMN(float, pedestals_mean_x1),
27  SOA_COLUMN(float, pedestals_rms_x12),
28  SOA_COLUMN(float, pedestals_rms_x6),
29  SOA_COLUMN(float, pedestals_rms_x1),
30  SOA_COLUMN(PulseShapeArray, pulseShapes),
31  // NxN N=templatesamples for each xtal
32  SOA_EIGEN_COLUMN(CovarianceMatrix, pulseCovariance),
33  SOA_COLUMN(float, gain12Over6),
34  SOA_COLUMN(float, gain6Over1),
35  SOA_COLUMN(float, timeCalibConstants),
36  // timeBiasCorrections (fixed since 2011)
37  SOA_SCALAR(TimeBiasCorrArrayEB, timeBiasCorrections_amplitude_EB),
38  SOA_SCALAR(TimeBiasCorrArrayEB, timeBiasCorrections_shift_EB),
39  SOA_SCALAR(TimeBiasCorrArrayEE, timeBiasCorrections_amplitude_EE),
40  SOA_SCALAR(TimeBiasCorrArrayEE, timeBiasCorrections_shift_EE),
41  SOA_SCALAR(size_t, timeBiasCorrectionSizeEB),
42  SOA_SCALAR(size_t, timeBiasCorrectionSizeEE),
43  // Sample correlation scalar: array of 10 values for each gain in EB and EE
44  SOA_SCALAR(SampleCorrelationArray, sampleCorrelation_EB_G12),
45  SOA_SCALAR(SampleCorrelationArray, sampleCorrelation_EB_G6),
46  SOA_SCALAR(SampleCorrelationArray, sampleCorrelation_EB_G1),
47  SOA_SCALAR(SampleCorrelationArray, sampleCorrelation_EE_G12),
48  SOA_SCALAR(SampleCorrelationArray, sampleCorrelation_EE_G6),
49  SOA_SCALAR(SampleCorrelationArray, sampleCorrelation_EE_G1),
50  // Samples Masks
51  SOA_SCALAR(unsigned int, sampleMask_EB),
52  SOA_SCALAR(unsigned int, sampleMask_EE),
53  SOA_SCALAR(float, timeOffset_EB),
54  SOA_SCALAR(float, timeOffset_EE),
55  // offset for hashed ID access to EE items of columns
56  SOA_SCALAR(uint32_t, offsetEE))
57 
59 
60 #endif
constexpr size_t kMaxTimeBiasCorrectionBinsEB
#define GENERATE_SOA_LAYOUT(CLASS,...)
Definition: SoALayout.h:431
#define SOA_SCALAR(TYPE, NAME)
Definition: SoACommon.h:553
std::array< float, kMaxTimeBiasCorrectionBinsEE > TimeBiasCorrArrayEE
std::array< double, ecalPh1::sampleSize > SampleCorrelationArray
std::array< float, EcalPulseShape::TEMPLATESAMPLES > PulseShapeArray
std::array< float, kMaxTimeBiasCorrectionBinsEB > TimeBiasCorrArrayEB
constexpr size_t kMaxTimeBiasCorrectionBinsEE
#define SOA_EIGEN_COLUMN(TYPE, NAME)
Definition: SoACommon.h:555
#define SOA_COLUMN(TYPE, NAME)
Definition: SoACommon.h:554