PulseShaper.h
Go to the documentation of this file.
1 #ifndef PULSESHAPER_H
2 #define PULSESHAPER_H
3 
4 //////////////////////////////////////////////////////////////////////////
5 /// \brief Class for generating ASIC traces including the effect //
6 /// of the pre-amplifier and the energy dependent fall time //
7 /// seen on the JINR test stand. //
8 /// \author aurisaam@ucmail.uc.edu //
9 /// \date //
10 //////////////////////////////////////////////////////////////////////////
11 
12 
13 #include <utility>
14 #include <list>
15 #include <vector>
16 
17 #include "IPulseShaper.h"
18 #include "fhiclcpp/ParameterSet.h"
19 
20 namespace art { class ParameterSet; }
21 
22 namespace rsim {
23 
24  class PulseShaper: public IPulseShaper
25  {
26  public:
27  explicit PulseShaper(const fhicl::ParameterSet& pset);
28  virtual ~PulseShaper() {}
29 
30  void Reset();
31  double Step(double xNext, double dt);
32  double NextPreAmp() {return fPre[4];}
33  double NextRise() {return fRise[2];}
34  double NextRiseDot() {return fRiseDot[2];}
35 
36  std::vector<double> CreateTrace( std::list< std::pair<double,double> >& ADCPulses, std::list< std::pair<double,double> >& SaggedPulses );
37 
38  protected:
39  double fI;
40  double fR;
41  double fFInt;
42  double fFSlope;
43  double fMaxStep;
44 
45  double fIInv;
46  double fRInv;
47  double fFInv;
48 
49  double fDt;
50  double fTime;
51  std::vector<double> fInput;
52  std::vector<double> fPre;
53  std::vector<double> fRise;
54  std::vector<double> fRiseDot;
55  std::vector<double> fShape;
56  };
57 }
58 #endif
double NextRiseDot()
Definition: PulseShaper.h:34
double NextRise()
Definition: PulseShaper.h:33
std::vector< double > fRise
Definition: PulseShaper.h:53
Common configuration params for SimpleReadout, FPGAAlgorithms, NoiseMaker.
Definition: Cand.cxx:23
void Reset()
std::vector< double > fInput
Definition: PulseShaper.h:51
std::vector< double > fPre
Definition: PulseShaper.h:52
double NextPreAmp()
Definition: PulseShaper.h:32
virtual ~PulseShaper()
Definition: PulseShaper.h:28
Service to store calibration data products (CDP) in the SQLite3 metadatabase of a file...
Definition: FillParentInfo.h:8
std::vector< double > fShape
Definition: PulseShaper.h:55
std::vector< double > fRiseDot
Definition: PulseShaper.h:54