9#ifndef TRKEXTOOLS_MULTIPLESCATTERINGUPDATOR_H
10#define TRKEXTOOLS_MULTIPLESCATTERINGUPDATOR_H
15#include "GaudiKernel/ServiceHandle.h"
22#include "CLHEP/Random/RandFlat.h"
62 double pathcorrection,
64 double deltaE = 0.)
const override;
68 "use eloss parametrisation from TrkUtils MaterialInterAction.h"};
69 BooleanProperty
m_log_include{
this,
"MultipleScatteringLogarithmicTermOn",
true,
70 "boolean switch to include log term"};
74 "modifies the Fruehwirth/Regler model to fit with G4"};
79 "Name of the random number service"};
83 "Name of the random number stream"};
A wrapper class for event-slot-local random engines.
Interface class IMultipleScatteringUpdator.
Material with information about thickness of material.
BooleanProperty m_optGaussianMixtureG4
ATHRNG::RNGWrapper * m_rngWrapper
Random engine.
BooleanProperty m_gaussianMixture
virtual StatusCode initialize() override
AlgTool initailize method.
MultipleScatteringUpdator(const std::string &, const std::string &, const IInterface *)
AlgTool like constructor.
BooleanProperty m_useTrkUtils
BooleanProperty m_log_include
virtual ~MultipleScatteringUpdator()
Virtual destructor.
ServiceHandle< IAthRNGSvc > m_rndGenSvc
Random Generator service.
StringProperty m_randomEngineName
virtual double sigmaSquare(const MaterialProperties &mat, double p, double pathcorrection, ParticleHypothesis particle=pion, double deltaE=0.) const override
Calculate the sigma on theta introduced by multiple scattering, according to the RutherFord-Scott For...
Ensure that the ATLAS eigen extensions are properly loaded.
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.