22 #include "Geant4/G4EmSaturation.hh" 23 #include "Geant4/G4LossTableManager.hh" 24 #include "Geant4/G4ParticleTypes.hh" 33 #include "cetlib_except/exception.h" 41 std::cout <<
"LegacyLArG4/ISCalculationCorrelated Initialize." << std::endl;
116 G4ThreeVector totstep = step->GetPostStepPoint()->GetPosition();
117 totstep -= step->GetPreStepPoint()->GetPosition();
118 double dx = totstep.mag() / CLHEP::cm;
123 if (dEdx < 1.) dEdx = 1.;
129 double Xi =
fModBoxB * dEdx / EFieldStep;
137 double phi = std::acos(
abs(step->GetPreStepPoint()->GetPosition().x() -
138 step->GetPostStepPoint()->GetPosition().x()) /
139 step->GetStepLength());
141 if (phi > std::atan(1) * 2) { phi = std::atan(1) * 4 - phi; }
144 double Xi =
fModBoxB * dEdx / EFieldStep;
145 recomb = std::log(
fModBoxA + Xi) / Xi;
149 (EFieldStep * std::hypot(std::sin(phi), std::cos(phi) /
fEllipsModBoxR));
173 <<
" Electrons produced for " <<
fEnergyDeposit <<
" MeV deposited with " << recomb
Store parameters for running LArG4.
double VoxelSizeX() const
Access to voxel dimensions and offsets.
Utilities related to art service access.
Encapsulates calculation of LArVoxelID and LArVoxel parameters.
double EFieldAtStep(double fEfield, const G4Step *step) const
double LarqlChi0B() const
double Temperature() const
In kelvin.
double LarqlAlpha() const
constexpr auto abs(T v)
Returns the absolute value of the argument.
bool UseModBoxRecomb() const
double VoxelSizeY() const
double LarqlChi0D() const
double EllipsModBoxA() const
double Efield(unsigned int planegap=0) const
kV/cm
double EllipsModBoxR() const
double VoxelSizeZ() const
double LarqlChi0C() const
bool UseModLarqlRecomb() const
double fNumIonElectrons
number of ionization electrons for this step
double Density(double temperature=0.) const
Returns argon density at a given temperature.
virtual double ScintPreScale(bool prescale=true) const =0
double LarqlChi0A() const
float dEdx(detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, const TCSlice &slc, TP3D &tp3d)
double EllipsModBoxB() const
bool UseEllipsModBoxRecomb() const
double fNumScintPhotons
number of scintillation photons for this step
double fEnergyDeposit
total energy deposited in the step
double GeVToElectrons() const