31 constexpr
double scint_yield_factor{1.};
38 : fRecombA{pset.
get<
double>(
"RecombA")}
39 ,
fRecombk{pset.get<
double>(
"Recombk")}
40 ,
fModBoxA{pset.get<
double>(
"ModBoxA")}
41 ,
fModBoxB{pset.get<
double>(
"ModBoxB")}
45 fLArProp = lar::providerFrom<detinfo::LArPropertiesService>();
46 fSCE = lar::providerFrom<spacecharge::SpaceChargeService>();
68 double dEdx = (ds <= 0.0) ? 0.0 : e /
ds;
72 if (dEdx < 1.) dEdx = 1.;
76 double Xi =
fModBoxB * dEdx / EFieldStep;
90 <<
" Electrons produced for " << edep.
Energy() <<
" MeV deposited with " << recomb
91 <<
" recombination: " << numIonElectrons <<
std::endl;
93 return numIonElectrons;
105 MF_LOG_DEBUG(
"ISCalculationSeparate") <<
"scintillating by particle type";
123 return scintYield *
e;
126 return scint_yield_factor * scintYield *
e;
152 return std::hypot(efield + efield * offsets.X(), efield * offsets.Y(), efield * offsets.Z());
virtual bool EnableSimEfieldSCE() const =0
virtual double AlphaScintYield(bool prescale=false) const =0
geo::Length_t StepLength() const
const detinfo::LArProperties * fLArProp
double fGeVToElectrons
from LArG4Parameters service
Detector simulation of raw signals on wires.
double CalculateIonization(detinfo::DetectorPropertiesData const &detProp, sim::SimEnergyDeposit const &edep) const
ISCalculationSeparate(fhicl::ParameterSet const &pset)
std::enable_if_t< std::is_arithmetic_v< T >, T > hypot(T x, T y)
const spacecharge::SpaceCharge * fSCE
double Efield(unsigned int planegap=0) const
kV/cm
virtual double ProtonScintYield(bool prescale=false) const =0
double dEdx(float dqdx, float Efield)
double EFieldAtStep(double efield, sim::SimEnergyDeposit const &edep) const
T get(std::string const &key) const
virtual double ElectronScintYield(bool prescale=false) const =0
Data CalculateIonizationAndScintillation(detinfo::DetectorPropertiesData const &detProp, sim::SimEnergyDeposit const &edep) const
virtual double PionScintYield(bool prescale=false) const =0
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
geo::Length_t MidPointX() const
geo::Length_t MidPointY() const
virtual geo::Vector_t GetEfieldOffsets(geo::Point_t const &point) const =0
virtual double MuonScintYield(bool prescale=false) const =0
virtual double KaonScintYield(bool prescale=false) const =0
contains information for a single step in the detector simulation
geo::Length_t MidPointZ() const
virtual double ScintYield(bool prescale=false) const =0
Energy deposition in the active material.
virtual bool ScintByParticleType() const =0
QTextStream & endl(QTextStream &s)
double CalculateScintillation(sim::SimEnergyDeposit const &edep) const