Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Fatras/include/ActsFatras/Physics/NuclearInteraction/NuclearInteraction.hpp>
Public Types | |
using | Scalar = Particle::Scalar |
Public Member Functions | |
template<typename generator_t > | |
std::pair< Scalar, Scalar > | generatePathLimits (generator_t &generator, const Particle &particle) const |
template<typename generator_t > | |
bool | run (generator_t &generator, Particle &particle, std::vector< Particle > &generated) const |
Public Attributes | |
detail::MultiParticleNuclearInteractionParametrisation | multiParticleParameterisation |
The storage of the parameterisation. | |
unsigned int | nMatchingTrials = 100 |
The number of trials to match momenta and inveriant masses. | |
unsigned int | nMatchingTrialsTotal = 1000 |
This class provides a parametrised nuclear interaction. The thereby required parametrisation needs to be set and is not provided by default.
Definition at line 39 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 39 of file NuclearInteraction.hpp
Definition at line 40 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 40 of file NuclearInteraction.hpp
|
private |
Converter from sampled numbers to a vector of particles
generator_t | The random number generator type |
[in,out] | generator | The random number generator |
[in] | pdgId | The PDG IDs |
[in] | momenta | The momenta |
[in] | invariantMasses | The invariant masses |
[in] | initialParticle | The initial particle |
[in] | parametrizedMomentum | Momentum of the parametrisation |
[in] | soft | Treat it as soft or hard nuclear interaction |
Definition at line 499 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 499 of file NuclearInteraction.hpp
References ActsFatras::Particle::direction(), ActsFatras::Particle::fourPosition(), globalAngle(), i, ActsFatras::Barcode::makeDescendant(), Acts::makeDirectionFromPhiTheta(), momentum, testing::internal::move(), merge_hashes::p, ActsFatras::Particle::particleId(), ActsTests::PropagationDatasets::phi, Acts::VectorHelpers::phi(), ActsFatras::Particle::referenceSurface(), ActsFatras::Particle::setDirection(), ActsFatras::Particle::setPosition4(), ActsFatras::Particle::setProcess(), ActsFatras::Particle::setReferenceSurface(), size, ActsTests::PropagationDatasets::theta, and Acts::VectorHelpers::theta().
Referenced by run().
|
private |
Evaluates the multiplicity of the final state
[in] | rnd | Random number |
[in] | distribution | The multiplicity distribution |
Definition at line 102 of file NuclearInteraction.cpp.
View newest version in sPHENIX GitHub at line 102 of file NuclearInteraction.cpp
References sampleDiscreteValues().
Referenced by run().
|
private |
Retrieves the parametrisation for the particle
[in] | rnd | A random number |
[in] | parametrisation | The storage of parametrisations |
[in] | particleMomentum | The particles momentum |
Definition at line 20 of file NuclearInteraction.cpp.
View newest version in sPHENIX GitHub at line 20 of file NuclearInteraction.cpp
Referenced by generatePathLimits(), and run().
|
inline |
This method evaluates the nuclear interaction length L0.
generator_t | The random number generator type |
[in,out] | generator | The random number generator |
[in] | particle | The ingoing particle |
Definition at line 57 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 57 of file NuclearInteraction.hpp
References ActsFatras::Particle::absoluteMomentum(), findParameters(), multiParticleParameterisation, ActsFatras::detail::NuclearInteractionParameters::nuclearInteractionProbability, ActsFatras::Particle::pdg(), and sampleContinuousValues().
|
private |
Converts relative angles to absolute angles wrt the global coordinate system.
[in] | phi1 | The azimuthal angle of the first particle |
[in] | theta1 | The polar angle of the first particle |
[in] | phi2 | The azimuthal angle of the second particle |
[in] | theta2 | The polar angle of the second particle |
Definition at line 110 of file NuclearInteraction.cpp.
View newest version in sPHENIX GitHub at line 110 of file NuclearInteraction.cpp
References ActsTests::PropagationDatasets::phi, and ActsTests::PropagationDatasets::theta.
Referenced by convertParametersToParticles().
|
private |
Tests whether the final state momenta and invariant masses are matching to each other to allow the evaluation of particle directions.
[in] | momenta | The final state momenta |
[in] | invariantMasses | The final state invariant masses |
[in] | parametrizedMomentum | The momentum of the parametrized particle |
Definition at line 142 of file NuclearInteraction.cpp.
View newest version in sPHENIX GitHub at line 142 of file NuclearInteraction.cpp
References i, momentum, and size.
Referenced by sampleKinematics().
|
inline |
This method performs a nuclear interaction.
generator_t | The random number generator type |
[in,out] | generator | The random number generator |
[in,out] | particle | The ingoing particle |
[out] | generated | Additional generated particles |
Definition at line 100 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 100 of file NuclearInteraction.hpp
References ActsFatras::Particle::absoluteMomentum(), convertParametersToParticles(), finalStateMultiplicity(), findParameters(), ActsFatras::detail::NuclearInteractionParameters::hardKinematicParameters, ActsFatras::detail::NuclearInteractionParameters::hardMultiplicity, ActsFatras::detail::NuclearInteractionParameters::momentum, multiParticleParameterisation, full_chain_odd::multiplicity, particles, ActsFatras::Particle::pdg(), ActsFatras::detail::NuclearInteractionParameters::pdgMap, sampleKinematics(), samplePdgIds(), ActsFatras::Particle::setAbsoluteMomentum(), softInteraction(), ActsFatras::detail::NuclearInteractionParameters::softInteractionProbability, ActsFatras::detail::NuclearInteractionParameters::softKinematicParameters, and ActsFatras::detail::NuclearInteractionParameters::softMultiplicity.
|
private |
This function performs an inverse sampling to provide a continuous value from a distribition.
[in] | rnd | A random number in [0,1] |
[in] | distribution | The distribution to sample from |
[in] | interpolate | Flag to steer whether an interpolation between neighbouring bins should be performed instead of a bin lookup |
Definition at line 68 of file NuclearInteraction.cpp.
View newest version in sPHENIX GitHub at line 68 of file NuclearInteraction.cpp
References distance(), it, Acts::UnitConstants::min, and physmon_simulation::rnd.
Referenced by generatePathLimits(), sampleInvariantMasses(), and sampleMomenta().
|
private |
This function performs an inverse sampling to provide a discrete value from a distribution.
[in] | rnd | A random number in [0,1] |
[in] | distribution | The distribution to sample from |
Definition at line 48 of file NuclearInteraction.cpp.
View newest version in sPHENIX GitHub at line 48 of file NuclearInteraction.cpp
References distance(), it, Acts::UnitConstants::min, and physmon_simulation::rnd.
Referenced by finalStateMultiplicity().
|
private |
Evaluates the final state invariant masses
generator_t | The random number generator type |
[in,out] | generator | The random number generator |
[in] | parametrisation | Parametrisation of kinematic properties |
Definition at line 406 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 406 of file NuclearInteraction.hpp
References dist(), ActsFatras::detail::NuclearInteractionParameters::ParametersWithFixedMultiplicity::eigenvaluesInvariantMass, ActsFatras::detail::NuclearInteractionParameters::ParametersWithFixedMultiplicity::eigenvectorsInvariantMass, i, ActsFatras::detail::NuclearInteractionParameters::ParametersWithFixedMultiplicity::invariantMassDistributions, ActsFatras::detail::NuclearInteractionParameters::ParametersWithFixedMultiplicity::meanInvariantMass, Dataset::parameters, sampleContinuousValues(), and size.
Referenced by sampleKinematics().
|
private |
This method samples the kinematics of the final state particles
generator_t | The random number generator type |
[in,out] | generator | The random number generator |
[in] | parameters | The parametrisation |
[in] | momentum | The momentum of the parametrisation |
Definition at line 473 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 473 of file NuclearInteraction.hpp
References match(), nMatchingTrials, nMatchingTrialsTotal, sampleInvariantMasses(), and sampleMomenta().
Referenced by run().
|
private |
Evaluates the final state momenta
generator_t | The random number generator type |
[in,out] | generator | The random number generator |
[in] | parametrisation | Parametrisation of kinematic properties |
[in] | initialMomentum | The initial momentum |
Definition at line 435 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 435 of file NuclearInteraction.hpp
References dist(), ActsFatras::detail::NuclearInteractionParameters::ParametersWithFixedMultiplicity::eigenvaluesMomentum, ActsFatras::detail::NuclearInteractionParameters::ParametersWithFixedMultiplicity::eigenvectorsMomentum, i, ActsFatras::detail::NuclearInteractionParameters::ParametersWithFixedMultiplicity::meanMomentum, ActsFatras::detail::NuclearInteractionParameters::ParametersWithFixedMultiplicity::momentumDistributions, Dataset::parameters, sampleContinuousValues(), size, and sum().
Referenced by sampleKinematics().
|
private |
Evaluates the final state PDG IDs
generator_t | The random number generator type |
[in,out] | generator | The random number generator |
[in] | pdgMap | The branching probability map |
[in] | multiplicity | The final state multiplicity |
[in] | particlePdg | The PDG ID of the initial particle |
[in] | soft | Treat it as soft or hard nuclear interaction |
Definition at line 347 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 347 of file NuclearInteraction.hpp
References fixGDML::element, i, full_chain_odd::multiplicity, and physmon_simulation::rnd.
Referenced by run().
|
inlineprivate |
Estimates the interaction type
[in] | rnd | Random number |
[in] | probability | The probability for a soft interaction |
Definition at line 194 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 194 of file NuclearInteraction.hpp
Referenced by run().
detail::MultiParticleNuclearInteractionParametrisation ActsFatras::NuclearInteraction::multiParticleParameterisation |
The storage of the parameterisation.
Definition at line 43 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 43 of file NuclearInteraction.hpp
Referenced by generatePathLimits(), and run().
unsigned int ActsFatras::NuclearInteraction::nMatchingTrials = 100 |
The number of trials to match momenta and inveriant masses.
Definition at line 46 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 46 of file NuclearInteraction.hpp
Referenced by sampleKinematics().
unsigned int ActsFatras::NuclearInteraction::nMatchingTrialsTotal = 1000 |
Definition at line 47 of file NuclearInteraction.hpp.
View newest version in sPHENIX GitHub at line 47 of file NuclearInteraction.hpp
Referenced by sampleKinematics().