Public Member Functions | Protected Attributes | List of all members
larg4::ISCalculation Class Referenceabstract

#include <ISCalculation.h>

Inheritance diagram for larg4::ISCalculation:
larg4::ISCalculationCorrelated larg4::ISCalculationNEST larg4::ISCalculationSeparate

Public Member Functions

virtual ~ISCalculation ()=default
 
virtual void Reset ()=0
 
virtual void CalculateIonizationAndScintillation (const G4Step *step)=0
 
virtual double StepSizeLimit () const =0
 
double EnergyDeposit () const
 
double NumberIonizationElectrons () const
 
double NumberScintillationPhotons () const
 
double VisibleEnergyDeposit () const
 
double EFieldAtStep (double fEfield, const G4Step *step) const
 

Protected Attributes

double fEnergyDeposit
 total energy deposited in the step More...
 
double fNumIonElectrons
 number of ionization electrons for this step More...
 
double fNumScintPhotons
 number of scintillation photons for this step More...
 
double fVisibleEnergyDeposition
 

Detailed Description

Definition at line 14 of file ISCalculation.h.

Constructor & Destructor Documentation

virtual larg4::ISCalculation::~ISCalculation ( )
virtualdefault

Member Function Documentation

virtual void larg4::ISCalculation::CalculateIonizationAndScintillation ( const G4Step *  step)
pure virtual
double larg4::ISCalculation::EFieldAtStep ( double  fEfield,
const G4Step *  step 
) const

Definition at line 19 of file ISCalculation.cxx.

20  {
21  auto const* SCE = lar::providerFrom<spacecharge::SpaceChargeService>();
22  if (!SCE->EnableSimEfieldSCE()) return efield;
23  geo::Point_t midPoint{
24  (step->GetPreStepPoint()->GetPosition() + step->GetPostStepPoint()->GetPosition()) * 0.5 /
25  CLHEP::cm};
26  auto const eFieldOffsets = SCE->GetEfieldOffsets(midPoint);
27  return efield * std::hypot(1 + eFieldOffsets.X(), eFieldOffsets.Y(), eFieldOffsets.Z());
28  }
static constexpr double cm
Definition: Units.h:68
std::enable_if_t< std::is_arithmetic_v< T >, T > hypot(T x, T y)
Definition: hypot.h:60
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Definition: geo_vectors.h:184
double larg4::ISCalculation::EnergyDeposit ( ) const
inline

Definition at line 23 of file ISCalculation.h.

24  {
25  return fEnergyDeposit;
26  }
double fEnergyDeposit
total energy deposited in the step
Definition: ISCalculation.h:48
double larg4::ISCalculation::NumberIonizationElectrons ( ) const
inline

Definition at line 28 of file ISCalculation.h.

29  {
30  return fNumIonElectrons;
31  }
double fNumIonElectrons
number of ionization electrons for this step
Definition: ISCalculation.h:49
double larg4::ISCalculation::NumberScintillationPhotons ( ) const
inline

Definition at line 33 of file ISCalculation.h.

34  {
35  return fNumScintPhotons;
36  }
double fNumScintPhotons
number of scintillation photons for this step
Definition: ISCalculation.h:50
virtual void larg4::ISCalculation::Reset ( )
pure virtual
virtual double larg4::ISCalculation::StepSizeLimit ( ) const
pure virtual
double larg4::ISCalculation::VisibleEnergyDeposit ( ) const
inline

Definition at line 38 of file ISCalculation.h.

39  {
41  }
double fVisibleEnergyDeposition
Definition: ISCalculation.h:51

Member Data Documentation

double larg4::ISCalculation::fEnergyDeposit
protected

total energy deposited in the step

Definition at line 48 of file ISCalculation.h.

double larg4::ISCalculation::fNumIonElectrons
protected

number of ionization electrons for this step

Definition at line 49 of file ISCalculation.h.

double larg4::ISCalculation::fNumScintPhotons
protected

number of scintillation photons for this step

Definition at line 50 of file ISCalculation.h.

double larg4::ISCalculation::fVisibleEnergyDeposition
protected

Definition at line 51 of file ISCalculation.h.


The documentation for this class was generated from the following files: