LDMX Software
ldmx::HgcrocShape Class Reference

HGCROC pulse, same form as the HgcrocEmulator pulse. More...

#include <PulseShape.h>

Public Member Functions

 HgcrocShape (double rate_up, double time_up, double rate_dn, double time_dn, double time_peak)
 
double eval (double t) const override
 Evaluate the peak-normalised pulse amplitude at time t [ns] after charge arrival.
 
- Public Member Functions inherited from ldmx::PulseShape

Private Attributes

double rate_up_
 
double time_up_
 
double rate_dn_
 
double time_dn_
 
double time_peak_
 
double norm_
 makes eval(0) = 1
 

Additional Inherited Members

- Static Public Member Functions inherited from ldmx::PulseShape
static std::unique_ptr< PulseShape > make (const std::string &name, double tp, double tp2=0.0)
 Factory: construct a pulse shape by name.
 

Detailed Description

HGCROC pulse, same form as the HgcrocEmulator pulse.

f(t) = N / ((1 + exp(ru·(t − tu + tp))) · (1 + exp(rd·(t − td + tp))))

N normalises f(0) = 1, so t is relative to the emulator hit time. Not zero for t < 0.

Definition at line 122 of file PulseShape.h.

Constructor & Destructor Documentation

◆ HgcrocShape()

ldmx::HgcrocShape::HgcrocShape ( double rate_up,
double time_up,
double rate_dn,
double time_dn,
double time_peak )

Definition at line 55 of file PulseShape.cxx.

57 : rate_up_(rate_up),
58 time_up_(time_up),
59 rate_dn_(rate_dn),
60 time_dn_(time_dn),
61 time_peak_(time_peak) {
62 norm_ = (1.0 + std::exp(rate_up_ * (time_peak_ - time_up_))) *
63 (1.0 + std::exp(rate_dn_ * (time_peak_ - time_dn_)));
64}
double norm_
makes eval(0) = 1
Definition PulseShape.h:131

Member Function Documentation

◆ eval()

double ldmx::HgcrocShape::eval ( double t) const
overridevirtual

Evaluate the peak-normalised pulse amplitude at time t [ns] after charge arrival.

Returns 0 for t < 0.

Implements ldmx::PulseShape.

Definition at line 66 of file PulseShape.cxx.

66 {
67 return norm_ / ((1.0 + std::exp(rate_up_ * (t - time_up_ + time_peak_))) *
68 (1.0 + std::exp(rate_dn_ * (t - time_dn_ + time_peak_))));
69}

References norm_.

Member Data Documentation

◆ norm_

double ldmx::HgcrocShape::norm_
private

makes eval(0) = 1

Definition at line 131 of file PulseShape.h.

Referenced by eval().

◆ rate_dn_

double ldmx::HgcrocShape::rate_dn_
private

Definition at line 130 of file PulseShape.h.

◆ rate_up_

double ldmx::HgcrocShape::rate_up_
private

Definition at line 130 of file PulseShape.h.

◆ time_dn_

double ldmx::HgcrocShape::time_dn_
private

Definition at line 130 of file PulseShape.h.

◆ time_peak_

double ldmx::HgcrocShape::time_peak_
private

Definition at line 130 of file PulseShape.h.

◆ time_up_

double ldmx::HgcrocShape::time_up_
private

Definition at line 130 of file PulseShape.h.


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