3.3. G4Sipm config file model

The G4SipmModel is one of the most important classes of G4Sipm. It stores all properties of the SiPM.

3.3.1. Working conditions

The model stores the working conditions of the SiPM: environmental temperature and bias voltage.

The environmental temperature can be set via the G4SipmModel::setTemperature() function, the bias voltage with G4SipmModel::setBiasVoltage(). The over-voltage of the SiPM is the difference between the bias voltage and the breakdown voltage

3.3.2. SiPM properties

The model also stores the following properties of SiPMs

  • breakdown voltage
  • number of cells
  • cell pitch
  • geometrical fill factor
  • thermal noise rate
  • effective dead time of the cells during the avalanche breakdown
  • recovery time of the cells
  • optical crosstalk probability
  • time constants and probabilities of the long and the short afterpulsing component
  • variance of the gain
  • photon detection efficiency as a function of the photon wavelength
  • thickness of the entrance window

It also holds a reference to G4SipmGainMapModel and G4SipmVoltageTraceModel.

3.3.3. Config file example

# Properties file for a Hamamtsu S10362-11-100C SiPM.
#
# References:
# P. Hallen, Determination of the Recovery Time of Silicon Photomultipliers, bachelor thesis, III. Phys. Inst. A, RWTH Aachen University, Sep 2011.
# M. Lauscher, Characterisation Studies of Silicon Photomultipliers for the Detection of Fluorescence Light from Extensive Air Showers, III. Phys. Inst. A, RWTH Aachen University, Jan 2012.
#

name:	Hamamatsu_S10362-11-100C						

# Setup parameters.
temperature:	20. * Celsius										
biasVoltage:	73. * V	
deadTime: 3. * picosecond
gainVariation: 1. * %

# Geometry.							
thickness:	0.1 * mm										
numberOfCells:	100										
cellPitch:	0.1 * mm										
fillFactor:	78.5 * %
windowThickness: 0.5 * mm
windowRefractiveIndex: 1.41	

# Voltage trace parameters.
# The amplitude of the pulse.	
voltageTrace-amplitude:	14.1e-3 * volt
# The time constants of the rising and the falling component.	
voltageTrace-tauFall:	43.6 * ns
voltageTrace-tauRise:	8.1 * ns
# The time difference between two voltage entries of the trace.	
voltageTrace-timeBinWidth:	1. * ns
# Baseline.	
voltageTrace-v0:	4.7e-3 * volt
# White noise.	
voltageTrace-whiteNoiseSigma:	1e-3 * volt
# Precision in bit of the voltage trace measurement.
voltageTrace-precision:	12								

# Operation parameters.					
operatingParameters:	tabular										
	entry	overVoltage / V	breakDownVoltage / V	temperature / Celsius	thermalNoiseRate / Hz	crossTalkProbability / %	afterPulseProbLong / %	afterPulseProbShort / %	afterPulseTauLong / ns	afterPulseTauShort / ns	recoveryTime / ns
	1	0.8	71.5	25.5	494000	8.63891	9.424030	7.710570	129.4	43.7	41.1
	1	0.9	71.5	25.5	508000	10.4349	11.22517	9.184230	162.0	48.4	41.1
	1	1.0	71.5	25.5	648000	12.1126	13.65793	11.17467	112.8	40.3	41.1
	1	1.1	71.5	25.5	655000	13.7848	16.03894	13.12277	127.9	42.1	41.1
	1	1.2	71.5	25.5	775000	15.4505	18.57405	15.19695	119.2	45.0	41.1
	1	1.3	71.5	25.5	799000	16.9318	21.56655	17.64536	125.9	40.8	41.1
	1	1.4	71.5	25.5	956000	18.1540	23.64654	19.34717	121.3	43.7	41.1
	1	1.5	71.5	25.5	924000	19.3662	26.01786	21.28734	123.1	44.5	41.1
	1	1.6	71.5	25.5	1057000	20.3590	28.65891	23.44820	111.7	40.6	41.1
	1	1.7	71.5	25.5	995000	21.0974	30.57439	25.01541	129.6	44.7	41.1
	1	1.8	71.5	25.5	1103000	21.6948	33.25718	27.21042	110.1	36.0	41.1


# Photon detection efficiency for each entry in tabular "operationParameters".
photonDetectionEfficiency:	tabular										
	entry	wavelength / nm	efficiency / %
	1	319.490	9.18187959596
	1	320.882	9.79401373737
	1	322.274	10.2530812121
	1	323.666	12.7016177778
	1	326.450	14.3849535354
	1	327.842	14.9970876768
	1	329.234	16.2213559596
	1	330.626	16.833490101
	1	332.019	18.0576921212
	1	332.019	18.0576921212
	1	333.411	19.281960404
	1	334.803	19.8940945455
	1	336.195	20.9652961616
	1	337.587	21.577430303
	1	338.979	22.1895644444
	1	340.371	22.8016985859
	1	343.155	23.4138327273
	1	344.548	24.0259668687
	1	345.940	24.4850343434
	1	348.724	25.0971684848
	1	351.508	25.5562359596
	1	355.684	26.015369697
	1	358.469	26.4744371717
...

3.3.4. Source

Inherited by G4SipmConfigFileModel, G4SipmGenericSipmModel, HamamatsuS1036211100, HamamatsuS1036233050, HamamatsuS1036233100, HamamatsuS10985100 and HamamatsuS12651050.

class G4SipmModel

SiPM model.

Subclassed by G4SipmConfigFileModel, G4SipmGenericSipmModel, HamamatsuS1036211100, HamamatsuS12573100C, HamamatsuS12573100X, HamamatsuS12651050

Public Functions

G4SipmModel(G4SipmGainMapModel *gainMapModel, G4SipmVoltageTraceModel *voltageTraceModel)

Constructor.

Parameters
  • gainMapModel: - the gain map model.
  • voltageTraceModel: - the voltage trace model.

double getPitch() const

Return
double - the complete pitch of the SiPM.

CLHEP::Hep2Vector getCellPosition(G4SipmCellId cellId) const

Return
Hep2Vector - the position relative to the center.
Parameters
  • cellId: - the id of the cell.

G4SipmCellId getCellId(const double x, const double y, bool respectFillFactor = false) const

Return
G4SipmCellId - the corresponding cell id.
Parameters
  • x: - the x coordinate.
  • y: - the y coordinate.
  • respectFillFactor: - set true to return an invalid cell id if the coordinates are not in an active area.

bool isValidCellId(const G4SipmCellId cellId) const

Return
bool - true if the cellId is valid.
Parameters
  • cellId: - the cellId.

double getGain(const G4SipmCellId cellId) const

Return
double - the gain of the cell.
Parameters
  • cellId: - the cellId.

double getOverVoltage() const

Return
double - the current overvoltage.

virtual std::string getName() const = 0

Return
string - the name of the model.

virtual double getBreakdownVoltage() const = 0

Return
double - the current breakdown voltage.

virtual unsigned int getNumberOfCells() const = 0

Return
unsigned int - the number of cells.

virtual double getCellPitch() const = 0

Return
double - the pitch of a single cell.

virtual double getThermalNoiseRate() const = 0

Return
double - the thermal noise rate.

virtual double getDeadTime() const = 0

Return
double - the dead time of a SiPM cell.

virtual double getRecoveryTime() const = 0

Return
double - the recovery time of the SiPM cell gain.

virtual double getCrossTalkProbability() const = 0

Return
double - the crosstalk probability.

virtual double getApProbLong() const = 0

Return
double - the probability for long time constant afterpulses.

virtual double getApProbShort() const = 0

Return
double - the probability for short time constant afterpulses.

virtual double getApTauLong() const = 0

Return
double - the time constant of long time constant afterpulses.

virtual double getApTauShort() const = 0

Return
double - the time constant of short time constant afterpulses.

virtual double getFillFactor() const = 0

Return
double - the fill factor.

virtual double getGainVariation() const = 0

Return
double - the gain variance.

virtual double getPhotonDetectionEfficiency(double wavelength) const = 0

Return
double - the photon detection efficiency.
Parameters
  • wavelength: - the photon wavelength.

G4Material *getMaterial() const

Return
G4Material - the material of the chip.

double getThickness() const

Return
double - the thickness of the chip.

G4Material *getWindowMaterial() const

Return
G4Material - the material of the window.

double getWindowThickness() const

Return
double - the window thickness.

double getTemperature() const

Return
double - the current temperature of the chip.

void setTemperature(double temperature)

Parameters
  • temperature: - the temperature to set.

double getBiasVoltage() const

Return
double - the bias voltage.

void setBiasVoltage(double biasVoltage)

Parameters
  • biasVoltage: - the biasVoltage to set.

G4SipmGainMapModel *getGainMapModel() const

Return
G4SipmGainMapModel - the gain map model.

G4SipmVoltageTraceModel *getVoltageTraceModel() const

Return
G4SipmVoltageTraceModel - the voltage trace model.