Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-26 08:22:23

0001 /**
0002  * TRACCC library, part of the ACTS project (R&D line)
0003  *
0004  * (c) 2024 CERN for the benefit of the ACTS project
0005  *
0006  * Mozilla Public License Version 2.0
0007  */
0008 
0009 // Project include(s).
0010 #include "traccc/utils/particle.hpp"
0011 
0012 #include "traccc/definitions/common.hpp"
0013 #include "traccc/edm/track_parameters.hpp"
0014 
0015 // GTest include(s).
0016 #include <gtest/gtest.h>
0017 
0018 TEST(particle, particle_with_pdg_num) {
0019   const auto muon = traccc::detail::particle_from_pdg_number<float>(13);
0020 
0021   EXPECT_FLOAT_EQ(muon.mass(), 105.6583755f * traccc::unit<float>::MeV);
0022   EXPECT_FLOAT_EQ(muon.charge(), -1.f);
0023 
0024   const auto positron = traccc::detail::particle_from_pdg_number<float>(-11);
0025 
0026   EXPECT_FLOAT_EQ(positron.mass(), traccc::constant<float>::m_e);
0027   EXPECT_FLOAT_EQ(positron.charge(), 1.f);
0028 }
0029 
0030 TEST(particle, charge_conjugation) {
0031   const auto positron =
0032       traccc::detail::charge_conjugation(traccc::electron<float>());
0033   EXPECT_FLOAT_EQ(positron.mass(), traccc::constant<float>::m_e);
0034   EXPECT_FLOAT_EQ(positron.charge(), 1.f);
0035 }
0036 
0037 TEST(particle, correct_particle_hypothesis) {
0038   traccc::free_track_parameters<> free_trk({1.f, 1.f, 1.f}, 0.f,
0039                                            {2.f, 3.f, 4.f}, 1.f);
0040 
0041   const auto positron = traccc::detail::correct_particle_hypothesis(
0042       traccc::electron<float>(), free_trk);
0043 
0044   EXPECT_FLOAT_EQ(positron.mass(), traccc::constant<float>::m_e);
0045   EXPECT_FLOAT_EQ(positron.charge(), 1.f);
0046 }