Belle II Software  release-05-02-19
softwareTriggerResult.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2016 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Nils Braun *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #include <mdst/dataobjects/SoftwareTriggerResult.h>
12 #include <gtest/gtest.h>
13 
14 using namespace std;
15 
16 namespace Belle2 {
21  namespace SoftwareTrigger {
23  TEST(SoftwareTriggerResultTest, basic)
24  {
25  SoftwareTriggerResult result;
26 
27  // First result: an accept result
28  result.addResult("cutOne", SoftwareTriggerCutResult::c_accept, SoftwareTriggerCutResult::c_accept);
29 
30  EXPECT_EQ(SoftwareTriggerCutResult::c_accept, result.getResult("cutOne"));
31  EXPECT_EQ(SoftwareTriggerCutResult::c_accept, result.getNonPrescaledResult("cutOne"));
32  EXPECT_THROW(result.getResult("cutTwo"), std::out_of_range);
33 
34  // Another first result: a reject result
35  result.clear();
36  result.addResult("cutOne", SoftwareTriggerCutResult::c_reject, SoftwareTriggerCutResult::c_reject);
37 
38  EXPECT_EQ(SoftwareTriggerCutResult::c_reject, result.getResult("cutOne"));
39  EXPECT_EQ(SoftwareTriggerCutResult::c_reject, result.getNonPrescaledResult("cutOne"));
40 
41  // Another first result: a don't know result
42  result.clear();
43  result.addResult("cutOne", SoftwareTriggerCutResult::c_noResult);
44 
45  EXPECT_EQ(SoftwareTriggerCutResult::c_noResult, result.getResult("cutOne"));
46 
47  // The default for non-prescaled should be noResult
48  result.clear();
49  result.addResult("cutOne", SoftwareTriggerCutResult::c_accept);
50 
51  EXPECT_EQ(SoftwareTriggerCutResult::c_accept, result.getResult("cutOne"));
52  EXPECT_EQ(SoftwareTriggerCutResult::c_noResult, result.getNonPrescaledResult("cutOne"));
53 
54  // Three result
55  result.clear();
56 
57  result.addResult("cutOne", SoftwareTriggerCutResult::c_accept, SoftwareTriggerCutResult::c_reject);
58  result.addResult("cutTwo", SoftwareTriggerCutResult::c_noResult, SoftwareTriggerCutResult::c_accept);
59  result.addResult("cutThree", SoftwareTriggerCutResult::c_reject);
60 
61  EXPECT_EQ(SoftwareTriggerCutResult::c_accept, result.getResult("cutOne"));
62  EXPECT_EQ(SoftwareTriggerCutResult::c_reject, result.getNonPrescaledResult("cutOne"));
63  EXPECT_EQ(SoftwareTriggerCutResult::c_noResult, result.getResult("cutTwo"));
64  EXPECT_EQ(SoftwareTriggerCutResult::c_accept, result.getNonPrescaledResult("cutTwo"));
65  EXPECT_EQ(SoftwareTriggerCutResult::c_reject, result.getResult("cutThree"));
66  EXPECT_EQ(SoftwareTriggerCutResult::c_noResult, result.getNonPrescaledResult("cutThree"));
67  }
68  }
70 }
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TEST
TEST(TestgetDetectorRegion, TestgetDetectorRegion)
Test Constructors.
Definition: utilityFunctions.cc:18