Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4HadronInelasticQBBC Class Reference

#include <G4HadronInelasticQBBC.hh>

+ Inheritance diagram for G4HadronInelasticQBBC:

Public Member Functions

 G4HadronInelasticQBBC (G4int ver=1)
 
 G4HadronInelasticQBBC (const G4String &name, G4int ver=1, G4bool ftf=false, G4bool bert=false, G4bool chips=false, G4bool hp=false, G4bool glauber=false)
 
virtual ~G4HadronInelasticQBBC ()
 
virtual void ConstructProcess ()
 
- Public Member Functions inherited from G4VHadronPhysics
 G4VHadronPhysics (const G4String &name="hInelastic", G4int verbose=0)
 
virtual ~G4VHadronPhysics ()
 
virtual void ConstructParticle ()
 
G4HadronicInteractionBuildModel (G4VHadronModelBuilder *, G4double emin, G4double emax)
 
G4HadronicInteractionNewModel (G4HadronicInteraction *, G4double emin, G4double emax)
 
void AddInelasticCrossSection (const G4String &, G4VCrossSectionDataSet *)
 
void AddInelasticCrossSection (const G4ParticleDefinition *, G4VCrossSectionDataSet *)
 
void AddElasticCrossSection (const G4String &, G4VCrossSectionDataSet *)
 
void AddElasticCrossSection (const G4ParticleDefinition *, G4VCrossSectionDataSet *)
 
void AddCaptureCrossSection (G4VCrossSectionDataSet *)
 
void AddFissionCrossSection (G4VCrossSectionDataSet *)
 
- Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
 
virtual ~G4VPhysicsConstructor ()
 
virtual void ConstructParticle ()=0
 
virtual void ConstructProcess ()=0
 
void SetPhysicsName (const G4String &="")
 
const G4StringGetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 

Additional Inherited Members

- Protected Member Functions inherited from G4VHadronPhysics
G4HadronicProcessFindInelasticProcess (const G4String &)
 
G4HadronicProcessFindInelasticProcess (const G4ParticleDefinition *)
 
G4HadronicProcessFindElasticProcess (const G4String &)
 
G4HadronicProcessFindElasticProcess (const G4ParticleDefinition *)
 
G4HadronicProcessFindCaptureProcess ()
 
G4HadronicProcessFindFissionProcess ()
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 
- Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4ParticleTable::G4PTblDicIteratortheParticleIterator
 
G4PhysicsListHelperthePLHelper
 

Detailed Description

Definition at line 47 of file G4HadronInelasticQBBC.hh.

Constructor & Destructor Documentation

◆ G4HadronInelasticQBBC() [1/2]

G4HadronInelasticQBBC::G4HadronInelasticQBBC ( G4int  ver = 1)

Definition at line 90 of file G4HadronInelasticQBBC.cc.

91 : G4VHadronPhysics("hInelastic"),verbose(ver),wasActivated(false)
92{
93 htype = "QBBC";
94 theAntiNuclXS = 0;
95}

◆ G4HadronInelasticQBBC() [2/2]

G4HadronInelasticQBBC::G4HadronInelasticQBBC ( const G4String name,
G4int  ver = 1,
G4bool  ftf = false,
G4bool  bert = false,
G4bool  chips = false,
G4bool  hp = false,
G4bool  glauber = false 
)

Definition at line 97 of file G4HadronInelasticQBBC.cc.

99 : G4VHadronPhysics("hInelastic"),verbose(ver),wasActivated(false)
100{
101 htype = name;
102 theAntiNuclXS = 0;
103}

◆ ~G4HadronInelasticQBBC()

G4HadronInelasticQBBC::~G4HadronInelasticQBBC ( )
virtual

Definition at line 105 of file G4HadronInelasticQBBC.cc.

106{
107 delete theAntiNuclXS;
108}

Member Function Documentation

◆ ConstructProcess()

void G4HadronInelasticQBBC::ConstructProcess ( )
virtual

Implements G4VPhysicsConstructor.

Definition at line 110 of file G4HadronInelasticQBBC.cc.

