|
||||
File indexing completed on 2025-01-18 09:12:13
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 #pragma once 0010 0011 #include "Acts/Definitions/PdgParticle.hpp" 0012 #include "ActsFatras/Kernel/ContinuousProcess.hpp" 0013 #include "ActsFatras/Kernel/InteractionList.hpp" 0014 #include "ActsFatras/Physics/ElectroMagnetic/BetheBloch.hpp" 0015 #include "ActsFatras/Physics/ElectroMagnetic/BetheHeitler.hpp" 0016 #include "ActsFatras/Physics/ElectroMagnetic/Scattering.hpp" 0017 #include "ActsFatras/Selectors/KinematicCasts.hpp" 0018 #include "ActsFatras/Selectors/ParticleSelectors.hpp" 0019 #include "ActsFatras/Selectors/SelectorHelpers.hpp" 0020 0021 namespace ActsFatras { 0022 namespace Casts { 0023 struct P; 0024 } // namespace Casts 0025 0026 namespace detail { 0027 0028 /// Select electrons and positrons only. 0029 using SelectElectronLike = AbsPdgSelector<Acts::PdgParticle::eElectron>; 0030 /// Select particles above a minimum absolute momentum. 0031 using SelectPMin = Min<Casts::P>; 0032 0033 /// Highland multiple scattering that applies to all charged particles. 0034 using StandardScattering = 0035 ContinuousProcess<HighlandScattering, ChargedSelector, EveryParticle, 0036 EveryParticle>; 0037 /// Ionisation/excitation energy loss with a lower p cut on output particles. 0038 /// 0039 /// Bethe-Bloch generates no particles and the child selector has no effect. 0040 using StandardBetheBloch = 0041 ContinuousProcess<BetheBloch, ChargedSelector, SelectPMin, EveryParticle>; 0042 /// Electron Bremsstrahlung energy loss with a lower p cut on output particles. 0043 /// 0044 /// Only applies to electrons and positrons. 0045 using StandardBetheHeitler = 0046 ContinuousProcess<BetheHeitler, SelectElectronLike, SelectPMin, SelectPMin>; 0047 0048 } // namespace detail 0049 0050 /// Standard set of electro-magnetic interactions for charged particles. 0051 /// 0052 /// Scattering must come first so it is computed with the unmodified initial 0053 /// energy before energy loss is applied. 0054 /// 0055 /// @warning The list has no cuts on input particle charge or kinematics, i.e. 0056 /// it relies on the simulator to preselect relevant charged particles 0057 /// before application. 0058 /// @todo Bethe-Bloch does not describe electrons; add correct ionisation loss 0059 /// descriptions for electrons. 0060 /// @todo Bethe-Heitler is applied after energy loss and thus sees the wrong 0061 /// input energy. 0062 using StandardChargedElectroMagneticInteractions = 0063 InteractionList<detail::StandardScattering, detail::StandardBetheBloch, 0064 detail::StandardBetheHeitler>; 0065 0066 /// Construct the standard electro-magnetic interactions for charged particles. 0067 /// 0068 /// @param minimumAbsMomentum lower p cut on output particles 0069 StandardChargedElectroMagneticInteractions 0070 makeStandardChargedElectroMagneticInteractions(double minimumAbsMomentum); 0071 0072 } // namespace ActsFatras
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |