All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
larg4::ISCalc Class Referenceabstract

#include <ISCalc.h>

Inheritance diagram for larg4::ISCalc:
larg4::ISCalcCorrelated larg4::ISCalcNESTLAr larg4::ISCalcSeparate

Public Member Functions

 ISCalc ()
 
virtual ~ISCalc ()=default
 
virtual ISCalcData CalcIonAndScint (detinfo::DetectorPropertiesData const &detProp, sim::SimEnergyDeposit const &edep)=0
 
virtual double EFieldAtStep (double efield, sim::SimEnergyDeposit const &edep)=0
 
double GetScintYield (sim::SimEnergyDeposit const &edep, bool prescale)
 
double GetScintYieldRatio (sim::SimEnergyDeposit const &edep)
 

Private Attributes

const detinfo::LArPropertiesfLArProp
 

Detailed Description

Definition at line 31 of file ISCalc.h.

Constructor & Destructor Documentation

larg4::ISCalc::ISCalc ( )

Definition at line 19 of file ISCalc.cxx.

20  : fLArProp{lar::providerFrom<detinfo::LArPropertiesService>()}
21  {
22  }
const detinfo::LArProperties * fLArProp
Definition: ISCalc.h:33
virtual larg4::ISCalc::~ISCalc ( )
virtualdefault

Member Function Documentation

virtual ISCalcData larg4::ISCalc::CalcIonAndScint ( detinfo::DetectorPropertiesData const &  detProp,
sim::SimEnergyDeposit const &  edep 
)
pure virtual
virtual double larg4::ISCalc::EFieldAtStep ( double  efield,
sim::SimEnergyDeposit const &  edep 
)
pure virtual
double larg4::ISCalc::GetScintYield ( sim::SimEnergyDeposit const &  edep,
bool  prescale 
)

Definition at line 26 of file ISCalc.cxx.

27  {
28  if (!fLArProp->ScintByParticleType()) return fLArProp->ScintYield(true);
29  switch (edep.PdgCode()) {
30  case 2212: return fLArProp->ProtonScintYield(true);
31  case 13:
32  case -13: return fLArProp->MuonScintYield(true);
33  case 211:
34  case -211: return fLArProp->PionScintYield(true);
35  case 321:
36  case -321: return fLArProp->KaonScintYield(true);
37  case 1000020040: return fLArProp->AlphaScintYield(true);
38  case 11:
39  case -11:
40  case 22: return fLArProp->ElectronScintYield(true);
41  default: return fLArProp->ElectronScintYield(true);
42  }
43  }
virtual double KaonScintYield(bool prescale=false) const =0
virtual double ElectronScintYield(bool prescale=false) const =0
const detinfo::LArProperties * fLArProp
Definition: ISCalc.h:33
virtual double PionScintYield(bool prescale=false) const =0
virtual double ProtonScintYield(bool prescale=false) const =0
virtual double ScintYield(bool prescale=false) const =0
virtual double MuonScintYield(bool prescale=false) const =0
virtual bool ScintByParticleType() const =0
virtual double AlphaScintYield(bool prescale=false) const =0
double larg4::ISCalc::GetScintYieldRatio ( sim::SimEnergyDeposit const &  edep)

Definition at line 47 of file ISCalc.cxx.

48  {
49  // ScintByParticleType option only controls the scintillation
50  // yield ratio, which is the ratio of fast light (singlet
51  // component) to the total light (singlet+triplet components).
52 
54 
55  switch (edep.PdgCode()) {
56  case 2212: return fLArProp->ProtonScintYieldRatio();
57  case 13:
58  case -13: return fLArProp->MuonScintYieldRatio();
59  case 211:
60  case -211: return fLArProp->PionScintYieldRatio();
61  case 321:
62  case -321: return fLArProp->KaonScintYieldRatio();
63  case 1000020040: return fLArProp->AlphaScintYieldRatio();
64  case 11:
65  case -11:
66  case 22: return fLArProp->ElectronScintYieldRatio();
67  default: return fLArProp->ElectronScintYieldRatio();
68  }
69  }
virtual double ProtonScintYieldRatio() const =0
virtual double PionScintYieldRatio() const =0
virtual double AlphaScintYieldRatio() const =0
virtual double MuonScintYieldRatio() const =0
virtual double ScintYieldRatio() const =0
const detinfo::LArProperties * fLArProp
Definition: ISCalc.h:33
virtual double KaonScintYieldRatio() const =0
virtual double ElectronScintYieldRatio() const =0
virtual bool ScintByParticleType() const =0

Member Data Documentation

const detinfo::LArProperties* larg4::ISCalc::fLArProp
private

Definition at line 33 of file ISCalc.h.


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