remage
Simulation framework for HPGe-based experiments
 
Loading...
Searching...
No Matches
RMGGeneratorCosmicMuons Class Reference

Cosmic-muon primary generator backed by the EcoMug sampler. More...

#include <RMGGeneratorCosmicMuons.hh>

Inheritance diagram for RMGGeneratorCosmicMuons:
Collaboration diagram for RMGGeneratorCosmicMuons:

Public Types

enum class  SkyShape { kPlane , kSphere }
 Geometric shape of the surface from which muons are sampled. More...
 

Public Member Functions

 RMGGeneratorCosmicMuons (RMGGeneratorCosmicMuons const &)=delete
 
RMGGeneratorCosmicMuonsoperator= (RMGGeneratorCosmicMuons const &)=delete
 
 RMGGeneratorCosmicMuons (RMGGeneratorCosmicMuons &&)=delete
 
RMGGeneratorCosmicMuonsoperator= (RMGGeneratorCosmicMuons &&)=delete
 
void GeneratePrimaries (G4Event *) override
 Sample a muon from EcoMug and fire it through the internal particle gun.
 
void SetParticlePosition (G4ThreeVector) override
 No-op: vertex sampling is owned by EcoMug.
 
void BeginOfRunAction (const G4Run *) override
 Configure EcoMug with the user-supplied sky shape and kinematic ranges.
 
void EndOfRunAction (const G4Run *) override
 Called at the end of a run.
 
- Public Member Functions inherited from RMGVGenerator
 RMGVGenerator (std::string name)
 
 RMGVGenerator (RMGVGenerator const &)=delete
 
RMGVGeneratoroperator= (RMGVGenerator const &)=delete
 
 RMGVGenerator (RMGVGenerator &&)=delete
 
RMGVGeneratoroperator= (RMGVGenerator &&)=delete
 
void SetReportingFrequency (int freq)
 
std::string GetGeneratorName ()
 

Additional Inherited Members

- Protected Attributes inherited from RMGVGenerator
std::string fGeneratorName
 
std::unique_ptr< G4UImessengerfMessenger
 
int fReportingFrequency = 1000
 

Detailed Description

Cosmic-muon primary generator backed by the EcoMug sampler.

Generates atmospheric muons sampled either from a horizontal plane or from the upper hemisphere of a sphere (see SkyShape). Momentum, zenith/azimuth and source-position ranges are configurable through messenger commands. Vertex position is sampled internally by EcoMug, so SetParticlePosition is a no-op.

Based on EcoMug, Pagano et al., NIM A 1014 (2021) 165732, https://doi.org/10.1016/j.nima.2021.165732.

Member Enumeration Documentation

◆ SkyShape

Geometric shape of the surface from which muons are sampled.

Enumerator
kPlane 

Horizontal square plane at a fixed height.

kSphere 

Upper hemisphere of a sphere centred at the origin.

Member Function Documentation

◆ BeginOfRunAction()

void RMGGeneratorCosmicMuons::BeginOfRunAction ( const G4Run * )
overridevirtual

Configure EcoMug with the user-supplied sky shape and kinematic ranges.

Reimplemented from RMGVGenerator.

◆ EndOfRunAction()

void RMGGeneratorCosmicMuons::EndOfRunAction ( const G4Run * )
inlineoverridevirtual

Called at the end of a run.

Derived generators can perform any necessary finalization in this method.

Reimplemented from RMGVGenerator.

◆ GeneratePrimaries()

void RMGGeneratorCosmicMuons::GeneratePrimaries ( G4Event * event)
overridevirtual

Sample a muon from EcoMug and fire it through the internal particle gun.

Implements RMGVGenerator.

◆ SetParticlePosition()

void RMGGeneratorCosmicMuons::SetParticlePosition ( G4ThreeVector )
inlineoverridevirtual

No-op: vertex sampling is owned by EcoMug.

Implements RMGVGenerator.


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