#include <ISCalcSeparate.h>
Definition at line 25 of file ISCalcSeparate.h.
larg4::ISCalcSeparate::ISCalcSeparate |
( |
| ) |
|
Definition at line 29 of file ISCalcSeparate.cxx.
31 fSCE = lar::providerFrom<spacecharge::SpaceChargeService>();
37 art::ServiceHandle<sim::LArG4Parameters const> LArG4PropHandle;
38 fRecombA = LArG4PropHandle->RecombA();
39 fRecombk = LArG4PropHandle->Recombk();
40 fModBoxA = LArG4PropHandle->ModBoxA();
41 fModBoxB = LArG4PropHandle->ModBoxB();
double fModBoxA
from LArG4Parameters service
double fRecombk
from LArG4Parameters service
double fRecombA
from LArG4Parameters service
const spacecharge::SpaceCharge * fSCE
double fGeVToElectrons
from LArG4Parameters service
double fModBoxB
from LArG4Parameters service
bool fUseModBoxRecomb
from LArG4Parameters service
Definition at line 49 of file ISCalcSeparate.cxx.
52 float e = edep.Energy();
53 float ds = edep.StepLength();
56 double dEdx = (ds <= 0.0) ? 0.0 : e /
ds;
60 if (dEdx < 1.) { dEdx = 1.; }
65 double const Xi = scaled_modboxb * dEdx / EFieldStep;
74 recomb =
fRecombA / (1. + dEdx * scaled_recombk / EFieldStep);
80 MF_LOG_DEBUG(
"ISCalcSeparate")
81 <<
" Electrons produced for " << edep.Energy() <<
" MeV deposited with " << recomb
82 <<
" recombination: " << numIonElectrons << std::endl;
83 return numIonElectrons;
double fModBoxA
from LArG4Parameters service
double fRecombk
from LArG4Parameters service
double fRecombA
from LArG4Parameters service
float dEdx(detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, const TCSlice &slc, TP3D &tp3d)
double EFieldAtStep(double efield, sim::SimEnergyDeposit const &edep) override
double fGeVToElectrons
from LArG4Parameters service
double fModBoxB
from LArG4Parameters service
bool fUseModBoxRecomb
from LArG4Parameters service
Implements larg4::ISCalc.
Definition at line 96 of file ISCalcSeparate.cxx.
100 auto const [numPhotons, scintYieldRatio] =
CalcScint(edep);
101 return {edep.Energy(), numElectrons, numPhotons, scintYieldRatio};
std::pair< double, double > CalcScint(sim::SimEnergyDeposit const &edep)
double CalcIon(detinfo::DetectorPropertiesData const &detProp, sim::SimEnergyDeposit const &edep)
Definition at line 88 of file ISCalcSeparate.cxx.
90 double numScintPhotons =
GetScintYield(edep,
true) * edep.Energy();
double GetScintYield(sim::SimEnergyDeposit const &edep, bool prescale)
double GetScintYieldRatio(sim::SimEnergyDeposit const &edep)
Implements larg4::ISCalc.
Definition at line 105 of file ISCalcSeparate.cxx.
111 efield + efield * eFieldOffsets.X(), efield * eFieldOffsets.Y(), efield * eFieldOffsets.Z());
virtual geo::Vector_t GetEfieldOffsets(geo::Point_t const &point) const =0
const spacecharge::SpaceCharge * fSCE
virtual bool EnableSimEfieldSCE() const =0
void larg4::ISCalcSeparate::Reset |
( |
| ) |
|
double larg4::ISCalcSeparate::fGeVToElectrons |
|
private |
double larg4::ISCalcSeparate::fModBoxA |
|
private |
double larg4::ISCalcSeparate::fModBoxB |
|
private |
double larg4::ISCalcSeparate::fRecombA |
|
private |
double larg4::ISCalcSeparate::fRecombk |
|
private |
bool larg4::ISCalcSeparate::fUseModBoxRecomb |
|
private |
The documentation for this class was generated from the following files: