Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:57:47

0001 #ifndef TMatacq_H
0002 #define TMatacq_H
0003 
0004 #include "TObject.h"
0005 
0006 class TMatacq : public TObject {
0007 public:
0008   static constexpr int NMAXSAMP = 100;
0009   static constexpr int NSPARAB = 16;
0010 
0011 private:
0012   int fNsamples;
0013   int fNum_samp_bef_max;
0014   int fNum_samp_aft_max;
0015 
0016   int firstsample, lastsample, samplemax, presample, endsample;
0017   int bing[101];
0018   double nsigcut;
0019   double level1, level2, level3;
0020   double bong[NMAXSAMP];
0021   double t[NSPARAB], val[NSPARAB];
0022   double fv1[NSPARAB], fv2[NSPARAB], fv3[NSPARAB];
0023   double bl, sigbl, val_max;
0024   double ampl, timeatmax;
0025   double pkval, sigpkval;
0026   double trise;
0027   double width20, width50, width80;
0028   double meantrise, sigtrise;
0029 
0030   int nevmtq0, nevmtq1, nevlasers;
0031   int status[1200];
0032   double comp_trise[1200], comp_peak[1200];
0033   double slidingmean;
0034   int nslide;
0035 
0036   double interpolate(double);
0037 
0038 public:
0039   // Default Constructor, mainly for Root
0040   TMatacq(int, int, int, int, int, int, int, int, int, int, int);
0041 
0042   // Destructor: Does nothing
0043   ~TMatacq() override;
0044 
0045   // Initialize
0046   void init();
0047 
0048   int rawPulseAnalysis(Int_t, Double_t*);  // GHM
0049   int findPeak();
0050   int doFit();
0051   int compute_trise();
0052 
0053   void enterdata(Int_t);
0054   int countBadPulses(Int_t);
0055   void printmatacqData(Int_t, Int_t, Int_t);
0056   void printitermatacqData(Int_t, Int_t, Int_t);
0057 
0058   int getPt1() { return firstsample; }
0059   int getPt2() { return lastsample; }
0060   int getPtm() { return samplemax; }
0061 
0062   double getBaseLine() { return bl; }
0063   double getsigBaseLine() { return sigbl; }
0064 
0065   double getTimpeak() { return pkval; }
0066   double getsigTimpeak() { return sigpkval; }
0067 
0068   double getAmpl() { return ampl; }
0069   double getTimax() { return timeatmax; }
0070 
0071   double getTrise() { return trise; }
0072   double getFwhm() { return width50; }
0073   double getWidth20() { return width20; }
0074   double getWidth80() { return width80; }
0075   double getSlide() { return slidingmean; }
0076 
0077   ClassDefOverride(TMatacq, 0)
0078 };
0079 
0080 #endif