LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
LArG4Parameters.cc
Go to the documentation of this file.
1 // This service exists to pass parameters to various different
8 // classes in LArG4, which are not necessary directly called by
9 // the LArG4_module class.
10 //
11 // Ben Jones, MIT, March 2010
12 
14 
15 #include "fhiclcpp/ParameterSet.h"
16 
17 namespace sim {
18 
19  //--------------------------------------------------------------------------
21  : fOpVerbosity{pset.get<int>("OpticalSimVerbosity")}
22  , fParticleKineticECut{pset.get<double>("ParticleKineticEnergyCut")}
23  , fStoreTrajectories{pset.get<bool>("StoreTrajectories")}
24  , fDrawNeutrals{pset.get<bool>("VisualizeNeutrals")}
25  , fVisualizationEnergyCut{pset.get<double>("VisualizationEnergyCut")}
26  , fUseCustomPhysics{pset.get<bool>("UseCustomPhysics")}
27  , fModifyProtonCut{pset.get<bool>("ModifyProtonCut", false)}
28  , fNewProtonCut{fModifyProtonCut ? pset.get<double>("NewProtonCut") /* for HadronHP */ : 0.0}
29  , fLongitudinalDiffusion{pset.get<double>("LongitudinalDiffusion")}
30  , fTransverseDiffusion{pset.get<double>("TransverseDiffusion")}
31  , fElectronClusterSize{pset.get<double>("ElectronClusterSize")}
32  , fMinNumberOfElCluster{pset.get<int>("MinNumberOfElCluster")}
33  , fEnabledPhysics{pset.get<std::vector<std::string>>("EnabledPhysics")}
34  , fK0Bias{pset.get<int>("CosmogenicK0Bias")}
35  , fXSBias{pset.get<int>("CosmogenicXSMNBiasFactor")}
36  , fXBias{pset.get<int>("CosmogenicXSMNBiasOn")}
37  // First of last 3 flags above turns on secondary particle bias for
38  // K0s,Lambdas,neutrons in MuNuclear.
39  // The 2nd is the enhancement factor for XS bias in MuNuclear. Keep it
40  // <=100.
41  // The 3rd turns on cross-section bias in MuNuclear.
42  , fKeepEMShowerDaughters{pset.get<bool>("KeepEMShowerDaughters")}
43  , fDisableWireplanes{pset.get<bool>("DisableWireplanes")}
44  , fSkipWireSignalInTPCs{pset.get<std::vector<unsigned short int>>("SkipWireSignalInTPCs")}
45  , fRecombA{pset.get<double>("RecombA", util::kRecombA)}
46  , fRecombk{pset.get<double>("Recombk", util::kRecombk)}
47  , fModBoxA{pset.get<double>("ModBoxA", util::kModBoxA)}
48  , fModBoxB{pset.get<double>("ModBoxB", util::kModBoxB)}
49  , fEllipsModBoxA{pset.get<double>("EllipsModBoxA")}
50  , fEllipsModBoxB{pset.get<double>("EllipsModBoxB")}
51  , fEllipsModBoxR{pset.get<double>("EllipsModBoxR")}
52  , fLarqlChi0A{pset.get<double>("LarqlChi0A")}
53  , fLarqlChi0B{pset.get<double>("LarqlChi0B")}
54  , fLarqlChi0C{pset.get<double>("LarqlChi0C")}
55  , fLarqlChi0D{pset.get<double>("LarqlChi0D")}
56  , fLarqlAlpha{pset.get<double>("LarqlAlpha")}
57  , fLarqlBeta{pset.get<double>("LarqlBeta")}
58  , fWph{pset.get<double>("Wph")}
59  , fQAlpha{pset.get<double>("QAlpha")}
60  , fUseModBoxRecomb{pset.get<bool>("UseModBoxRecomb")}
61  , fUseEllipsModBoxRecomb{pset.get<bool>("UseEllipsModBoxRecomb")}
62  , fUseModLarqlRecomb{pset.get<bool>("UseModLarqlRecomb")}
63  , fUseBinomialFlucts{pset.get<bool>("UseBinomialFlucts", true)}
64  , fIonAndScintCalculator{pset.get<std::string>("IonAndScintCalculator", "Separate")}
65  , fOpticalParamVolumes{pset.get<std::vector<std::string>>("OpticalParamVolumes")}
66  , fOpticalParamModels{pset.get<std::vector<std::string>>("OpticalParamModels")}
67  , fOpticalParamOrientations{pset.get<std::vector<int>>("OpticalParamOrientations")}
68  , fOpticalParamParameters{pset.get<std::vector<std::vector<std::vector<double>>>>(
69  "OpticalParamParameters")}
70  , fLitePhotons{pset.get<bool>("UseLitePhotons")}
71  , fFillSimEnergyDeposits{pset.get<bool>("FillSimEnergyDeposits", false)}
72  , fNoElectronPropagation{pset.get<bool>("NoElectronPropagation", false)}
73  , fNoPhotonPropagation{pset.get<bool>("NoPhotonPropagation", false)}
74  {}
75 }
Store parameters for running LArG4.
int const fMinNumberOfElCluster
Minimum number of electron clusters.
double const fLarqlBeta
Possibly override the LarqlBeta parameter.
std::vector< std::vector< std::vector< double > > > const fOpticalParamParameters
bool const fModifyProtonCut
Whether to enable custom ProtonCut value, needed for HadronHP.
double const fEllipsModBoxB
Possibly override the EllipsModBoxB parameter.
double const fModBoxB
Possibly override the ModBoxB parameter.
double const fWph
Possibly override the Wph parameter.
double const fLarqlChi0B
Possibly override the LarqlChi0B parameter.
bool const fUseModBoxRecomb
Use Modified Box model recombination instead of Birks.
double const fLongitudinalDiffusion
Amount of diffusion in the longitudinal direction, cm^2/ns.
bool const fKeepEMShowerDaughters
constexpr double kModBoxB
Modified Box Beta in g/(MeV cm²)*kV/cm.
T get(std::string const &key) const
Definition: ParameterSet.h:314
bool const fUseEllipsModBoxRecomb
Use Ellipsoid Modified Box model recombination instead of Birks.
double const fVisualizationEnergyCut
depricated, GeV
bool const fUseModLarqlRecomb
Use LArQL model recombination correction (dependence on EF)
double const fLarqlAlpha
Possibly override the LarqlAlpha parameter.
Monte Carlo Simulation.
double const fRecombk
Possibly override the Recombk parameter.
double const fRecombA
Possibly override the RecombA parameter.
double const fLarqlChi0D
Possibly override the LarqlChi0D parameter.
LArG4Parameters(fhicl::ParameterSet const &pset)
double const fParticleKineticECut
Minimum energy a particle needs in order to be stored in the particle list [GeV]. ...
double const fEllipsModBoxA
Possibly override the EllipsModBoxA parameter.
double const fNewProtonCut
New Proton Cut parameter to override default in HadronHP.
bool const fUseCustomPhysics
std::vector< std::string > const fOpticalParamModels
List of names of those models.
bool const fNoPhotonPropagation
specifically prevents photon propagation in opfast
double const fModBoxA
Possibly override the ModBoxA parameter.
constexpr double kRecombk
double const fTransverseDiffusion
Amount of diffusion in the transverse direction, cm^2/ns.
bool const fNoElectronPropagation
specifically prevents electron propagation
int const fXSBias
Turns on cross-section bian in MuNuclear.
double const fLarqlChi0C
Possibly override the LarqlChi0C parameter.
std::vector< unsigned short int > const fSkipWireSignalInTPCs
selective disabling of drift simulation
std::vector< std::string > const fOpticalParamVolumes
bool const fDrawNeutrals
depricated
double const fElectronClusterSize
bool const fFillSimEnergyDeposits
handle to fill SimEdeps or not
constexpr double kRecombA
A constant.
std::vector< std::string > const fEnabledPhysics
List of enabled physics processes if using Custom physics.
std::string const fIonAndScintCalculator
bool const fDisableWireplanes
constexpr double kModBoxA
Modified Box Alpha.
double const fLarqlChi0A
Possibly override the LarqlChi0A parameter.
std::vector< int > const fOpticalParamOrientations
double const fEllipsModBoxR
Possibly override the EllipsModBoxR parameter.
bool const fUseBinomialFlucts
Use binomial fluctuations in correlated method.
double const fQAlpha
Possibly override the QAlpha parameter.
bool const fStoreTrajectories