17#include <gtest/gtest.h>
28 TEST(TestNeulandPointFilter, ParticleToBitSetTest)
30 auto bitset = neuland::ParticleToBitSet(BitSetParticle::proton);
31 EXPECT_EQ(bitset.to_ulong(), 0x0001);
34 EXPECT_EQ(bitset.to_ulong(), 0x0002);
37 EXPECT_EQ(bitset.to_ulong(), 0x0020);
41 TEST(TestNeulandPointFilter, BitSetToParticleTest)
43 constexpr auto proton_bitsetid = 0x0001;
44 auto particle = neuland::BitSetToParticle(std::bitset<ParticleBitsetSize>{ proton_bitsetid });
45 EXPECT_EQ(particle, BitSetParticle::proton);
47 constexpr auto neutron_bitsetid = 0x0002;
48 particle = neuland::BitSetToParticle(std::bitset<ParticleBitsetSize>{ neutron_bitsetid });
49 EXPECT_EQ(particle, BitSetParticle::neutron);
51 constexpr auto gamma_bitsetid = 0x0020;
52 particle = neuland::BitSetToParticle(std::bitset<ParticleBitsetSize>{ gamma_bitsetid });
53 EXPECT_EQ(particle, BitSetParticle::gamma);
57 TEST(TestNeulandPointFilter, CheckCriteriaTest)
59 EXPECT_TRUE(
CheckCriteria(BitSetParticle::proton, BitSetParticle::proton));
60 EXPECT_FALSE(
CheckCriteria(BitSetParticle::proton, BitSetParticle::neutron));
61 EXPECT_TRUE(
CheckCriteria(BitSetParticle::proton, BitSetParticle::neutron | BitSetParticle::proton));
65 TEST(TestNeulandPointFilter, PidToBitSetParticleTest)
67 EXPECT_EQ(neuland::PidToBitSetParticle(2212), BitSetParticle::proton);
68 EXPECT_EQ(neuland::PidToBitSetParticle(2112), BitSetParticle::neutron);
69 EXPECT_EQ(neuland::PidToBitSetParticle(22), BitSetParticle::gamma);
73 TEST(TestNeulandPointFilter, SetFilterTest)
77 EXPECT_EQ(filter.
GetFilter(), BitSetParticle::proton);
79 filter.
SetFilter(BitSetParticle::neutron, 0.5);
80 EXPECT_EQ(filter.
GetFilter(), BitSetParticle::neutron);
85 TEST(NeulandPointFilterTest, ShouldNeulandPointBeFilteredTest)
87 constexpr auto proton_pid = 2212;
88 constexpr auto neutron_pid = 2112;
89 constexpr auto eLoss_proton = 0.7;
90 constexpr auto eLoss_neutron = 0.3;
91 const TVector3 sample_vector;
96 0, 0, sample_vector, sample_vector, 0., 0., eLoss_proton, 0, 0., proton_pid, 0);
98 0, 0, sample_vector, sample_vector, 0., 0., eLoss_neutron, 0, 0., neutron_pid, 0);
101 filter.
SetFilter(BitSetParticle::proton);
106 filter.
SetFilter(BitSetParticle::neutron, 0.5);
void SetFilter(R3B::Neuland::BitSetParticle filtered_particles)
auto GetMinimumAllowedEnergy() const -> double
auto GetFilter() const -> R3B::Neuland::BitSetParticle
auto CheckFiltered(const R3BNeulandPoint &neuland_point) -> bool
Simulation of NeuLAND Bar/Paddle.
constexpr auto ParticleToBitSet(BitSetParticle particle)
constexpr auto ParticleBitsetSize
auto CheckCriteria(BitSetParticle particle, BitSetParticle criteria) -> bool