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

#include <G4PhysicsModelCatalog.hh>

Public Member Functions

 ~G4PhysicsModelCatalog ()=default
 
 G4PhysicsModelCatalog (const G4PhysicsModelCatalog &)=delete
 
G4PhysicsModelCatalogoperator= (const G4PhysicsModelCatalog &)=delete
 

Static Public Member Functions

static void Initialize ()
 
static const G4String GetModelNameFromID (const G4int modelID)
 
static const G4String GetModelNameFromIndex (const G4int modelIndex)
 
static G4int GetModelID (const G4int modelIndex)
 
static G4int GetModelID (const G4String &modelName)
 
static G4int GetModelIndex (const G4int modelID)
 
static G4int GetModelIndex (const G4String &modelName)
 
static G4int Entries ()
 
static void PrintAllInformation ()
 
static G4int GetMinAllowedModelIDValue ()
 
static G4int GetMaxAllowedModelIDValue ()
 

Detailed Description

Definition at line 45 of file G4PhysicsModelCatalog.hh.

Constructor & Destructor Documentation

◆ ~G4PhysicsModelCatalog()

G4PhysicsModelCatalog::~G4PhysicsModelCatalog ( )
default

◆ G4PhysicsModelCatalog()

G4PhysicsModelCatalog::G4PhysicsModelCatalog ( const G4PhysicsModelCatalog & )
delete

Member Function Documentation

◆ Entries()

G4int G4PhysicsModelCatalog::Entries ( )
static

Definition at line 740 of file G4PhysicsModelCatalog.cc.

740 {
741 // It is enough to check the size of one of the two vectors, because they have the same size.
742 return ( theVectorOfModelIDs != nullptr ) ? G4int( theVectorOfModelIDs->size() ) : -1;
743}
int G4int
Definition G4Types.hh:85

Referenced by GetModelID(), GetModelID(), GetModelIndex(), GetModelIndex(), GetModelNameFromID(), GetModelNameFromIndex(), and PrintAllInformation().

◆ GetMaxAllowedModelIDValue()

G4int G4PhysicsModelCatalog::GetMaxAllowedModelIDValue ( )
inlinestatic

Definition at line 109 of file G4PhysicsModelCatalog.hh.

109 {
110 return theMaxAllowedModelIDValue;
111}

Referenced by GetModelIndex(), and GetModelNameFromID().

◆ GetMinAllowedModelIDValue()

G4int G4PhysicsModelCatalog::GetMinAllowedModelIDValue ( )
inlinestatic

Definition at line 105 of file G4PhysicsModelCatalog.hh.

105 {
106 return theMinAllowedModelIDValue;
107}

Referenced by GetModelIndex(), and GetModelNameFromID().

◆ GetModelID() [1/2]

G4int G4PhysicsModelCatalog::GetModelID ( const G4int modelIndex)
static

Definition at line 692 of file G4PhysicsModelCatalog.cc.

692 {
693 return ( modelIndex >= 0 && modelIndex < Entries() )
694 ? (*theVectorOfModelIDs)[ modelIndex ] : -1;
695}

Referenced by G4NeutronRadCaptureHP::BuildPhysicsTable(), G4RadioactiveDecay::DecayAnalog(), G4AblaInterface::G4AblaInterface(), G4BinaryCascade::G4BinaryCascade(), G4BinaryLightIonReaction::G4BinaryLightIonReaction(), G4CascadeInterface::G4CascadeInterface(), G4Cerenkov::G4Cerenkov(), G4ChargeExchange::G4ChargeExchange(), G4CompetitiveFission::G4CompetitiveFission(), G4CRCoalescence::G4CRCoalescence(), G4ElectroVDNuclearModel::G4ElectroVDNuclearModel(), G4EMDissociation::G4EMDissociation(), G4EMDissociation::G4EMDissociation(), G4eplusAnnihilation::G4eplusAnnihilation(), G4EvaporationChannel::G4EvaporationChannel(), G4FermiBreakUpVI::G4FermiBreakUpVI(), G4FissionLibrary::G4FissionLibrary(), G4ForwardXrayTR::G4ForwardXrayTR(), G4GEMChannel::G4GEMChannel(), G4GEMChannelVI::G4GEMChannelVI(), G4GeneratorPrecompoundInterface::G4GeneratorPrecompoundInterface(), G4HadronElastic::G4HadronElastic(), G4INCLXXInterface::G4INCLXXInterface(), G4LEHadronProtonElastic::G4LEHadronProtonElastic(), G4LENDModel::G4LENDModel(), G4LENDorBERTModel::G4LENDorBERTModel(), G4LEnp::G4LEnp(), G4LEpp::G4LEpp(), G4LFission::G4LFission(), G4LightIonQMDReaction::G4LightIonQMDReaction(), G4LivermorePolarizedComptonModel::G4LivermorePolarizedComptonModel(), G4LMsdGenerator::G4LMsdGenerator(), G4LowEGammaNuclearModel::G4LowEGammaNuclearModel(), G4LowEIonFragmentation::G4LowEIonFragmentation(), G4MuonVDNuclearModel::G4MuonVDNuclearModel(), G4NeutrinoElectronCcModel::G4NeutrinoElectronCcModel(), G4NeutrinoElectronNcModel::G4NeutrinoElectronNcModel(), G4NeutrinoNucleusModel::G4NeutrinoNucleusModel(), G4NeutronElectronElModel::G4NeutronElectronElModel(), G4NeutronHPCaptureFS::G4NeutronHPCaptureFS(), G4ParticleHP2AInelasticFS::G4ParticleHP2AInelasticFS(), G4ParticleHP2N2AInelasticFS::G4ParticleHP2N2AInelasticFS(), G4ParticleHP2NAInelasticFS::G4ParticleHP2NAInelasticFS(), G4ParticleHP2NDInelasticFS::G4ParticleHP2NDInelasticFS(), G4ParticleHP2NInelasticFS::G4ParticleHP2NInelasticFS(), G4ParticleHP2NPInelasticFS::G4ParticleHP2NPInelasticFS(), G4ParticleHP2PInelasticFS::G4ParticleHP2PInelasticFS(), G4ParticleHP3AInelasticFS::G4ParticleHP3AInelasticFS(), G4ParticleHP3NAInelasticFS::G4ParticleHP3NAInelasticFS(), G4ParticleHP3NInelasticFS::G4ParticleHP3NInelasticFS(), G4ParticleHP3NPInelasticFS::G4ParticleHP3NPInelasticFS(), G4ParticleHP4NInelasticFS::G4ParticleHP4NInelasticFS(), G4ParticleHPAInelasticFS::G4ParticleHPAInelasticFS(), G4ParticleHPD2AInelasticFS::G4ParticleHPD2AInelasticFS(), G4ParticleHPDAInelasticFS::G4ParticleHPDAInelasticFS(), G4ParticleHPDInelasticFS::G4ParticleHPDInelasticFS(), G4ParticleHPElasticFS::G4ParticleHPElasticFS(), G4ParticleHPFissionFS::G4ParticleHPFissionFS(), G4ParticleHPHe3InelasticFS::G4ParticleHPHe3InelasticFS(), G4ParticleHPN2AInelasticFS::G4ParticleHPN2AInelasticFS(), G4ParticleHPN2PInelasticFS::G4ParticleHPN2PInelasticFS(), G4ParticleHPN3AInelasticFS::G4ParticleHPN3AInelasticFS(), G4ParticleHPNAInelasticFS::G4ParticleHPNAInelasticFS(), G4ParticleHPND2AInelasticFS::G4ParticleHPND2AInelasticFS(), G4ParticleHPNDInelasticFS::G4ParticleHPNDInelasticFS(), G4ParticleHPNHe3InelasticFS::G4ParticleHPNHe3InelasticFS(), G4ParticleHPNInelasticFS::G4ParticleHPNInelasticFS(), G4ParticleHPNPAInelasticFS::G4ParticleHPNPAInelasticFS(), G4ParticleHPNPInelasticFS::G4ParticleHPNPInelasticFS(), G4ParticleHPNT2AInelasticFS::G4ParticleHPNT2AInelasticFS(), G4ParticleHPNTInelasticFS::G4ParticleHPNTInelasticFS(), G4ParticleHPNXInelasticFS::G4ParticleHPNXInelasticFS(), G4ParticleHPPAInelasticFS::G4ParticleHPPAInelasticFS(), G4ParticleHPPDInelasticFS::G4ParticleHPPDInelasticFS(), G4ParticleHPPInelasticFS::G4ParticleHPPInelasticFS(), G4ParticleHPPTInelasticFS::G4ParticleHPPTInelasticFS(), G4ParticleHPT2AInelasticFS::G4ParticleHPT2AInelasticFS(), G4ParticleHPTInelasticFS::G4ParticleHPTInelasticFS(), G4PhotonEvaporation::G4PhotonEvaporation(), G4PreCompoundEmission::G4PreCompoundEmission(), G4PreCompoundModel::G4PreCompoundModel(), G4QMDReaction::G4QMDReaction(), G4QuasiElasticChannel::G4QuasiElasticChannel(), G4Scintillation::G4Scintillation(), G4StatMF::G4StatMF(), G4SynchrotronRadiation::G4SynchrotronRadiation(), G4SynchrotronRadiationInMat::G4SynchrotronRadiationInMat(), G4TheoFSGenerator::G4TheoFSGenerator(), G4UnstableFragmentBreakUp::G4UnstableFragmentBreakUp(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4WilsonAblationModel::G4WilsonAblationModel(), G4WilsonAbrasionModel::G4WilsonAbrasionModel(), G4WilsonAbrasionModel::G4WilsonAbrasionModel(), G4NeutronFissionVI::InitialiseModel(), G4NeutronRadCapture::InitialiseModel(), G4HadronElasticProcess::PostStepDoIt(), G4HadronStoppingProcess::PreparePhysicsTable(), and G4Track::RemoveAuxiliaryTrackInformation().

◆ GetModelID() [2/2]

G4int G4PhysicsModelCatalog::GetModelID ( const G4String & modelName)
static

Definition at line 698 of file G4PhysicsModelCatalog.cc.

698 {
699 if(!isInitialized)
700 {
701 Initialize();
702 }
703 G4int modelID = -1;
704 for ( G4int idx = 0; idx < Entries(); ++idx ) {
705 if ( (*theVectorOfModelNames)[ idx ] == modelName ) {
706 modelID = (*theVectorOfModelIDs)[ idx ];
707 break;
708 }
709 }
710 return modelID;
711}

◆ GetModelIndex() [1/2]

G4int G4PhysicsModelCatalog::GetModelIndex ( const G4int modelID)
static

Definition at line 714 of file G4PhysicsModelCatalog.cc.

714 {
715 G4int modelIndex = -1;
716 if ( modelID >= GetMinAllowedModelIDValue() && modelID <= GetMaxAllowedModelIDValue() ) {
717 for ( G4int idx = 0; idx < Entries(); ++idx ) {
718 if ( (*theVectorOfModelIDs)[ idx ] == modelID ) {
719 modelIndex = idx;
720 break;
721 }
722 }
723 }
724 return modelIndex;
725}
static G4int GetMaxAllowedModelIDValue()
static G4int GetMinAllowedModelIDValue()

Referenced by G4Track::SetAuxiliaryTrackInformation().

◆ GetModelIndex() [2/2]

G4int G4PhysicsModelCatalog::GetModelIndex ( const G4String & modelName)
static

Definition at line 728 of file G4PhysicsModelCatalog.cc.

728 {
729 G4int modelIndex = -1;
730 for ( G4int idx = 0; idx < Entries(); ++idx ) {
731 if ( (*theVectorOfModelNames)[ idx ] == modelName ) {
732 modelIndex = idx;
733 break;
734 }
735 }
736 return modelIndex;
737}

◆ GetModelNameFromID()

const G4String G4PhysicsModelCatalog::GetModelNameFromID ( const G4int modelID)
static

Definition at line 672 of file G4PhysicsModelCatalog.cc.

672 {
673 G4String modelName = "Undefined";
674 if ( modelID >= GetMinAllowedModelIDValue() && modelID <= GetMaxAllowedModelIDValue() ) {
675 for ( int idx = 0; idx < Entries(); ++idx ) {
676 if ( (*theVectorOfModelIDs)[ idx ] == modelID ) {
677 modelName = (*theVectorOfModelNames)[ idx ];
678 break;
679 }
680 }
681 }
682 return modelName;
683}

Referenced by G4RichTrajectory::CreateAttValues().

◆ GetModelNameFromIndex()

const G4String G4PhysicsModelCatalog::GetModelNameFromIndex ( const G4int modelIndex)
static

Definition at line 686 of file G4PhysicsModelCatalog.cc.

686 {
687 return ( modelIndex >= 0 && modelIndex < Entries() )
688 ? (*theVectorOfModelNames)[ modelIndex ] : G4String("Undefined");
689}

◆ Initialize()

void G4PhysicsModelCatalog::Initialize ( )
static

Definition at line 41 of file G4PhysicsModelCatalog.cc.

41 {
42 if(isInitialized)
43 {
44 return;
45 }
46 if ( theVectorOfModelIDs == nullptr && theVectorOfModelNames == nullptr ) {
47 static std::vector< G4int > aVectorOfInts;
48 theVectorOfModelIDs = &aVectorOfInts;
49 static std::vector< G4String > aVectorOfStrings;
50 theVectorOfModelNames = &aVectorOfStrings;
51
52 // NOTE:
53 // The goal is that, starting from Geant4 version 11.0, all the three
54 // identifiers (modelID, index, name) remain the same regardless of the
55 // physics list, application, and version of Geant4.
56 // Therefore, after Geant4 11.0, you can only add an entry - e.g. when
57 // a new model is added, or when a pre-existing model not yet present
58 // in this catalogue is included - at the bottom of this method
59 // (rather than inserting it in the middle), and do NOT delete anything.
60 //
61 // For the modelID values, these are the considerations and choices made:
62 // - Values below 1000 are excluded because reserved to process and
63 // sub-process ID values.
64 // - Whenever resonable, modelID values should have free spaces between
65 // them, to allow for eventual, future variants - e.g. different
66 // tunings of the same model - to keep modelID values close to the
67 // original model.
68 // - modelID values are between 10'000 and 39'999, with the following
69 // subdivision in 3 categories (identified by the most significant
70 // digit):
71 // * Values between 10'000 and 19'999 are for EM models
72 // * Values between 20'000 and 29'999 are for HAD models
73 // * Values between 30'000 and 39'999 are for all the other models
74 // (i.e. included neither in EM models nor in HAD models).
75 // Note that larger values of modelID are neither more difficult to
76 // handle nor less computing performant with respect to smaller values
77 // (we remind that, for plotting, the index of the model, rather than
78 // its modelID, should be conveniently used, whereas for all the rest
79 // the modelID is recommended).
80
81 // =======================================================================
82 // ================= 1st EM MODELS : from 10'000 to 19'999 ===============
83 // =======================================================================
84
85 InsertModel( 10000, "model_EM" );
86
87 // e- production
88 InsertModel( 10010, "model_DeltaElectron" );
89 InsertModel( 10011, "model_DeltaEBelowCut" );
90 InsertModel( 10012, "model_PhotoElectron" );
91 InsertModel( 10013, "model_ComptonElectron" );
92 InsertModel( 10014, "model_TripletElectron" );
93
94 // gamma production
95 InsertModel( 10020, "model_Bremsstrahlung" );
96 InsertModel( 10021, "model_SplitBremsstrahlung" );
97 InsertModel( 10022, "model_ComptonGamma" );
98 InsertModel( 10023, "model_Annihilation" );
99 InsertModel( 10024, "model_TripletGamma" );
100 InsertModel( 10025, "model_GammaGammaEntanglement" );
101
102 // e+e- pair production
103 InsertModel( 10030, "model_EplusEminisPair" );
104
105 // atomic de-excitation
106 InsertModel( 10040, "model_Fluorescence" );
107 InsertModel( 10041, "model_gammaPIXE" );
108 InsertModel( 10050, "model_AugerElectron" );
109 InsertModel( 10051, "model_ePIXE" );
110
111 // recoil ions
112 InsertModel( 10060, "model_IonRecoil" );
113
114 // DNA models
115 InsertModel( 11000, "model_DNA" );
116 InsertModel( 11001, "model_Ritchie1994eSolvation" );
117 InsertModel( 11002, "model_Terrisol1990eSolvation" );
118 InsertModel( 11003, "model_Meesungnoen2002eSolvation" );
119 InsertModel( 11004, "model_Kreipl2009eSolvation" );
120 InsertModel( 11005, "model_MeesungnoenSolid2002eSolvation" );
121
122 // =======================================================================
123 // ============= 2nd HADRONIC MODELS : from 20'000 to 29'999 =============
124 // =======================================================================
125
126 // ----------------------------------------------------------
127 // --- Gamma- , Lepto- , Neutrino-nuclear : 20'000-20'999 ---
128 // ----------------------------------------------------------
129 // - 20'000 - 20'099 : Electromagnetic dissociation models
130 // - 20'100 - 20'199 : Gamma-nuclear models
131 // - 20'200 - 20-299 : Electron/positron-nuclear models
132 // - 20'300 - 20'399 : Muon-nuclear models
133 // - 20'400 - 20'499 : Tau-nuclear models
134 // - 20'500 - 20'999 : Neutrino models...
135 // ...
136
137 // --- EM dissociation models: 20'000 - 20'099 ---
138
139 // Class G4EMDissociation
140 InsertModel( 20000, "model_projectileEMDissociation" );
141 InsertModel( 20001, "model_targetEMDissociation" );
142
143 // --- Gamma-nuclear models: 20'100 - 20'199 ---
144
145 // Class G4LENDorBERTModel
146 InsertModel( 20100, "model_LENDorBERTModel" );
147
148 // Class G4LowEGammaNuclearModel
149 InsertModel( 20150, "model_GammaNPreco" );
150
151 // --- Charged-lepton - nuclear models: 20'200 - 20'499 ---
152
153 // Class G4ElectroVDNuclearModel
154 InsertModel( 20200, "model_G4ElectroVDNuclearModel" );
155
156 // Class G4MuonVDNuclearModel
157 InsertModel( 20300, "model_G4MuonVDNuclearModel" );
158
159 // --- Neutrino models: 20'500 - 20'999 ---
160
161 // Class G4NeutrinoElectronCcModel
162 InsertModel( 20510, "model_nu-e-inelastic" );
163
164 // Class G4NeutrinoNucleusModel
165 InsertModel( 20520, "model_neutrino-nucleus" );
166
167 // The following classes derives from G4NeutrinoNucleusModel
168 // Class G4ANuElNucleusCcModel
169 InsertModel( 20530, "model_ANuElNuclCcModel" );
170 // Class G4ANuElNucleusNcModel
171 InsertModel( 20540, "model_ANuElNuclNcModel" );
172 // Class G4ANuMuNucleusCcModel
173 InsertModel( 20550, "model_ANuMuNuclCcModel" );
174 // Class G4ANuMuNucleusNcModel
175 InsertModel( 20560, "model_ANuMuNuclNcModel" );
176 // Class G4NuElNucleusCcModel
177 InsertModel( 20570, "model_NuElNuclCcModel" );
178 // Class G4NuElNucleusNcModel
179 InsertModel( 20580, "model_NuElNuclNcModel" );
180 // Class G4NuMuNucleusCcModel
181 InsertModel( 20590, "model_NuMuNuclCcModel" );
182 // Class G4NuMuNucleusNcModel
183 InsertModel( 20600, "model_NuMuNuclNcModel" );
184
185 // ------------------------------------------------------------------------------------------
186 // --- Elastic, Charge-Exchange, Quasi-Elastic, specialized Diffraction : 21'000 - 21'999 ---
187 // ------------------------------------------------------------------------------------------
188 // - 21'000 - 21'199 : Elastic
189 // - 21'200 - 21'299 : Charge-Exchange
190 // - 21'300 - 21'499 : Quasi-Elastic
191 // - 21'500 - 21'999 : specialized Diffraction generators
192 // -----------------------------------------------------------
193
194 // --- Elastic models: 21'000 - 21'199 ---
195
196 // Class G4HadronElastic
197 InsertModel( 21000, "model_hElasticLHEP" );
198 // Class G4AntiNuclElastic
199 InsertModel( 21010, "model_AntiAElastic" );
200 // Class G4ChipsElasticModel
201 InsertModel( 21020, "model_hElasticCHIPS" );
202 // Class G4DiffuseElastic
203 InsertModel( 21030, "model_DiffuseElastic" );
204 // Class G4DiffuseElasticV2
205 InsertModel( 21040, "model_DiffuseElasticV2" );
206 // Class G4NuclNuclDiffuseElastic
207 InsertModel( 21050, "model_NNDiffuseElastic" );
208 // Class G4ElasticHadrNucleusHE
209 InsertModel( 21060, "model_hElasticGlauber" );
210 // Class G4hhElastic
211 InsertModel( 21070, "model_HadrHadrElastic" );
212 // Class G4LowEHadronElastic
213 InsertModel( 21080, "model_hLowEElastic" );
214 // Class G4LEHadronProtonElastic
215 InsertModel( 21090, "model_G4LEHadronProtonElastic" );
216 // Class G4LEnp
217 InsertModel( 21100, "model_G4LEnp" );
218 // Class G4LEpp
219 InsertModel( 21110, "model_G4LEpp" );
220 // Class G4NeutronElectronElModel
221 InsertModel( 21120, "model_n-e-elastic" );
222 // Class G4NeutrinoElectronNcModel
223 InsertModel( 21130, "model_nu-e-elastic" );
224
225 // --- Charge exchange : 21'200 - 21'299 ---
226
227 // Class: G4ChargeExchange
228 InsertModel( 21200, "model_ChargeExchange" );
229
230 // --- Quasi-Elastic : 21'300 - 21'499 ---
231
232 // Class: G4QuasiElasticChannel (which uses Chips's model G4QuasiElRatios)
233 InsertModel( 21300, "model_QuasiElastic" );
234
235 // --- Special diffraction generators : 21'500 - 21'999 ---
236
237 // Class: G4LMsdGenerator
238 InsertModel( 21500, "model_LMsdGenerator" );
239
240 // -----------------------------------------------------------------
241 // --- High energy-models (e.g. string models) : 22'000 - 22'999 ---
242 // -----------------------------------------------------------------
243 // - 22'000 - 22'099 : G4TheoFSGenerator
244 // - 22'100 - 22'199 : FTF
245 // - 22'200 - 22'299 : QGS
246 // - ...
247 // For gamma - nuclear : QGS string formation + QGS string fragmentation + Precompound
248 // For e-/e+/mu-/mu+ - nuclear : FTF string formation + Lund string fragmentation + Precompound
249 InsertModel( 22000, "model_TheoFSGenerator" );
250 // FTF string formation + Lund string fragmentation + Precompound
251 InsertModel( 22100, "model_FTFP" );
252 // FTF string formation + Lund string fragmentation + Binary Cascade
253 InsertModel( 22150, "model_FTFB" );
254 // FTF string formation + QGS string fragmentation + Precompound
255 InsertModel( 22175, "model_FTFQGSP" );
256 // QGS string formation + QGS string fragmentation + Precompound
257 InsertModel( 22200, "model_QGSP" );
258 // QGS string formation + QGS string fragmentation + Binary Cascade
259 InsertModel( 22250, "model_QGSB" );
260
261 // ----------------------------------------------------
262 // --- Intermediate energy models : 23'000 - 23'999 ---
263 // ----------------------------------------------------
264 // - 23'000 - 23'099 : BERT
265 // - 23'100 - 23'199 : BIC
266 // - 23'200 - 23'299 : INCL
267 // - 23'300 - 23'399 : QMD
268 // ...
269 // Class: G4CascadeInterface
270 InsertModel( 23000, "model_BertiniCascade" );
271
272 // The names are similar, but not identical, to those before Geant4 11.
273 // Class: G4BinaryCascade
274 InsertModel( 23100, "model_G4BinaryCascade" );
275 // Class: G4BinaryLightIonReaction
276 InsertModel( 23110, "model_G4BinaryLightIonReaction" );
277
278 // Class: G4INCLXXInterface
279 InsertModel( 23200, "model_INCLXXCascade" );
280
281 // Class: G4QMDReaction
282 InsertModel( 23300, "model_QMDModel" );
283
284 // --------------------------------------------------------------
285 // --- Pre-equilibrium/De-excitation models : 24'000 - 24'999 ---
286 // --------------------------------------------------------------
287 // - Pre-equilibrium : 24'000 - 24'099
288 // * 24'000 - 24'049 : precompound
289 // * 24'050 - 24'099 : internal BERT pre-equilibrium
290 // - de-excitation : 24'100 - 24'999
291 // * 24'100 - 24'149 : Evaporation
292 // * 24'150 - 24'199 : Photon evaporation
293 // * 24'200 - 24'299 : GEM evaporation
294 // * 24'300 - 24'349 : Fermi BreakUp
295 // * 24'350 - 24'399 : Multifragmentation
296 // * 24'400 - 24'449 : Ablation
297 // * 24'450 - 24'499 : Fission
298 // * 24'500 - 24'599 : ABLA
299 // * 24'600 - 24'699 : internal BERT de-excitation
300 // ...
301
302 // --- Pre-equilibrium: 24'000 - 24'099 ---
303
304 // Class: G4PreCompoundModel
305 InsertModel( 24000, "model_PRECO" );
306
307 // Class: G4LowEIonFragmentation
308 InsertModel( 24010, "model_LowEIonPreco" );
309
310 // Class: G4NonEquilibriumEvaporator (i.e. BERT pre-equilibrium)
311 InsertModel( 24050, "model_G4NonEquilibriumEvaporator" );
312
313 // --- De-excitation: 24'100 - 24'999 ---
314
315 // --- Evaporation: 24'100- 24'149 ---
316
317 // Class: G4EvaporationChannel
318 InsertModel( 24100, "model_G4EvaporationChannel" );
319
320 // Classes that use it: G4NeutronRadCapture and G4ExcitationHandler
321 InsertModel( 24110, "model_e-InternalConversion" );
322
323 // Class: G4UnstableFragmentBreakUp
324 InsertModel( 24120, "model_G4UnstableFragmentBreakUp" );
325
326 // --- Photon-Evaporation: 24'150 - 24'199 ---
327
328 // Class: G4PhotonEvaporation
329 InsertModel( 24150, "model_G4PhotonEvaporation" );
330
331 // Class: G4NeutronRadCapture
332 InsertModel( 24160, "model_nRadCapture" );
333
334 // --- GEM evaporation : 24'200 - 24'299 ---
335
336 // Class: G4GEMChannel
337 InsertModel( 24200, "model_G4GEMChannel" );
338
339 // Class: G4GEMChannelVI
340 InsertModel( 24210, "model_G4GEMChannelVI" );
341
342 // --- Fermi BreakUp : 24'300 - 24'349 ---
343
344 // Class: G4FermiBreakUpVI
345 InsertModel( 24300, "model_G4FermiBreakUpVI" );
346
347 // --- Multifragmentation : 24'350 - 24'399 ---
348
349 // Class: G4StatMF
350 InsertModel( 24350, "model_G4StatMF" );
351
352 // --- Ablation : 24'400 - 24'449 ---
353
354 // Class: G4WilsonAblationModel
355 InsertModel( 24400, "model_G4WilsonAblationModel" );
356
357 // --- Fission : 24'450 - 24'499 ---
358
359 // Class: G4CompetitiveFission
360 InsertModel( 24450, "model_G4CompetitiveFission" );
361
362 // --- ABLA : 24'500 - 24'599 ---
363
364 // Class: G4AblaInterface
365 InsertModel( 24500, "model_ABLA" );
366
367 // --- internal BERT de-excitation : 24'600 - 24'699 ---
368
369 // Class: G4EquilibriumEvaporator
370 InsertModel( 24600, "model_G4EquilibriumEvaporator" );
371
372 // --- Other types of de-excitation : 24'700 - 24'999 ---
373
374 // ...
375
376 // ------------------------------------------------
377 // --- Low-energy data-driven : 25'000 - 25'999 ---
378 // ------------------------------------------------
379 // - 25'000 - 25'199 : ParticleHP
380 // - 25'200 - 25'299 : LEND
381 // ...
382 // - 25'500 - 25'999 : RadioactiveDecay
383
384 // --- ParticleHP : 25'000 - 25'199 ---
385
386 // Classes: G4ParticleHPCapture , G4ParticleHPCaptureFS
387 InsertModel( 25000, "model_NeutronHPCapture" );
388
389 // Classes: G4ParticleHPElastic , G4ParticleHPElasticFS
390 InsertModel( 25010, "model_NeutronHPElastic" );
391
392 // Classes: G4ParticleHPFission , G4ParticleHPFissionFS , G4WendtFissionFragmentGenerator
393 InsertModel( 25020, "model_NeutronHPFission" );
394
395 // Inelastic: the following classes inherit from either G4ParticleHPInelasticBaseFS or
396 // G4ParticleHPInelasticCompFS, which in turn inherit from G4ParticleHPFinalState
397
398 // Class G4ParticleHPNInelasticFS
399 InsertModel( 25030, "model_G4ParticleHPNInelasticFS_F01" );
400 // Class model_G4ParticleHPNXInelasticFS
401 InsertModel( 25031, "model_G4ParticleHPNXInelasticFS_F02" );
402 // Class G4ParticleHP2NDInelasticFS
403 InsertModel( 25032, "model_G4ParticleHP2NDInelasticFS_F03" );
404 // Class G4ParticleHP2NInelasticFS
405 InsertModel( 25033, "model_G4ParticleHP2NInelasticFS_F04" );
406 // Class G4ParticleHP3NInelasticFS
407 InsertModel( 25034, "model_G4ParticleHP3NInelasticFS_F05" );
408 // Class G4ParticleHPNAInelasticFS
409 InsertModel( 25035, "model_G4ParticleHPNAInelasticFS_F06" );
410 // Class G4ParticleHPN3AInelasticFS
411 InsertModel( 25036, "model_G4ParticleHPN3AInelasticFS_F07" );
412 // Class G4ParticleHP2NAInelasticFS
413 InsertModel( 25037, "model_G4ParticleHP2NAInelasticFS_F08" );
414 // Class G4ParticleHP3NAInelasticFS
415 InsertModel( 25038, "model_G4ParticleHP3NAInelasticFS_F09" );
416 // Class G4ParticleHPNPInelasticFS
417 InsertModel( 25039, "model_G4ParticleHPNPInelasticFS_F10" );
418 // Class G4ParticleHPN2AInelasticFS
419 InsertModel( 25040, "model_G4ParticleHPN2AInelasticFS_F11" );
420 // Clas G4ParticleHP2N2AInelasticFS
421 InsertModel( 25041, "model_G4ParticleHP2N2AInelasticFS_F12" );
422 // Class G4ParticleHPNDInelasticFS
423 InsertModel( 25042, "model_G4ParticleHPNDInelasticFS_F13" );
424 // Class G4ParticleHPNTInelasticFS
425 InsertModel( 25043, "model_G4ParticleHPNTInelasticFS_F14" );
426 // Class G4ParticleHPNHe3InelasticFS
427 InsertModel( 25044, "model_G4ParticleHPNHe3InelasticFS_F15" );
428 // Class G4ParticleHPND2AInelasticFS
429 InsertModel( 25045, "model_G4ParticleHPND2AInelasticFS_F16" );
430 // Class G4ParticleHPNT2AInelasticFS
431 InsertModel( 25046, "model_G4ParticleHPNT2AInelasticFS_F17" );
432 // Class G4ParticleHP4NInelasticFS
433 InsertModel( 25047, "model_G4ParticleHP4NInelasticFS_F18" );
434 // Class G4ParticleHP2NPInelasticFS
435 InsertModel( 25048, "model_G4ParticleHP2NPInelasticFS_F19" );
436 // Class G4ParticleHP3NPInelasticFS
437 InsertModel( 25049, "model_G4ParticleHP3NPInelasticFS_F20" );
438 // Class G4ParticleHPN2PInelasticFS
439 InsertModel( 25050, "model_G4ParticleHPN2PInelasticFS_F21" );
440 // Class G4ParticleHPNPAInelasticFS
441 InsertModel( 25051, "model_G4ParticleHPNPAInelasticFS_F22" );
442 // Class G4ParticleHPPInelasticFS
443 InsertModel( 25052, "model_G4ParticleHPPInelasticFS_F23" );
444 // Class G4ParticleHPDInelasticFS
445 InsertModel( 25053, "model_G4ParticleHPDInelasticFS_F24" );
446 // Class G4ParticleHPTInelasticFS
447 InsertModel( 25054, "model_G4ParticleHPTInelasticFS_F25" );
448 // Class G4ParticleHPHe3InelasticFS
449 InsertModel( 25055, "model_G4ParticleHPHe3InelasticFS_F26" );
450 // Class G4ParticleHPAInelasticFS
451 InsertModel( 25056, "model_G4ParticleHPAInelasticFS_F27" );
452 // Class G4ParticleHP2AInelasticFS
453 InsertModel( 25057, "model_G4ParticleHP2AInelasticFS_F28" );
454 // Class G4ParticleHP3AInelasticFS
455 InsertModel( 25058, "model_G4ParticleHP3AInelasticFS_F29" );
456 // Class G4ParticleHP2PInelasticFS
457 InsertModel( 25059, "model_G4ParticleHP2PInelasticFS_F30" );
458 // Class G4ParticleHPPAInelasticFS
459 InsertModel( 25060, "model_G4ParticleHPPAInelasticFS_F31" );
460 // Class G4ParticleHPD2AInelasticFS
461 InsertModel( 25061, "model_G4ParticleHPD2AInelasticFS_F32" );
462 // Class G4ParticleHPT2AInelasticFS
463 InsertModel( 25062, "model_G4ParticleHPT2AInelasticFS_F33" );
464 // Class G4ParticleHPPDInelasticFS
465 InsertModel( 25063, "model_G4ParticleHPPDInelasticFS_F34" );
466 // Class G4ParticleHPPTInelasticFS
467 InsertModel( 25064, "model_G4ParticleHPPTInelasticFS_F35" );
468 // Class G4ParticleHPDAInelasticFS
469 InsertModel( 25065, "model_G4ParticleHPDAInelasticFS_F36" );
470
471 // --- LEND : 25'200 - 25'299 ---
472
473 // Class: G4LENDModel
474 InsertModel( 25200, "model_LENDModel" );
475
476 // The following classes inherit from G4LENDModel
477
478 // Class: G4LENDCapture
479 InsertModel( 25210, "model_LENDCapture" );
480 // Class: G4LENDElastic
481 InsertModel( 25220, "model_LENDElastic" );
482 // Class: G4LENDFission
483 InsertModel( 25230, "model_LENDFission" );
484 // Class: G4LENDInelastic
485 InsertModel( 25240, "model_LENDInelastic" );
486 // Class: G4LENDCombinedModel
487 InsertModel( 25250, "model_LENDCombinedModel" );
488 // Class: G4LENDGammaModel
489 InsertModel( 25260, "model_LENDGammaModel" );
490
491 // --- Radioactive Decay : 25'500 - 25'999 ---
492
493 // 25'510 + 10*G4RadioactiveDecayMode
494 InsertModel( 25510, "model_RDM_IT" );
495 InsertModel( 25520, "model_RDM_BetaMinus" );
496 InsertModel( 25530, "model_RDM_BetaPlus" );
497 InsertModel( 25540, "model_RDM_KshellEC" );
498 InsertModel( 25550, "model_RDM_LshellEC" );
499 InsertModel( 25560, "model_RDM_MshellEC" );
500 InsertModel( 25570, "model_RDM_NshellEC" );
501 InsertModel( 25580, "model_RDM_Alpha" );
502 InsertModel( 25590, "model_RDM_Proton" );
503 InsertModel( 25600, "model_RDM_Neutron" );
504 InsertModel( 25610, "model_RDM_SpFission" );
505 InsertModel( 25620, "model_RDM_BDProton" );
506 InsertModel( 25630, "model_RDM_BDNeutron" );
507 InsertModel( 25640, "model_RDM_Beta2Minus" );
508 InsertModel( 25650, "model_RDM_Beta2Plus" );
509 InsertModel( 25660, "model_RDM_Proton2" );
510 InsertModel( 25670, "model_RDM_Neutron2" );
511 InsertModel( 25680, "model_RDM_Triton" );
512
513 InsertModel( 25810, "model_RDM_AtomicRelaxation" );
514
515 // -------------------------------------------------------------------
516 // --- Others HAD (everything not include above) : 26'000 - 26'999 ---
517 // -------------------------------------------------------------------
518 // - 26'000 - 26'099 : Stopping
519 // - 26'100 - 26'199 : Fission
520 // - 26'200 - 26'299 : Abration
521 // - 26'300 - 26'399 : Coalescence
522 // ...
523
524 // --- Stopping : 26'000 - 26'099 ---
525
526 // Below are classes that derives from G4HadronStoppingProcess .
527 // The names are the same as before Geant4 11, except for the "model_" prefix.
528 // Classes that use it: G4HadronStoppingProcess .
529
530 // Class: G4HadronicAbsorptionBertini
531 InsertModel( 26000, "model_hBertiniCaptureAtRest_EMCascade" );
532 InsertModel( 26001, "model_hBertiniCaptureAtRest_NuclearCapture" );
533 InsertModel( 26002, "model_hBertiniCaptureAtRest_DIO" );
534 // Class: G4HadronicAbsorptionFritiof
535 InsertModel( 26010, "model_hFritiofCaptureAtRest_EMCascade" );
536 InsertModel( 26011, "model_hFritiofCaptureAtRest_NuclearCapture" );
537 InsertModel( 26012, "model_hFritiofCaptureAtRest_DIO" );
538 // Class: G4HadronicAbsorptionFritiofWithBinaryCascade
539 InsertModel( 26020, "model_hFritiofWithBinaryCascadeCaptureAtRest_EMCascade" );
540 InsertModel( 26021, "model_hFritiofWithBinaryCascadeCaptureAtRest_NuclearCapture" );
541 InsertModel( 26022, "model_hFritiofWithBinaryCascadeCaptureAtRest_DIO" );
542 // Class: G4MuonMinusCapture
543 InsertModel( 26030, "model_muMinusCaptureAtRest_EMCascade" );
544 InsertModel( 26031, "model_muMinusCaptureAtRest_NuclearCapture" );
545 InsertModel( 26032, "model_muMinusCaptureAtRest_DIO" );
546
547 // --- Fission : 26'100 - 26'199 ---
548
549 // Class G4LFission
550 InsertModel( 26100, "model_G4LFission" );
551
552 // LLNL fission (related classes: G4FissionLibrary, G4LLNLFission, G4FissLib, G4fissionEvent)
553 InsertModel( 26110, "model_G4LLNLFission" );
554
555 // --- Abration : 26'200 - 26'299 ---
556
557 // Class G4WilsonAbrasionModel
558 InsertModel( 26200, "model_G4WilsonAbrasion" );
559
560 // --- Coalescence : 26'300 - 26'399 ---
561
562 // Class G4CRCoalescence
563 InsertModel( 26300, "model_G4CRCoalescence" );
564
565 // ==========================================================================
566 // === 3rd OTHER (i.e. non-EM and non-HAD) MODELS : from 30'000 to 39'999 ===
567 // ==========================================================================
568
569 // -------------------------------
570 // --- Biasing : 30'000-30'999 ---
571 // -------------------------------
572
573 // The name is the same as before Geant4 11, except for the "model_" prefix.
574 // Classes that use it: G4BOptrForceCollision
575 InsertModel( 30010, "model_GenBiasForceCollision" );
576
577 // ----------------------------------
578 // --- Channeling : 31'000-31'999 ---
579 // ----------------------------------
580
581 // The name is the same as before Geant4 11, except for the "model_" prefix.
582 // Classes that use it: G4Channeling , G4ChannelingOptrChangeCrossSection
583 InsertModel( 31010, "model_channeling" );
584
585 // --- Others ... ---
586
587 // ======================================================================
588 // ================== 4th MODELS ADDED AFTER Geant4 11.0 ================
589 // ======================================================================
590 // PLEASE ADD MODELS ONLY BELOW HERE, WITH PROPER modelID .
591 // IF YOU ARE NOT SURE, PLEASE CONTACT ONE OF THE COORDINATORS OF THE
592 // GEANT4 PHYSICS WORKING GROUPS.
593
594 // Class: G4HadronicAbsorptionINCLXX
595 InsertModel( 26040, "model_hINCLXXCaptureAtRest_EMCascade" );
596 InsertModel( 26041, "model_hINCLXXCaptureAtRest_NuclearCapture" );
597 InsertModel( 26042, "model_hINCLXXCaptureAtRest_DIO" );
598
599 // Class: G4LightIonQMDReaction
600 InsertModel( 23310, "model_LightIonQMDModel" );
601
602 // ...
603
604 SanityCheck();
605 isInitialized = true;
606
607 // The following call is commented out because it should be protected by
608 // the verbosity level, but this would imply a dependency of the global
609 // category to other categories which is not allowed.
610 // Anyhow, the call G4PhysicsModelCatalog::PrintAllInformation()
611 // can be easily placed elsewhere (in either user code, or even in other
612 // Geant4 classes).
613 //PrintAllInformation();
614 }
615}

Referenced by G4VUserPhysicsList::Construct(), and GetModelID().

◆ operator=()

G4PhysicsModelCatalog & G4PhysicsModelCatalog::operator= ( const G4PhysicsModelCatalog & )
delete

◆ PrintAllInformation()

void G4PhysicsModelCatalog::PrintAllInformation ( )
static

Definition at line 746 of file G4PhysicsModelCatalog.cc.

746 {
747 G4cout << G4endl
748 << " ==================================================== " << G4endl
749 << " === G4PhysicsModelCatalog::PrintAllInformation() === " << G4endl
750 << " ==================================================== " << G4endl
751 << " SIZE (i.e. number of models in the catalog)=" << Entries() << G4endl;
752 for ( int idx = 0; idx < Entries(); ++idx ) {
753 G4int modelID = (*theVectorOfModelIDs)[ idx ];
754 G4String modelName = (*theVectorOfModelNames)[ idx ];
755 G4cout << "\t index=" << idx << "\t modelName=" << modelName
756 << "\t modelID=" << modelID << G4endl;
757 }
758 G4cout << " ==================================================== " << G4endl
759 << " ==================================================== " << G4endl
760 << " ==================================================== " << G4endl
761 << G4endl;
762}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout

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