Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ActsFatras::detail::GeneralMixture Struct Reference

#include <acts/blob/sPHENIX/Fatras/include/ActsFatras/Physics/ElectroMagnetic/detail/GeneralMixture.hpp>

Public Member Functions

template<typename generator_t >
double operator() (generator_t &generator, const Acts::MaterialSlab &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 26 of file GeneralMixture.hpp.

View newest version in sPHENIX GitHub at line 26 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 161 of file GeneralMixture.hpp.

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

References physmon_ckf_tracking::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 96 of file GeneralMixture.hpp.

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

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 107 of file GeneralMixture.hpp.

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

References Acts::UnitConstants::e.

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 128 of file GeneralMixture.hpp.

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

References KFPMath::a, KFPMath::b, E, n, N, and rho.

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::MaterialSlab 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 41 of file GeneralMixture.hpp.

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

References ActsFatras::Particle::absoluteCharge(), ActsFatras::Particle::absoluteMomentum(), ActsFatras::Particle::absolutePdg(), Acts::computeMultipleScatteringTheta0(), Acts::eElectron, gaussmix(), genMixtureScalor, getGaussian(), getGaussmix(), getSemigauss(), ActsFatras::Particle::mass(), Acts::MaterialSlab::material(), ActsFatras::Particle::qOverP(), semigauss(), ActsTests::PropagationDatasets::theta, Acts::MaterialSlab::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 KFPMath::a, KFPMath::b, and physmon_ckf_tracking::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 30 of file GeneralMixture.hpp.

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

Referenced by operator()().

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

Steering parameter.

Definition at line 28 of file GeneralMixture.hpp.

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


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