22 #include "Geant4/G4EmSaturation.hh"
23 #include "Geant4/G4LossTableManager.hh"
24 #include "Geant4/G4ParticleTypes.hh"
33 #include "cetlib_except/exception.h"
34 #include "messagefacility/MessageLogger/MessageLogger.h"
41 std::cout <<
"LegacyLArG4/ISCalculationCorrelated Initialize." << std::endl;
42 art::ServiceHandle<sim::LArG4Parameters const> lgpHandle;
50 fWion = 1. / lgpHandle->GeVToElectrons() * 1e3;
60 fRecombk = lgpHandle->Recombk() / density;
62 fModBoxB = lgpHandle->ModBoxB() / density;
73 art::ServiceHandle<sim::LArVoxelCalculator const> lvc;
75 std::max(lvc->VoxelSizeX(), std::max(lvc->VoxelSizeY(), lvc->VoxelSizeZ())) * CLHEP::cm;
113 G4ThreeVector totstep = step->GetPostStepPoint()->GetPosition();
114 totstep -= step->GetPreStepPoint()->GetPosition();
115 double dx = totstep.mag() / CLHEP::cm;
120 if (dEdx < 1.) dEdx = 1.;
126 double Xi =
fModBoxB * dEdx / EFieldStep;
150 MF_LOG_DEBUG(
"ISCalculationCorrelated")
151 <<
" Electrons produced for " <<
fEnergyDeposit <<
" MeV deposited with " << recomb
153 MF_LOG_DEBUG(
"ISCalculationCorrelated") <<
"number photons: " <<
fNumScintPhotons;
Store parameters for running LArG4.
Utilities related to art service access.
Encapsulates calculation of LArVoxelID and LArVoxel parameters.
double EFieldAtStep(double fEfield, const G4Step *step) const
double Temperature() const
In kelvin.
util::quantities::megaelectronvolt MeV
double Efield(unsigned int planegap=0) const
kV/cm
double fNumIonElectrons
number of ionization electrons for this step
double Density(double temperature=0.) const
Returns argon density at a given temperature.
float dEdx(detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &detProp, const TCSlice &slc, TP3D &tp3d)
virtual double ScintPreScale(bool prescale=true) const =0
double fNumScintPhotons
number of scintillation photons for this step
double fEnergyDeposit
total energy deposited in the step
BEGIN_PROLOG could also be cout