LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
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 18 of file ISCalculation.cxx.

Referenced by larg4::ISCalculationSeparate::CalculateIonizationAndScintillation(), larg4::ISCalculationCorrelated::CalculateIonizationAndScintillation(), and VisibleEnergyDeposit().

19  {
20  auto const* SCE = lar::providerFrom<spacecharge::SpaceChargeService>();
21  if (!SCE->EnableSimEfieldSCE()) return efield;
22  geo::Point_t midPoint{
23  (step->GetPreStepPoint()->GetPosition() + step->GetPostStepPoint()->GetPosition()) * 0.5 /
24  CLHEP::cm};
25  auto const eFieldOffsets = SCE->GetEfieldOffsets(midPoint);
26  return efield * std::hypot(1 + eFieldOffsets.X(), eFieldOffsets.Y(), eFieldOffsets.Z());
27  }
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:180
double larg4::ISCalculation::EnergyDeposit ( ) const
inline

Definition at line 22 of file ISCalculation.h.

References fEnergyDeposit.

22 { return fEnergyDeposit; }
double fEnergyDeposit
total energy deposited in the step
Definition: ISCalculation.h:32
double larg4::ISCalculation::NumberIonizationElectrons ( ) const
inline

Definition at line 23 of file ISCalculation.h.

References fNumIonElectrons.

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

Definition at line 24 of file ISCalculation.h.

References fNumScintPhotons.

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

Definition at line 25 of file ISCalculation.h.

References EFieldAtStep(), and fVisibleEnergyDeposition.

25 { return fVisibleEnergyDeposition; }
double fVisibleEnergyDeposition
Definition: ISCalculation.h:35

Member Data Documentation


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