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

Pulseshape from an APFEL ASIC preamplifier shaper. More...

#include <PndEmcAsicPulseshape.h>

Inheritance diagram for PndEmcAsicPulseshape:
PndEmcAbsPulseshape

Public Member Functions

 PndEmcAsicPulseshape ()
 
 PndEmcAsicPulseshape (double Tint, double Tsig)
 
virtual ~PndEmcAsicPulseshape ()
 
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 fTsig
 

Detailed Description

Pulseshape from an APFEL ASIC preamplifier shaper.

Circuit is described in EMC TDR and consists of charge-sensitive preamplifier, with the following pole-zero cancelation of its feedback ad 3rd order integrator. The pulseshape is determined by the integration time of single intagrator stage and scintillation time of the crystal, with exponential input convoluted with response of the circuit

Definition at line 31 of file PndEmcAsicPulseshape.h.

Constructor & Destructor Documentation

PndEmcAsicPulseshape::PndEmcAsicPulseshape ( )

Definition at line 24 of file PndEmcAsicPulseshape.cxx.

25  : fTint(0), fTsig(0)
26 {
27 }
PndEmcAsicPulseshape::PndEmcAsicPulseshape ( double  Tint,
double  Tsig 
)

Definition at line 29 of file PndEmcAsicPulseshape.cxx.

References fTint, and fTsig.

30  : fTint(Tint), fTsig(Tsig)
31 {
32  assert(fTint!=fTsig);
33 }
virtual PndEmcAsicPulseshape::~PndEmcAsicPulseshape ( )
inlinevirtual

Definition at line 38 of file PndEmcAsicPulseshape.h.

38 {;}

Member Function Documentation

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

Definition at line 66 of file PndEmcAsicPulseshape.cxx.

References exp(), and fTint.

Referenced by operator()().

69 {
70  double dt=t-toffset;
71  if(dt<0) return 0; // piecewise definition!
72 
73  double l_shaper=1.0/fTint;
74 
75  double term1 = exp(-l_shaper*dt)*pow(dt,3);
76 
77  return amp*term1;
78 }
friend F32vec4 exp(const F32vec4 &a)
Definition: P4_F32vec4.h:109
TTree * t
Definition: bump_analys.C:13
double PndEmcAsicPulseshape::general_solution ( const double  t,
const double  amp,
const double  toffset 
) const
private

Definition at line 45 of file PndEmcAsicPulseshape.cxx.

References exp(), fTint, and fTsig.

Referenced by operator()().

48 {
49  double dt=t-toffset;
50  if(dt<0) return 0; // piecewise definition!
51 
52  double l_int=1.0/fTint;
53  double l_sig=1.0/fTsig;
54 
55  double term1=exp(-dt*l_int)*dt*dt*dt/(6*(l_sig-l_int));
56  double term2=exp(-dt*l_int)*dt*dt/(2*pow(l_sig-l_int,2));
57  double term3=exp(-dt*l_int)*dt/(pow(l_sig-l_int,3));
58  double term4=exp(-dt*l_int)/(pow(l_sig-l_int,4));
59  double term5=exp(-dt*l_sig)/(pow(l_sig-l_int,4));
60 
61  return amp*(term1-term2+term3-term4+term5);
62 }
friend F32vec4 exp(const F32vec4 &a)
Definition: P4_F32vec4.h:109
TTree * t
Definition: bump_analys.C:13
double PndEmcAsicPulseshape::operator() ( const double  t,
const double  amp,
const double  toffset 
) const
virtual

Implements PndEmcAbsPulseshape.

Definition at line 36 of file PndEmcAsicPulseshape.cxx.

References degenerate_solution(), fTsig, and general_solution().

37  {
38  if(fTsig==0)return degenerate_solution(t,amp,toffset);
39 
40  return general_solution(t,amp,toffset);
41 }
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 PndEmcAsicPulseshape::fTint
private
double PndEmcAsicPulseshape::fTsig
private

Definition at line 57 of file PndEmcAsicPulseshape.h.

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


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