SiPM Model

SiPM model

The model used is extracted from S. Seifert et al, "Simulation of Silicon Photomultiplier Signals", IEEE trans. on nucl. science, vol. 56, no. 6, dec. 2009, p3726-3733.

logo

The switch is closed by an incoming trigger and opened when the current flowing through it is bellow a given value Iq.

Model parameters

The parameters have been characterized at 20C before irradiation for Hamamatsu :
Parameter Value (Hamamatsu) Value (Ketek)
Vbias 72.9 29
Rd 800 210
Vbr -71.6 -24
Rq 60e+3 633e+3
Cg 21.5e-12 58e-12
Cd 0.131e-12 0.250e-12
Cq 0.015e-12 0.020e-12
N 96 88
Iq 0.7e-3 4e-3
For example, the bias voltage Vbias is 72.9 with a breakdown voltage Vbr 1.2 to 1.3V bellow (71.6V). The gain in these condition is 9*10^5 e/PE (with e = 1.602*10^-19 C, the charge per fired cell is then Qc = 1.44*10^-13 C).

Model comparison

The comparison have been done with Guido measurement on 50Ohms for Ketek (left) and Hamamatsu (right) :

logo: logo

Verilog-a model


`include "constants.vams"
`include "disciplines.vams"

module sipmmodel(p,n,csw);
  inout p, n;
  inout [0:87] csw;
  
  electrical p,n, p2, n2;
  electrical [0:87] csw;
  electrical [0:95] inode;

  electrical [0:87] inodebr;
  electrical [0:87] inodesw;


  parameter real Cg=58e-12 from [0:inf);
  parameter real Cq=20e-15 from [0:inf);
  parameter real Rq=633e3 from [0:inf);
  parameter real Cd=250e-15 from [0:inf);
  
  parameter real Rd=210 from [0:inf);
  parameter real Vbr=-24;
  parameter real Iq=4e-3 from [0:inf);

  parameter real Vthre = 0.5 from [0:inf);

  parameter integer N = 88 from [88:inf);

  genvar i;

  analog begin
    // Capacite parasite
    I(p,n) <+ ddt(Cg*V(p,n));

    // Cellule SiPM
    for(i=0;i<88;i=i+1)
    begin
      I(p,inode[i]) <+ ddt(Cq*V(p,inode[i]));
      I(p,inode[i]) <+ V(p,inode[i])/Rq;

      I(inode[i],n) <+ ddt(Cd*V(inode[i],n));
      if (V(csw[i]) > Vthre)
      begin
        V(inode[i], inodesw[i]) <+ 0.0;
      end
      else
      begin
        if (abs(I(inode[i], inodesw[i])) > Iq)
        begin
          V(inode[i], inodesw[i]) <+ 0.0;
        end
        else
        begin
          I(inode[i], inodesw[i]) <+ 0;
        end
      end
      V(inodesw[i],inodebr[i]) <+ Vbr;
      I(inodebr[i],n) <+ V(inodebr[i],n)/Rd;
    end

    if (N==96)
    begin
      V(p,p2) <+ 0.0;
      V(n2,n) <+ 0.0;
    end
    else
    begin
      I(p,p2) <+ 0;
      I(n2,n) <+ 0;
    end
    
    for(i=88;i<96;i=i+1)
    begin
      I(p2,inode[i]) <+ ddt(Cq*V(p2,inode[i]));
      I(p2,inode[i]) <+ V(p2,inode[i])/Rq;
      I(inode[i],n2) <+ ddt(Cd*V(inode[i],n2));
    end
  end

endmodule

Note 1 : n has to be put at Vbias Note 2 : p is the SiPM output

Note 3 : csw allow to choose which cell is fired (active when V(csw) > 0.5V)

Topic attachments
I Attachment History Action Size Date Who CommentSorted ascending
PNGpng hama.png r1 manage 48.7 K 2013-07-15 - 16:57 ChanalHerve  
PNGpng ketek.png r1 manage 41.4 K 2013-07-15 - 16:57 ChanalHerve  
PNGpng sipmModel2.png r1 manage 17.1 K 2013-01-24 - 10:28 ChanalHerve  
Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2018-11-27 - BlakeLeverington
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback