IPulseShaper.h
Go to the documentation of this file.
1 #ifndef IPULSESHAPER_H
2 #define IPULSESHAPER_H
3 
4 //////////////////////////////////////////////////////////////////////////
5 /// \brief Interface class for pulse shapers //
6 /// \author aurisaam@ucmail.uc.edu //
7 /// \date //
8 //////////////////////////////////////////////////////////////////////////
9 
10 
11 #include <utility>
12 #include <list>
13 #include <vector>
14 
15 #include "fhiclcpp/ParameterSet.h"
16 
17 namespace art { class ParameterSet; }
18 
19 namespace rsim {
20 
21  class IPulseShaper
22  {
23  public:
24  explicit IPulseShaper(const fhicl::ParameterSet& pset);
25  virtual ~IPulseShaper() {}
26 
27  void SetPhase( int Phase ) { fPhase = Phase; }
28  void SetBaseline( double Baseline ) { fBaseline = Baseline; }
29 
30  virtual std::vector<double> CreateTrace( std::list< std::pair<double,double> >& ADCPulses, std::list< std::pair<double,double> >& SaggedPulses ) = 0;
31 
32  protected:
33  std::list< std::pair<double,double> > fClusteredPulses;
34  void ClusterPulses(std::list< std::pair<double,double> >& ADCPulses, std::list< std::pair<double, double> >& SaggedPulses);
35 
37  double fClocktick;
39  int fPhase;
40  double fBaseline;
41 
43  double fnsPerSpill;
44  };
45 }
46 #endif
void SetBaseline(double Baseline)
Definition: IPulseShaper.h:28
Common configuration params for SimpleReadout, FPGAAlgorithms, NoiseMaker.
virtual ~IPulseShaper()
Definition: IPulseShaper.h:25
int fNumClockticksPerDigitization
Definition: IPulseShaper.h:38
void SetPhase(int Phase)
Definition: IPulseShaper.h:27
std::list< std::pair< double, double > > fClusteredPulses
Definition: IPulseShaper.h:33
Service to store calibration data products (CDP) in the SQLite3 metadatabase of a file...
Definition: FillParentInfo.h:8
double fnsPerDigitization
Definition: IPulseShaper.h:42