 |
Belle II Software
release-05-01-25
|
25 struct PackedAutoCovariance {
34 class ECLAutoCovariance:
public TObject {
50 if (cellID < 1 || cellID > 8736)
return m_acov[0];
57 if (cellID < 1 || cellID > 8736)
return;
59 acov[0] =
static_cast<double>(tempPacked.sigmaNoiseSq);
60 const double norm = acov[0] * (1.0 / 32767);
61 for (
int i = 0; i < 30; i++) acov[i + 1] = norm * static_cast<double>(tempPacked.packedCovMat[i]);
67 if (cellID < 1 || cellID > 8736)
return;
68 const double norm = 32767 / acov[0];
70 tempPacked.sigmaNoiseSq =
static_cast<float>(acov[0]);
71 for (
int i = 0; i < 30; i++)
72 tempPacked.packedCovMat[i] =
static_cast<short int>(std::max(-32767.0, std::min(acov[i + 1] * norm, 32767.0)));
short int packedCovMat[30]
packed covariance, the range [-1.0, 1.0] is mapped to [-32767, 32767]
ECLAutoCovariance()
Default constructor.
PackedAutoCovariance m_acov[8736]
Packed autocovariance matrix for each crystal.
ClassDef(ECLAutoCovariance, 1)
ClassDef.
Abstract base class for different kinds of events.
void getAutoCovariance(const int cellID, double acov[31]) const
Get auto covariance for a channel.
const PackedAutoCovariance & getPacked(const int cellID) const
Get packed autocovariance.
float sigmaNoiseSq
sigma noise squared in ADC channels
void setAutoCovariance(const int cellID, const double acov[31])
Set auto covariance for a channel.
ClassDef(PackedAutoCovariance, 1)
ClassDef to make streamer.
Covariance matrices for offline ECL waveform fit.
~ECLAutoCovariance()
Destructor.