R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist > Class Template Reference

#include <CosmicMuon.h>

Public Member Functions

 TrackGeneratorImp (const AngleDist &angle_dist, const EnergyDist &energy_dist, const PositionDist &position_dist)
 
void set_detector_size (double detector_size) override
 
void set_rd_engine (TRandom *user_rd_engine) override
 
void set_PID (int PID) override
 
- Public Member Functions inherited from R3B::Neuland::TrackGeneratorAbstract
 TrackGeneratorAbstract ()=default
 
 TrackGeneratorAbstract (const TrackGeneratorAbstract &)=default
 
 TrackGeneratorAbstract (TrackGeneratorAbstract &&)=default
 
auto operator= (const TrackGeneratorAbstract &) -> TrackGeneratorAbstract &=default
 
auto operator= (TrackGeneratorAbstract &&) -> TrackGeneratorAbstract &=default
 
virtual ~TrackGeneratorAbstract ()=default
 

Private Types

using MomentumPosition = std::pair<ROOT::Math::PxPyPzE4D<double>, ROOT::Math::Cartesian3D<double>>
 
using Momentum = ROOT::Math::PxPyPzE4D<double>
 
using AngleRadius = ROOT::Math::Polar3D<double>
 

Private Member Functions

auto rd_num_gen_angles (const AngleDist &angle_dist) -> AngleRadius
 
auto calculate_momentum_energy (const double &kinetic_energy, const AngleInfo &angle_info) -> Momentum
 
auto calculate_external_position_momentum (const AngleDist &angle_dist, const EnergyDist &energy_dist, const PositionDist &position_dist) -> MomentumPosition
 
auto ReadEvent (FairPrimaryGenerator *prim_gen) -> bool override
 

Private Attributes

double detector_size_ { default_detector_size }
 
int PID_ { default_PID }
 
R3B::OutputVectorConnector< MuonTrackInfomuon_track_output_ { "muon_track_info" }
 
AngleDist angle_dist_ {}
 
EnergyDist energy_dist_ {}
 
PositionDist position_dist_ {}
 
TRandom * rd_engine_ { gRandom }
 

Detailed Description

template<typename AngleDist, typename EnergyDist, typename PositionDist>
class R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >

Definition at line 68 of file CosmicMuon.h.

Member Typedef Documentation

◆ AngleRadius

template<typename AngleDist, typename EnergyDist, typename PositionDist>
using R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::AngleRadius = ROOT::Math::Polar3D<double>
private

Definition at line 86 of file CosmicMuon.h.

◆ Momentum

template<typename AngleDist, typename EnergyDist, typename PositionDist>
using R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::Momentum = ROOT::Math::PxPyPzE4D<double>
private

Definition at line 85 of file CosmicMuon.h.

◆ MomentumPosition

template<typename AngleDist, typename EnergyDist, typename PositionDist>
using R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::MomentumPosition = std::pair<ROOT::Math::PxPyPzE4D<double>, ROOT::Math::Cartesian3D<double>>
private

Definition at line 84 of file CosmicMuon.h.

Constructor & Destructor Documentation

◆ TrackGeneratorImp()

template<typename AngleDist, typename EnergyDist, typename PositionDist>
R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::TrackGeneratorImp ( const AngleDist & angle_dist,
const EnergyDist & energy_dist,
const PositionDist & position_dist )
inline

Definition at line 71 of file CosmicMuon.h.

Member Function Documentation

◆ calculate_external_position_momentum()

template<typename AngleDist, typename EnergyDist, typename PositionDist>
auto R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::calculate_external_position_momentum ( const AngleDist & angle_dist,
const EnergyDist & energy_dist,
const PositionDist & position_dist ) -> MomentumPosition
private

Definition at line 148 of file CosmicMuon.h.

◆ calculate_momentum_energy()

template<typename AngleDist, typename EnergyDist, typename PositionDist>
auto R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::calculate_momentum_energy ( const double & kinetic_energy,
const AngleInfo & angle_info ) -> Momentum
private

Definition at line 135 of file CosmicMuon.h.

◆ rd_num_gen_angles()

template<typename AngleDist, typename EnergyDist, typename PositionDist>
auto R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::rd_num_gen_angles ( const AngleDist & angle_dist) -> AngleRadius
private

Definition at line 123 of file CosmicMuon.h.

◆ ReadEvent()

template<typename AngleDist, typename EnergyDist, typename PositionDist>
auto R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::ReadEvent ( FairPrimaryGenerator * prim_gen) -> bool
inlineoverrideprivatevirtual

Implements R3B::Neuland::TrackGeneratorAbstract.

Definition at line 103 of file CosmicMuon.h.

◆ set_detector_size()

template<typename AngleDist, typename EnergyDist, typename PositionDist>
void R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::set_detector_size ( double detector_size)
inlineoverridevirtual

Implements R3B::Neuland::TrackGeneratorAbstract.

Definition at line 79 of file CosmicMuon.h.

◆ set_PID()

template<typename AngleDist, typename EnergyDist, typename PositionDist>
void R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::set_PID ( int PID)
inlineoverridevirtual

Implements R3B::Neuland::TrackGeneratorAbstract.

Definition at line 81 of file CosmicMuon.h.

◆ set_rd_engine()

template<typename AngleDist, typename EnergyDist, typename PositionDist>
void R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::set_rd_engine ( TRandom * user_rd_engine)
inlineoverridevirtual

Implements R3B::Neuland::TrackGeneratorAbstract.

Definition at line 80 of file CosmicMuon.h.

Member Data Documentation

◆ angle_dist_

template<typename AngleDist, typename EnergyDist, typename PositionDist>
AngleDist R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::angle_dist_ {}
private

Definition at line 91 of file CosmicMuon.h.

◆ detector_size_

template<typename AngleDist, typename EnergyDist, typename PositionDist>
double R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::detector_size_ { default_detector_size }
private

Definition at line 87 of file CosmicMuon.h.

◆ energy_dist_

template<typename AngleDist, typename EnergyDist, typename PositionDist>
EnergyDist R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::energy_dist_ {}
private

Definition at line 92 of file CosmicMuon.h.

◆ muon_track_output_

template<typename AngleDist, typename EnergyDist, typename PositionDist>
R3B::OutputVectorConnector<MuonTrackInfo> R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::muon_track_output_ { "muon_track_info" }
private

Definition at line 90 of file CosmicMuon.h.

◆ PID_

template<typename AngleDist, typename EnergyDist, typename PositionDist>
int R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::PID_ { default_PID }
private

Definition at line 88 of file CosmicMuon.h.

◆ position_dist_

template<typename AngleDist, typename EnergyDist, typename PositionDist>
PositionDist R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::position_dist_ {}
private

Definition at line 93 of file CosmicMuon.h.

◆ rd_engine_

template<typename AngleDist, typename EnergyDist, typename PositionDist>
TRandom* R3B::Neuland::TrackGeneratorImp< AngleDist, EnergyDist, PositionDist >::rd_engine_ { gRandom }
private

Definition at line 94 of file CosmicMuon.h.


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