-
Notifications
You must be signed in to change notification settings - Fork 499
Expand file tree
/
Copy pathtestMCGenId.cxx
More file actions
50 lines (44 loc) · 2.08 KB
/
testMCGenId.cxx
File metadata and controls
50 lines (44 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
#define BOOST_TEST_MODULE Test MCGenId class
#define BOOST_TEST_MAIN
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
#include "SimulationDataFormat/MCGenProperties.h"
using namespace o2::mcgenid;
BOOST_AUTO_TEST_CASE(MCGenId_test)
{
// possible generator IDs range from 0 to 127 (included)
constexpr int highGenerator{128};
// possible sub-generator IDs range from -1 to 30 (included)
constexpr int highSubGenerator{31};
// possible soufce IDs range from 0 to 15 (included)
constexpr int highSource{16};
// test all combinations
for (int sourceId = 0; sourceId < highSource; sourceId++) {
for (int generatorId = 0; generatorId < highGenerator; generatorId++) {
for (int subGeneratorId = -1; subGeneratorId < highSubGenerator; subGeneratorId++) {
auto encoded = getEncodedGenId(generatorId, sourceId, subGeneratorId);
// decode them
auto sourceIdAfter = getSourceId(encoded);
auto generatorIdAfter = getGeneratorId(encoded);
auto subGeneratorIdAfter = getSubGeneratorId(encoded);
std::cout << "SourceID: " << sourceId << " ==> " << sourceIdAfter << "\n"
<< "generatorId: " << generatorId << " ==> " << generatorIdAfter << "\n"
<< "subGeneratorId: " << subGeneratorId << " ==> " << subGeneratorIdAfter << "\n";
// check if original and decoded numbers are the same
BOOST_CHECK(sourceIdAfter == sourceId);
BOOST_CHECK(generatorIdAfter == generatorId);
BOOST_CHECK(subGeneratorId == subGeneratorIdAfter);
}
}
}
}