45 digitContainer.
reset();
47 const std::vector<int> MCevent = {1, 250, 3, 62, 1000};
48 const std::vector<int> MCtrack = {22, 3, 4, 23, 523};
49 const std::vector<int> cru = {0, 0, 0, 0, 0};
50 const std::vector<int> Time = {231, 2, 500, 230, 1};
51 const std::vector<int> Row = {12, 5, 6, 2, 6};
52 const std::vector<int> Pad = {1, 15, 14, 23, 5};
53 const std::vector<int> nEle = {60, 100, 250, 1023, 2};
55 const std::vector<int> timeMapping = {4, 1, 3, 0, 2};
57 for (
int i = 0;
i < cru.size(); ++
i) {
62 std::vector<Digit> mDigitsArray;
63 std::vector<o2::tpc::CommonMode> commonMode;
64 digitContainer.
fillOutputContainer(mDigitsArray, mMCTruthArray, commonMode, 0, 0,
true,
true);
66 for (
size_t i = 0;
i < commonMode.size(); ++
i) {
67 auto digit = mDigitsArray[
i];
68 const CRU cru = digit.getCRU();
69 const auto gemStack = cru.
gemStack();
71 BOOST_CHECK_CLOSE(commonMode[
i].getCommonMode(), digit.getChargeFloat() * 0.5f / nPads, 1E-6);
77 for (
auto& digit : mDigitsArray) {
78 const int trueDigit = timeMapping[
digits];
79 gsl::span<const o2::MCCompLabel> mcArray = mMCTruthArray.getLabels(
digits);
80 for (
int j = 0; j < static_cast<int>(mcArray.size()); ++
j) {
81 BOOST_CHECK(mMCTruthArray.getElement(mMCTruthArray.getMCTruthHeader(
digits).index +
j).getTrackID() ==
83 BOOST_CHECK(mMCTruthArray.getElement(mMCTruthArray.getMCTruthHeader(
digits).index +
j).getEventID() ==
87 BOOST_CHECK(digit.getTimeStamp() == Time[trueDigit]);
104 digitContainer.
reset();
108 const std::vector<int> MCevent = {1, 62, 1, 62, 62, 50, 62, 1, 1, 1};
109 const std::vector<int> MCtrack = {22, 3, 22, 3, 3, 70, 3, 7, 7, 7};
112 const std::vector<int> cru = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
113 const std::vector<int> Time = {231, 231, 231, 231, 231, 231, 231, 231, 231, 231};
114 const std::vector<int> Row = {11, 11, 11, 11, 11, 11, 11, 11, 11, 11};
115 const std::vector<int> Pad = {15, 15, 15, 15, 15, 15, 15, 15, 15, 15};
116 const std::vector<int> nEle = {60, 1, 252, 10, 2, 3, 5, 25, 24, 23};
120 const std::vector<int> MCeventSorted = {62, 1, 1, 50};
121 const std::vector<int> MCtrackSorted = {3, 7, 22, 70};
123 for (
int i = 0;
i < cru.size(); ++
i) {
129 for (
int j = 0;
j < MCevent.size(); ++
j) {
134 std::vector<Digit> mDigitsArray;
135 std::vector<o2::tpc::CommonMode> commonMode;
136 digitContainer.
fillOutputContainer(mDigitsArray, mMCTruthArray, commonMode, 0, 0,
true,
true);
140 std::array<float, GEMSTACKSPERSECTOR> chargeSum;
143 for (
const auto& digit : mDigitsArray) {
145 const auto& mcArray = mMCTruthArray.getLabels(
digits);
146 BOOST_CHECK(mcArray.size() == MCtrackSorted.size());
147 for (
int j = 0; j < static_cast<int>(mcArray.size()); ++
j) {
159 const CRU cru = digit.getCRU();
160 const auto gemStack = cru.
gemStack();
161 chargeSum[gemStack] += digit.getChargeFloat() * 0.5f;
165 for (
size_t i = 0;
i < commonMode.size(); ++
i) {
167 BOOST_CHECK_CLOSE(commonMode[
i].getCommonMode(), chargeSum[
i] / nPads, 1E-6);
void fillOutputContainer(std::vector< Digit > &output, dataformats::MCTruthContainer< MCCompLabel > &mcTruth, std::vector< CommonMode > &commonModeOutput, const Sector §or, TimeBin eventTimeBin=0, bool isContinuous=true, bool finalFlush=false)