ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ActsFatras::detail::GeneralMixture Struct Reference

#include <acts/blob/master/Fatras/include/ActsFatras/Physics/Scattering/GeneralMixture.hpp>

Public Member Functions

template<typename generator_t >
double operator() (generator_t &generator, const Acts::MaterialProperties &slab, Particle &particle) const
 
std::array< double, 4 > getGaussian (double beta, double p, double tInX0, double scale) const
 
std::array< double, 4 > getGaussmix (double beta, double p, double tInX0, double Z, double scale) const
 
std::array< double, 6 > getSemigauss (double beta, double p, double tInX0, double Z, double scale) const
 
template<typename generator_t >
double gaussmix (generator_t &generator, const std::array< double, 4 > &scattering_params) const
 Retrieve the gaussian mixture.
 
template<typename generator_t >
double semigauss (generator_t &generator, const std::array< double, 6 > &scattering_params) const
 Retrieve the semi-gaussian mixture.
 

Public Attributes

bool log_include = true
 Steering parameter.
 
double genMixtureScalor = 1.
 Scale the mixture level.
 

Detailed Description

Generate scattering angles using a general mixture model.

Emulates core and tail scattering as described in

General mixture model Fruehwirth, M. Liendl.
Comp. Phys. Comm. 141 (2001) 230-246

Definition at line 27 of file GeneralMixture.hpp.

View newest version in sPHENIX GitHub at line 27 of file GeneralMixture.hpp

Member Function Documentation

template<typename generator_t >
double ActsFatras::detail::GeneralMixture::gaussmix ( generator_t &  generator,
const std::array< double, 4 > &  scattering_params 
) const
inline

Retrieve the gaussian mixture.

Template Parameters
generator_tType of the generator
Parameters
udistThe uniform distribution handed over by the call operator
scattering_paramsthe tuned parameters for the generation
Returns
a double value that represents the gaussian mixture

Definition at line 162 of file GeneralMixture.hpp.

View newest version in sPHENIX GitHub at line 162 of file GeneralMixture.hpp

References Acts::UnitConstants::u.

Referenced by operator()().

+ Here is the caller graph for this function:

std::array<double, 4> ActsFatras::detail::GeneralMixture::getGaussian ( double  beta,
double  p,
double  tInX0,
double  scale 
) const
inline

Definition at line 98 of file GeneralMixture.hpp.

View newest version in sPHENIX GitHub at line 98 of file GeneralMixture.hpp

References scale.

Referenced by operator()().

+ Here is the caller graph for this function:

std::array<double, 4> ActsFatras::detail::GeneralMixture::getGaussmix ( double  beta,
double  p,
double  tInX0,
double  Z,
double  scale 
) const
inline

Definition at line 109 of file GeneralMixture.hpp.

View newest version in sPHENIX GitHub at line 109 of file GeneralMixture.hpp

References d1, d2, e, and scale.

Referenced by operator()().

+ Here is the caller graph for this function:

std::array<double, 6> ActsFatras::detail::GeneralMixture::getSemigauss ( double  beta,
double  p,
double  tInX0,
double  Z,
double  scale 
) const
inline

Definition at line 129 of file GeneralMixture.hpp.

View newest version in sPHENIX GitHub at line 129 of file GeneralMixture.hpp

References a, b, E, n, N, and scale.

Referenced by operator()().

+ Here is the caller graph for this function:

template<typename generator_t >
double ActsFatras::detail::GeneralMixture::operator() ( generator_t &  generator,
const Acts::MaterialProperties slab,
Particle particle 
) const
inline

Generate a single 3D scattering angle.

Parameters
[in]generatoris the random number generator
[in]slabdefines the passed material
[in,out]particleis the particle being scattered
Returns
a 3d scattering angle
Template Parameters
generator_tis a RandomNumberEngine

Definition at line 42 of file GeneralMixture.hpp.

View newest version in sPHENIX GitHub at line 42 of file GeneralMixture.hpp

References kdfinder::abs(), ActsFatras::Particle::absMomentum(), ActsFatras::Particle::charge(), Acts::computeMultipleScatteringTheta0(), Acts::eElectron, gaussmix(), genMixtureScalor, getGaussian(), getGaussmix(), getSemigauss(), ActsFatras::Particle::mass(), Acts::MaterialProperties::material(), ActsFatras::Particle::pdg(), semigauss(), theta(), Acts::MaterialProperties::thicknessInX0(), and Acts::Material::Z().

+ Here is the call graph for this function:

template<typename generator_t >
double ActsFatras::detail::GeneralMixture::semigauss ( generator_t &  generator,
const std::array< double, 6 > &  scattering_params 
) const
inline

Retrieve the semi-gaussian mixture.

Template Parameters
generator_tType of the generator
Parameters
udistThe uniform distribution handed over by the call operator
scattering_paramsthe tuned parameters for the generation
Returns
a double value that represents the gaussian mixture

Definition at line 186 of file GeneralMixture.hpp.

View newest version in sPHENIX GitHub at line 186 of file GeneralMixture.hpp

References a, b, and Acts::UnitConstants::u.

Referenced by operator()().

+ Here is the caller graph for this function:

Member Data Documentation

double ActsFatras::detail::GeneralMixture::genMixtureScalor = 1.

Scale the mixture level.

Definition at line 31 of file GeneralMixture.hpp.

View newest version in sPHENIX GitHub at line 31 of file GeneralMixture.hpp

Referenced by operator()().

bool ActsFatras::detail::GeneralMixture::log_include = true

Steering parameter.

Definition at line 29 of file GeneralMixture.hpp.

View newest version in sPHENIX GitHub at line 29 of file GeneralMixture.hpp


The documentation for this struct was generated from the following file: