22 : fISTPC{*(lar::providerFrom<geo::Geometry>())}
24 std::cout <<
"IonizationAndScintillation/ISCalcCorrelated Initialize." <<
std::endl;
27 fSCE = lar::providerFrom<spacecharge::SpaceChargeService>();
28 fLArProp = lar::providerFrom<detinfo::LArPropertiesService>();
34 fRecombk = LArG4PropHandle->
Recombk() / detProp.Density(detProp.Temperature());
36 fModBoxB = LArG4PropHandle->
ModBoxB() / detProp.Density(detProp.Temperature());
59 double const energy_deposit = edep.
Energy();
62 double Nq = energy_deposit /
fWph;
65 double dEdx = (ds <= 0.0) ? 0.0 : energy_deposit /
ds;
73 if (dEdx < 1.) dEdx = 1.;
78 double Xi =
fModBoxB * dEdx / EFieldStep;
99 double const num_electrons = (energy_deposit /
fWion) * recomb;
105 <<
" Electrons produced for " << energy_deposit <<
" MeV deposited with " << recomb
106 <<
" recombination: " << num_electrons <<
std::endl;
107 MF_LOG_DEBUG(
"ISCalcCorrelated") <<
"number photons: " << num_photons;
152 return efield *
std::hypot(1 + eFieldOffsets.X(), eFieldOffsets.Y(), eFieldOffsets.Z());
virtual bool EnableSimEfieldSCE() const =0
virtual double ElectronScintYieldRatio() const =0
virtual double ScintYieldRatio() const =0
geo::Length_t StepLength() const
virtual double AlphaScintYieldRatio() const =0
double LarqlChi0B() const
double LarqlAlpha() const
bool UseModBoxRecomb() const
double LarqlChi0D() const
virtual double ProtonScintYieldRatio() const =0
std::enable_if_t< std::is_arithmetic_v< T >, T > hypot(T x, T y)
double Efield(unsigned int planegap=0) const
kV/cm
virtual double PionScintYieldRatio() const =0
double LarqlChi0C() const
double dEdx(float dqdx, float Efield)
bool UseModLarqlRecomb() const
geo::Point_t MidPoint() const
double LarqlChi0A() const
virtual geo::Vector_t GetEfieldOffsets(geo::Point_t const &point) const =0
Energy deposition in the active material.
virtual double MuonScintYieldRatio() const =0
virtual double KaonScintYieldRatio() const =0
bool isScintInActiveVolume(geo::Point_t const &ScintPoint)
virtual bool ScintByParticleType() const =0
double GeVToElectrons() const
QTextStream & endl(QTextStream &s)