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/DTChannelSelector.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include "celeritas/mucf/interactor/DTMucfInteractor.hh"
0010 
0011 namespace celeritas
0012 {
0013 namespace detail
0014 {
0015 //---------------------------------------------------------------------------//
0016 /*!
0017  * Select final channel for muonic dt molecules.
0018  *
0019  * This selection already accounts for sticking, as that is one of the possible
0020  * outcomes.
0021  */
0022 class DTChannelSelector
0023 {
0024   public:
0025     //!@{
0026     //! \name Type aliases
0027     using Channel = DTMucfInteractor::Channel;
0028     //!@}
0029 
0030   public:
0031     //! Construct with args; \todo Update documentation
0032     inline CELER_FUNCTION DTChannelSelector(/* 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 DTChannelSelector::DTChannelSelector(/* args */)
0048 {
0049     CELER_NOT_IMPLEMENTED("Mucf dt fusion channel selection");
0050 }
0051 
0052 //---------------------------------------------------------------------------//
0053 /*!
0054  * Return a sampled channel to be used as input in the dt muCF interactor.
0055  *
0056  * \sa celeritas::DTMucfInteractor
0057  */
0058 template<class Engine>
0059 CELER_FUNCTION DTChannelSelector::Channel DTChannelSelector::operator()(Engine&)
0060 {
0061     Channel result{Channel::size_};
0062 
0063     //! \todo Implement
0064     // Final channel selection already takes into account sticking.
0065 
0066     CELER_ENSURE(result < Channel::size_);
0067     return result;
0068 }
0069 
0070 //---------------------------------------------------------------------------//
0071 }  // namespace detail
0072 }  // namespace celeritas