LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
evgen::SingleGen::Config Struct Reference

Public Types

using Name = fhicl::Name
 
using Comment = fhicl::Comment
 

Public Attributes

fhicl::Atom< std::string > ParticleSelectionMode
 
fhicl::Atom< bool > PadOutVectors
 
fhicl::Sequence< int > PDG
 
fhicl::Atom< std::string > PDist
 
fhicl::Sequence< double > P0
 
fhicl::Sequence< double > SigmaP
 
fhicl::Sequence< double > X0
 
fhicl::Sequence< double > Y0
 
fhicl::Sequence< double > Z0
 
fhicl::Sequence< double > T0 {Name("T0"), Comment("central time (s) [per PDG ID]")}
 
fhicl::Sequence< double > SigmaX
 
fhicl::Sequence< double > SigmaY
 
fhicl::Sequence< double > SigmaZ
 
fhicl::Sequence< double > SigmaT
 
fhicl::Atom< std::string > PosDist
 
fhicl::Atom< std::string > TDist
 
fhicl::Atom< bool > SingleVertex
 
fhicl::Sequence< double > Theta0XZ
 
fhicl::Sequence< double > Theta0YZ
 
fhicl::Sequence< double > SigmaThetaXZ
 
fhicl::Sequence< double > SigmaThetaYZ
 
fhicl::Atom< std::string > AngleDist
 
fhicl::Atom< std::string > HistogramFile
 
fhicl::Sequence< std::string > PHist
 
fhicl::Sequence< std::string > ThetaXzYzHist
 
fhicl::OptionalAtom< rndm::NuRandomService::seed_tSeed
 

Private Member Functions

bool fromHistogram (std::string const &key) const
 Returns whether the specified mode is an histogram distribution. More...
 

Detailed Description

Definition at line 64 of file SingleGen_module.cc.

Member Typedef Documentation

Member Function Documentation

bool evgen::SingleGen::Config::fromHistogram ( std::string const &  key) const
private

Returns whether the specified mode is an histogram distribution.

Definition at line 417 of file SingleGen_module.cc.

References evgen::SingleGen::DistributionNames, evgen::SingleGen::kHIST, PDist, and evgen::SingleGen::selectOption().

418  {
420  } // SingleGen::Config::fromHistogram()
static const std::map< int, std::string > DistributionNames
Names of all distribution modes.
static auto selectOption(std::string Option, OptionList const &allowedOptions) -> decltype(auto)
Parses an option string and returns the corresponding option number.
static constexpr int kHIST
fhicl::Atom< std::string > PDist

Member Data Documentation

fhicl::Atom<std::string> evgen::SingleGen::Config::AngleDist
Initial value:
{
Name("AngleDist"),
Comment("angular distribution type: " + presentOptions(DistributionNames)),

Definition at line 150 of file SingleGen_module.cc.

fhicl::Atom<std::string> evgen::SingleGen::Config::HistogramFile
Initial value:
{
Name("HistogramFile"),
Comment("ROOT file containing the required distributions for the generation"),
[this]() { return fromHistogram(AngleDist()) || fromHistogram(PDist()); }}

Definition at line 155 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::P0
Initial value:
{Name("P0"),
Comment("central momentum (GeV/c) to generate"),
[this]() { return !fromHistogram(PDist()); }}

Definition at line 87 of file SingleGen_module.cc.

fhicl::Atom<bool> evgen::SingleGen::Config::PadOutVectors
Initial value:
{
Name("PadOutVectors"),
Comment("if true, all per-PDG-ID quantities must contain only one value, which is then "
"used for all PDG IDs")}

Definition at line 73 of file SingleGen_module.cc.

fhicl::Atom<std::string> evgen::SingleGen::Config::ParticleSelectionMode
Initial value:
{
Name("ParticleSelectionMode"),
Comment("generate one particle, or one particle per PDG ID: " +

Definition at line 68 of file SingleGen_module.cc.

fhicl::Sequence<int> evgen::SingleGen::Config::PDG
Initial value:
{Name("PDG"),
Comment("PDG ID of the particles to be generated; this is the key "
"for the other options marked as \"per PDG ID\"")}

Definition at line 78 of file SingleGen_module.cc.

fhicl::Atom<std::string> evgen::SingleGen::Config::PDist
Initial value:
{
Name("PDist"),
Comment("momentum distribution type: " + presentOptions(DistributionNames)),

Definition at line 82 of file SingleGen_module.cc.

Referenced by fromHistogram().

fhicl::Sequence<std::string> evgen::SingleGen::Config::PHist
Initial value:
{
Name("PHist"),
Comment("name of the histograms of momentum distributions"),
[this]() { return fromHistogram(PDist()); }}

Definition at line 160 of file SingleGen_module.cc.

fhicl::Atom<std::string> evgen::SingleGen::Config::PosDist
Initial value:
{Name("PosDist"),
Comment("distribution of starting position: " +

Definition at line 125 of file SingleGen_module.cc.

fhicl::OptionalAtom<rndm::NuRandomService::seed_t> evgen::SingleGen::Config::Seed
Initial value:
{
Name("Seed"),
Comment("override the random number generator seed")}

Definition at line 177 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::SigmaP
Initial value:
{Name("SigmaP"),
Comment("variation in momenta (GeV/c)"),
[this]() { return !fromHistogram(PDist()); }}

Definition at line 91 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::SigmaT
Initial value:
{
Name("SigmaT"),
Comment("variation (semi-interval or RMS) in time (s) [per PDG ID]")}

Definition at line 121 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::SigmaThetaXZ
Initial value:
{Name("SigmaThetaXZ"),
Comment("variation in angle in X-Z plane (degrees)")}

Definition at line 144 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::SigmaThetaYZ
Initial value:
{Name("SigmaThetaYZ"),
Comment("variation in angle in Y-Z plane (degrees)")}

Definition at line 147 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::SigmaX
Initial value:
{
Name("SigmaX"),
Comment("variation (radius or RMS) in x position (cm) [per PDG ID]")}

Definition at line 109 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::SigmaY
Initial value:
{
Name("SigmaY"),
Comment("variation (radius or RMS) in y position (cm) [per PDG ID]")}

Definition at line 113 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::SigmaZ
Initial value:
{
Name("SigmaZ"),
Comment("variation (radius or RMS) in z position (cm) [per PDG ID]")}

Definition at line 117 of file SingleGen_module.cc.

fhicl::Atom<bool> evgen::SingleGen::Config::SingleVertex
Initial value:
{
Name("SingleVertex"),
Comment("if true, all particles are produced at the same location"),
false}

Definition at line 133 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::T0 {Name("T0"), Comment("central time (s) [per PDG ID]")}

Definition at line 107 of file SingleGen_module.cc.

fhicl::Atom<std::string> evgen::SingleGen::Config::TDist
Initial value:
{
Name("TDist"),
Comment("time distribution type: " + presentOptions(DistributionNames, true, {kHIST}))}

Definition at line 129 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::Theta0XZ
Initial value:
{Name("Theta0XZ"),
Comment("angle from Z axis on world X-Z plane (degrees)")}

Definition at line 138 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::Theta0YZ
Initial value:
{Name("Theta0YZ"),
Comment("angle from Z axis on world Y-Z plane (degrees)")}

Definition at line 141 of file SingleGen_module.cc.

fhicl::Sequence<std::string> evgen::SingleGen::Config::ThetaXzYzHist
Initial value:
{
Name("ThetaXzYzHist"),
Comment("name of the histograms of angular (X-Z and Y-Z) distribution"),
[this]() { return fromHistogram(AngleDist()); }}

Definition at line 172 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::X0
Initial value:
{
Name("X0"),
Comment("central x position (cm) in world coordinates [per PDG ID]")}

Definition at line 95 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::Y0
Initial value:
{
Name("Y0"),
Comment("central y position (cm) in world coordinates [per PDG ID]")}

Definition at line 99 of file SingleGen_module.cc.

fhicl::Sequence<double> evgen::SingleGen::Config::Z0
Initial value:
{
Name("Z0"),
Comment("central z position (cm) in world coordinates [per PDG ID]")}

Definition at line 103 of file SingleGen_module.cc.


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