67 G4ThreadLocal std::vector<G4HadronInelasticProcess*>* G4IonINCLXXPhysics::p_list = 0;
68 G4ThreadLocal std::vector<G4HadronicInteraction*>* G4IonINCLXXPhysics::model_list = 0;
93 emax_d = 2 * 3.0 *
GeV;
94 emax_t = 3 * 3.0 *
GeV;
95 emax_he3 = 3 * 3.0 *
GeV;
96 emax_alpha = 4 * 3.0 *
GeV;
97 emax = 18 * 3.0 *
GeV;
101 if(verbose > 1)
G4cout <<
"### G4IonINCLXXPhysics" <<
G4endl;
110 emax_d = 2 * 3.0 *
GeV;
111 emax_t = 3 * 3.0 *
GeV;
112 emax_he3 = 3 * 3.0 *
GeV;
113 emax_alpha = 4 * 3.0 *
GeV;
114 emax = 18 * 3.0 *
GeV;
118 if(verbose > 1)
G4cout <<
"### G4IonINCLXXPhysics" <<
G4endl;
127 delete theFTFPBuilderDeuteron; theFTFPBuilderDeuteron=0;
128 delete theFTFPBuilderTriton; theFTFPBuilderTriton=0;
129 delete theFTFPBuilderHe3; theFTFPBuilderHe3=0;
130 delete theFTFPBuilderAlpha; theFTFPBuilderAlpha=0;
131 delete theFTFPBuilderIons; theFTFPBuilderIons=0;
132 delete theGGNuclNuclXS; theGGNuclNuclXS=0;
133 delete theNuclNuclData; theGGNuclNuclXS=0;
137 for(i=0; i<
n; i++) {
delete (*p_list)[i];}
138 delete p_list; p_list = 0;
141 G4int n = model_list->size();
142 for(i=0; i<
n; i++) {
delete (*model_list)[i];}
143 delete model_list; model_list = 0;
150 if(wasActivated)
return;
158 if ( model_list == 0 ) model_list =
new std::vector<G4HadronicInteraction*>;
159 model_list->push_back(theINCLXXDeuteron);
160 model_list->push_back(theINCLXXTriton);
161 model_list->push_back(theINCLXXHe3);
162 model_list->push_back(theINCLXXAlpha);
163 model_list->push_back(theINCLXXIons);
168 theFTFPBuilderDeuteron =
new G4FTFBuilder(
"FTFP",thePreCompound);
169 theFTFPDeuteron = theFTFPBuilderDeuteron->
GetModel();
170 theFTFPBuilderTriton =
new G4FTFBuilder(
"FTFP",thePreCompound);
171 theFTFPTriton = theFTFPBuilderTriton->
GetModel();
172 theFTFPBuilderHe3 =
new G4FTFBuilder(
"FTFP",thePreCompound);
173 theFTFPHe3 = theFTFPBuilderHe3->
GetModel();
174 theFTFPBuilderAlpha =
new G4FTFBuilder(
"FTFP",thePreCompound);
175 theFTFPAlpha = theFTFPBuilderAlpha->
GetModel();
176 theFTFPBuilderIons =
new G4FTFBuilder(
"FTFP",thePreCompound);
177 theFTFPIons = theFTFPBuilderIons->
GetModel();
178 model_list->push_back(theFTFPDeuteron);
179 model_list->push_back(theFTFPTriton);
180 model_list->push_back(theFTFPHe3);
181 model_list->push_back(theFTFPAlpha);
182 model_list->push_back(theFTFPIons);
187 AddProcess(
"tInelastic",
G4Triton::Triton(), theINCLXXTriton, theFTFPTriton, emax_t);
188 AddProcess(
"He3Inelastic",
G4He3::He3(), theINCLXXHe3, theFTFPHe3, emax_he3);
189 AddProcess(
"alphaInelastic",
G4Alpha::Alpha(), theINCLXXAlpha, theFTFPAlpha, emax_alpha);
193 void G4IonINCLXXPhysics::AddProcess(
const G4String&
name,
200 if ( p_list == 0 ) p_list =
new std::vector<G4HadronInelasticProcess*>;
201 p_list->push_back(hadi);
216 <<
" INCLXX/G4DeexcitationHandler for E(MeV)= " << emin <<
" - " << inclxxEnergyUpperLimit;
218 G4cout <<
" FTFP for E(MeV)= " << inclxxEnergyUpperLimit-
MeV <<
" - " << emaxFTFP;
G4IonINCLXXPhysics(G4int ver=0)
G4_DECLARE_PHYSCONSTR_FACTORY(G4IonINCLXXPhysics)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleName() const
INCL++ intra-nuclear cascade.
G4HadronicInteraction * GetModel()
virtual ~G4IonINCLXXPhysics()
static void ConstructParticle()
void RegisterMe(G4HadronicInteraction *a)
void SetMinEnergy(G4double anEnergy)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
G4GLOB_DLL std::ostream G4cout
static G4Triton * Triton()
const G4String & GetProcessName() const
static G4Deuteron * Deuteron()
virtual void ConstructProcess()
static G4GenericIon * GenericIon()
void SetMaxEnergy(const G4double anEnergy)
void SetPhysicsType(G4int)
virtual void ConstructParticle()