Geant4  10.02.p03
G4HadronPhysicsQGS_BIC Class Reference

#include <G4HadronPhysicsQGS_BIC.hh>

Inheritance diagram for G4HadronPhysicsQGS_BIC:
Collaboration diagram for G4HadronPhysicsQGS_BIC:

Classes

struct  ThreadPrivate
 

Public Member Functions

 G4HadronPhysicsQGS_BIC (G4int verbose=1)
 
 G4HadronPhysicsQGS_BIC (const G4String &name, G4bool quasiElastic=true)
 
virtual ~G4HadronPhysicsQGS_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 ()
 

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 75 of file G4HadronPhysicsQGS_BIC.hh.

Constructor & Destructor Documentation

◆ G4HadronPhysicsQGS_BIC() [1/2]

G4HadronPhysicsQGS_BIC::G4HadronPhysicsQGS_BIC ( G4int  verbose = 1)

Definition at line 73 of file G4HadronPhysicsQGS_BIC.cc.

74  : G4VPhysicsConstructor("hInelastic QGS_BIC")
75 /* , theNeutrons(0)
76  , theFTFBinaryNeutron(0)
77  , theQGSBinaryNeutron(0)
78  , theBinaryNeutron(0)
79  , thePion(0)
80  , theBinaryPion(0)
81  , theBertiniPion(0)
82  , theFTFBinaryPion(0)
83  , theQGSBinaryPion(0)
84  , theKaon(0)
85  , theBertiniKaon(0)
86  , theFTFBinaryKaon(0)
87  , theQGSBinaryKaon(0)
88  , thePro(0)
89  , theFTFBinaryPro(0)
90  , theQGSBinaryPro(0)
91  , theBinaryPro(0)
92  , theHyperon(0)
93  , theAntiBaryon(0)
94  , theFTFPAntiBaryon(0)
95  , xsKaon(0)
96  , xsNeutronInelasticXS(0)
97  , xsNeutronCaptureXS(0)*/
98 // , QuasiElastic(true)
99 {}
G4VPhysicsConstructor(const G4String &="")

◆ G4HadronPhysicsQGS_BIC() [2/2]

G4HadronPhysicsQGS_BIC::G4HadronPhysicsQGS_BIC ( const G4String name,
G4bool  quasiElastic = true 
)

Definition at line 101 of file G4HadronPhysicsQGS_BIC.cc.

102  : G4VPhysicsConstructor(name)
103 /* , theNeutrons(0)
104  , theFTFBinaryNeutron(0)
105  , theQGSBinaryNeutron(0)
106  , theBinaryNeutron(0)
107  , thePion(0)
108  , theBinaryPion(0)
109  , theBertiniPion(0)
110  , theFTFBinaryPion(0)
111  , theQGSBinaryPion(0)
112  , theKaon(0)
113  , theBertiniKaon(0)
114  , theFTFBinaryKaon(0)
115  , theQGSBinaryKaon(0)
116  , thePro(0)
117  , theFTFBinaryPro(0)
118  , theQGSBinaryPro(0)
119  , theBinaryPro(0)
120  , theHyperon(0)
121  , theAntiBaryon(0)
122  , theFTFPAntiBaryon(0)
123  , xsKaon(0)
124  , xsNeutronInelasticXS(0)
125  , xsNeutronCaptureXS(0)*/
126 // , QuasiElastic(quasiElastic)
127 {}
G4VPhysicsConstructor(const G4String &="")

◆ ~G4HadronPhysicsQGS_BIC()

G4HadronPhysicsQGS_BIC::~G4HadronPhysicsQGS_BIC ( )
virtual

Definition at line 183 of file G4HadronPhysicsQGS_BIC.cc.

184 {
185  if (!tpdata) return;
186 
187  delete tpdata->theBinaryNeutron;
188  delete tpdata->theQGSBinaryNeutron;
189  delete tpdata->theFTFBinaryNeutron;
190  delete tpdata->theNeutrons;
191  delete tpdata->theQGSBinaryPion;
192  delete tpdata->theFTFBinaryPion;
193  delete tpdata->theBertiniPion;
194  delete tpdata->theBinaryPion;
195  delete tpdata->thePion;
196  delete tpdata->theQGSBinaryKaon;
197  delete tpdata->theFTFBinaryKaon;
198  delete tpdata->theBertiniKaon;
199  delete tpdata->theKaon;
200  delete tpdata->theBinaryPro;
201  delete tpdata->theQGSBinaryPro;
202  delete tpdata->theFTFBinaryPro;
203  delete tpdata->thePro;
204  delete tpdata->theFTFPAntiBaryon;
205  delete tpdata->theAntiBaryon;
206  delete tpdata->theHyperon;
207 
208  delete tpdata; tpdata = 0;
209 }
static G4ThreadLocal ThreadPrivate * tpdata
G4QGSBinaryNeutronBuilder * theQGSBinaryNeutron
G4FTFBinaryNeutronBuilder * theFTFBinaryNeutron

