LDMX Software
SiStripConstants.h
1#pragma once
2
3#include <string_view>
4
5namespace tracking::digitization {
6
7// ---------------------------------------------------------------------------
8// Physical constant
9// ---------------------------------------------------------------------------
10
13inline constexpr double ENERGY_PER_EHP_MEV = 3.62e-6;
14
15// ---------------------------------------------------------------------------
16// Sensor geometry
17// ---------------------------------------------------------------------------
18
20inline constexpr double SENSE_PITCH_MM = 0.030;
22inline constexpr double READOUT_PITCH_MM = 0.060;
24inline constexpr int N_READOUT_STRIPS = 767;
27inline constexpr double SIGMA_V_MM = 20.0;
28
29// ---------------------------------------------------------------------------
30// Sensor operating conditions
31// ---------------------------------------------------------------------------
32
34inline constexpr double BIAS_VOLTAGE_V = 200.0;
36inline constexpr double DEPLETION_VOLTAGE_V = 70.0;
38inline constexpr double TEMPERATURE_K = 300.0;
39
40// ---------------------------------------------------------------------------
41// Readout electronics and sampling
42// ---------------------------------------------------------------------------
43
45inline constexpr std::string_view PULSE_SHAPE_NAME = "CRRC";
47inline constexpr double PEAKING_TIME_NS = 45.0;
49inline constexpr double SECOND_TIME_CONST_NS = 10.0;
51inline constexpr double SAMPLING_INTERVAL_NS = 25.0;
53inline constexpr int N_SAMPLES = 3;
55inline constexpr int ADC_BITS = 14;
57inline constexpr int ADC_PEDESTAL = 0;
59inline constexpr double T0_OFFSET_NS = 0.0;
60
61// ---------------------------------------------------------------------------
62// Front-end gain and charge-to-ADC conversion (HPS SVT APV25 configuration)
63//
64// amplitude [ADC] = (charge / MIP_ELECTRONS)
65// * READOUT_RESISTOR_OHMS * READOUT_INPUT_STAGE_GAIN
66// * 2^ADC_BITS / ADC_FULL_SCALE_MV
67// ---------------------------------------------------------------------------
68
70inline constexpr double MIP_ELECTRONS = 25000.0;
72inline constexpr double READOUT_RESISTOR_OHMS = 100.0;
74inline constexpr double READOUT_INPUT_STAGE_GAIN = 1.5;
76inline constexpr double ADC_FULL_SCALE_MV = 2000.0;
77
80inline constexpr double ADC_ELECTRONS_PER_COUNT =
81 MIP_ELECTRONS / (READOUT_RESISTOR_OHMS * READOUT_INPUT_STAGE_GAIN *
82 (1 << ADC_BITS) / ADC_FULL_SCALE_MV);
83
84// ---------------------------------------------------------------------------
85// Sense-to-readout charge transfer efficiencies (AC-coupled sensor)
86//
87// From HPS CDFSiSensorSim / HpsSiSensor. The transfer_efficiencies matrix
88// is {{readoutTransferEfficiency, senseTransferEfficiency}}.
89//
90// For ratio = readout_pitch / sense_pitch = 2:
91// - Paired sense strips (even index, physically under a readout strip):
92// fraction transferred = READOUT_TRANSFER_EFFICIENCY
93// - Unpaired sense strips (odd index, between two readout strips):
94// fraction transferred to EACH adjacent readout strip
95// = SENSE_TRANSFER_EFFICIENCY (total ≈ 0.838; ~16% lost)
96// ---------------------------------------------------------------------------
97
99inline constexpr double READOUT_TRANSFER_EFFICIENCY = 0.986;
103inline constexpr double SENSE_TRANSFER_EFFICIENCY = 0.419;
104
105// ---------------------------------------------------------------------------
106// Electronics noise and readout threshold
107// ---------------------------------------------------------------------------
108
110inline constexpr double NOISE_ELECTRONS = 1000.0;
112inline constexpr double THRESHOLD_ELECTRONS = 3000.0;
113
115inline constexpr double NOISE_SIGMA_ADC =
116 NOISE_ELECTRONS / ADC_ELECTRONS_PER_COUNT;
119inline constexpr double THRESHOLD_ADC =
120 THRESHOLD_ELECTRONS / ADC_ELECTRONS_PER_COUNT;
121
122} // namespace tracking::digitization