|
|
|||
File indexing completed on 2025-12-15 09:42:10
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 "Acts/Material/MaterialSlab.hpp" 0013 0014 namespace Acts { 0015 0016 /// Compute the mean energy loss due to ionisation and excitation. 0017 /// 0018 /// @param slab The traversed material and its properties 0019 /// @param m Particle mass 0020 /// @param qOverP Particle charge divided by absolute momentum 0021 /// @param absQ Absolute particle charge 0022 /// 0023 /// This computes the mean energy loss -dE(x) through a material with 0024 /// the given properties, i.e. it computes 0025 /// 0026 /// -dE(x) = -dE/dx * x 0027 /// 0028 /// where -dE/dx is given by the Bethe formula. The computations are valid 0029 /// for intermediate particle energies. 0030 /// @return Mean energy loss through the material slab 0031 float computeEnergyLossBethe(const MaterialSlab& slab, float m, float qOverP, 0032 float absQ); 0033 /// Derivative of the Bethe energy loss with respect to q/p. 0034 /// 0035 /// @copydoc computeEnergyLossBethe 0036 float deriveEnergyLossBetheQOverP(const MaterialSlab& slab, float m, 0037 float qOverP, float absQ); 0038 0039 /// Compute the most propable energy loss due to ionisation and excitation. 0040 /// 0041 /// @copydoc computeEnergyLossBethe 0042 /// 0043 /// This computes the most probable energy loss -dE(x) through a material of 0044 /// the given properties and thickness as described by the mode of the 0045 /// Landau-Vavilov-Bichsel distribution. The computations are valid 0046 /// for intermediate particle energies. 0047 /// @return Most probable energy loss through the material slab 0048 float computeEnergyLossLandau(const MaterialSlab& slab, float m, float qOverP, 0049 float absQ); 0050 /// Derivative of the most probable ionisation energy loss with respect to q/p. 0051 /// 0052 /// @copydoc computeEnergyLossBethe 0053 float deriveEnergyLossLandauQOverP(const MaterialSlab& slab, float m, 0054 float qOverP, float absQ); 0055 0056 /// Compute the Gaussian-equivalent sigma for the ionisation loss fluctuations. 0057 /// 0058 /// @see computeEnergyLossBethe for parameters description 0059 /// 0060 /// This is the sigma parameter of a Gaussian distribution with the same 0061 /// full-width-half-maximum as the Landau-Vavilov-Bichsel distribution. The 0062 /// computations are valid for intermediate particle energies. 0063 /// @param slab The traversed material and its properties 0064 /// @param m Particle mass 0065 /// @param qOverP Particle charge divided by absolute momentum 0066 /// @param absQ Absolute particle charge 0067 /// @return Gaussian-equivalent sigma for energy loss fluctuations 0068 float computeEnergyLossLandauSigma(const MaterialSlab& slab, float m, 0069 float qOverP, float absQ); 0070 0071 /// Compute the full with half maximum of landau energy loss distribution 0072 /// 0073 /// @param slab The traversed material and its properties 0074 /// @param m Particle mass 0075 /// @param qOverP Particle charge divided by absolute momentum 0076 /// @param absQ Absolute particle charge 0077 /// @return Full width half maximum of the Landau distribution 0078 float computeEnergyLossLandauFwhm(const MaterialSlab& slab, float m, 0079 float qOverP, float absQ); 0080 0081 /// Compute q/p Gaussian-equivalent sigma due to ionisation loss fluctuations. 0082 /// 0083 /// @copydoc computeEnergyLossBethe 0084 float computeEnergyLossLandauSigmaQOverP(const MaterialSlab& slab, float m, 0085 float qOverP, float absQ); 0086 0087 /// Compute the mean energy loss due to radiative effects at high energies. 0088 /// 0089 /// @param slab The traversed material and its properties 0090 /// @param absPdg Absolute particle type PDG identifier 0091 /// @param m Particle mass 0092 /// @param qOverP Particle charge divided by absolute momentum 0093 /// @param absQ Absolute particle charge 0094 /// 0095 /// This computes the mean energy loss -dE(x) using an approximative formula. 0096 /// Bremsstrahlung is always included; direct e+e- pair production and 0097 /// photo-nuclear interactions only for muons. 0098 /// @return Mean radiative energy loss through the material slab 0099 float computeEnergyLossRadiative(const MaterialSlab& slab, PdgParticle absPdg, 0100 float m, float qOverP, float absQ); 0101 /// Derivative of the mean radiative energy loss with respect to q/p. 0102 /// 0103 /// @copydoc computeEnergyLossRadiative 0104 /// @return Derivative of radiative energy loss with respect to q/p 0105 float deriveEnergyLossRadiativeQOverP(const MaterialSlab& slab, 0106 PdgParticle absPdg, float m, float qOverP, 0107 float absQ); 0108 0109 /// Compute the combined mean energy loss. 0110 /// 0111 /// @param slab The traversed material and its properties 0112 /// @param absPdg Absolute particle type PDG identifier 0113 /// @param m Particle mass 0114 /// @param qOverP Particle charge divided by absolute momentum 0115 /// @param absQ Absolute particle charge 0116 /// 0117 /// This computes the combined mean energy loss -dE(x) including ionisation and 0118 /// radiative effects. The computations are valid over a wide range of particle 0119 /// energies. 0120 /// @return Combined mean energy loss through the material slab 0121 float computeEnergyLossMean(const MaterialSlab& slab, PdgParticle absPdg, 0122 float m, float qOverP, float absQ); 0123 /// Derivative of the combined mean energy loss with respect to q/p. 0124 /// 0125 /// @copydoc computeEnergyLossMean 0126 /// @return Derivative of combined mean energy loss with respect to q/p 0127 float deriveEnergyLossMeanQOverP(const MaterialSlab& slab, PdgParticle absPdg, 0128 float m, float qOverP, float absQ); 0129 0130 /// Compute the combined most probably energy loss. 0131 /// 0132 /// @copydoc computeEnergyLossMean 0133 /// @return Combined most probable energy loss through the material slab 0134 float computeEnergyLossMode(const MaterialSlab& slab, PdgParticle absPdg, 0135 float m, float qOverP, float absQ); 0136 /// Derivative of the combined most probable energy loss with respect to q/p. 0137 /// 0138 /// @copydoc computeEnergyLossMean 0139 /// @return Derivative of combined most probable energy loss with respect to q/p 0140 float deriveEnergyLossModeQOverP(const MaterialSlab& slab, PdgParticle absPdg, 0141 float m, float qOverP, float absQ); 0142 0143 /// Compute the core width of the projected planar scattering distribution. 0144 /// 0145 /// @param slab The traversed material and its properties 0146 /// @param absPdg Absolute particle type PDG identifier 0147 /// @param m Particle mass 0148 /// @param qOverP Particle charge divided by absolute momentum 0149 /// @param absQ Absolute particle charge 0150 /// @return Core width of the scattering distribution 0151 float computeMultipleScatteringTheta0(const MaterialSlab& slab, 0152 PdgParticle absPdg, float m, float qOverP, 0153 float absQ); 0154 0155 /// Approximate the core width of the projected planar scattering distribution 0156 /// with highland's formula. 0157 /// 0158 /// @param xOverX0 The thickness of the material in radiation lengths 0159 /// @return The approximate scattering angle times momentum in radians*GeV 0160 float approximateHighlandScattering(float xOverX0); 0161 0162 } // 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 |
|