All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ISCalculationCorrelated.h
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 // \file ISCalculationCorrelated.h
3 // \brief Interface to algorithm class for a specific calculation of
4 // ionization electrons and scintillation photons, based on
5 // simple microphysics arguments to establish an anticorrelation
6 // between these two quantities.
7 //
8 // To enable this in simulation, change LArG4Parameters variable
9 // in your fhicl file:
10 //
11 // services.LArG4Parameters.IonAndScintCalculator: "Correlated"
12 //
13 // \author wforeman @ iit.edu
14 // Modified: Adding corrections for low electric field (LArQL model)
15 // Mar 2021 by L. Paulucci and F. Marinho
16 ////////////////////////////////////////////////////////////////////////
17 #ifndef LARG4_ISCALCULATIONCORRELATED_H
18 #define LARG4_ISCALCULATIONCORRELATED_H
19 
21 namespace detinfo {
22  class DetectorPropertiesData;
23 }
24 
25 // forward declarations
26 class G4Step;
27 
28 namespace larg4 {
29 
31  public:
33 
34  void Reset();
35  void CalculateIonizationAndScintillation(const G4Step* step);
36  double
37  StepSizeLimit() const
38  {
39  return fStepSize;
40  }
41 
42  private:
43  double fStepSize; ///< maximum step to take
44  double fEfield; ///< value of electric field from LArProperties service
45  double fWion; ///< W_ion (23.6 eV) == 1/fGeVToElectrons
46  double fWph; ///< W_ph (19.5 eV)
47  double fScintPreScale; ///< scintillation pre-scale from LArProperties service
48  double fRecombA; ///< from LArG4Parameters service
49  double fRecombk; ///< from LArG4Parameters service
50  double fModBoxA; ///< from LArG4Parameters service
51  double fModBoxB; ///< from LArG4Parameters service
52  double fLarqlChi0A; ///< from LArG4Parameters service
53  double fLarqlChi0B; ///< from LArG4Parameters service
54  double fLarqlChi0C; ///< from LArG4Parameters service
55  double fLarqlChi0D; ///< from LArG4Parameters service
56  double fLarqlAlpha; ///< from LArG4Parameters service
57  double fLarqlBeta; ///< from LArG4Parameters service
58  bool fUseModBoxRecomb; ///< from LArG4Parameters service
59  bool fUseModLarqlRecomb; ///< from LArG4Parameters service
60 
61  double EscapingEFraction(double const dEdx); //LArQL chi0 function = fraction of escaping electrons
62  double FieldCorrection(double const EF, double const dEdx); //LArQL f_corr function = correction factor for electric field dependence
63  };
64 }
65 #endif // LARG4_ISCALCULATIONCORRELATED_H
double fWion
W_ion (23.6 eV) == 1/fGeVToElectrons.
double fModBoxA
from LArG4Parameters service
double fLarqlChi0D
from LArG4Parameters service
double fLarqlChi0B
from LArG4Parameters service
double fLarqlAlpha
from LArG4Parameters service
bool fUseModLarqlRecomb
from LArG4Parameters service
double fLarqlChi0C
from LArG4Parameters service
bool fUseModBoxRecomb
from LArG4Parameters service
Interface to algorithm class for a specific detector channel mapping.
float dEdx(detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, const TCSlice &slc, TP3D &tp3d)
Definition: PFPUtils.cxx:2687
ISCalculationCorrelated(detinfo::DetectorPropertiesData const &detProp)
double fStepSize
maximum step to take
double fScintPreScale
scintillation pre-scale from LArProperties service
double EscapingEFraction(double const dEdx)
double fRecombA
from LArG4Parameters service
double fLarqlChi0A
from LArG4Parameters service
void CalculateIonizationAndScintillation(const G4Step *step)
double fRecombk
from LArG4Parameters service
double FieldCorrection(double const EF, double const dEdx)
double fEfield
value of electric field from LArProperties service
auto const detProp
double fModBoxB
from LArG4Parameters service
double fLarqlBeta
from LArG4Parameters service