|
||||
File indexing completed on 2025-01-19 09:23:24
0001 // This file is part of the Acts project. 0002 // 0003 // Copyright (C) 2018-2020 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 http://mozilla.org/MPL/2.0/. 0008 0009 #pragma once 0010 0011 #include "Acts/Definitions/PdgParticle.hpp" 0012 #include "Acts/Definitions/Units.hpp" 0013 #include "Acts/Material/MaterialSlab.hpp" 0014 0015 #include <cmath> 0016 0017 namespace Acts { 0018 0019 /// Compute the mean energy loss due to ionisation and excitation. 0020 /// 0021 /// @param slab The traversed material and its properties 0022 /// @param m Particle mass 0023 /// @param qOverP Particle charge divided by absolute momentum 0024 /// @param absQ Absolute particle charge 0025 /// 0026 /// This computes the mean energy loss -dE(x) through a material with 0027 /// the given properties, i.e. it computes 0028 /// 0029 /// -dE(x) = -dE/dx * x 0030 /// 0031 /// where -dE/dx is given by the Bethe formula. The computations are valid 0032 /// for intermediate particle energies. 0033 float computeEnergyLossBethe(const MaterialSlab& slab, float m, float qOverP, 0034 float absQ); 0035 /// Derivative of the Bethe energy loss with respect to q/p. 0036 /// 0037 /// @copydoc computeEnergyLossBethe 0038 float deriveEnergyLossBetheQOverP(const MaterialSlab& slab, float m, 0039 float qOverP, float absQ); 0040 0041 /// Compute the most propable energy loss due to ionisation and excitation. 0042 /// 0043 /// @copydoc computeEnergyLossBethe 0044 /// 0045 /// This computes the most probable energy loss -dE(x) through a material of 0046 /// the given properties and thickness as described by the mode of the 0047 /// Landau-Vavilov-Bichsel distribution. The computations are valid 0048 /// for intermediate particle energies. 0049 float computeEnergyLossLandau(const MaterialSlab& slab, float m, float qOverP, 0050 float absQ); 0051 /// Derivative of the most probable ionisation energy loss with respect to q/p. 0052 /// 0053 /// @copydoc computeEnergyLossBethe 0054 float deriveEnergyLossLandauQOverP(const MaterialSlab& slab, float m, 0055 float qOverP, float absQ); 0056 0057 /// Compute the Gaussian-equivalent sigma for the ionisation loss fluctuations. 0058 /// 0059 /// @see computeEnergyLossBethe for parameters description 0060 /// 0061 /// This is the sigma parameter of a Gaussian distribution with the same 0062 /// full-width-half-maximum as the Landau-Vavilov-Bichsel distribution. The 0063 /// computations are valid for intermediate particle energies. 0064 float computeEnergyLossLandauSigma(const MaterialSlab& slab, float m, 0065 float qOverP, float absQ); 0066 0067 /// Compute the full with half maximum of landau energy loss distribution 0068 /// 0069 /// @see computeEnergyLossBethe for parameters description 0070 float computeEnergyLossLandauFwhm(const MaterialSlab& slab, float m, 0071 float qOverP, float absQ); 0072 0073 /// Compute q/p Gaussian-equivalent sigma due to ionisation loss fluctuations. 0074 /// 0075 /// @copydoc computeEnergyLossBethe 0076 float computeEnergyLossLandauSigmaQOverP(const MaterialSlab& slab, float m, 0077 float qOverP, float absQ); 0078 0079 /// Compute the mean energy loss due to radiative effects at high energies. 0080 /// 0081 /// @param slab The traversed material and its properties 0082 /// @param absPdg Absolute particle type PDG identifier 0083 /// @param m Particle mass 0084 /// @param qOverP Particle charge divided by absolute momentum 0085 /// @param absQ Absolute particle charge 0086 /// 0087 /// This computes the mean energy loss -dE(x) using an approximative formula. 0088 /// Bremsstrahlung is always included; direct e+e- pair production and 0089 /// photo-nuclear interactions only for muons. 0090 float computeEnergyLossRadiative(const MaterialSlab& slab, PdgParticle absPdg, 0091 float m, float qOverP, float absQ); 0092 /// Derivative of the mean radiative energy loss with respect to q/p. 0093 /// 0094 /// @copydoc computeEnergyLossRadiative 0095 float deriveEnergyLossRadiativeQOverP(const MaterialSlab& slab, 0096 PdgParticle absPdg, float m, float qOverP, 0097 float absQ); 0098 0099 /// Compute the combined mean energy loss. 0100 /// 0101 /// @param slab The traversed material and its properties 0102 /// @param absPdg Absolute particle type PDG identifier 0103 /// @param m Particle mass 0104 /// @param qOverP Particle charge divided by absolute momentum 0105 /// @param absQ Absolute particle charge 0106 /// 0107 /// This computes the combined mean energy loss -dE(x) including ionisation and 0108 /// radiative effects. The computations are valid over a wide range of particle 0109 /// energies. 0110 float computeEnergyLossMean(const MaterialSlab& slab, PdgParticle absPdg, 0111 float m, float qOverP, float absQ); 0112 /// Derivative of the combined mean energy loss with respect to q/p. 0113 /// 0114 /// @copydoc computeEnergyLossMean 0115 float deriveEnergyLossMeanQOverP(const MaterialSlab& slab, PdgParticle absPdg, 0116 float m, float qOverP, float absQ); 0117 0118 /// Compute the combined most probably energy loss. 0119 /// 0120 /// @copydoc computeEnergyLossMean 0121 float computeEnergyLossMode(const MaterialSlab& slab, PdgParticle absPdg, 0122 float m, float qOverP, float absQ); 0123 /// Derivative of the combined most probable energy loss with respect to q/p. 0124 /// 0125 /// @copydoc computeEnergyLossMean 0126 float deriveEnergyLossModeQOverP(const MaterialSlab& slab, PdgParticle absPdg, 0127 float m, float qOverP, float absQ); 0128 0129 /// Compute the core width of the projected planar scattering distribution. 0130 /// 0131 /// @param slab The traversed material and its properties 0132 /// @param absPdg Absolute particle type PDG identifier 0133 /// @param m Particle mass 0134 /// @param qOverP Particle charge divided by absolute momentum 0135 /// @param absQ Absolute particle charge 0136 float computeMultipleScatteringTheta0(const MaterialSlab& slab, 0137 PdgParticle absPdg, float m, float qOverP, 0138 float absQ); 0139 0140 } // namespace Acts
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |