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

#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, ScalargeneratePathLimits (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
 

Detailed Description

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

Member Typedef Documentation

Definition at line 36 of file PhotonConversion.hpp.

View newest version in sPHENIX GitHub at line 36 of file PhotonConversion.hpp

Member Function Documentation

template<typename generator_t >
Particle::Vector3 ActsFatras::PhotonConversion::generateChildDirection ( generator_t &  generator,
const Particle particle 
) const
private

Generate the direction of the child particles.

Template Parameters
generator_tType of the random number generator
Parameters
[in,out]generatorThe random number generator
[in]particleThe photon
Returns
The direction vector of the child particle

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::array< Particle, 2 > ActsFatras::PhotonConversion::generateChildren ( const Particle photon,
Scalar  childEnergy,
const Particle::Vector3 childDirection 
) const
private

This method constructs and returns the child particles.

Parameters
[in]photonThe interacting photon
[in]childEnergyThe energy of one child particle
[in]childDirectionThe direction of the child particle
Returns
Array containing the produced leptons

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename generator_t >
Particle::Scalar ActsFatras::PhotonConversion::generateFirstChildEnergyFraction ( generator_t &  generator,
Scalar  gammaMom 
) const
private

Generate the energy fraction of the first child particle.

Template Parameters
generator_tType of the random number generator
Parameters
[in,out]generatorThe random number generator
[in]gammaMomThe momentum of the photon
Returns
The energy of the child particle

This method is based upon the Geant4 class G4PairProductionRelModel

Note
This method is from the Geant4 class G4Element

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename generator_t >
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.

Template Parameters
generator_tType of the random number generator
Parameters
[in,out]generatorThe random number generator
[in]particleThe particle
Returns
valid X0 limit and no limit on L0

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename generator_t >
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.

Template Parameters
generator_tType of the random number generator
Parameters
[in,out]generatorThe random number generator
[in,out]particleThe interacting photon
[out]generatedList of generated particles
Returns
True if the conversion occured, else false

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().

+ Here is the call graph for this function:

Particle::Scalar ActsFatras::PhotonConversion::screenFunction1 ( Scalar  delta) const
inlineprivate

Helper methods for momentum evaluation

Note
These methods are taken from the Geant4 class G4PairProductionRelModel

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().

+ Here is the caller graph for this function:

Particle::Scalar ActsFatras::PhotonConversion::screenFunction2 ( Scalar  delta) const
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().

+ Here is the caller graph for this function:

Member Data Documentation

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().

const ActsFatras::PhotonConversion::Scalar ActsFatras::PhotonConversion::kElectronMass
staticprivate
Initial value:

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().


The documentation for this class was generated from the following files: