File BetheHeitler.hpp

namespace ActsFatras
struct BetheHeitler
#include <ActsFatras/Physics/ElectroMagnetic/BetheHeitler.hpp>

Simulate electron energy loss using the Bethe-Heitler description.

Bethe-Heitler for electron bremsstrahlung description as described here: “A Gaussian-mixture approximation of the Bethe–Heitler model of electron

energy loss by bremsstrahlung” R. Frühwirth

Public Types

using Scalar = Particle::Scalar
using Vector3 = Particle::Vector3

Public Functions

Particle bremPhoton(const Particle &particle, Scalar gammaE, Scalar rndPsi, Scalar rndTheta1, Scalar rndTheta2, Scalar rndTheta3) const

Simulate the photon emission.

Parameters
  • particle[in] The unmodified electron

  • gammaE[in] Energy of the photon

  • rndPsi[in] Random number for the azimuthal angle

  • rndTheta1[in] Random number for the polar angle

  • rndTheta2[in] Random number for the polar angle

  • rndTheta3[in] Random number for the polar angle

template<typename generator_t>
inline std::array<Particle, 1> operator()(generator_t &generator, const Acts::MaterialSlab &slab, Particle &particle) const

Simulate energy loss and update the particle parameters.

Parameters
  • generator[in] is the random number generator

  • slab[in] defines the passed material

  • particle[inout] is the particle being updated

Template Parameters

generator_t – is a RandomNumberEngine

Returns

Produced photon.

Public Members

double scaleFactor = 1.

A scaling factor to.

bool uniformHertzDipoleAngle = false