R3BROOT
R3B analysis software
|
The Digitizing module of NeuLAND (R3B::Neuland::Digitizer) acts as an layer between the Geant4 generated R3BNeulandPoint and the real physical data R3BNeulandHit. The point data generated from the simulation engine contains the energy deposition of different particles. However, the physical hit data calculated through the calibration process don't distinguish the energy depositions among different particles. And the resulting energy deposition of the hit data normally represents total energy deposition of the event. There are other effects from both the scintillators and digitizing channels that could influence times, positions and energies of the final hit. the following sections include detailed information how the digitizing module helps to imitate the real physical processes and reduce the difference between the simulated data and the real data.
The technical programming details of this module are explained in the following document:
The real data digitization of NeuLAND detector involves PMTS and multiple electronic modules, such as FQT, TAMEX-3, slow control units and the "back plates" which holds multiple FQT-TAMEX pairs and manage their communications to the data acquisition system. In this page, these processes are simplified into two different components: paddle and channel. The name "paddle" comes from the old prototype of NeuLAND, in which the scintillators looks like paddles with different values of height and width. the "channel" component incorporates everything between the scintillator output and the storage of the binary data. On the other hand, the Digitizing module needs to provide the data of R3BNeulandHit, which is similar to the step from the calibration process (R3B::Neuland::Cal2HitTask). In the future, the digitizing module may use the same task from the calibration to generate hit level data. For now, it is using its own process to construct the resulting hit level data (see the picture below).
The paddle component in the digitizing module is related to the class R3B::Digitizing::Neuland::Paddle.
The component contains following parameters:
Parameter | Default value | Unit | Explanation |
---|---|---|---|
attenuation | 0.008 | 1/cm | Light attenuation factor |
effective_speed | 8. | cm/ns | Effective speed of light in the scintillator |
time_offset | 0. | ns | Local time offset parameter |
time_sync | 0. | ns | Gloabl time sync parameter |
They are used in three different physical processes:
attenuation is used for calculating the reduction of the light intensity when traveling through the scintillator. The light intensity received by the PMTs on the both ends, \(I_{l/r}\), can be described as:
$$ \begin{align} \label{eq:atten_1} I_{l} &= I_0 \cdot e^{-\alpha(L/2 + x )}\\ \label{eq:atten_2} I_{r} &= I_0 \cdot e^{-\alpha(L/2 - x )} \end{align} $$
with:
Time related parameters like time_offset and time_sync come from the time delays introduced by the different length of the cables connecting to each PMT. The signal time of left/right PMT, \(t_{l/r}\), can be calculated as
$$ \begin{align} t_l &= t + (L/2 - x)/c_e + D_l\\ t_r &= t + (L/2 + x)/c_e + D_r \end{align} $$
with:
By redefining \(D_{l/r}\) in terms of global time synchronization factor ( \(t_\text{sync}\)) and local time offset parameter ( \(t_\text{offset}\)) with:
$$ \begin{align} t_\text{offset} &= D_r - D_l\\ t_\text{sync} &= \left(D_r + D_l\right)/2 \end{align} $$
The signal times of the left and right PMTs can be expressed as:
$$ \begin{align} \label{eq:delay_1} t_l = t + (L/2 + x)/c_e - t_\text{offset}/2 + t_\text{sync}\\ \label{eq:delay_2} t_r = t + (L/2 - x)/c_e + t_\text{offset}/2 + t_\text{sync} \end{align} $$
As can be seen in Fig. 1, the first action of the paddle class is to construct signals (R3B::Digitizing::PaddleSignal) from point data (R3BNeulandPoint). The data representing the paddle signal contains three variables: time, energy deposition and the distance to the center point of the paddle. It should be noticed that except the time value, the position and energy values from the point data cannot be directly used for the paddle signal data. Position values from the point data (see R3BNeulandPoint::GetPosition()) represent global coordinates of the energy depositions and should be converted to local distances to the paddle center with the function R3BNeulandGeoPar::ConvertToLocalCoordinates(). On the other hand, the energy of the point data (obtained by R3BNeulandPoint::GetLightYield()) is in the unit of GeV while the energy of paddle signal is in the unit of MeV. For the next time, the constructed paddle signal is used to calculate the channel signals for the two PMTs on the both ends.
Construction of the channel signals is based on two physical effects:
Each paddle signal generates two channel signals (R3B::Digitizing::ChannelSignal) in total, one for the left side and the other for the right side. The only difference between the constructions of the two channel signals is the opposite sign of the distance to the center point. If the energy deposition happens on the right side of the center point, the distance value is positive and vice versa for the other side.
A paddle hit (R3B::Digitizing::PaddleHit) is constructed by two channel hits. If each channel only has one channel hit, the energy of the constructed paddle hit can be obtained by multiply equation \(\ref{eq:atten_1}\) with equation \(\ref{eq:atten_2}\), which yields:
$$ \begin{equation} I_0 = \sqrt{I_l \cdot I_r} \cdot e^{\alpha L / 2} \end{equation} $$
The position of the paddle hit can be calculated by subtracting equation \(\ref{eq:delay_1}\) from equation \(\ref{eq:delay_2}\):
$$ \begin{equation} \label{eq:position} x = \frac{c_e}{2} (t_l - t_r + t_\text{offset}) \end{equation} $$
where as the time can be obtained from the summation of the two equations:
$$ \begin{equation} t = \frac{t_l + t_r}{2} - \frac{L}{2c_e} -t_\text{sync} \end{equation} $$
Depending on the channel configurations (see Fig. 2 below), especially on the signal pileup strategy, multiple channel hits could be generated in a channel in some rare events. In such case, a matching algorithm could be performed so that only the two channel hits from the same energy deposition are used for the paddle hit construction.
The criterion for recognizing two channel hits caused by the same energy deposition is derived from the division between equation \(\ref{eq:atten_2}\) and \(\ref{eq:atten_1}\), with \(x\) replaced by equation \(\ref{eq:position}\):
$$ \begin{equation} I_r / I_l = e^{\alpha\cdot c_e (t_l - t_r + t_\text{offset})} \end{equation} $$
by putting all variable on the same side, one gets the criterion equation:
$$ \begin{align} I_l / I_r \cdot e^{\alpha c_e (t_l - t_r + t_\text{offset})} - 1 &\rightarrow 0\qquad&\text{if}\quad t_l - t_r + t_\text{offset} > 0 \\ I_r / I_l \cdot e^{\alpha c_e (t_r - t_l - t_\text{offset})} - 1 &\rightarrow 0\qquad&\text{if}\quad t_l - t_r + t_\text{offset} < 0 \end{align} $$
The right match can be found if it has the smallest value from the left side. The reason of the condition on \(t_l - t_r + t_\text{offset}\) is to make sure the wrong match results in a significantly larger value than the right match. If the exponent value \(t_l - t_r + t_\text{offset}\) is a negative value, the exponential value can only be between \(0 \sim 1\), which makes it way harder to distinguish the right match from the wrong one.
The channel component of NeuLAND is implemented in two different classes:
The JSON option tasks.NeulandDigitizer.channel can be specified to choose which of the two classes is used. It's highly recommended to use tamex channel as it implements the functionalities of the latest digitizer, TAMEX-3. For the following sections, details about the tamex channel class are explained.
Parameters can be found in the class R3B::Digitizing::Neuland::Tamex::Params and can be specified by the JSON field tasks.NeulandDigitizer.par in the JSON configuration file.
Parameter | Default value | Unit | Explanation |
---|---|---|---|
energy_gain | 15.0 | ns/MeV | Energy gain paramter |
pedestal | 14.0 | ns | Pedestal (energy baseline) parameter |
energy_res_rel | 0.05 | MeV | Relative energy resolution |
time_res | 0.15 | ns | Time resolution |
pmt_thresh | 1. | MeV | PMT threshold |
saturation_coefficient | 0.012 | Saturation coefficent of the PMT | |
max_time | 1000. | ns | Maximal time |
min_time | 1. | ns | Minimal time |
min_energy | 0.067 | MeV | Minimal energy |
pileup_time_window | 1000. | ns | The time window for the pileup |
pileup_distance | 100. | ns | Distance value for the pileup |
some further information:
The relation between the energy and ToT (time-over-threshold) of the signal can be described with two parameters: energy_gain and pedestal using the equation:
$$ \begin{equation} \label{eq:gain} t_\text{ToT} = G \cdot E + t_0 \end{equation} $$
where \(t_\text{ToT}\) is the time over threshold, \(G\) the gain factor, \(E\) the energy value and \(t_0\) the pedestal value.
The PMT saturation factor saturation_coefficient is to depict the non-linearity between the ToT and its input energy when the energy value is very large. Thus, before applying equation \(\ref{eq:gain}\), a saturated energy is calculated instead:
$$ \begin{equation} \label{eq:sat_energy} E_\text{sat} = \frac{E}{1 + \lambda E} \end{equation} $$
A cal signal is typically constructed by multiple channel signals, as can be seen in Fig. 2 where the multiplicity of the channel signals is substantially reduced before producing channel hits. Each channel signal is usually corresponding to the energy deposition from different particles. But in the real experiment, those signals from different particles are piled up as one single signal. In this Tamex channel module, there are three different ways (see Tamex::PeakPileUpStrategy) to achieve the pileup of particle-induced channel signals: width, distance and time_window.
The procedures to convert channel signals (R3B::Digitizing::ChannelSignal) to the cal signals (R3B::Digitizing::ChannelCalSignal) can be described in order with:
A new channel signal is inputted by calling the private virtual function Tamex::Channel::add_signal. The time of the channel signal is checked whether it follows the condition below:
$$ \begin{equation} t_\text{min} < t < t_\text{max} \end{equation} $$
where \(t_\text{min}\) and \(t_\text{max}\) can be specified by the parameters max_time and min_time. If the condition is not met, the signal will be discarded.
The reason why there is two additional data structures (PMT peaks and FQT peaks) during the conversion from channel signals to Cal signals is based on the different natures of signal pileup in the real experiment. If the leading edges of the two PMT signals are very closed, the energy of the resulting piled-up signal is simply the summation of the two. However, same principle cannot be applied for the two reshaped signals (FQT signals) when they are partially overlapped with each other. Thus, It requires different pileup strategies other than simple summation. The available pileup strategies for the reshaped signals (FQT signals) can be seen in section Pileup strategies below.
Another subtlety should be noted during the conversion from the energy value to the time-over-threshold value. In the calibration algorithm (see R3BNeulandCal2Hit::Exec()), the energy value is calculated with:
$$ \begin{equation} \label{eq:energy} E = \max \{ t_\text{ToT} - t_0, 1 \} / G \end{equation} $$
where \(t_\text{ToT}\), \(G\) and \(t_0\) is the time-over-threshold, PMT gain and pedestal value respectively. Thus the inverse of the relation is undefined for time-over-threshold values smaller than 1 ns. To eliminate this undefined behavior, the conversion from \(t_\text{ToT}\) to the energy isn't exactly the same as equation \(\ref{eq:gain}\), but with an additional condition:
$$ \begin{aligned} t_\text{ToT} &= G \cdot E + t_0 \qquad&\text{if}\quad E > E_\text{min} \\ t_\text{ToT} &= G \cdot E \cdot (t_0 + 1) \qquad&\text{if}\quad E < E_\text{min} \end{aligned} $$
with the minimum energy threshold \(E_\text{min} = 1 / G\) to make sure the conversion is still a continuous function.
The pileup between different signals is the main mechanism to reduce the large multiplicities from the simulator. In the Tamex channel, there are two signals, namely PMT and FQT signals, that are piled up:
The Cal signal data, which only contains time-over-threshold value, leading edge time and the channel side cannot be directly used for the calibration algorithm. However, if one tries to verify the calibration algorithms via the simulated cal level data, the Cal signal data can be converted to the cal level data (Neuland::BarCalData) through a conversion task (Neuland::SimCal2Cal).
Channel hits of the Tamex channel module are constructed from the piled-up FQT signals without reducing the multiplicity during the process (see Tamex::Channel::CreateHit()). It goes through the following processes:
The energy and time values from the FQT peaks are smeared with a Gaussian distribution whose \(\sigma\) value is specified by the parameters energy_res_rel and time_res respectively. For example, the output energy value can also be expressed with the equation below:
$$ \begin{equation} \label{eq:randEnergy} E_\text{smear} \sim \mathcal{N}(E, \sigma^2) \end{equation} $$
where the output smeared energy value is sampled from the Gaussian distribution. Similar equation can also be applied to the time value.
Convert the smeared energy value back to the unsaturated value with the equation:
$$ \begin{equation} E = \frac{E_\text{sat}}{ 1 - E_\text{sat} \cdot \lambda} \end{equation} $$
which is the inverse of equation \(\ref{eq:sat_energy}\).