LArSoft  v09_90_00
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 
19 namespace fhicl {
20  class ParameterSet;
21 }
22 
24 
25 #include <string>
26 #include <vector>
27 
28 namespace sim {
29 
31  public:
33 
34  int OpVerbosity() const { return fOpVerbosity; }
35  double ParticleKineticEnergyCut() const { return fParticleKineticECut; }
36  bool StoreTrajectories() const { return fStoreTrajectories; }
37  bool DrawNeutrals() const { return fDrawNeutrals; }
38  double VisualizationEnergyCut() const { return fVisualizationEnergyCut; }
39  bool UseCustomPhysics() const { return fUseCustomPhysics; }
40  bool ModifyProtonCut() const { return fModifyProtonCut; }
41  double NewProtonCut() const { return fNewProtonCut; }
42  double RecombA() const { return fRecombA; }
43  double Recombk() const { return fRecombk; }
44  double ModBoxA() const { return fModBoxA; }
45  double ModBoxB() const { return fModBoxB; }
46  double EllipsModBoxA() const { return fEllipsModBoxA; }
47  double EllipsModBoxB() const { return fEllipsModBoxB; }
48  double EllipsModBoxR() const { return fEllipsModBoxR; }
49  double LarqlChi0A() const { return fLarqlChi0A; }
50  double LarqlChi0B() const { return fLarqlChi0B; }
51  double LarqlChi0C() const { return fLarqlChi0C; }
52  double LarqlChi0D() const { return fLarqlChi0D; }
53  double LarqlAlpha() const { return fLarqlAlpha; }
54  double LarqlBeta() const { return fLarqlBeta; }
55  double Wph() const { return fWph; }
56  double QAlpha() const { return fQAlpha; }
57  bool UseModBoxRecomb() const { return fUseModBoxRecomb; }
58  bool UseEllipsModBoxRecomb() const { return fUseEllipsModBoxRecomb; }
59  bool UseModLarqlRecomb() const { return fUseModLarqlRecomb; }
60  bool UseBinomialFlucts() const { return fUseBinomialFlucts; }
61  double GeVToElectrons() const { return util::kGeVToElectrons; }
62  double LongitudinalDiffusion() const { return fLongitudinalDiffusion; }
63  double TransverseDiffusion() const { return fTransverseDiffusion; }
64  double ElectronClusterSize() const { return fElectronClusterSize; }
65  int MinNumberOfElCluster() const { return fMinNumberOfElCluster; }
66  const std::vector<std::string>& EnabledPhysics() const { return fEnabledPhysics; }
67  int K0Bias() const { return fK0Bias; }
68  int MNXBias() const { return fXBias; }
69  int MNXSBias() const { return fXSBias; }
70  bool KeepEMShowerDaughters() const { return fKeepEMShowerDaughters; }
71  bool DisableWireplanes() const { return fDisableWireplanes; }
72  const std::vector<unsigned short int>& SkipWireSignalInTPCs() const
73  {
74  return fSkipWireSignalInTPCs;
75  }
76  const std::string& IonAndScintCalculator() const { return fIonAndScintCalculator; }
77  const std::vector<std::string>& OpticalParamVolumes() const { return fOpticalParamVolumes; }
78  const std::vector<std::string>& OpticalParamModels() const { return fOpticalParamModels; }
79  const std::vector<int>& OpticalParamOrientations() const { return fOpticalParamOrientations; }
80  const std::vector<std::vector<std::vector<double>>>& OpticalParamParameters() const
81  {
82  return fOpticalParamParameters;
83  }
84  bool UseLitePhotons() const { return fLitePhotons; }
85 
86  bool FillSimEnergyDeposits() const { return fFillSimEnergyDeposits; }
87  bool NoElectronPropagation() const { return fNoElectronPropagation; }
88  bool NoPhotonPropagation() const { return fNoPhotonPropagation; }
89 
90  private:
91  int const fOpVerbosity;
92  double const
94  bool const fStoreTrajectories;
95  bool const fDrawNeutrals;
97  double const fVisualizationEnergyCut;
98  bool const fUseCustomPhysics;
99  bool const fModifyProtonCut;
101  double const fNewProtonCut;
102  double const
104  double const fTransverseDiffusion;
105  double const fElectronClusterSize;
106  int const fMinNumberOfElCluster;
108  std::vector<std::string> const
110  int const fK0Bias;
111  int const fXSBias;
113  int const fXBias;
114  bool const fKeepEMShowerDaughters;
116  bool const fDisableWireplanes;
118  std::vector<unsigned short int> const
121  double const fRecombA;
122  double const fRecombk;
123  double const fModBoxA;
124  double const fModBoxB;
125  double const fEllipsModBoxA;
126  double const fEllipsModBoxB;
127  double const fEllipsModBoxR;
128  double const fLarqlChi0A;
129  double const fLarqlChi0B;
130  double const fLarqlChi0C;
131  double const fLarqlChi0D;
132  double const fLarqlAlpha;
133  double const fLarqlBeta;
134  double const fWph;
135  double const fQAlpha;
136  bool const fUseModBoxRecomb;
137  bool const
139  bool const fUseModLarqlRecomb;
140  bool const fUseBinomialFlucts;
141  std::string const
143  std::vector<std::string> const
148  std::vector<std::string> const fOpticalParamModels;
150  std::vector<int> const
152  std::vector<std::vector<std::vector<double>>> const
155 
158  bool const fLitePhotons;
159 
162  bool const fNoPhotonPropagation;
163  };
164 }
165 
167 #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
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 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
#define DECLARE_ART_SERVICE(svc, scope)
const std::vector< unsigned short int > & SkipWireSignalInTPCs() const
double ElectronClusterSize() const
parameter set interface
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.
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
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
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
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
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