All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Typedefs | Enumerations | Functions | Variables
larg4 Namespace Reference

Geant4 interface. More...

Classes

class  CheckAuxDetHit
 
class  CheckMCParticle
 
class  CheckSimEnergyDeposit
 
class  larg4Main
 
class  MCTruthEventActionService
 
class  UpdateDaughterInformation
 
class  ParticleListActionService
 
class  AuxDetSD
 
class  LArG4DetectorService
 
class  SimEnergyDepositSD
 
class  IonAndScint
 
struct  ISCalcData
 
class  ISCalc
 
class  ISCalcAna
 
class  ISCalcCorrelated
 
class  ISCalcNESTLAr
 
class  ISCalcSeparate
 
class  ISTPC
 
class  AllPhysicsLists
 
class  AuxDetReadout
 
class  AuxDetReadoutGeometry
 
class  TConfigurablePhysicsList
 
class  CustomPhysicsFactoryBase
 
class  CustomPhysicsFactory
 
class  CustomPhysicsFactory< OpticalPhysics >
 
class  CustomPhysicsTable
 
class  FastOpticalPhysics
 
class  G4BadIdeaAction
 
class  IonizationAndScintillation
 
class  IonizationAndScintillationAction
 
class  ISCalculation
 
class  ISCalculationCorrelated
 
class  ISCalculationNEST
 
class  ISCalculationSeparate
 
class  LArG4
 Runs Geant4 simulation and propagation of electrons and photons to readout. More...
 
class  LArG4Ana
 
struct  TPCID_t
 Simple structure holding a TPC and cryostat number. More...
 
class  G4PVPlacementWithID
 A G4PVPlacement with an additional identificator. More...
 
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  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  TransparentPlaneAction
 
class  SimpleWireplaneAction
 
class  OverlaidWireplanesAction
 
class  OpParamSD
 
class  OpticalPhysics
 
class  ParticleListAction
 
class  ModularPhysicsList
 
class  VisualizationAction
 

Typedefs

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

Enumerations

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

Functions

 fKeepEMShowerDaughters (p.get< bool >("keepEMShowerDaughters", true))
 
 fNotStoredPhysics (p.get< std::vector< std::string >>("NotStoredPhysics",{}))
 
 fkeepOnlyPrimaryFullTraj (p.get< bool >("keepOnlyPrimaryFullTrajectories", false))
 
 fSparsifyTrajectories (p.get< bool >("SparsifyTrajectories", false))
 
 fSparsifyMargin (p.get< double >("SparsifyMargin", 0.015))
 
 fKeepTransportation (p.get< bool >("KeepTransportation", false))
 
 fKeepSecondToLast (p.get< bool >("KeepSecondToLast", false))
 
 fEngine (art::ServiceHandle< rndm::NuRandomService >() ->createEngine(*this,"HepJamesRandom","ISCalcAlg", pset,"SeedISCalcAlg"))
 
 fSparsifyTrajectories (pset.get< bool >("SparsifyTrajectories", false))
 
 fEngine (art::ServiceHandle< rndm::NuRandomService >{}->createEngine(*this,"HepJamesRandom","propagation", pset,"PropagationSeed"))
 
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)
 
 if (diff<=tolerance) return true
 
 if (diff< std::fmax(std::fabs(a), std::fabs(b))*tolerance) return true
 
 if (diff > tolerance) return true
 
 if (diff > std::fmax(std::fabs(a), std::fabs(b))*tolerance) return true
 

Variables

 Instances
 
static CustomPhysicsTableTheCustomPhysicsTable
 
static IonizationAndScintillationgInstance = 0
 
 fDetProp {art::ServiceHandle<detinfo::DetectorPropertiesService const>()->DataForJob()}
 
OpDetLookupTheOpDetLookup
 
OpDetPhotonTableTheOpDetPhotonTable
 
static const size_t acos_bins = 2000000
 
template<typename TReal >
static constexpr bool
 
return false
 

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  }
process_name opflash particleana ie x
pdgs p
Definition: selectors.fcl:22
constexpr unsigned int dimension()
process_name opflash particleana ie ie y
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  }
pdgs p
Definition: selectors.fcl:22
constexpr unsigned int dimension()
process_name opflash particleana ie ie y
double larg4::fast_acos ( double  x)

Definition at line 2196 of file OpFastScintillation.cxx.

2197  {
2198  double negate = double(x < 0);
2199  x = std::abs(x);
2200  x -= double(x > 1.0) * (x - 1.0); // <- equivalent to min(1.0,x), but faster
2201  double ret = -0.0187293;
2202  ret = ret * x;
2203  ret = ret + 0.0742610;
2204  ret = ret * x;
2205  ret = ret - 0.2121144;
2206  ret = ret * x;
2207  ret = ret + 1.5707288;
2208  ret = ret * std::sqrt(1.0 - x);
2209  ret = ret - 2. * negate * ret;
2210  return negate * 3.14159265358979 + ret;
2211  }
process_name opflash particleana ie x
T abs(T value)
larg4::fEngine ( art::ServiceHandle< rndm::NuRandomService >() ->createEngine *,"","",,""  SeedISCalcAlg)
larg4::fEngine ( art::ServiceHandle< rndm::NuRandomService >{}->createEngine *,"","",,""  PropagationSeed)
double larg4::finter_d ( double *  x,
double *  par 
)

Definition at line 1868 of file OpFastScintillation.cxx.

