LinearFit

MeanAndStdDev

Params

Params

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
#ifndef DQM_SiStripCommissioningAnalysis_Utility_H
#define DQM_SiStripCommissioningAnalysis_Utility_H

#include "DataFormats/SiStripCommon/interface/SiStripConstants.h"
#include <vector>
#include <cmath>
#include <cstdint>

namespace sistrip {

  class LinearFit {
  public:
    LinearFit();

    ~LinearFit() { ; }

    class Params {
    public:
      uint16_t n_;
      float a_;
      float b_;
      float erra_;
      float errb_;
      Params()
          : n_(sistrip::invalid_),
            a_(sistrip::invalid_),
            b_(sistrip::invalid_),
            erra_(sistrip::invalid_),
            errb_(sistrip::invalid_) {
        ;
      }
      ~Params() { ; }
    };

    void add(const float& value_x, const float& value_y);

    void add(const float& value_x, const float& value_y, const float& error_y);

    void fit(Params& fit_params);

  private:
    std::vector<float> x_;
    std::vector<float> y_;
    std::vector<float> e_;
    float ss_;
    float sx_;
    float sy_;
  };

  class MeanAndStdDev {
  public:
    MeanAndStdDev();

    ~MeanAndStdDev() { ; }

    class Params {
    public:
      float mean_;
      float rms_;
      float median_;
      Params() : mean_(sistrip::invalid_), rms_(sistrip::invalid_), median_(sistrip::invalid_) { ; }
      ~Params() { ; }
    };

    void add(const float& value, const float& error);

    void fit(Params& fit_params);

  private:
    float s_;
    float x_;
    float xx_;
    std::vector<float> vec_;
  };

}  // namespace sistrip

#endif  // DQM_SiStripCommissioningAnalysis_Utility_H