Project
Loading...
Searching...
No Matches
testSampaBunchCrossingCounter.cxx
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
14
15#define BOOST_TEST_MODULE Test MCHRaw SampaBunchCrossingCounter
16#define BOOST_TEST_MAIN
17#define BOOST_TEST_DYN_LINK
18
19#include <boost/test/unit_test.hpp>
22
23using namespace o2::mch::raw;
24
25constexpr uint32_t BXMAX = (1 << 20) - 1;
26
27BOOST_AUTO_TEST_SUITE(o2_mch_raw)
28
29BOOST_AUTO_TEST_SUITE(sampatime)
30
31BOOST_AUTO_TEST_CASE(SampaBunchCrossingCounterToIRConversionMustThrowIfBxDoesNotFitIn20Bits)
32{
33 uint32_t bx = BXMAX + 1;
34 BOOST_CHECK_THROW(orbitBC(bx, 0),
35 std::invalid_argument);
36}
37
38BOOST_AUTO_TEST_CASE(SampaBunchCrossingCounterToIRConversionMustNotThrowIfBxFitIn20Bits)
39{
40 uint32_t bx = BXMAX;
42}
43
44BOOST_AUTO_TEST_CASE(SampaBunchCrossingCounterSpansABitLessThan294Orbits)
45{
46 uint32_t bx = BXMAX;
47 auto [orbit, bc] = orbitBC(bx, 0);
50}
51
52BOOST_AUTO_TEST_CASE(Orbit294BC759MakesSampaBXCounterRolloverFromFirstOrbitZero)
53{
54 auto bx = sampaBunchCrossingCounter(294, 759, 0);
55 BOOST_CHECK_EQUAL(bx, 0);
56}
57
58BOOST_AUTO_TEST_CASE(Orbit294BC759MakesSampaBXCounterRolloverFromAnyFirstOrbit)
59{
60 uint32_t firstOrbit = 12345;
61 auto bx = sampaBunchCrossingCounter(294 + firstOrbit, 759, firstOrbit);
62 BOOST_CHECK_EQUAL(bx, 0);
63}
64
65BOOST_AUTO_TEST_SUITE_END()
66BOOST_AUTO_TEST_SUITE_END()
uint64_t orbit
Definition RawEventData.h:6
uint64_t bc
Definition RawEventData.h:5
uint20_t sampaBunchCrossingCounter(uint32_t orbit, uint16_t bc, uint32_t firstOrbit)
std::tuple< uint32_t, uint16_t > orbitBC(uint20_t bunchCrossing, uint32_t firstOrbit)
BOOST_AUTO_TEST_CASE(FlatHisto)
constexpr uint32_t BXMAX
BOOST_CHECK_NO_THROW(algorithm::merge(target, other))
BOOST_CHECK_EQUAL(triggersD.size(), triggers.size())