Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 09:39:17

0001 // Base class for waveform fitting
0002 
0003 #pragma once
0004 
0005 #include <vector>
0006 #include <map>
0007 
0008 class waveform_fit_base {
0009 public:
0010     waveform_fit_base();
0011     virtual ~waveform_fit_base() = default;
0012     
0013     // Configure the fitting
0014     virtual void set_waveform(const std::vector<int> &waveform);    // virtual so it can be overwriten, but not pure virtual
0015     virtual void set_parameter(int parameter, double value);
0016     virtual double get_parameter(int parameter);
0017     virtual int get_pedestal() = 0;
0018     virtual void fit() = 0;                                         // pure virtual so it must be overwritten
0019     
0020     bool is_stale() { return stale; }
0021     double get_E();
0022     double get_fit_ndf();
0023     double get_fit_chi2();
0024 
0025 protected:
0026     std::vector<int> waveform;
0027     std::map<int, double> parameters;
0028     
0029     bool stale;
0030     double E;
0031     double fit_ndf;
0032     double fit_chi2;
0033 };