Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-10-17 08:01:00

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
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 }  // namespace
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 }  // namespace ActsTests