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

Pulseshape from an CRRC-Shaper. More...

#include <PndEmcCRRCPulseshape.h>

Inheritance diagram for PndEmcCRRCPulseshape:
PndEmcAbsPulseshape

Public Member Functions

 PndEmcCRRCPulseshape ()
 
 PndEmcCRRCPulseshape (double Tint, double Tdif, double Tsig)
 
virtual ~PndEmcCRRCPulseshape ()
 
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 CRRC-Shaper.

Definition at line 25 of file PndEmcCRRCPulseshape.h.

Constructor & Destructor Documentation

PndEmcCRRCPulseshape::PndEmcCRRCPulseshape ( )

Definition at line 26 of file PndEmcCRRCPulseshape.cxx.

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

Definition at line 31 of file PndEmcCRRCPulseshape.cxx.

References fTdif, fTint, and fTsig.

32  : fTint(Tint), fTdif(Tdif), fTsig(Tsig)
33 {
34  assert(fTint!=fTsig && fTdif!=fTsig);
35 }
virtual PndEmcCRRCPulseshape::~PndEmcCRRCPulseshape ( )
inlinevirtual

Definition at line 32 of file PndEmcCRRCPulseshape.h.

32 {;}

Member Function Documentation

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

Definition at line 60 of file PndEmcCRRCPulseshape.cxx.

References exp(), fTint, and fTsig.

Referenced by operator()().

63 {
64  double dt=t-toffset;
65  if(dt<0) return 0; // piecewise definition!
66  double term1=exp(-dt/fTsig)*fTsig;
67  double term2=exp(-dt/fTint)*(fTint*(dt-fTsig)-dt*fTsig)/fTint;
68  double term3=fTint-fTsig;
69  term3*=term3;
70  return amp*fTint/term3*(term1+term2);
71 }
friend F32vec4 exp(const F32vec4 &a)
Definition: P4_F32vec4.h:109
TTree * t
Definition: bump_analys.C:13
double PndEmcCRRCPulseshape::general_solution ( const double  t,
const double  amp,
const double  toffset 
) const
private

Definition at line 46 of file PndEmcCRRCPulseshape.cxx.

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

Referenced by operator()().

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

Implements PndEmcAbsPulseshape.

Definition at line 38 of file PndEmcCRRCPulseshape.cxx.

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

39  {
40  if(fTint==fTdif)return degenerate_solution(t,amp,toffset);
41  return general_solution(t,amp,toffset);
42 }
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
TTree * t
Definition: bump_analys.C:13
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 PndEmcCRRCPulseshape::fTdif
private

Definition at line 51 of file PndEmcCRRCPulseshape.h.

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

double PndEmcCRRCPulseshape::fTint
private
double PndEmcCRRCPulseshape::fTsig
private

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