GosSiP  1.32
sipmMC Class Reference

#include <sipmMC.h>

Public Member Functions

 sipmMC ()
 
 ~sipmMC ()
 
double Generate (PhotonList photons)
 
double GetCharge ()
 
GCharge GetChargeDecomp ()
 
double GetGate ()
 
HitMatrixGetHitMatrix ()
 
int GetNpix ()
 
int GetParaFile (const char *filename)
 
TF1 * GetPulseShape ()
 
double GetSampling ()
 
TGraph * GetWaveform ()
 
void SetCutoff (double Cutoff)
 
void SetGate (double Gate, bool gateCut=true)
 
void SetGeometry (string Geometry)
 
void SetGeometry (TH2I *hgeometry)
 
void SetPreGate (double preGate)
 
void SetPulseShape (double Tau1, double Tau2)
 
void SetPulseShape (TF1 *pulse_shape)
 
void SetSampling (double Sampling)
 
void SetSpectralSensitivity (TGraph *spect)
 
void SetSpectralSensitivity (const char *file)
 
void UpdatePulseShape ()
 

Public Attributes

double EN
 
double ENF
 
double gain
 
double jitter
 
double noiseRMS
 
int NpixX
 
int NpixY
 
double Pap_f
 
double Pap_s
 
double PDE
 
double Pxt
 
double signalAmp
 
double tau_ap_f
 
double tau_ap_s
 
double tau_dr
 
double tau_recovery
 
double xSipm
 
double ySipm
 

Detailed Description

Main SiPM simulation class

Generates the waveform and charge from a photon list

Constructor & Destructor Documentation

sipmMC::sipmMC ( )

Here is the call graph for this function:

sipmMC::~sipmMC ( )

Member Function Documentation

double sipmMC::Generate ( PhotonList  photons)

Generates SiPM response

operation over-voltage:

has to be 1!!! (only for custom voltage dependence of parameters important)

detected photons:

apply spectral sensitivity if set

photon is not detected

No time offset...signal can appear before photon time stamp! =)

NO JITTER FOR CT and AP implemented yet!

darkrate:

crosstalk & afterpulses (& amplituden):

pixel recovery:

PDE reduced due to pixel recovery:

Dark-rate reduced due to pixel recovery:

amplitude:

recovery

Not effected by jitter!

events in pre_gate

Not effected by jitter!

formular from amplitude = (gain + enf)*Vover/Vop - overflow

= (gain + enf)*Vover/Vop - (gain + enf)*Vover/Vop*overflow/amplitude

= gain*Vover/Vop*(1-overflow/amplitude) + enf*Vover/Vop*(1-overflow/amplitude)

crosstalk:

afterpulses:

mark hit as processed:

Add electronic noise:

Here is the caller graph for this function:

double sipmMC::GetCharge ( )
inline

Returns signal charge

GCharge sipmMC::GetChargeDecomp ( )
inline

Returns decomposition of the signal charge

Here is the caller graph for this function:

double sipmMC::GetGate ( )
inline

Returns length of integration gate in ns

HitMatrix* sipmMC::GetHitMatrix ( )
inline

Returns hitmatrix

Here is the caller graph for this function:

int sipmMC::GetNpix ( )
inline

Returns number of pixels of the SiPM

int sipmMC::GetParaFile ( const char *  filename)

Sets SiPM parameters from config file. Returns 0 if successfull, returns 1 if file not found.

check if file exists

get rid of commented and empty lines

stop at end of file

get config parameter (string before '=')

get config parameter value (string after '=')

remove tabs and whitespaces

assign variable

TF1* sipmMC::GetPulseShape ( )
inline

Returns single pixel waveform

double sipmMC::GetSampling ( )
inline

Returns sampling rate

Here is the caller graph for this function:

TGraph * sipmMC::GetWaveform ( )

Returns simulated signal waveform

reset g_waveform

add random noise to waveform

Here is the caller graph for this function:

void sipmMC::SetCutoff ( double  Cutoff)

Sets pixel waveform cutoff

void sipmMC::SetGate ( double  Gate,
bool  gateCut = true 
)

Sets integration gate. (For information on "gateCut" see HitMatrix class)

Here is the caller graph for this function:

void sipmMC::SetGeometry ( string  Geometry)

Sets pixel arrangement. Only "square" implemented at the moment

void sipmMC::SetGeometry ( TH2I *  hgeometry)

Sets custom pixel arrangement from TH2I

void sipmMC::SetPreGate ( double  preGate)

Sets time period before integration.

void sipmMC::SetPulseShape ( double  Tau1,
double  Tau2 
)

Sets double exponential single pixel waveform with time constants "Tau1", "Tau2". "Sampling" is the sampling time of the simualtion in ns. Waveform is cut off at a fraction "cutOff" of the amplitude

void sipmMC::SetPulseShape ( TF1 *  pulse_shape)

Sets single pixel waveform from TF1

void sipmMC::SetSampling ( double  Sampling)

Sets waveform sampling

void sipmMC::SetSpectralSensitivity ( TGraph *  spect)

Sets the spectral sensitivity via a TGraph

void sipmMC::SetSpectralSensitivity ( const char *  file)

Sets the spectral sensitivity via a text file

void sipmMC::UpdatePulseShape ( )

Builds g_pulse_charge

find pulse shape function amplitude and range

find pulse shape cutoff

calculate pulse charge graph

normalize to 1

Member Data Documentation

double sipmMC::EN

Electronic noise (=pedestal noise)

double sipmMC::ENF

Excess noise (=gain fluctuations)

double sipmMC::gain

Gain

double sipmMC::jitter

Jitter of rising edge tau1

double sipmMC::noiseRMS

RMS of noise

int sipmMC::NpixX

Number of pixels in x. Disregarded when SetGeometry( TH2I* hgeometry ) is used.

int sipmMC::NpixY

Number of pixels in y. Disregarded when SetGeometry( TH2I* hgeometry ) is used.

double sipmMC::Pap_f

After-pulse probability (fast)

double sipmMC::Pap_s

After-pulse probability (slow)

double sipmMC::PDE

Photon detection efficiency

double sipmMC::Pxt

Cross-talk probability (probability for one ore more cross-talk events per avalanche)

double sipmMC::signalAmp

Singel pixel signal amplitude

double sipmMC::tau_ap_f

After-pulse time constant (fast)

double sipmMC::tau_ap_s

After-pulse time constant (slow)

double sipmMC::tau_dr

Thermal pulse time constant

double sipmMC::tau_recovery

Pixel recovery time

double sipmMC::xSipm

Size of active area in x

double sipmMC::ySipm

Size of active area in y


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