File indexing completed on 2025-10-17 08:01:00
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include <boost/test/unit_test.hpp>
0010
0011 #include "Acts/Definitions/PdgParticle.hpp"
0012 #include "ActsFatras/EventData/Barcode.hpp"
0013 #include "ActsFatras/Selectors/ParticleSelectors.hpp"
0014
0015 #include "Dataset.hpp"
0016
0017 using namespace ActsFatras;
0018
0019 namespace ActsTests {
0020
0021 BOOST_AUTO_TEST_SUITE(SelectorsSuite)
0022
0023 BOOST_AUTO_TEST_CASE(NegativeParticle) {
0024 const auto& particle = Dataset::centralElectron;
0025 BOOST_CHECK(!NeutralSelector()(particle));
0026 BOOST_CHECK(ChargedSelector()(particle));
0027 BOOST_CHECK(!PositiveSelector()(particle));
0028 BOOST_CHECK(NegativeSelector()(particle));
0029 }
0030
0031 BOOST_AUTO_TEST_CASE(NeutralParticle) {
0032 const auto& particle = Dataset::centralNeutron;
0033 BOOST_CHECK(NeutralSelector()(particle));
0034 BOOST_CHECK(!ChargedSelector()(particle));
0035 BOOST_CHECK(!PositiveSelector()(particle));
0036 BOOST_CHECK(!NegativeSelector()(particle));
0037 }
0038
0039 BOOST_AUTO_TEST_CASE(PositiveParticle) {
0040 const auto& particle = Dataset::centralPositron;
0041 BOOST_CHECK(!NeutralSelector()(particle));
0042 BOOST_CHECK(ChargedSelector()(particle));
0043 BOOST_CHECK(PositiveSelector()(particle));
0044 BOOST_CHECK(!NegativeSelector()(particle));
0045 }
0046
0047 namespace {
0048 const auto& electron = Dataset::centralElectron;
0049 const auto& positron = Dataset::centralPositron;
0050 const auto& muon = Dataset::centralMuon;
0051 const auto& antimuon = Dataset::centralAntiMuon;
0052 const auto& pion = Dataset::centralPion;
0053 }
0054
0055 BOOST_AUTO_TEST_CASE(PdgSelector) {
0056 ActsFatras::PdgSelector<Acts::PdgParticle::eElectron> selectElectron;
0057 BOOST_CHECK(selectElectron(electron));
0058 BOOST_CHECK(!selectElectron(positron));
0059 BOOST_CHECK(!selectElectron(muon));
0060 BOOST_CHECK(!selectElectron(antimuon));
0061 BOOST_CHECK(!selectElectron(pion));
0062 }
0063
0064 BOOST_AUTO_TEST_CASE(AbsPdgSelector) {
0065 ActsFatras::AbsPdgSelector<Acts::PdgParticle::eElectron> selectElectronLike;
0066 BOOST_CHECK(selectElectronLike(electron));
0067 BOOST_CHECK(selectElectronLike(positron));
0068 BOOST_CHECK(!selectElectronLike(muon));
0069 BOOST_CHECK(!selectElectronLike(antimuon));
0070 BOOST_CHECK(!selectElectronLike(pion));
0071 }
0072
0073 BOOST_AUTO_TEST_CASE(PdgExcluder) {
0074 ActsFatras::PdgExcluder<Acts::PdgParticle::eMuon> excludeMuon;
0075 BOOST_CHECK(excludeMuon(electron));
0076 BOOST_CHECK(excludeMuon(positron));
0077 BOOST_CHECK(!excludeMuon(muon));
0078 BOOST_CHECK(excludeMuon(antimuon));
0079 BOOST_CHECK(excludeMuon(pion));
0080 }
0081
0082 BOOST_AUTO_TEST_CASE(AbsPdgExcluder) {
0083 ActsFatras::AbsPdgExcluder<Acts::PdgParticle::eMuon> excludeMuonLike;
0084 BOOST_CHECK(excludeMuonLike(electron));
0085 BOOST_CHECK(excludeMuonLike(positron));
0086 BOOST_CHECK(!excludeMuonLike(muon));
0087 BOOST_CHECK(!excludeMuonLike(antimuon));
0088 BOOST_CHECK(excludeMuonLike(pion));
0089 }
0090
0091 BOOST_AUTO_TEST_SUITE_END()
0092
0093 }