LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
larg4::CustomPhysicsFactory< T > Class Template Reference

#include "CustomPhysicsFactory.hh"

Inheritance diagram for larg4::CustomPhysicsFactory< T >:
larg4::CustomPhysicsFactoryBase

Public Member Functions

 CustomPhysicsFactory (std::string const &name)
 
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
template<>
G4VPhysicsConstructor * Build () const
 
std::string const & GetName () const noexcept
 

Detailed Description

template<class T>
class larg4::CustomPhysicsFactory< T >

Definition at line 33 of file CustomPhysicsFactory.hh.

Constructor & Destructor Documentation

template<class T >
larg4::CustomPhysicsFactory< T >::CustomPhysicsFactory ( std::string const &  name)
explicit

Definition at line 41 of file CustomPhysicsFactory.hh.

43  {
44  // register self in physics table - note, factory is actually registered
45  // in static TheCustomPhysicsTable, not the instance created below
46  // which just acts to pass information along
47  new CustomPhysicsTable(this);
48  }
CustomPhysicsFactoryBase(std::string const &name)

Member Function Documentation

template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4EmStandardPhysics >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 32 of file CustomPhysicsBuiltIns.hh.

33  {
34  return new G4EmStandardPhysics(0);
35  }
template<class T>
G4VPhysicsConstructor* larg4::CustomPhysicsFactory< T >::Build ( ) const
inlinevirtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 37 of file CustomPhysicsFactory.hh.

37 { return new T{}; }
template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4EmExtraPhysics >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 38 of file CustomPhysicsBuiltIns.hh.

39  {
40  return new G4EmExtraPhysics("extra EM");
41  }
template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4ChargeExchangePhysics >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 44 of file CustomPhysicsBuiltIns.hh.

45  {
46  return new G4ChargeExchangePhysics(2);
47  }
template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4DecayPhysics >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 50 of file CustomPhysicsBuiltIns.hh.

51  {
52  return new G4DecayPhysics("Decay", 0);
53  }
template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4HadronElasticPhysics >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 57 of file CustomPhysicsBuiltIns.hh.

58  {
59  return new G4HadronElasticPhysics(0);
60  }
template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4HadronElasticPhysicsHP >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 64 of file CustomPhysicsBuiltIns.hh.

65  {
66  return new G4HadronElasticPhysicsHP(0);
67  }
template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4HadronElasticPhysicsPHP >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 71 of file CustomPhysicsBuiltIns.hh.

72  {
73  return new G4HadronElasticPhysicsPHP(0);
74  }
template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4HadronPhysicsQGSP_BERT >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 78 of file CustomPhysicsBuiltIns.hh.

79  {
80  constexpr G4bool quasiElastic{true};
81  return new G4HadronPhysicsQGSP_BERT("hadron", quasiElastic);
82  }
template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4HadronPhysicsQGSP_BERT_HP >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 86 of file CustomPhysicsBuiltIns.hh.

87  {
88  return new G4HadronPhysicsQGSP_BERT_HP("hadronHP", true);
89  }
template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4StoppingPhysics >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 92 of file CustomPhysicsBuiltIns.hh.

93  {
94  return new G4StoppingPhysics("stopping");
95  }
template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4IonPhysics >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 98 of file CustomPhysicsBuiltIns.hh.

99  {
100  return new G4IonPhysics("ion");
101  }
template<>
G4VPhysicsConstructor * larg4::CustomPhysicsFactory< G4NeutronTrackingCut >::Build ( ) const
virtual

Implements larg4::CustomPhysicsFactoryBase.

Definition at line 104 of file CustomPhysicsBuiltIns.hh.

105  {
106  return new G4NeutronTrackingCut("Neutron tracking cut", 0);
107  }
std::string const& larg4::CustomPhysicsFactoryBase::GetName ( ) const
inlinenoexceptinherited

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