File indexing completed on 2024-04-06 12:08:30
0001 #ifndef DQM_SiStripCommissioningAnalysis_Utility_H
0002 #define DQM_SiStripCommissioningAnalysis_Utility_H
0003
0004 #include "DataFormats/SiStripCommon/interface/SiStripConstants.h"
0005 #include <vector>
0006 #include <cmath>
0007 #include <cstdint>
0008
0009 namespace sistrip {
0010
0011 class LinearFit {
0012 public:
0013 LinearFit();
0014
0015 ~LinearFit() { ; }
0016
0017 class Params {
0018 public:
0019 uint16_t n_;
0020 float a_;
0021 float b_;
0022 float erra_;
0023 float errb_;
0024 Params()
0025 : n_(sistrip::invalid_),
0026 a_(sistrip::invalid_),
0027 b_(sistrip::invalid_),
0028 erra_(sistrip::invalid_),
0029 errb_(sistrip::invalid_) {
0030 ;
0031 }
0032 ~Params() { ; }
0033 };
0034
0035 void add(const float& value_x, const float& value_y);
0036
0037 void add(const float& value_x, const float& value_y, const float& error_y);
0038
0039 void fit(Params& fit_params);
0040
0041 private:
0042 std::vector<float> x_;
0043 std::vector<float> y_;
0044 std::vector<float> e_;
0045 float ss_;
0046 float sx_;
0047 float sy_;
0048 };
0049
0050 class MeanAndStdDev {
0051 public:
0052 MeanAndStdDev();
0053
0054 ~MeanAndStdDev() { ; }
0055
0056 class Params {
0057 public:
0058 float mean_;
0059 float rms_;
0060 float median_;
0061 Params() : mean_(sistrip::invalid_), rms_(sistrip::invalid_), median_(sistrip::invalid_) { ; }
0062 ~Params() { ; }
0063 };
0064
0065 void add(const float& value, const float& error);
0066
0067 void fit(Params& fit_params);
0068
0069 private:
0070 float s_;
0071 float x_;
0072 float xx_;
0073 std::vector<float> vec_;
0074 };
0075
0076 }
0077
0078 #endif