1869  {
1870  double y1 = par[2] * TMath::Landau(x[0], par[0], par[1]);
1871  double y2 = TMath::Exp(par[3] + x[0] * par[4]);
1872  return TMath::Abs(y1 - y2);
1873  }
process_name opflash particleana ie x
double larg4::finter_r ( double *  x,
double *  par 
)

Definition at line 1892 of file OpFastScintillation.cxx.

1893  {
1894  double y1 = par[2] * TMath::Landau(x[0], par[0], par[1]);
1895  double y2 = par[5] * TMath::Landau(x[0], par[3], par[4]);
1896  return TMath::Abs(y1 - y2);
1897  }
process_name opflash particleana ie x
larg4::fKeepEMShowerDaughters ( p.get< bool >  "keepEMShowerDaughters", true)
larg4::fkeepOnlyPrimaryFullTraj ( p.get< bool >  "keepOnlyPrimaryFullTrajectories", false)
larg4::fKeepSecondToLast ( p.get< bool >  "KeepSecondToLast", false)

Definition at line 79 of file ParticleListAction.cc.

80  {
81  // -- D.R. If a custom list of not storable physics is provided, use it, otherwise
82  // use the default list. This preserves the behavior of the keepEmShowerDaughters
83  // parameter
84  bool customNotStored = not fNotStoredPhysics.empty();
86  // -- Don't keep all processes
87  if (!customNotStored) // -- Don't keep but haven't provided a list
88  { // -- default list of not stored physics
89  fNotStoredPhysics = {"conv",
90  "LowEnConversion",
91  "Pair",
92  "compt",
93  "Compt",
94  "Brem",
95  "phot",
96  "Photo",
97  "Ion",
98  "annihil"};
99  }
100 
101  std::stringstream sstored;
102  sstored << "The full tracking information will not be stored for particles"
103  << " resulting from the following processes: \n{ ";
104  for (auto const& i : fNotStoredPhysics) {
105  sstored << "\"" << i << "\" ";
106  fNotStoredCounterUMap.emplace(i, 0); // -- initialize counter
107  }
108  mf::LogInfo("ParticleListActionService") << sstored.str() << "}\n";
109  }
110  else { // -- Keep all processes
111  mf::LogInfo("ParticleListActionService")
112  << "Storing full tracking information for all processes. \n";
113  if (customNotStored) // -- custom list will be ignored
114  {
115  mf::LogWarning("StoredPhysics")
116  << "NotStoredPhysics provided, but will be ignored."
117  << " To use NotStoredPhysics, set keepEMShowerDaughters to false";
118  }
119  }
120 
121  // -- sparsify info
123  mf::LogInfo("ParticleListActionService")
124  << "Trajectory sparsification enabled with SparsifyMargin : " << fSparsifyMargin << "\n";
125  }
fSparsifyMargin(p.get< double >("SparsifyMargin", 0.015))
fNotStoredPhysics(p.get< std::vector< std::string >>("NotStoredPhysics",{}))
fKeepEMShowerDaughters(p.get< bool >("keepEMShowerDaughters", true))
fSparsifyTrajectories(p.get< bool >("SparsifyTrajectories", false))
larg4::fKeepTransportation ( p.get< bool >  "KeepTransportation", false)
larg4::fNotStoredPhysics ( p.get< std::vector< std::string >>  "NotStoredPhysics",{})
larg4::fSparsifyMargin ( p.get< double >  "SparsifyMargin", 0.015)
larg4::fSparsifyTrajectories ( p.get< bool >  "SparsifyTrajectories", false)
larg4::fSparsifyTrajectories ( pset.get< bool >  "SparsifyTrajectories", false)
larg4::if ( diff<=  tolerance)
larg4::if ( )

Definition at line 5 of file fix_log_debug_art211.pl.

5  {
6  print "\n";
7  print "USAGE: fix_log_debug_art211.pl <input-file>\n";
8  print "\n";
9  exit 1;
10 }
do one_file $F done echo for F in find $TOP name CMakeLists txt print
larg4::if ( diff  ,
tolerance   
)
larg4::if ( diff  ,
std::fmax(std::fabs(a), std::fabs(b))*  tolerance 
)
double larg4::LandauPlusExpoFinal ( double *  x,
double *  par 
)

Definition at line 1876 of file OpFastScintillation.cxx.

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

Definition at line 1900 of file OpFastScintillation.cxx.

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

Definition at line 1917 of file OpFastScintillation.cxx.

1918  {
1919  // par1 = Landau MPV
1920  // par2 = Landau width
1921  // par3 = normalization
1922  // par0 = t_min
1923  double y = par[3] * TMath::Landau(x[0], par[1], par[2]);
1924  if (x[0] <= par[0]) y = 0.;
1925  return y;
1926  }
process_name opflash particleana ie x
process_name opflash particleana ie ie y

Variable Documentation

const size_t larg4::acos_bins = 2000000
static

Definition at line 464 of file OpFastScintillation.hh.

template<typename TReal >
static constexpr larg4::bool
inlinestatic
Initial value:
{
TReal diff = std::fabs(a - b)
process_name gaushit a

Definition at line 588 of file OpFastScintillation.hh.

return larg4::false

Definition at line 592 of file OpFastScintillation.hh.

larg4::fDetProp {art::ServiceHandle<detinfo::DetectorPropertiesService const>()->DataForJob()}

Definition at line 420 of file LArG4_module.cc.

IonizationAndScintillation* larg4::gInstance = 0
static

Definition at line 31 of file IonizationAndScintillation.cxx.

larg4::Instances
Initial value:
{
pset.get<string>("Instances", "LArG4DetectorServicevolTPCActive"),
}

Definition at line 93 of file IonAndScint_module.cc.

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.