All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LArG4Parameters.cc
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 /// \file LArG4Parameters_service.cc
3 /// \brief Store parameters for running LArG4
4 ///
5 /// \author bjpjones@mit.edu
6 ////////////////////////////////////////////////////////////////////////
7 // 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 
13 
15 
16 #include "fhiclcpp/ParameterSet.h"
17 
18 namespace sim {
19 
20  //--------------------------------------------------------------------------
21  LArG4Parameters::LArG4Parameters(fhicl::ParameterSet const& pset)
22  : fOpVerbosity {pset.get< int >("OpticalSimVerbosity" )}
23  , fParticleKineticECut {pset.get< double >("ParticleKineticEnergyCut")}
24  , fStoreTrajectories {pset.get< bool >("StoreTrajectories" )}
25  , fDrawNeutrals {pset.get< bool >("VisualizeNeutrals" )}
26  , fVisualizationEnergyCut {pset.get< double >("VisualizationEnergyCut" )}
27  , fUseCustomPhysics {pset.get< bool >("UseCustomPhysics" )}
28  , fModifyProtonCut {pset.get< bool >("ModifyProtonCut" , false)}
29  , fNewProtonCut {fModifyProtonCut? pset.get<double>("NewProtonCut") /* for HadronHP */ : 0.0}
30  , fLongitudinalDiffusion {pset.get< double >("LongitudinalDiffusion" )}
31  , fTransverseDiffusion {pset.get< double >("TransverseDiffusion" )}
32  , fElectronClusterSize {pset.get< double >("ElectronClusterSize" )}
33  , fMinNumberOfElCluster {pset.get< int >("MinNumberOfElCluster" )}
34  , fEnabledPhysics {pset.get< std::vector<std::string> >("EnabledPhysics" )}
35  , fK0Bias {pset.get< int >("CosmogenicK0Bias" )}
36  , fXSBias {pset.get< int >("CosmogenicXSMNBiasFactor")}
37  , fXBias {pset.get< int >("CosmogenicXSMNBiasOn" )}
38  // First of last 3 flags above turns on secondary particle bias for
39  // K0s,Lambdas,neutrons in MuNuclear.
40  // The 2nd is the enhancement factor for XS bias in MuNuclear. Keep it
41  // <=100.
42  // The 3rd turns on cross-section bias in MuNuclear.
43  , fKeepEMShowerDaughters {pset.get< bool >("KeepEMShowerDaughters" )}
44  , fDisableWireplanes {pset.get< bool >("DisableWireplanes" )}
45  , fSkipWireSignalInTPCs {pset.get< std::vector<unsigned short int> >("SkipWireSignalInTPCs" )}
46  , fRecombA {pset.get< double >("RecombA",util::kRecombA)}
47  , fRecombk {pset.get< double >("Recombk",util::kRecombk)}
48  , fModBoxA {pset.get< double >("ModBoxA",util::kModBoxA)}
49  , fModBoxB {pset.get< double >("ModBoxB",util::kModBoxB)}
50  , fLarqlChi0A {pset.get< double >("LarqlChi0A" )}
51  , fLarqlChi0B {pset.get< double >("LarqlChi0B" )}
52  , fLarqlChi0C {pset.get< double >("LarqlChi0C" )}
53  , fLarqlChi0D {pset.get< double >("LarqlChi0D" )}
54  , fLarqlAlpha {pset.get< double >("LarqlAlpha" )}
55  , fLarqlBeta {pset.get< double >("LarqlBeta" )}
56  , fWph {pset.get< double >("Wph" )}
57  , fUseModBoxRecomb {pset.get< bool >("UseModBoxRecomb" )}
58  , fUseModLarqlRecomb {pset.get< bool >("UseModLarqlRecomb" )}
59  , fUseBinomialFlucts {pset.get< bool >("UseBinomialFlucts", true)}
60  , fIonAndScintCalculator {pset.get< std::string >("IonAndScintCalculator", "Separate")}
61  , fOpticalParamVolumes {pset.get< std::vector<std::string> >("OpticalParamVolumes" )}
62  , fOpticalParamModels {pset.get< std::vector<std::string> >("OpticalParamModels" )}
63  , fOpticalParamOrientations{pset.get< std::vector<int> >("OpticalParamOrientations")}
64  , fOpticalParamParameters {pset.get< std::vector<std::vector<std::vector<double> > > >("OpticalParamParameters")}
65  , fLitePhotons {pset.get< bool >("UseLitePhotons" )}
66  , fFillSimEnergyDeposits {pset.get< bool >("FillSimEnergyDeposits",false)}
67  , fNoElectronPropagation {pset.get< bool >("NoElectronPropagation",false)}
68  , fNoPhotonPropagation {pset.get< bool >("NoPhotonPropagation",false)}
69  {}
70 }
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 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.
double const fVisualizationEnergyCut
depricated, GeV
bool const fUseModLarqlRecomb
Use LArQL model recombination correction (dependence on EF)
double const fLarqlAlpha
Possibly override the LarqlAlpha parameter.
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 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
bool const fUseBinomialFlucts
Use binomial fluctuations in correlated method.
bool const fStoreTrajectories