LArSoft  v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
LArG4Parameters.h
Go to the documentation of this file.
1 //
8 // This service exists to pass parameters to various different
9 // classes in LArG4, which are not necessary directly called by
10 // the LArG4_module class.
11 //
12 // Ben Jones, MIT, March 2010
13 
14 #ifndef LArG4Parameters_h
15 #define LArG4Parameters_h 1
16 
18 
20 #include "fhiclcpp/fwd.h"
21 
22 #include <string>
23 #include <vector>
24 
25 namespace sim {
26 
28  public:
30 
31  int OpVerbosity() const { return fOpVerbosity; }
33  bool StoreTrajectories() const { return fStoreTrajectories; }
34  bool DrawNeutrals() const { return fDrawNeutrals; }
36  bool UseCustomPhysics() const { return fUseCustomPhysics; }
37  bool ModifyProtonCut() const { return fModifyProtonCut; }
38  double NewProtonCut() const { return fNewProtonCut; }
39  double RecombA() const { return fRecombA; }
40  double Recombk() const { return fRecombk; }
41  double ModBoxA() const { return fModBoxA; }
42  double ModBoxB() const { return fModBoxB; }
43  double EllipsModBoxA() const { return fEllipsModBoxA; }
44  double EllipsModBoxB() const { return fEllipsModBoxB; }
45  double EllipsModBoxR() const { return fEllipsModBoxR; }
46  double LarqlChi0A() const { return fLarqlChi0A; }
47  double LarqlChi0B() const { return fLarqlChi0B; }
48  double LarqlChi0C() const { return fLarqlChi0C; }
49  double LarqlChi0D() const { return fLarqlChi0D; }
50  double LarqlAlpha() const { return fLarqlAlpha; }
51  double LarqlBeta() const { return fLarqlBeta; }
52  double Wph() const { return fWph; }
53  double QAlpha() const { return fQAlpha; }
54  bool UseModBoxRecomb() const { return fUseModBoxRecomb; }
56  bool UseModLarqlRecomb() const { return fUseModLarqlRecomb; }
57  bool UseBinomialFlucts() const { return fUseBinomialFlucts; }
58  double GeVToElectrons() const { return util::kGeVToElectrons; }
59  double LongitudinalDiffusion() const { return fLongitudinalDiffusion; }
60  double TransverseDiffusion() const { return fTransverseDiffusion; }
61  double ElectronClusterSize() const { return fElectronClusterSize; }
63  const std::vector<std::string>& EnabledPhysics() const { return fEnabledPhysics; }
64  int K0Bias() const { return fK0Bias; }
65  int MNXBias() const { return fXBias; }
66  int MNXSBias() const { return fXSBias; }
68  bool DisableWireplanes() const { return fDisableWireplanes; }
69  const std::vector<unsigned short int>& SkipWireSignalInTPCs() const
70  {
71  return fSkipWireSignalInTPCs;
72  }
73  const std::string& IonAndScintCalculator() const { return fIonAndScintCalculator; }
74  const std::vector<std::string>& OpticalParamVolumes() const { return fOpticalParamVolumes; }
75  const std::vector<std::string>& OpticalParamModels() const { return fOpticalParamModels; }
76  const std::vector<int>& OpticalParamOrientations() const { return fOpticalParamOrientations; }
77  const std::vector<std::vector<std::vector<double>>>& OpticalParamParameters() const
78  {
80  }
81  bool UseLitePhotons() const { return fLitePhotons; }
82 
85  bool NoPhotonPropagation() const { return fNoPhotonPropagation; }
86 
87  private:
88  int const fOpVerbosity;
89  double const
91  bool const fStoreTrajectories;
92  bool const fDrawNeutrals;
94  double const fVisualizationEnergyCut;
95  bool const fUseCustomPhysics;
96  bool const fModifyProtonCut;
98  double const fNewProtonCut;
99  double const
101  double const fTransverseDiffusion;
102  double const fElectronClusterSize;
103  int const fMinNumberOfElCluster;
105  std::vector<std::string> const
107  int const fK0Bias;
108  int const fXSBias;
110  int const fXBias;
111  bool const fKeepEMShowerDaughters;
113  bool const fDisableWireplanes;
115  std::vector<unsigned short int> const
118  double const fRecombA;
119  double const fRecombk;
120  double const fModBoxA;
121  double const fModBoxB;
122  double const fEllipsModBoxA;
123  double const fEllipsModBoxB;
124  double const fEllipsModBoxR;
125  double const fLarqlChi0A;
126  double const fLarqlChi0B;
127  double const fLarqlChi0C;
128  double const fLarqlChi0D;
129  double const fLarqlAlpha;
130  double const fLarqlBeta;
131  double const fWph;
132  double const fQAlpha;
133  bool const fUseModBoxRecomb;
134  bool const
136  bool const fUseModLarqlRecomb;
137  bool const fUseBinomialFlucts;
138  std::string const
140  std::vector<std::string> const
145  std::vector<std::string> const fOpticalParamModels;
147  std::vector<int> const
149  std::vector<std::vector<std::vector<double>>> const
152 
155  bool const fLitePhotons;
156 
159  bool const fNoPhotonPropagation;
160  };
161 }
162 
164 
165 #endif
bool KeepEMShowerDaughters() const
double VisualizationEnergyCut() const
const std::vector< std::vector< std::vector< double > > > & OpticalParamParameters() const
const std::vector< std::string > & EnabledPhysics() const
const std::string & IonAndScintCalculator() const
double ModBoxA() const
int const fMinNumberOfElCluster
Minimum number of electron clusters.
double LarqlChi0B() const
double const fLarqlBeta
Possibly override the LarqlBeta parameter.
std::vector< std::vector< std::vector< double > > > const fOpticalParamParameters
double LarqlBeta() const
double LarqlAlpha() const
bool UseModBoxRecomb() const
bool const fModifyProtonCut
Whether to enable custom ProtonCut value, needed for HadronHP.
bool ModifyProtonCut() const
bool NoPhotonPropagation() const
double LarqlChi0D() const
double const fEllipsModBoxB
Possibly override the EllipsModBoxB parameter.
double EllipsModBoxA() const
const std::vector< std::string > & OpticalParamVolumes() const
bool UseBinomialFlucts() const
double const fModBoxB
Possibly override the ModBoxB parameter.
double QAlpha() const
bool StoreTrajectories() const
double EllipsModBoxR() const
int const fOpVerbosity
Verbosity of optical simulation - soon to be depricated.
double LarqlChi0C() const
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.
const std::vector< std::string > & OpticalParamModels() const
double const fLongitudinalDiffusion
Amount of diffusion in the longitudinal direction, cm^2/ns.
double TransverseDiffusion() const
constexpr double kGeVToElectrons
23.6eV per ion pair, 1e9 eV/GeV
bool NoElectronPropagation() const
double NewProtonCut() const
const std::vector< int > & OpticalParamOrientations() const
bool UseModLarqlRecomb() const
bool const fKeepEMShowerDaughters
#define DECLARE_ART_SERVICE(svc, scope)
const std::vector< unsigned short int > & SkipWireSignalInTPCs() const
double ElectronClusterSize() const
double Wph() const
bool FillSimEnergyDeposits() const
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)
int OpVerbosity() const
double const fLarqlAlpha
Possibly override the LarqlAlpha parameter.
double RecombA() const
double LarqlChi0A() const
Monte Carlo Simulation.
double const fRecombk
Possibly override the Recombk parameter.
double ParticleKineticEnergyCut() const
bool UseCustomPhysics() const
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 EllipsModBoxB() const
double const fNewProtonCut
New Proton Cut parameter to override default in HadronHP.
int MinNumberOfElCluster() const
double ModBoxB() const
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.
double Recombk() const
bool UseEllipsModBoxRecomb() const
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
std::vector< std::string > const fEnabledPhysics
List of enabled physics processes if using Custom physics.
double LongitudinalDiffusion() const
std::string const fIonAndScintCalculator
bool const fDisableWireplanes
double const fLarqlChi0A
Possibly override the LarqlChi0A parameter.
Collection of Physical constants used in LArSoft.
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.
double GeVToElectrons() const
bool UseLitePhotons() const
bool DisableWireplanes() const
bool DrawNeutrals() const
bool const fStoreTrajectories