Classes | Typedefs | Enumerations | Functions | Variables
larg4 Namespace Reference

Geant4 interface. More...

Classes

class  AllPhysicsLists
 
class  AuxDetReadout
 
class  AuxDetReadoutGeometry
 
class  AuxDetSD
 
class  CheckAuxDetHit
 
class  CheckMCParticle
 
class  CheckSimEnergyDeposit
 
class  CustomPhysicsFactory
 
class  CustomPhysicsFactory< OpticalPhysics >
 
class  CustomPhysicsFactoryBase
 
class  CustomPhysicsTable
 
class  FastOpticalPhysics
 
class  G4BadIdeaAction
 
class  G4PVPlacementWithID
 A G4PVPlacement with an additional identificator. More...
 
class  IonAndScint
 
class  IonizationAndScintillation
 
class  IonizationAndScintillationAction
 
class  ISCalc
 
class  ISCalcAna
 
class  ISCalcCorrelated
 
struct  ISCalcData
 
class  ISCalcNESTLAr
 
class  ISCalcSeparate
 
class  ISCalculation
 
class  ISCalculationCorrelated
 
class  ISCalculationNEST
 
class  ISCalculationSeparate
 
class  ISTPC
 
struct  KeepByPositionFilterTag
 Tag for filters. More...
 
class  LArG4
 Runs Geant4 simulation and propagation of electrons and photons to readout. More...
 
class  LArG4Ana
 
class  LArG4DetectorService
 
class  larg4Main
 
class  LArVoxelReadout
 Transports energy depositions from GEANT4 to TPC channels. More...
 
class  LArVoxelReadoutGeometry
 
class  MaterialPropertyLoader
 Stores material properties and sends them to GEANT4 geometry. More...
 
class  MCTruthEventActionService
 
class  ModularPhysicsList
 
class  MuNuclearSplittingProcess
 
class  MuNuclearSplittingProcessXSecBias
 
class  OpBoundaryProcessSimple
 Discrete process for reflection and diffusion at optical interfaces. More...
 
class  OpDetLookup
 
class  OpDetPhotonTable
 
class  OpDetReadoutGeometry
 
class  OpDetSensitiveDetector
 
class  OpFastScintillation
 
class  OpParamAction
 
class  OpParamSD
 
class  OpticalPhysics
 
class  OverlaidWireplanesAction
 
class  ParticleListAction
 
class  ParticleListActionService
 
class  SimEnergyDepositSD
 
class  SimpleWireplaneAction
 
class  TConfigurablePhysicsList
 
class  thePositionInVolumeFilter
 Use to keep particles with at least part of trajectory in a volume. More...
 
struct  TPCID_t
 Simple structure holding a TPC and cryostat number. More...
 
class  TransparentPlaneAction
 
class  UpdateDaughterInformation
 
class  VisualizationAction
 

Typedefs

using ConfigurablePhysicsList = TConfigurablePhysicsList< G4VModularPhysicsList >
 
typedef G4PVPlacementWithID< TPCID_tG4PVPlacementInTPC
 A physical volume with a TPC ID. More...
 
using PhysicsList = TConfigurablePhysicsList< ModularPhysicsList >
 

Enumerations

enum  OpBoundaryProcessSimpleStatus {
  Undefined, NotAtBoundary, SimpleAbsorbedNoRefl, SimpleAbsorbed,
  SimpleDiffuse, SimpleSpecular, StepTooSmall, NoRINDEX
}
 

Functions

double finter_d (double *x, double *par)
 
double LandauPlusExpoFinal (double *x, double *par)
 
double finter_r (double *x, double *par)
 
double model_close (double *x, double *par)
 
double model_far (double *x, double *par)
 
double fast_acos (double x)
 
constexpr double acos_table (const double x)
 
template<typename TReal >
constexpr double dist (const TReal *x, const TReal *y, const unsigned int dimension)
 
template<typename TVector3 >
constexpr double dist (const std::array< double, 3 > x, const TVector3 y, const unsigned int dimension, const unsigned int start)
 
template<typename TReal >
static constexpr bool isApproximatelyEqual (TReal a, TReal b, TReal tolerance=std::numeric_limits< TReal >::epsilon())
 
template<typename TReal >
static constexpr bool isApproximatelyZero (TReal a, TReal tolerance=std::numeric_limits< TReal >::epsilon())
 
template<typename TReal >
static constexpr bool isDefinitelyLessThan (TReal a, TReal b, TReal tolerance=std::numeric_limits< TReal >::epsilon())
 
