FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndEmcCR2RCPulseshape Class Reference

Pulseshape from an CR2RC-Shaper. More...

#include <PndEmcCR2RCPulseshape.h>

Inheritance diagram for PndEmcCR2RCPulseshape:
PndEmcAbsPulseshape

Public Member Functions

 PndEmcCR2RCPulseshape ()
 
 PndEmcCR2RCPulseshape (double Tint, double Tdif, double Tsig)
 
virtual ~PndEmcCR2RCPulseshape ()
 
virtual double operator() (const double t, const double amp, const double toffset) const
 
virtual double value (const double t, const double amp, const double toffset) const
 

Private Member Functions

double general_solution (const double t, const double amp, const double toffset) const
 
double degenerate_solution (const double t, const double amp, const double toffset) const
 

Private Attributes

double fTint
 
double fTdif
 
double fTsig
 

Detailed Description

Pulseshape from an CR2RC-Shaper.

Definition at line 23 of file PndEmcCR2RCPulseshape.h.

Constructor & Destructor Documentation

PndEmcCR2RCPulseshape::PndEmcCR2RCPulseshape ( )

Definition at line 23 of file PndEmcCR2RCPulseshape.cxx.

PndEmcCR2RCPulseshape::PndEmcCR2RCPulseshape ( double  Tint,
double  Tdif,
double  Tsig 
)

Definition at line 28 of file PndEmcCR2RCPulseshape.cxx.

References fTdif, fTint, and fTsig.

29  : fTint(Tint), fTdif(Tdif), fTsig(Tsig)
30 {
31  assert(fTint!=fTsig && fTdif!=fTsig);
32 }
virtual PndEmcCR2RCPulseshape::~PndEmcCR2RCPulseshape ( )
inlinevirtual

Definition at line 30 of file PndEmcCR2RCPulseshape.h.

30 {;}

Member Function Documentation

double PndEmcCR2RCPulseshape::degenerate_solution ( const double  t,
const double  amp,
const double  toffset 
) const
private

Definition at line 63 of file PndEmcCR2RCPulseshape.cxx.

References exp(), fTdif, and fTsig.

Referenced by operator()().

66 {
67  double dt=t-toffset;
68  if(dt<0) return 0; // piecewise definition!
69 
70  double l_shaper=1.0/fTdif;
71  double l_sig=1.0/fTsig;
72 
73  double dl=l_sig-l_shaper;
74 
75  double term1 = (exp(-l_shaper*dt)*(dl*dl*dt*dt/2.0 - dl*dt + 1.0 ) -
76  exp(-l_sig*dt));
77 
78  return amp*term1;
79 }
friend F32vec4 exp(const F32vec4 &a)
Definition: P4_F32vec4.h:109
TTree * t
Definition: bump_analys.C:13
double PndEmcCR2RCPulseshape::general_solution ( const double  t,
const double  amp,
const double  toffset 
) const
private

Definition at line 43 of file PndEmcCR2RCPulseshape.cxx.

References exp(), fTdif, fTint, and fTsig.

Referenced by operator()().

46 {
47  double dt=t-toffset;
48  if(dt<0) return 0; // piecewise definition!
49 
50  double l_int=1.0/fTint;
51  double l_dif=1.0/fTdif;
52  double l_sig=1.0/fTsig;
53 
54  double term1=exp(-dt*l_int)*(l_sig-l_dif)*(dt-1/(l_sig-l_int)-1/(l_dif-l_int));
55  double term2=exp(-dt*l_dif)*(l_sig-l_int)/(l_dif-l_int);
56  double term3=exp(-dt*l_sig)*(l_dif-l_int)/(l_sig-l_int);
57 
58  return amp/((l_sig-l_dif)*(l_sig-l_int)*(l_dif-l_int))*(term1+term2-term3);
59 }
friend F32vec4 exp(const F32vec4 &a)
Definition: P4_F32vec4.h:109
TTree * t
Definition: bump_analys.C:13
double PndEmcCR2RCPulseshape::operator() ( const double  t,
const double  amp,
const double  toffset 
) const
virtual

Implements PndEmcAbsPulseshape.

Definition at line 35 of file PndEmcCR2RCPulseshape.cxx.

References degenerate_solution(), fTdif, fTint, and general_solution().

36  {
37  if(fTint==fTdif)return degenerate_solution(t,amp,toffset);
38  return general_solution(t,amp,toffset);
39 }
double general_solution(const double t, const double amp, const double toffset) const
TTree * t
Definition: bump_analys.C:13
double degenerate_solution(const double t, const double amp, const double toffset) const
virtual double PndEmcAbsPulseshape::value ( const double  t,
const double  amp,
const double  toffset 
) const
inlinevirtualinherited

Definition at line 37 of file PndEmcAbsPulseshape.h.

References PndEmcAbsPulseshape::operator()().

Referenced by PndEmcWaveform::AddShapedElecNoiseAndDigitise(), PndEmcFullStackedWaveformSimulator::CalcSingleWaveForTime(), PndEmcWaveform::MakeWaveform(), and PndEmcFadcFilter::SetupMatchedFilter().

39  {return operator()(t,amp,toffset);}
TTree * t
Definition: bump_analys.C:13
virtual double operator()(const double t, const double amp, const double toffset) const =0

Member Data Documentation

double PndEmcCR2RCPulseshape::fTdif
private
double PndEmcCR2RCPulseshape::fTint
private

Definition at line 48 of file PndEmcCR2RCPulseshape.h.

Referenced by general_solution(), operator()(), and PndEmcCR2RCPulseshape().

double PndEmcCR2RCPulseshape::fTsig
private

The documentation for this class was generated from the following files: