12#ifndef BMNALIGNRESULT_H
13#define BMNALIGNRESULT_H
123 throw std::runtime_error(
"BmnAlignResult: assignment between objects with different alphaCount");
125 fL.ResizeTo(other.
fL);
149 [](
const std::pair<Int_t, Double_t>& a,
const std::pair<Int_t, Double_t>& b)
noexcept {
150 return a.second < b.second;
160 throw std::runtime_error(
"BmnAlignResult: detectorIndex out of range");
161 fMSE[detectorIndex] += val;
187 static ULong_t sHistCounter{0};
188 return ++sHistCounter;
char * Form(const char *fmt,...)
TVectorT< Double_t > TVectorD
#define BMN_RESIDUALS_BINS
ROOT::Math::SVector< Double_t, BMN_GLPARAMS_TOTAL > SVectGLT
ROOT::Math::SVector< Double_t, BMN_GLOBAL_PARAMS_PD > SVectGL
#define BMN_RESIDUALS_RANGE_X
#define BMN_RESIDUALS_RANGE_Y
ROOT::Math::SVector< Double_t, BMN_LOCAL_PARAMS_PT > SVectLC
#define BMN_GLOBAL_PARAMS_PD
IdxValuePair_t GetSortedMSE() const
VectorSVectLC_t & Alpha() noexcept
BmnAlignResult(Int_t TrackCount)
Double_t GetValueMSE(Int_t index) const noexcept
TVectorD & SVDSig() noexcept
SVectGL & A(Int_t index) noexcept
SVectLC & Alpha(Int_t index) noexcept
std::array< Double_t, BMN_MODULE_COUNT > ArrayDouble_t
std::array< std::pair< Int_t, Double_t >, BMN_MODULE_COUNT > IdxValuePair_t
TH1D & ResidualsX() noexcept
~BmnAlignResult()=default
std::array< SVectLC, BMN_MODULE_COUNT > ArraySVectLC_t
TH1D & ResidualsY() noexcept
std::array< SVectGL, BMN_MODULE_COUNT > ArraySVectGL_t
BmnAlignResult(const BmnAlignResult &other)
BmnAlignResult & operator=(const BmnAlignResult &other)
Int_t GetAlphaCount() const noexcept
Double_t GetValueMSE() const noexcept
ULong_t GetHistCounter() const noexcept
std::vector< SVectLC > VectorSVectLC_t
void AddValueMSE(Int_t detectorIndex, Double_t val)