Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Fatras/include/ActsFatras/Physics/ElectroMagnetic/PhotonConversion.hpp>
Public Types | |
using | Scalar = ActsFatras::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 | |
Scalar | childEnergyScaleFactor = 2. |
Scaling factor of children energy. | |
Scalar | conversionProbScaleFactor = 0.98 |
Scaling factor for photon conversion probability. | |
Private Member Functions | |
std::array< Particle, 2 > | generateChildren (const Particle &photon, Scalar childEnergy, const Particle::Vector3 &childDirection) const |
template<typename generator_t > | |
Scalar | generateFirstChildEnergyFraction (generator_t &generator, Scalar gammaMom) const |
template<typename generator_t > | |
Particle::Vector3 | generateChildDirection (generator_t &generator, const Particle &particle) const |
Scalar | screenFunction1 (Scalar delta) const |
Scalar | screenFunction2 (Scalar delta) const |
Static Private Attributes | |
static const Scalar | kElectronMass |
This class handles the photon conversion. It evaluates the distance after which the interaction will occur and the final state due the interaction itself.
Definition at line 34 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 34 of file PhotonConversion.hpp
Definition at line 36 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 36 of file PhotonConversion.hpp
|
private |
Generate the direction of the child particles.
generator_t | Type of the random number generator |
[in,out] | generator | The random number generator |
[in] | particle | The photon |
This method is based upon the Athena class PhotonConversionTool
Definition at line 226 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 226 of file PhotonConversion.hpp
References ActsFatras::Particle::direction(), ActsFatras::Particle::energy(), kElectronMass, Acts::makeCurvilinearUnitU(), ActsTests::PropagationDatasets::theta, and physmon_ckf_tracking::u.
Referenced by run().
|
private |
This method constructs and returns the child particles.
[in] | photon | The interacting photon |
[in] | childEnergy | The energy of one child particle |
[in] | childDirection | The direction of the child particle |
Definition at line 258 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 258 of file PhotonConversion.hpp
References Acts::eElectron, Acts::eMom0, Acts::ePositron, ActsFatras::Particle::fourMomentum(), ActsFatras::Particle::fourPosition(), kElectronMass, ActsFatras::Barcode::makeDescendant(), ActsFatras::Particle::particleId(), ActsFatras::Particle::referenceSurface(), ActsFatras::Particle::setAbsoluteMomentum(), ActsFatras::Particle::setProcess(), and ActsFatras::Particle::setReferenceSurface().
Referenced by run().
|
private |
Generate the energy fraction of the first child particle.
generator_t | Type of the random number generator |
[in,out] | generator | The random number generator |
[in] | gammaMom | The momentum of the photon |
This method is based upon the Geant4 class G4PairProductionRelModel
Definition at line 168 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 168 of file PhotonConversion.hpp
References childEnergyScaleFactor, physmon_vertexing::delta, eps, kElectronMass, screenFunction1(), and screenFunction2().
Referenced by run().
std::pair< Particle::Scalar, Particle::Scalar > ActsFatras::PhotonConversion::generatePathLimits | ( | generator_t & | generator, |
const Particle & | particle | ||
) | const |
Method for evaluating the distance after which the photon conversion will occur.
generator_t | Type of the random number generator |
[in,out] | generator | The random number generator |
[in] | particle | The particle |
This method is based upon the Athena class PhotonConversionTool
Definition at line 127 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 127 of file PhotonConversion.hpp
References ActsFatras::Particle::absoluteMomentum(), conversionProbScaleFactor, Acts::eGamma, kElectronMass, and ActsFatras::Particle::pdg().
Referenced by BOOST_DATA_TEST_CASE().
bool ActsFatras::PhotonConversion::run | ( | generator_t & | generator, |
Particle & | particle, | ||
std::vector< Particle > & | generated | ||
) | const |
This method evaluates the final state due to the photon conversion.
generator_t | Type of the random number generator |
[in,out] | generator | The random number generator |
[in,out] | particle | The interacting photon |
[out] | generated | List of generated particles |
Definition at line 298 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 298 of file PhotonConversion.hpp
References ActsFatras::Particle::absoluteMomentum(), Acts::eGamma, ActsExamples::HepMC3Event::finalState(), generateChildDirection(), generateChildren(), generateFirstChildEnergyFraction(), kElectronMass, merge_hashes::p, and ActsFatras::Particle::pdg().
|
inlineprivate |
Helper methods for momentum evaluation
Definition at line 112 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 112 of file PhotonConversion.hpp
References physmon_vertexing::delta.
Referenced by generateFirstChildEnergyFraction().
|
inlineprivate |
Definition at line 118 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 118 of file PhotonConversion.hpp
References physmon_vertexing::delta.
Referenced by generateFirstChildEnergyFraction().
Scalar ActsFatras::PhotonConversion::childEnergyScaleFactor = 2. |
Scaling factor of children energy.
Definition at line 39 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 39 of file PhotonConversion.hpp
Referenced by generateFirstChildEnergyFraction().
Scalar ActsFatras::PhotonConversion::conversionProbScaleFactor = 0.98 |
Scaling factor for photon conversion probability.
Definition at line 41 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 41 of file PhotonConversion.hpp
Referenced by generatePathLimits().
|
staticprivate |
Electron mass. This is an static constant and not a member variable so the struct has no internal state. Otherwise, the interaction list breaks.
Definition at line 109 of file PhotonConversion.hpp.
View newest version in sPHENIX GitHub at line 109 of file PhotonConversion.hpp
Referenced by generateChildDirection(), generateChildren(), generateFirstChildEnergyFraction(), generatePathLimits(), and run().