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/DTMixMuonicMoleculeSelector.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include "celeritas/Types.hh"
0010 
0011 namespace celeritas
0012 {
0013 namespace detail
0014 {
0015 //---------------------------------------------------------------------------//
0016 /*!
0017  * Select a muonic molecule by calculating the interaction lengths of the
0018  * possible molecule formations.
0019  *
0020  * This is the equivalent of Geant4's
0021  * \c G4VRestProcess::AtRestGetPhysicalInteractionLength
0022  */
0023 class DTMixMuonicMoleculeSelector
0024 {
0025   public:
0026     //! Construct with args; \todo Update documentation
0027     inline CELER_FUNCTION DTMixMuonicMoleculeSelector(/* args */);
0028 
0029     // Select muonic molecule
0030     template<class Engine>
0031     inline CELER_FUNCTION MucfMuonicMolecule operator()(Engine&);
0032 };
0033 
0034 //---------------------------------------------------------------------------//
0035 // INLINE DEFINITIONS
0036 //---------------------------------------------------------------------------//
0037 /*!
0038  * Construct with args.
0039  *
0040  * \todo Update documentation
0041  */
0042 CELER_FUNCTION DTMixMuonicMoleculeSelector::DTMixMuonicMoleculeSelector(
0043     /* args */)
0044 {
0045     //! \todo Implement
0046     CELER_NOT_IMPLEMENTED("Mucf muonic molecule selection");
0047 }
0048 
0049 //---------------------------------------------------------------------------//
0050 /*!
0051  * Return selected muonic molecule.
0052  */
0053 template<class Engine>
0054 CELER_FUNCTION MucfMuonicMolecule DTMixMuonicMoleculeSelector::operator()(
0055     Engine&)
0056 {
0057     MucfMuonicMolecule result{MucfMuonicMolecule::size_};
0058 
0059     //! \todo Implement
0060 
0061     CELER_ENSURE(result < MucfMuonicMolecule::size_);
0062     return result;
0063 }
0064 
0065 //---------------------------------------------------------------------------//
0066 }  // namespace detail
0067 }  // namespace celeritas