template<typename TReal >
static constexpr bool isDefinitelyGreaterThan (TReal a, TReal b, TReal tolerance=std::numeric_limits< TReal >::epsilon())
 

Variables

static CustomPhysicsTableTheCustomPhysicsTable
 
static IonizationAndScintillationgInstance = 0
 
OpDetLookupTheOpDetLookup
 
OpDetPhotonTableTheOpDetPhotonTable
 
static const size_t acos_bins = 2000000
 

Detailed Description

Geant4 interface.

Framework includes.

Author
bjpjo.nosp@m.nes@.nosp@m.mit.e.nosp@m.du
selig.nosp@m.man@.nosp@m.nevis.nosp@m..col.nosp@m.umbia.nosp@m..edu

This a module. It has the following functions:

Geant4 interface

Author
selig.nosp@m.man@.nosp@m.nevis.nosp@m..col.nosp@m.umbia.nosp@m..edu VisualizationAction.cc 19-Mar-2002 Bill Seligman

Use UserAction to implement the standard visualization control for a typical Geant4 job. Everything in this class comes from the Geant4 examples; the only difference is that it's put into an UserAction class.

25-Feb-2009 WGS: Revised for FMWK/LArSoft

Typedef Documentation

using larg4::ConfigurablePhysicsList = typedef TConfigurablePhysicsList<G4VModularPhysicsList>

Definition at line 47 of file ConfigurablePhysicsList.hh.

A physical volume with a TPC ID.

Definition at line 130 of file LArVoxelReadout.h.

This type alias is what defines the name "larg4::PhysicsList" in any class that includes this header.

Definition at line 89 of file PhysicsList.h.

Enumeration Type Documentation

Function Documentation

constexpr double larg4::acos_table ( const double  x)
template<typename TReal >
constexpr double larg4::dist ( const TReal *  x,
const TReal *  y,
const unsigned int  dimension 
)
inline

Definition at line 563 of file OpFastScintillation.hh.

564  {
565  double d = 0.;
566  for (unsigned int p = 0; p < dimension; ++p) {
567  d += (*(x + p) - *(y + p)) * (*(x + p) - *(y + p));
568  }
569  return std::sqrt(d);
570  }
constexpr unsigned int dimension()
p
Definition: test.py:223
list x
Definition: train.py:276
template<typename TVector3 >
constexpr double larg4::dist ( const std::array< double, 3 >  x,
const TVector3  y,
const unsigned int  dimension,
const unsigned int  start 
)
inline

Definition at line 574 of file OpFastScintillation.hh.

575  {
576  double d = 0.;
577  for (unsigned int p = start; p < dimension; ++p) {
578  d += (x[p] - y[p]) * (x[p] - y[p]);
579  }
580  return std::sqrt(d);
581  }
constexpr unsigned int dimension()
p
Definition: test.py:223
double larg4::fast_acos ( double  x)

Definition at line 2195 of file OpFastScintillation.cxx.

2196  {
2197  double negate = double(x < 0);
2198  x = std::abs(x);
2199  x -= double(x > 1.0) * (x - 1.0); // <- equivalent to min(1.0,x), but faster
2200  double ret = -0.0187293;
2201  ret = ret * x;
2202  ret = ret + 0.0742610;
2203  ret = ret * x;
2204  ret = ret - 0.2121144;
2205  ret = ret * x;
2206  ret = ret + 1.5707288;
2207  ret = ret * std::sqrt(1.0 - x);
2208  ret = ret - 2. * negate * ret;
2209  return negate * 3.14159265358979 + ret;
2210  }
T abs(T value)
list x
Definition: train.py:276
double larg4::finter_d ( double *  x,
double *  par 
)

Definition at line 1867 of file OpFastScintillation.cxx.

1868  {
1869  double y1 = par[2] * TMath::Landau(x[0], par[0], par[1]);
1870  double y2 = TMath::Exp(par[3] + x[0] * par[4]);
1871  return TMath::Abs(y1 - y2);
1872  }
list x
Definition: train.py:276
double larg4::finter_r ( double *  x,
double *  par 
)

Definition at line 1891 of file OpFastScintillation.cxx.

1892  {
1893  double y1 = par[2] * TMath::Landau(x[0], par[0], par[1]);
1894  double y2 = par[5] * TMath::Landau(x[0], par[3], par[4]);
1895  return TMath::Abs(y1 - y2);
1896  }
list x
Definition: train.py:276
template<typename TReal >
static constexpr bool larg4::isApproximatelyEqual ( TReal  a,
TReal  b,
TReal  tolerance = std::numeric_limits<TReal>::epsilon() 
)
inlinestatic