Member Function Documentation

◆ ConstructParticle()

void G4HadronPhysicsQGS_BIC::ConstructParticle ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 211 of file G4HadronPhysicsQGS_BIC.cc.

212 {
213  G4MesonConstructor pMesonConstructor;
214  pMesonConstructor.ConstructParticle();
215 
216  G4BaryonConstructor pBaryonConstructor;
217  pBaryonConstructor.ConstructParticle();
218 
219  G4ShortLivedConstructor pShortLivedConstructor;
220  pShortLivedConstructor.ConstructParticle();
221 
222  G4IonConstructor pIonConstructor;
223  pIonConstructor.ConstructParticle();
224 }
static void ConstructParticle()
static void ConstructParticle()
static void ConstructParticle()
Here is the call graph for this function:

◆ ConstructProcess()

void G4HadronPhysicsQGS_BIC::ConstructProcess ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 227 of file G4HadronPhysicsQGS_BIC.cc.

228 {
229  if ( tpdata == 0 ) tpdata = new ThreadPrivate;
230  CreateModels();
232  tpdata->thePro->Build();
233  tpdata->thePion->Build();
234  tpdata->theKaon->Build();
235  tpdata->theHyperon->Build();
237 
238  // --- Kaons ---
245 
246  // --- Neutrons ---
249 
250  G4HadronicProcess* capture = 0;
252  G4ProcessVector* pv = pmanager->GetProcessList();
253  for ( size_t i=0; i < static_cast<size_t>(pv->size()); ++i ) {
254  if ( fCapture == ((*pv)[i])->GetProcessSubType() ) {
255  capture = static_cast<G4HadronicProcess*>((*pv)[i]);
256  }
257  }
258  if ( ! capture ) {
259  capture = new G4HadronCaptureProcess("nCapture");
260  pmanager->AddDiscreteProcess(capture);
261  }
264  capture->RegisterMe(new G4NeutronRadCapture());
265 }
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
G4ComponentGGHadronNucleusXsc * xsKaon
static G4ThreadLocal ThreadPrivate * tpdata
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()
static G4KaonPlus * KaonPlus()
Definition: G4KaonPlus.cc:113
Here is the call graph for this function:

◆ CreateModels()

void G4HadronPhysicsQGS_BIC::CreateModels ( )
private

Definition at line 129 of file G4HadronPhysicsQGS_BIC.cc.

130 {
131  G4bool quasiElasticFTF= false; // Use built-in quasi-elastic (not add-on)
132  G4bool quasiElasticQGS= true; // For QGS, it must use it.
133 
134  const G4double maxFTFP = 25.0*GeV;
135  const G4double minFTFP = 9.5*GeV;
136  const G4double maxBIC = 9.9*GeV;
137  const G4double maxPionBIC = 1.3*GeV;
138  const G4double maxPionBERT = 5.0*GeV;
139  const G4double minPionBERT = 1.2*GeV;
140  const G4double maxKaonBERT = 5.0*GeV;
141 
147 
150 
156 
158  tpdata->theBinaryPro->SetMaxEnergy(maxBIC);
159 
165  tpdata->theBertiniPion->SetMinEnergy(minPionBERT);
166  tpdata->theBertiniPion->SetMaxEnergy(maxPionBERT);
168  tpdata->theBinaryPion->SetMaxEnergy(maxPionBIC);
169 
175  tpdata->theBertiniKaon->SetMaxEnergy(maxKaonBERT);
176 
178 
181 }
static G4ThreadLocal ThreadPrivate * tpdata
G4QGSBinaryNeutronBuilder * theQGSBinaryNeutron
void RegisterMe(G4VPionBuilder *aB)
void SetMinEnergy(G4double aM)
void SetMaxEnergy(G4double aM)
bool G4bool
Definition: G4Types.hh:79
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 SetMaxEnergy(G4double aM)
void RegisterMe(G4VNeutronBuilder *aB)
void RegisterMe(G4VKaonBuilder *aB)
double G4double
Definition: G4Types.hh:76
G4FTFBinaryNeutronBuilder * theFTFBinaryNeutron
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ tpdata

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

Definition at line 120 of file G4HadronPhysicsQGS_BIC.hh.


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