Geant4  10.02.p03
G4HadronPhysicsFTF_BIC Class Reference

#include <G4HadronPhysicsFTF_BIC.hh>

Inheritance diagram for G4HadronPhysicsFTF_BIC:
Collaboration diagram for G4HadronPhysicsFTF_BIC:

Classes

struct  ThreadPrivate
 

Public Member Functions

 G4HadronPhysicsFTF_BIC (G4int verbose=1)
 
 G4HadronPhysicsFTF_BIC (const G4String &name, G4bool quasiElastic=false)
 
virtual ~G4HadronPhysicsFTF_BIC ()
 
virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 
- Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
 
virtual ~G4VPhysicsConstructor ()
 
void SetPhysicsName (const G4String &="")
 
const G4StringGetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
G4int GetInstanceID () const
 

Private Member Functions

void CreateModels ()
 

Private Attributes

G4bool QuasiElastic
 

Static Private Attributes

static G4ThreadLocal ThreadPrivatetpdata = 0
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
 
- Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 68 of file G4HadronPhysicsFTF_BIC.hh.

Constructor & Destructor Documentation

◆ G4HadronPhysicsFTF_BIC() [1/2]

G4HadronPhysicsFTF_BIC::G4HadronPhysicsFTF_BIC ( G4int  verbose = 1)

Definition at line 74 of file G4HadronPhysicsFTF_BIC.cc.

75  : G4VPhysicsConstructor("hInelastic FTF_BIC")
76 /* , theNeutrons(0)
77  , theFTFBinaryNeutron(0)
78  , theBinaryNeutron(0)
79  , thePion(0)
80  , theKaon(0)
81  , theBICPion(0)
82  , theBertiniKaon(0)
83  , theFTFBinaryPion(0)
84  , theFTFBinaryKaon(0)
85  , thePro(0)
86  , theFTFBinaryPro(0)
87  , theBinaryPro(0)
88  , theHyperon(0)
89  , theAntiBaryon(0)
90  , theFTFPAntiBaryon(0)
91  , xsKaon(0)
92  , xsNeutronInelasticXS(0)
93  , xsNeutronCaptureXS(0)*/
94  , QuasiElastic(false)
95 {}
G4VPhysicsConstructor(const G4String &="")

◆ G4HadronPhysicsFTF_BIC() [2/2]

G4HadronPhysicsFTF_BIC::G4HadronPhysicsFTF_BIC ( const G4String name,
G4bool  quasiElastic = false 
)

Definition at line 97 of file G4HadronPhysicsFTF_BIC.cc.

98  : G4VPhysicsConstructor(name)
99 /* , theNeutrons(0)
100  , theFTFBinaryNeutron(0)
101  , theBinaryNeutron(0)
102  , thePion(0)
103  , theKaon(0)
104  , theBICPion(0)
105  , theBertiniKaon(0)
106  , theFTFBinaryPion(0)
107  , theFTFBinaryKaon(0)
108  , thePro(0)
109  , theFTFBinaryPro(0)
110  , theBinaryPro(0)
111  , theHyperon(0)
112  , theAntiBaryon(0)
113  , theFTFPAntiBaryon(0)
114  , xsKaon(0)
115  , xsNeutronInelasticXS(0)
116  , xsNeutronCaptureXS(0)*/
117  , QuasiElastic(quasiElastic)
118 {}
G4VPhysicsConstructor(const G4String &="")

◆ ~G4HadronPhysicsFTF_BIC()

G4HadronPhysicsFTF_BIC::~G4HadronPhysicsFTF_BIC ( )
virtual

Definition at line 151 of file G4HadronPhysicsFTF_BIC.cc.

152 {
153  if (!tpdata) return;
154 
155  delete tpdata->theFTFBinaryNeutron;
156  delete tpdata->theBinaryNeutron;
157  delete tpdata->theNeutrons;
158 
159  delete tpdata->theFTFBinaryPro;
160  delete tpdata->theBinaryPro;
161  delete tpdata->thePro;
162 
163  delete tpdata->theFTFBinaryPion;
164  delete tpdata->theBICPion;
165  delete tpdata->thePion;
166 
167  delete tpdata->theFTFBinaryKaon;
168  delete tpdata->theBertiniKaon;
169  delete tpdata->theKaon;
170 
171  delete tpdata->theHyperon;
172  delete tpdata->theAntiBaryon;
173  delete tpdata->theFTFPAntiBaryon;
174 
175  delete tpdata; tpdata = 0;
176 }
G4FTFBinaryNeutronBuilder * theFTFBinaryNeutron
static G4ThreadLocal ThreadPrivate * tpdata

