11 #include <hlt/softwaretrigger/core/FinalTriggerDecisionCalculator.h>
12 #include <mdst/dataobjects/SoftwareTriggerResult.h>
13 #include <hlt/softwaretrigger/core/SoftwareTriggerDBHandler.h>
14 #include <gtest/gtest.h>
23 namespace SoftwareTrigger {
25 TEST(FinalTriggerDecisionCalculatorTest, basic)
27 SoftwareTriggerResult result;
30 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
true));
31 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
false));
34 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutOne"), SoftwareTriggerCutResult::c_accept);
36 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, result.getResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutOne")));
37 EXPECT_THROW(result.getResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutTwo")), std::out_of_range);
39 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
true));
40 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
false));
44 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutOne"), SoftwareTriggerCutResult::c_reject);
46 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, result.getResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutOne")));
47 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
true));
48 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
false));
52 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutOne"), SoftwareTriggerCutResult::c_noResult);
54 EXPECT_EQ(SoftwareTriggerCutResult::c_noResult, result.getResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutOne")));
55 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
true));
56 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
false));
59 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"other_test",
"cutOne"), SoftwareTriggerCutResult::c_accept);
61 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, result.getResult(SoftwareTriggerDBHandler::makeFullCutName(
"other_test",
"cutOne")));
63 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
true));
64 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
false));
67 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutOne"), SoftwareTriggerCutResult::c_accept);
68 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutTwo"), SoftwareTriggerCutResult::c_noResult);
69 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutThree"), SoftwareTriggerCutResult::c_reject);
71 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, result.getResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutOne")));
72 EXPECT_EQ(SoftwareTriggerCutResult::c_noResult, result.getResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutTwo")));
73 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, result.getResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutThree")));
75 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
true));
76 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
false));
79 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutFour"), SoftwareTriggerCutResult::c_accept);
81 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
true));
82 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
false));
86 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutOne"), SoftwareTriggerCutResult::c_accept);
87 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutTwo"), SoftwareTriggerCutResult::c_accept);
88 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutThree"), SoftwareTriggerCutResult::c_reject);
90 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
true));
91 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
false));
95 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutOne"), SoftwareTriggerCutResult::c_reject);
96 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutTwo"), SoftwareTriggerCutResult::c_accept);
97 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutThree"), SoftwareTriggerCutResult::c_reject);
99 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
true));
100 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
false));
103 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutSix"), SoftwareTriggerCutResult::c_accept);
104 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"test",
"cutSeven"), SoftwareTriggerCutResult::c_accept);
106 EXPECT_EQ(SoftwareTriggerCutResult::c_accept, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
true));
107 EXPECT_EQ(SoftwareTriggerCutResult::c_reject, FinalTriggerDecisionCalculator::getModuleResult(result,
"test",
false));
111 TEST(FinalTriggerDecisionCalculatorTest, result)
113 SoftwareTriggerResult result;
116 EXPECT_EQ(
true, FinalTriggerDecisionCalculator::getFinalTriggerDecision(result));
119 result.addResult(SoftwareTriggerDBHandler::makeFullCutName(
"filter",
"some_cut"), SoftwareTriggerCutResult::c_reject);
120 EXPECT_EQ(
true, FinalTriggerDecisionCalculator::getFinalTriggerDecision(result));
125 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"filter"), SoftwareTriggerCutResult::c_reject);
126 EXPECT_EQ(
false, FinalTriggerDecisionCalculator::getFinalTriggerDecision(result));
130 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"filter"), SoftwareTriggerCutResult::c_accept);
131 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"skim"), SoftwareTriggerCutResult::c_accept);
132 EXPECT_EQ(
true, FinalTriggerDecisionCalculator::getFinalTriggerDecision(result));
136 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"filter"), SoftwareTriggerCutResult::c_reject);
137 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"skim"), SoftwareTriggerCutResult::c_accept);
138 EXPECT_EQ(
false, FinalTriggerDecisionCalculator::getFinalTriggerDecision(result));
142 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"filter"), SoftwareTriggerCutResult::c_accept);
143 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"skim"), SoftwareTriggerCutResult::c_reject);
144 EXPECT_EQ(
true, FinalTriggerDecisionCalculator::getFinalTriggerDecision(result));
149 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"fast_reco"), SoftwareTriggerCutResult::c_reject);
150 EXPECT_EQ(
false, FinalTriggerDecisionCalculator::getFinalTriggerDecision(result));
154 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"fast_reco"), SoftwareTriggerCutResult::c_accept);
155 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"hlt"), SoftwareTriggerCutResult::c_accept);
156 EXPECT_EQ(
true, FinalTriggerDecisionCalculator::getFinalTriggerDecision(result));
160 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"fast_reco"), SoftwareTriggerCutResult::c_reject);
161 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"hlt"), SoftwareTriggerCutResult::c_accept);
162 EXPECT_EQ(
false, FinalTriggerDecisionCalculator::getFinalTriggerDecision(result));
166 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"fast_reco"), SoftwareTriggerCutResult::c_accept);
167 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"hlt"), SoftwareTriggerCutResult::c_accept);
168 result.addResult(SoftwareTriggerDBHandler::makeTotalResultName(
"calib"), SoftwareTriggerCutResult::c_reject);