111{
112 if(wasActivated) return;
113 wasActivated = true;
114
115 if(verbose > 1) {
116 G4cout << "### HadronInelasticQBBC Construct Process with type <"
117 << htype << ">" << G4endl;
118 }
119
120 G4double emax = 100.*TeV;
121
122
123 //G4cout << "G4HadronInelasticQBBC::ConstructProcess new PRECO"<< G4endl;
124
125 // PreCompound and Evaporation models are instantiated here
126 G4PreCompoundModel* thePreCompound = 0;
129 thePreCompound = static_cast<G4PreCompoundModel*>(p);
130 if(!thePreCompound) { thePreCompound = new G4PreCompoundModel(); }
131 //G4ExcitationHandler* handler = thePreCompound->GetExcitationHandler();
132
133 // configure models
134 //G4HadronicInteraction* theQGSP =
135 // BuildModel(new G4QGSBuilder("QGSP",thePreCompound,true,false),12.5*GeV,emax);
136 G4HadronicInteraction* theFTFP =
137 BuildModel(new G4FTFBuilder("FTFP",thePreCompound),3.0*GeV,emax);
138 G4HadronicInteraction* theFTFP1 =
139 BuildModel(new G4FTFBuilder("FTFP",thePreCompound),3.0*GeV,emax);
140 G4HadronicInteraction* theFTFP2 =
141 BuildModel(new G4FTFBuilder("FTFP",thePreCompound),0.0,emax);
142
143 G4HadronicInteraction* theBERT =
144 NewModel(new G4CascadeInterface(),1.0*GeV,12.0*GeV);
145 G4HadronicInteraction* theBERT1 =
146 NewModel(new G4CascadeInterface(),0.0*GeV,12.0*GeV);
147
148 //G4cout << "G4HadronInelasticQBBC::ConstructProcess new Binary"<< G4endl;
149 G4BinaryCascade* bic = new G4BinaryCascade(thePreCompound);
150 G4HadronicInteraction* theBIC = NewModel(bic,0.0,1.5*GeV);
151
152 G4QInelastic* theCHIPS = new G4QInelastic();
154 store->RegisterExtraProcess(theCHIPS);
155
156 // cross sections
157 theAntiNuclXS = new G4ComponentAntiNuclNuclearXS();
158 G4CrossSectionInelastic* anucxs =
159 new G4CrossSectionInelastic(theAntiNuclXS);
160
161 // loop over particles
163 while( (*theParticleIterator)() ) {
165 G4String pname = particle->GetParticleName();
166 //G4ProcessManager* pmanager = particle->GetProcessManager();
167 if(verbose > 1) {
168 G4cout << "### HadronInelasticQBBC: " << pname << G4endl;
169 }
170
171 //
172 // model and X-section configuration per particle type
173 //
174 if(pname == "proton") {
176 hp->AddDataSet(new G4BGGNucleonInelasticXS(particle));
177
178 //hp->RegisterMe(theQGSP);
179 hp->RegisterMe(theFTFP);
180 hp->RegisterMe(theBERT);
181 hp->RegisterMe(theBIC);
182
183 } else if(pname == "neutron") {
186 //hp->RegisterMe(theQGSP);
187 hp->RegisterMe(theFTFP);
188
190 capture->AddDataSet(new G4NeutronCaptureXS());
191 hp->RegisterMe(theBERT);
192 hp->RegisterMe(theBIC);
193 capture->RegisterMe(new G4NeutronRadCapture());
194
195 } else if(pname == "pi-" || pname == "pi+") {
197// hp->AddDataSet(new G4BGGPionInelasticXS(particle));
199 //hp->RegisterMe(theQGSP);
200 hp->RegisterMe(theFTFP);
201 hp->RegisterMe(theBERT1);
202
203 } else if(pname == "kaon-" ) {
205 hp->RegisterMe(theFTFP1);
206 hp->RegisterMe(theBERT1);
208
209 } else if(pname == "kaon+" ) {
211 hp->RegisterMe(theFTFP1);
212 hp->RegisterMe(theBERT1);
214
215 } else if(pname == "kaon0S" ||
216 pname == "kaon0L") {
218 hp->RegisterMe(theFTFP1);
219 hp->RegisterMe(theBERT1);
221
222 } else if(pname == "lambda" ||
223 pname == "omega-" ||
224 pname == "sigma-" ||
225 pname == "sigma+" ||
226 pname == "sigma0" ||
227 pname == "xi-" ||
228 pname == "xi0") {
230 hp->RegisterMe(theFTFP1);
231 hp->RegisterMe(theBERT1);
233
234 } else if(pname == "anti_alpha" ||
235 pname == "anti_deuteron"||
236 pname == "anti_He3" ||
237 pname == "anti_proton" ||
238 pname == "anti_triton" ||
239 pname == "anti_lambda" ||
240 pname == "anti_neutron" ||
241 pname == "anti_omega-" ||
242 pname == "anti_sigma-" ||
243 pname == "anti_sigma+" ||
244 pname == "anti_xi-" ||
245 pname == "anti_xi0"
246 ) {
247
249 hp->RegisterMe(theFTFP2);
250 hp->AddDataSet(anucxs);
251
252 //pmanager->AddDiscreteProcess(theCHIPS);
253 //store->RegisterParticleForExtraProcess(theCHIPS,particle);
254 }
255 }
256}
double G4double
Definition: G4Types.hh:64
#define G4endl
Definition: G4ios.hh:52
G4DLLIMPORT std::ostream G4cout
static G4CrossSectionDataSetRegistry * Instance()
G4HadronicInteraction * FindModel(const G4String &name)
static G4HadronicInteractionRegistry * Instance()
void RegisterExtraProcess(G4VProcess *)
static G4HadronicProcessStore * Instance()
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void RegisterMe(G4HadronicInteraction *a)
const G4String & GetParticleName() const
G4HadronicProcess * FindCaptureProcess()
G4HadronicProcess * FindInelasticProcess(const G4String &)
G4HadronicInteraction * BuildModel(G4VHadronModelBuilder *, G4double emin, G4double emax)
G4HadronicInteraction * NewModel(G4HadronicInteraction *, G4double emin, G4double emax)
G4ParticleTable::G4PTblDicIterator * theParticleIterator

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