LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
larg4::ISCalculation Class Referenceabstract

#include "ISCalculation.h"

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

Public Member Functions

 ISCalculation ()
 
virtual ~ISCalculation ()
 
virtual void Initialize ()=0
 
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 17 of file ISCalculation.h.

Constructor & Destructor Documentation

larg4::ISCalculation::ISCalculation ( )

Definition at line 20 of file ISCalculation.cxx.

21  {
22  }
larg4::ISCalculation::~ISCalculation ( )
virtual

Definition at line 25 of file ISCalculation.cxx.

26  {
27  }

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 30 of file ISCalculation.cxx.

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

31  {
32  auto const* SCE = lar::providerFrom<spacecharge::SpaceChargeService>();
33  if (!SCE->EnableSimEfieldSCE()) return fEfield;
34 
35  geo::Point_t midPoint
36  { ( step->GetPreStepPoint()->GetPosition() + step->GetPostStepPoint()->GetPosition() ) * 0.5/CLHEP::cm };
37  auto EfieldDelta = fEfield * SCE->GetEfieldOffsets(midPoint);
38  geo::Vector_t EfieldVec
39  = { fEfield + EfieldDelta.X(), EfieldDelta.Y(), EfieldDelta.Z() };
40  return EfieldVec.R();
41  }
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
Definition: geo_vectors.h:167
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:187
double larg4::ISCalculation::EnergyDeposit ( ) const
inline

Definition at line 29 of file ISCalculation.h.

References fEnergyDeposit.

Referenced by larg4::IonizationAndScintillation::Reset().

29 { return fEnergyDeposit; }
double fEnergyDeposit
total energy deposited in the step
Definition: ISCalculation.h:39
virtual void larg4::ISCalculation::Initialize ( )
pure virtual
double larg4::ISCalculation::NumberIonizationElectrons ( ) const
inline

Definition at line 30 of file ISCalculation.h.

References fNumIonElectrons.

Referenced by larg4::IonizationAndScintillation::Reset().

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

Definition at line 31 of file ISCalculation.h.

References fNumScintPhotons.

Referenced by larg4::IonizationAndScintillation::Reset().

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

Definition at line 32 of file ISCalculation.h.

References EFieldAtStep(), and fVisibleEnergyDeposition.

32 { return fVisibleEnergyDeposition; }
double fVisibleEnergyDeposition
Definition: ISCalculation.h:42

Member Data Documentation


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