3.5. G4Sipm gain map model

Due to imperfections and electrical noise, the gain is not homogeneous over the whole SiPM surface. Two implementations are available: G4SipmRandomGainMapModel and G4G4SipmGaussianGainMapModel.

3.5.1. Random gain map model

Picks the gain out of a Gaussian distribution with mean \mu = 1 and standard deviation \sigma equal to the G4SipmModel::getGainVariation(). The individual gains stay the same over the whole simulation time.

3.5.2. Gaussian gain map model

Some SiPM models have a lower gain to the edges of the chip. The gain is a 2D Gaussian function f(x,y) with f(0,0)=1+3\sigma and at in the corners f(d,d)=1-3\sigma with the standard deviation \sigma equal to the G4SipmModel::getGainVariation().

3.5.3. Source

class G4SipmGainMapModel

Gain map model base class for the G4Sipm model.

Measurements did reveal a non-constant gain of the SiPM cells. This automatically contributes to the width of the finger spectra recorded with an QDC.

TODO: lazy initialization via the refresh mechanism is too dangerous.

Subclassed by G4SipmGaussianGainMapModel, G4SipmRandomGainMapModel

Public Functions

G4SipmGainMapModel()

Constructor.

virtual void refresh(const G4SipmModel *const model) = 0

Refresh mechanism.

Parameters
  • model: - the SiPM model.

virtual bool needsRefresh() = 0

Return
bool - true if a refresh is required.

virtual double getGain(const G4SipmCellId cellId) const = 0

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