Member Function Documentation

◆ ConstructParticle()

void G4HadronPhysicsFTF_BIC::ConstructParticle ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 178 of file G4HadronPhysicsFTF_BIC.cc.

179 {
180  G4MesonConstructor pMesonConstructor;
181  pMesonConstructor.ConstructParticle();
182 
183  G4BaryonConstructor pBaryonConstructor;
184  pBaryonConstructor.ConstructParticle();
185 
186  G4ShortLivedConstructor pShortLivedConstructor;
187  pShortLivedConstructor.ConstructParticle();
188 }
static void ConstructParticle()
static void ConstructParticle()
Here is the call graph for this function:

◆ ConstructProcess()

void G4HadronPhysicsFTF_BIC::ConstructProcess ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 192 of file G4HadronPhysicsFTF_BIC.cc.

193 {
194  if ( tpdata == 0 ) tpdata = new ThreadPrivate;
195  CreateModels();
197  tpdata->thePro->Build();
198  tpdata->thePion->Build();
199  tpdata->theKaon->Build();
200 
201  // --- Kaons ---
208 
209  tpdata->theHyperon->Build();
211 
212  // --- Neutrons ---
215 
216  G4HadronicProcess* capture = 0;
218  G4ProcessVector* pv = pmanager->GetProcessList();
219  for ( size_t i=0; i < static_cast<size_t>(pv->size()); ++i ) {
220  if ( fCapture == ((*pv)[i])->GetProcessSubType() ) {
221  capture = static_cast<G4HadronicProcess*>((*pv)[i]);
222  }
223  }
224  if ( ! capture ) {
225  capture = new G4HadronCaptureProcess("nCapture");
226  pmanager->AddDiscreteProcess(capture);
227  }
230  capture->RegisterMe(new G4NeutronRadCapture());
231 }
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
G4ProcessVector * GetProcessList() const
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4KaonZeroLong * KaonZeroLong()
static const char * Default_Name()
G4ProcessManager * GetProcessManager() const
static G4KaonMinus * KaonMinus()
Definition: G4KaonMinus.cc:113
void RegisterMe(G4HadronicInteraction *a)
static G4HadronicProcess * FindInelasticProcess(const G4ParticleDefinition *)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
static G4KaonZeroShort * KaonZeroShort()
static G4CrossSectionDataSetRegistry * Instance()
G4int size() const
static G4Neutron * Neutron()
Definition: G4Neutron.cc:104
static const char * Default_Name()
G4ComponentGGHadronNucleusXsc * xsKaon
static G4ThreadLocal ThreadPrivate * tpdata
static G4KaonPlus * KaonPlus()
Definition: G4KaonPlus.cc:113
Here is the call graph for this function:

◆ CreateModels()

void G4HadronPhysicsFTF_BIC::CreateModels ( )
private

Definition at line 120 of file G4HadronPhysicsFTF_BIC.cc.

121 {
123 
125 
128 
131 
134 
138  tpdata->theBICPion->SetMaxEnergy(5*GeV); // use Binary up to 5GeV for pion
139 
144 
146 
149 }
void RegisterMe(G4VPionBuilder *aB)
G4FTFBinaryNeutronBuilder * theFTFBinaryNeutron
void SetMaxEnergy(G4double aM)
void SetMaxEnergy(G4double aM)
static const double GeV
Definition: G4SIunits.hh:214
void SetMaxEnergy(G4double aM)
void RegisterMe(G4VAntiBarionBuilder *aB)
void RegisterMe(G4VProtonBuilder *aB)
void RegisterMe(G4VNeutronBuilder *aB)
void RegisterMe(G4VKaonBuilder *aB)
static G4ThreadLocal ThreadPrivate * tpdata
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ QuasiElastic

G4bool G4HadronPhysicsFTF_BIC::QuasiElastic
private

Definition at line 109 of file G4HadronPhysicsFTF_BIC.hh.

◆ tpdata

G4ThreadLocal G4HadronPhysicsFTF_BIC::ThreadPrivate * G4HadronPhysicsFTF_BIC::tpdata = 0
staticprivate

Definition at line 107 of file G4HadronPhysicsFTF_BIC.hh.


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