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
7#include <gtest/gtest.h>
8
9
10static const CbmStsParAsic par_asic(128, 31, 75000, 3000, 5, 800, 0, 0);
11
12TEST(_GTestCbmStsParAsic, ExaustiveChargeConvertion)
13{
14 for (uint16_t adc = 0; adc < par_asic.GetNofAdc(); adc++) {
15 const auto q = par_asic.AdcToCharge(adc);
16 const auto adc_ = par_asic.ChargeToAdc(q);
17 ASSERT_EQ(adc_, adc);
18 }
19}
20
21TEST(_GTestCbmStsParAsic, AdcBelowLimit)
22{
23 const double adc = 0;
24 ASSERT_LT(par_asic.AdcToCharge(adc), par_asic.GetThreshold());
25}
26
27TEST(_GTestCbmStsParAsic, AdcAboveLimit)
28{
29 const double adc = 32;
30 ASSERT_GT(adc, par_asic.GetNofAdc());
31 ASSERT_GT(par_asic.AdcToCharge(adc), par_asic.GetThreshold() + par_asic.GetDynRange());
32}
33
34TEST(_GTestCbmStsParAsic, ChargeBelowLimit)
35{
36 const double q = 2000;
37 ASSERT_LT(q, par_asic.GetThreshold());
38 ASSERT_EQ(par_asic.ChargeToAdc(q), 0);
39}
40
41TEST(_GTestCbmStsParAsic, ChargeAboveLimit)
42{
43 const double q = 80000;
44 ASSERT_GT(q, par_asic.GetThreshold() + par_asic.GetDynRange());
45 ASSERT_EQ(par_asic.ChargeToAdc(q), 31);
46}
TEST(_GTestCbmStsParAsic, ExaustiveChargeConvertion)
static const CbmStsParAsic par_asic(128, 31, 75000, 3000, 5, 800, 0, 0)
Parameters of the STS readout ASIC.