Definition at line 587 of file OpFastScintillation.hh.

588  {
589  TReal diff = std::fabs(a - b);
590  if (diff <= tolerance) return true;
591  if (diff < std::fmax(std::fabs(a), std::fabs(b)) * tolerance) return true;
592  return false;
593  }
auto const tolerance
const double a
static bool * b
Definition: config.cpp:1043
template<typename TReal >
static constexpr bool larg4::isApproximatelyZero ( TReal  a,
TReal  tolerance = std::numeric_limits<TReal>::epsilon() 
)
inlinestatic

Definition at line 599 of file OpFastScintillation.hh.

600  {
601  if (std::fabs(a) <= tolerance) return true;
602  return false;
603  }
auto const tolerance
const double a
template<typename TReal >
static constexpr bool larg4::isDefinitelyGreaterThan ( TReal  a,
TReal  b,
TReal  tolerance = std::numeric_limits<TReal>::epsilon() 
)
inlinestatic

Definition at line 619 of file OpFastScintillation.hh.

620  {
621  TReal diff = a - b;
622  if (diff > tolerance) return true;
623  if (diff > std::fmax(std::fabs(a), std::fabs(b)) * tolerance) return true;
624  return false;
625  }
auto const tolerance
const double a
static bool * b
Definition: config.cpp:1043
template<typename TReal >
static constexpr bool larg4::isDefinitelyLessThan ( TReal  a,
TReal  b,
TReal  tolerance = std::numeric_limits<TReal>::epsilon() 
)
inlinestatic

Definition at line 609 of file OpFastScintillation.hh.

610  {
611  TReal diff = a - b;
612  if (diff < tolerance) return true;
613  if (diff < std::fmax(std::fabs(a), std::fabs(b)) * tolerance) return true;
614  return false;
615  }
auto const tolerance
const double a
static bool * b
Definition: config.cpp:1043
double larg4::LandauPlusExpoFinal ( double *  x,
double *  par 
)

Definition at line 1875 of file OpFastScintillation.cxx.

1876  {
1877  // par0 = joining point
1878  // par1 = Landau MPV
1879  // par2 = Landau widt
1880  // par3 = normalization
1881  // par4 = Expo cte
1882  // par5 = Expo tau
1883  double y1 = par[3] * TMath::Landau(x[0], par[1], par[2]);
1884  double y2 = TMath::Exp(par[4] + x[0] * par[5]);
1885  if (x[0] > par[0]) y1 = 0.;
1886  if (x[0] < par[0]) y2 = 0.;
1887  return (y1 + y2);
1888  }
list x
Definition: train.py:276
double larg4::model_close ( double *  x,
double *  par 
)

Definition at line 1899 of file OpFastScintillation.cxx.

1900  {
1901  // par0 = joining point
1902  // par1 = Landau MPV
1903  // par2 = Landau width
1904  // par3 = normalization
1905  // par4 = Expo cte
1906  // par5 = Expo tau
1907  // par6 = t_min
1908  double y1 = par[3] * TMath::Landau(x[0], par[1], par[2]);
1909  double y2 = TMath::Exp(par[4] + x[0] * par[5]);
1910  if (x[0] <= par[6] || x[0] > par[0]) y1 = 0.;
1911  if (x[0] < par[0]) y2 = 0.;
1912  return (y1 + y2);
1913  }
list x
Definition: train.py:276
double larg4::model_far ( double *  x,
double *  par 
)

Definition at line 1916 of file OpFastScintillation.cxx.

1917  {
1918  // par1 = Landau MPV
1919  // par2 = Landau width
1920  // par3 = normalization
1921  // par0 = t_min
1922  double y = par[3] * TMath::Landau(x[0], par[1], par[2]);
1923  if (x[0] <= par[0]) y = 0.;
1924  return y;
1925  }
list x
Definition: train.py:276

Variable Documentation

const size_t larg4::acos_bins = 2000000
static

Definition at line 464 of file OpFastScintillation.hh.

IonizationAndScintillation* larg4::gInstance = 0
static

Definition at line 31 of file IonizationAndScintillation.cxx.

CustomPhysicsTable* larg4::TheCustomPhysicsTable
static

Definition at line 15 of file CustomPhysicsTable.cxx.

OpDetLookup* larg4::TheOpDetLookup

Definition at line 24 of file OpDetLookup.cxx.

OpDetPhotonTable* larg4::TheOpDetPhotonTable

Definition at line 20 of file OpDetPhotonTable.cxx.