Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-07 10:11:35

0001 //------------------------------- -*- C++ -*- -------------------------------//
0002 // Copyright Celeritas contributors: see top-level COPYRIGHT file for details
0003 // SPDX-License-Identifier: (Apache-2.0 OR MIT)
0004 //---------------------------------------------------------------------------//
0005 //! \file celeritas/mucf/executor/detail/TTChannelSelector.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include "celeritas/mucf/interactor/TTMucfInteractor.hh"
0010 
0011 namespace celeritas
0012 {
0013 namespace detail
0014 {
0015 //---------------------------------------------------------------------------//
0016 /*!
0017  * Select final channel for muonic tt molecules.
0018  *
0019  * This selection already accounts for sticking, as that is one of the possible
0020  * outcomes.
0021  */
0022 class TTChannelSelector
0023 {
0024   public:
0025     //!@{
0026     //! \name Type aliases
0027     using Channel = TTMucfInteractor::Channel;
0028     //!@}
0029 
0030   public:
0031     //! Construct with args; \todo Update documentation
0032     inline CELER_FUNCTION TTChannelSelector(/* args */);
0033 
0034     // Select fusion channel to be used by the interactor
0035     template<class Engine>
0036     inline CELER_FUNCTION Channel operator()(Engine&);
0037 };
0038 
0039 //---------------------------------------------------------------------------//
0040 // INLINE DEFINITIONS
0041 //---------------------------------------------------------------------------//
0042 /*!
0043  * Construct with args.
0044  *
0045  * \todo Update documentation
0046  */
0047 CELER_FUNCTION TTChannelSelector::TTChannelSelector(/* args */)
0048 {
0049     //! \todo Implement
0050     CELER_NOT_IMPLEMENTED("Mucf tt fusion channel selection");
0051 }
0052 
0053 //---------------------------------------------------------------------------//
0054 /*!
0055  * Return a sampled channel to be used as input in the tt muCF interactor.
0056  *
0057  * \sa celeritas::TTMucfInteractor
0058  */
0059 template<class Engine>
0060 CELER_FUNCTION TTChannelSelector::Channel TTChannelSelector::operator()(Engine&)
0061 {
0062     Channel result{Channel::size_};
0063 
0064     //! \todo Implement
0065     // Final channel selection already takes into account sticking.
0066 
0067     CELER_ENSURE(result < Channel::size_);
0068     return result;
0069 }
0070 
0071 //---------------------------------------------------------------------------//
0072 }  // namespace detail
0073 }  // namespace celeritas