Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-07-01 07:56:36

0001 #include "waveform_fit_base.h"
0002 #include "max_sample_fit.h"
0003 
0004 #include <iostream>
0005 
0006 max_sample_fit::max_sample_fit() : waveform_fit_base{} {
0007     max_sample_value = 0;
0008     pedestal_value = 0;
0009 
0010     saturated = false;
0011     stale = true;
0012 }
0013 
0014 max_sample_fit::~max_sample_fit() {
0015 }
0016 
0017 void max_sample_fit::fit() {
0018     if (waveform.empty()) {
0019         std::cerr << "Waveform has not been set" << std::endl;
0020         return;
0021     }
0022     pedestal_value      = waveform[0];
0023     max_sample_value    = waveform[0];
0024     for (size_t i = 0; i < waveform.size(); ++i) {
0025         if (waveform[i] > max_sample_value) {
0026             max_sample_value = waveform[i];
0027         }
0028         if (waveform[i] > 1000) {  // Check for saturation. TODO: Make this a parameter
0029             saturated = true;
0030         }
0031     }
0032     E = max_sample_value - pedestal_value;  // The energy is the maximum sample value minus the pedestal
0033     fit_ndf = -1;
0034     fit_chi2 = -1;  // Not applicable for max sample fit
0035     stale = false;
0036 }
0037 
0038 int max_sample_fit::get_pedestal() {
0039     if (stale) {
0040         return -1;
0041     }
0042     return pedestal_value;
0043 }