PandaRoot
PndEmcPSAFPGAPileupAnalyser.h
Go to the documentation of this file.
1 #ifndef PNDEMCFPGAPILEUPANALYSER_HH
2 #define PNDEMCFPGAPILEUPANALYSER_HH
3 
5 #include <string>
6 #include "TRandom.h"
7 #include <fstream>
8 
9 class PndEmcWaveform;
13 class PndEmcPSAFPGAFilterMWDsmooth;
16 class TF1;
17 class TGraph;
18 
19 #define MAX_NUMBER_OF_HITS 1000
20 
22 
23  public:
26  virtual void SetVerbose(Int_t verbose=0) { fVerbose = verbose; }
27 
29 
30  virtual void initFromFile() {};
31  virtual void Init(const std::vector<Double_t> &params, TF1* R_thres, TF1* R_mean, float extBaselineValue=0);
32  virtual void Init(const std::vector<Double_t> &params, TF1* R_thres, TF1* R_mean, unsigned int baselineStartSample, unsigned int baselineStopSample);
33 
34  virtual void GetHit(Int_t i, Double_t &Energy, Double_t &Time);
35  //Collect Hits with pile-up flags
36  virtual void GetHit2(Int_t i, Double_t &Energy, Double_t &Time, Int_t &PileupType);
37 
38  void GetEnergyMeasures(Int_t i, Double_t &Amplitude, Double_t &Integral);
39  virtual void reset();
40  virtual void put(float valueToStore);
41  virtual float baseline() {return baseline_value;};
42 
43 
44 
45 protected:
47 
48  virtual void setBaseline(float newBaseline);
49  virtual void setBaselineWindow(unsigned int startSample, unsigned int stopSample);
50  virtual void InitParameters(const std::vector<Double_t> &params);
51  virtual void Init2(const std::vector<Double_t> &params, TF1* R_thres, TF1* R_mean);
52 
53  Int_t fVerbose;
54  TF1* Int_thres;
55  TF1* Int_mean;
56  TGraph* grxy;
57  unsigned int BaselineStartSample;
58  unsigned int BaselineStopSample;
59  float BaselineSum;
60 
66  double CF_prev_val;
67  double CF_prev_val2;
68  std::ofstream Ratio,MWD,MWD2,Ratio_int;
75  // bool timing_finished_mwd;
77  unsigned int cf_crossing;
78  bool in_cfRise;
80  float sav_mwd;
81  float sav_mwd2;
82  float Square_mwd2;
83  float Square;
84  float t;
85  float t_mwd;
87  float max;
88 float max_mwd2[100];
89 float max_mwd;
90 float R_mwd;
109 
110 
112 };
113 
114 
115 
116 
117 
118 #endif
virtual void Init(const std::vector< Double_t > &params, TF1 *R_thres, TF1 *R_mean, float extBaselineValue=0)
int saved_local_time[MAX_NUMBER_OF_HITS]
virtual void setBaselineWindow(unsigned int startSample, unsigned int stopSample)
PndEmcPSAFPGAFilterMWD * MWD_filter2
virtual void SetVerbose(Int_t verbose=0)
virtual void GetHit2(Int_t i, Double_t &Energy, Double_t &Time, Int_t &PileupType)
virtual void GetHit(Int_t i, Double_t &Energy, Double_t &Time)
Get energy and time of hit.
float signal_buffer[MAX_NUMBER_OF_HITS][MAX_NUMBER_OF_HITS]
void GetEnergyMeasures(Int_t i, Double_t &Amplitude, Double_t &Integral)
unsigned int i
Definition: P4_F32vec4.h:21
#define MAX_NUMBER_OF_HITS
PndEmcPSAFPGAFilterDelay * CF_prev
enum PndEmcPSAFPGAPileupAnalyser::@0 baselineMode
int saved_local_time_mwd[MAX_NUMBER_OF_HITS]
float signal_buffer_mwd2[MAX_NUMBER_OF_HITS][MAX_NUMBER_OF_HITS]
PndEmcPSAFPGAFilterMWD * MWD_filter3
virtual void put(float valueToStore)
PndEmcPSAFPGAFilterMWD * MWD_filter1
represents a simulated waveform in an emc crystal
virtual ~PndEmcPSAFPGAPileupAnalyser()
float signal_buffer_mwd[MAX_NUMBER_OF_HITS][MAX_NUMBER_OF_HITS]
virtual void setBaseline(float newBaseline)
ClassDef(PndEmcPSAFPGAPileupAnalyser, 2)
virtual void InitParameters(const std::vector< Double_t > &params)
int saved_local_time_mwd2[MAX_NUMBER_OF_HITS]
virtual void Init2(const std::vector< Double_t > &params, TF1 *R_thres, TF1 *R_mean)