1 #include <framework/gearbox/Const.h>
3 #include <TParticlePDG.h>
5 #include <gtest/gtest.h>
12 TEST(ConstTest, ParticleBasics)
25 EXPECT_FALSE(emptyset.
contains(Const::Klong));
28 EXPECT_EQ(0, Const::electron.getIndex());
29 EXPECT_EQ(1, Const::muon.getIndex());
30 EXPECT_EQ(2, Const::pion.getIndex());
31 EXPECT_EQ(3, Const::kaon.getIndex());
32 EXPECT_EQ(4, Const::proton.getIndex());
33 EXPECT_EQ(5, Const::deuteron.getIndex());
37 EXPECT_EQ(1, c.getIndex());
39 EXPECT_EQ(1, p.getIndex());
45 EXPECT_EQ(-1, Const::invalidParticle.getIndex());
46 EXPECT_EQ(-1, Const::Klong.getIndex());
47 EXPECT_EQ(-1, Const::photon.getIndex());
51 TEST(ConstTest, ParticleIteration)
54 EXPECT_FALSE(emptyset.
contains(Const::Klong));
58 EXPECT_EQ(1, (++prefix).getIndex());
60 EXPECT_EQ(0, (postfix++).getIndex());
64 for (
const auto& c : set) {
66 int pdg = c.getPDGCode();
67 unsigned int index = c.getIndex();
86 EXPECT_EQ(1000010020, pdg);
89 EXPECT_TRUE(
false) <<
"Index >5 encountered?";
93 int setSize = Const::ChargedStable::c_SetSize;
94 EXPECT_EQ(setSize, size);
103 EXPECT_TRUE(Const::chargedStableSet.contains(c));
104 EXPECT_EQ(3, c.getIndex());
107 EXPECT_EQ(5, c.getIndex());
108 EXPECT_EQ(1000010020, c.getPDGCode());
112 TEST(ConstTest, ParticleCombination)
137 TEST(ConstTest, FindInParticleSet)
139 for (
const auto& c : Const::chargedStableSet) {
140 int pdg = c.getPDGCode();
141 EXPECT_EQ(pdg, Const::chargedStableSet.find(pdg).getPDGCode());
143 EXPECT_TRUE(Const::chargedStableSet.find(12356467) == Const::invalidParticle);
147 TEST(ConstTest, TDatabasePDG)
149 EXPECT_DOUBLE_EQ(Const::Klong.getParticlePDG()->Charge(), 0);
150 EXPECT_EQ(Const::Klong.getParticlePDG()->PdgCode(), 130);
152 EXPECT_DOUBLE_EQ(Const::proton.getParticlePDG()->Charge(), 3);
153 EXPECT_EQ(Const::proton.getParticlePDG()->PdgCode(), 2212);
156 EXPECT_DOUBLE_EQ(antiproton.getParticlePDG()->Charge(), -3);
157 EXPECT_EQ(antiproton.getParticlePDG()->PdgCode(), -2212);
160 EXPECT_DOUBLE_EQ(1.0, Const::photon.getParticlePDG()->Spin());
161 EXPECT_DOUBLE_EQ(0.5, Const::proton.getParticlePDG()->Spin());
162 EXPECT_DOUBLE_EQ(0.5, Const::electron.getParticlePDG()->Spin());
164 EXPECT_DOUBLE_EQ(0.0, Const::proton.getParticlePDG()->Lifetime());
166 EXPECT_TRUE(Const::neutron.getParticlePDG()->Lifetime() > 800);
167 EXPECT_TRUE(Const::neutron.getParticlePDG()->Lifetime() < 900);
168 EXPECT_TRUE(Const::muon.getParticlePDG()->Lifetime() < 2.2e-6);
169 EXPECT_TRUE(Const::muon.getParticlePDG()->Lifetime() > 2.1e-6);
172 auto* protonnonconst =
const_cast<TParticlePDG*
>(Const::proton.getParticlePDG());
173 auto* photonnonconst =
const_cast<TParticlePDG*
>(Const::photon.getParticlePDG());
176 EXPECT_DOUBLE_EQ(protonnonconst->AntiParticle()->Charge(), -3);
177 EXPECT_EQ(protonnonconst->AntiParticle()->PdgCode(), -2212);
179 EXPECT_TRUE(photonnonconst->AntiParticle() == photonnonconst);
182 EXPECT_TRUE(Const::invalidParticle.getParticlePDG() ==
nullptr);
183 EXPECT_TRUE(Const::unspecifiedParticle.getParticlePDG() ==
nullptr);
187 TEST(ConstTest, DetectorSet)
190 EXPECT_EQ(set, Const::IR);
192 EXPECT_EQ(set, Const::IR + Const::PXD);
194 EXPECT_EQ(set, Const::IR + Const::PXD);
195 EXPECT_TRUE(set == Const::IR + Const::PXD);
196 EXPECT_FALSE(set == Const::IR);
198 EXPECT_EQ(set, Const::PXD);
199 EXPECT_TRUE(set.
contains(Const::PXD));
200 EXPECT_FALSE(set.
contains(Const::IR));
202 EXPECT_EQ(set.getIndex(Const::IR), -1);
203 EXPECT_EQ(set.getIndex(Const::PXD), 0);
205 EXPECT_EQ(set[0], Const::PXD);
207 EXPECT_EQ(set[3], Const::invalidDetector);
208 EXPECT_EQ(set.
size(), (
size_t)3);
209 EXPECT_EQ(Const::allDetectors.size(), (
size_t)12);
213 TEST(ConstTest, RestrictedDetectorSet)
216 EXPECT_TRUE(Const::PIDDetectors::c_set.size() == Const::PIDDetectors::c_size);