CbmRoot
Loading...
Searching...
No Matches
_GTestCbmStsParAsic.cxx
Go to the documentation of this file.
1/* Copyright (C) 2016-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: David Gutierrez [committer] */
4
5#include "CbmStsParAsic.h"
6#include "gtest/gtest.h"
7
8#include <gtest.h>
9
10
11static const CbmStsParAsic par_asic(128, 31, 75000, 3000, 5, 800, 0, 0);
12
13TEST(_GTestCbmStsParAsic, ExaustiveChargeConvertion)
14{
15 for (uint16_t adc = 0; adc < par_asic.GetNofAdc(); adc++) {
16 const auto q = par_asic.AdcToCharge(adc);
17 const auto adc_ = par_asic.ChargeToAdc(q);
18 ASSERT_EQ(adc_, adc);
19 }
20}
21
22TEST(_GTestCbmStsParAsic, AdcBelowLimit)
23{
24 const double adc = 0;
25 ASSERT_LT(par_asic.AdcToCharge(adc), par_asic.GetThreshold());
26}
27
28TEST(_GTestCbmStsParAsic, AdcAboveLimit)
29{
30 const double adc = 32;
31 ASSERT_GT(adc, par_asic.GetNofAdc());
33}
34
35TEST(_GTestCbmStsParAsic, ChargeBelowLimit)
36{
37 const double q = 2000;
38 ASSERT_LT(q, par_asic.GetThreshold());
39 ASSERT_EQ(par_asic.ChargeToAdc(q), 0);
40}
41
42TEST(_GTestCbmStsParAsic, ChargeAboveLimit)
43{
44 const double q = 80000;
45 ASSERT_GT(q, par_asic.GetThreshold() + par_asic.GetDynRange());
46 ASSERT_EQ(par_asic.ChargeToAdc(q), 31);
47}
TEST(_GTestCbmStsParAsic, ExaustiveChargeConvertion)
static const CbmStsParAsic par_asic(128, 31, 75000, 3000, 5, 800, 0, 0)
Parameters of the STS readout ASIC.
double GetDynRange() const
Dynamic range of ADC.
uint16_t GetNofAdc() const
Number of ADC channels.
double AdcToCharge(uint16_t adc) const
Charge from ADC channel (mean)
double GetThreshold() const
ADC Threshold.
uint16_t ChargeToAdc(double charge) const
ADC channel for a given charge.