#include <ISCalculationSeparate.h>
Definition at line 33 of file ISCalculationSeparate.h.
Definition at line 37 of file ISCalculationSeparate.cc.
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>();
const detinfo::LArProperties * fLArProp
double fGeVToElectrons
from LArG4Parameters service
const spacecharge::SpaceCharge * fSCE
QTextStream & endl(QTextStream &s)
Definition at line 59 of file ISCalculationSeparate.cc.
62 float e = edep.Energy();
63 float ds = edep.StepLength();
64 float x = edep.MidPointX();
65 float y = edep.MidPointY();
66 float z = edep.MidPointZ();
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;
double fGeVToElectrons
from LArG4Parameters service
double dEdx(float dqdx, float Efield)
double EFieldAtStep(double efield, sim::SimEnergyDeposit const &edep) const
QTextStream & endl(QTextStream &s)
Definition at line 130 of file ISCalculationSeparate.cc.
double CalculateIonization(detinfo::DetectorPropertiesData const &detProp, sim::SimEnergyDeposit const &edep) const
double CalculateScintillation(sim::SimEnergyDeposit const &edep) const
Definition at line 98 of file ISCalculationSeparate.cc.
100 float const e = edep.Energy();
101 int const pdg = edep.PdgCode();
105 MF_LOG_DEBUG(
"ISCalculationSeparate") <<
"scintillating by particle type";
123 return scintYield *
e;
126 return scint_yield_factor * scintYield *
e;
virtual double AlphaScintYield(bool prescale=false) const =0
const detinfo::LArProperties * fLArProp
virtual double ProtonScintYield(bool prescale=false) const =0
virtual double ElectronScintYield(bool prescale=false) const =0
virtual double PionScintYield(bool prescale=false) const =0
virtual double MuonScintYield(bool prescale=false) const =0
virtual double KaonScintYield(bool prescale=false) const =0
virtual double ScintYield(bool prescale=false) const =0
virtual bool ScintByParticleType() const =0
double detsim::ISCalculationSeparate::EFieldAtStep |
( |
double |
efield, |
|
|
sim::SimEnergyDeposit const & |
edep |
|
) |
| const |
Definition at line 138 of file ISCalculationSeparate.cc.
140 return EFieldAtStep(efield, edep.MidPointX(), edep.MidPointY(), edep.MidPointZ());
double EFieldAtStep(double efield, sim::SimEnergyDeposit const &edep) const
double detsim::ISCalculationSeparate::EFieldAtStep |
( |
double |
efield, |
|
|
float |
x, |
|
|
float |
y, |
|
|
float |
z |
|
) |
| const |
|
private |
Definition at line 144 of file ISCalculationSeparate.cc.
152 return std::hypot(efield + efield * offsets.X(), efield * offsets.Y(), efield * offsets.Z());
virtual bool EnableSimEfieldSCE() const =0
std::enable_if_t< std::is_arithmetic_v< T >, T > hypot(T x, T y)
const spacecharge::SpaceCharge * fSCE
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
virtual geo::Vector_t GetEfieldOffsets(geo::Point_t const &point) const =0
double detsim::ISCalculationSeparate::fGeVToElectrons |
|
private |
double detsim::ISCalculationSeparate::fModBoxA |
|
private |
double detsim::ISCalculationSeparate::fModBoxB |
|
private |
double detsim::ISCalculationSeparate::fRecombA |
|
private |
double detsim::ISCalculationSeparate::fRecombk |
|
private |
bool detsim::ISCalculationSeparate::fUseModBoxRecomb |
|
private |
The documentation for this class was generated from the following files: