10 #include <klm/dataobjects/KLMMuidLikelihood.h>
13 #include <framework/datastore/StoreArray.h>
14 #include <framework/gearbox/Const.h>
21 #include <gtest/gtest.h>
38 DataStore::Instance().setInitializeActive(
true);
41 DataStore::Instance().setInitializeActive(
false);
47 DataStore::Instance().reset();
60 int pdg = Const::muon.getPDGCode();
62 m_muid->setPDGCode(pdg);
63 EXPECT_EQ(m_muid->getPDGCode(), pdg);
64 EXPECT_EQ(m_muid->getOutcome(), 0);
65 EXPECT_EQ(m_muid->getHitLayer(), -1);
66 EXPECT_FLOAT_EQ(m_muid->getLogL_mu(), -1.0E20);
70 float efficiency = 0.2;
71 m_muid->setExtBKLMEfficiencyValue(layer, efficiency);
72 EXPECT_FLOAT_EQ(m_muid->getExtBKLMEfficiencyValue(layer), efficiency);
73 m_muid->setExtEKLMEfficiencyValue(layer, efficiency);
74 EXPECT_FLOAT_EQ(m_muid->getExtEKLMEfficiencyValue(layer), efficiency);
79 std::bitset<30> bitPattern(std::string(
"111111"));
80 unsigned int pattern =
static_cast<unsigned int>(bitPattern.to_ulong());
81 m_muid->setHitLayerPattern(pattern);
82 EXPECT_EQ(m_muid->getHitLayerPattern(), pattern);
83 EXPECT_EQ(m_muid->getTotalBarrelHits(), 6);
84 EXPECT_EQ(m_muid->getTotalEndcapHits(), 0);
85 m_muid->setExtLayerPattern(pattern);
86 EXPECT_TRUE(m_muid->isExtrapolatedBarrelLayerCrossed(5));
87 EXPECT_FALSE(m_muid->isExtrapolatedBarrelLayerCrossed(6));
88 EXPECT_FALSE(m_muid->isExtrapolatedEndcapLayerCrossed(0));
91 bitPattern = std::bitset<30>(std::string(
"1000000000000000"));
92 pattern =
static_cast<unsigned int>(bitPattern.to_ulong());
93 m_muid->setHitLayerPattern(pattern);
94 EXPECT_EQ(m_muid->getHitLayerPattern(), pattern);
95 EXPECT_EQ(m_muid->getTotalBarrelHits(), 0);
96 EXPECT_EQ(m_muid->getTotalEndcapHits(), 1);
97 m_muid->setExtLayerPattern(pattern);
98 EXPECT_FALSE(m_muid->isExtrapolatedBarrelLayerCrossed(0));
99 EXPECT_TRUE(m_muid->isExtrapolatedEndcapLayerCrossed(0));
100 EXPECT_FALSE(m_muid->isExtrapolatedEndcapLayerCrossed(1));
103 bitPattern = std::bitset<30>(std::string(
"10101000000000111000"));
104 pattern =
static_cast<unsigned int>(bitPattern.to_ulong());
105 m_muid->setHitLayerPattern(pattern);
106 EXPECT_EQ(m_muid->getHitLayerPattern(), pattern);
107 EXPECT_EQ(m_muid->getTotalBarrelHits(), 3);
108 EXPECT_EQ(m_muid->getTotalEndcapHits(), 3);
109 m_muid->setExtLayerPattern(pattern);
110 EXPECT_TRUE(m_muid->isExtrapolatedBarrelLayerCrossed(4));
111 EXPECT_TRUE(m_muid->isExtrapolatedEndcapLayerCrossed(0));
112 EXPECT_FALSE(m_muid->isExtrapolatedEndcapLayerCrossed(10));
115 bitPattern = std::bitset<30>(std::string(
"11111111111111111111111111111"));
116 pattern =
static_cast<unsigned int>(bitPattern.to_ulong());
117 m_muid->setHitLayerPattern(pattern);
118 EXPECT_EQ(m_muid->getHitLayerPattern(), pattern);
119 EXPECT_EQ(m_muid->getTotalBarrelHits(), 15);
120 EXPECT_EQ(m_muid->getTotalEndcapHits(), 14);
121 m_muid->setExtLayerPattern(pattern);
122 EXPECT_TRUE(m_muid->isExtrapolatedBarrelLayerCrossed(14));
123 EXPECT_FALSE(m_muid->isExtrapolatedBarrelLayerCrossed(15));
124 EXPECT_TRUE(m_muid->isExtrapolatedEndcapLayerCrossed(13));
Test class for the KLMMuidLikelihood object.
void SetUp() override
Register KLMMuidLikelihood in the DataStore.
void TearDown() override
Clear the DataStore.
Class to store the likelihoods from KLM with additional informations related to the extrapolation.
bool registerInDataStore(DataStore::EStoreFlags storeFlags=DataStore::c_WriteOut)
Register the object/array in the DataStore.
Accessor to arrays stored in the data store.
T * appendNew()
Construct a new T object at the end of the array.
TEST_F(KLMMuidLikelihoodTest, KLMMuidLikelihood)
Test some setters and getters.
Abstract base class for different kinds of events.