Changeset 921 for trunk/source/physics_lists
- Timestamp:
- Feb 16, 2009, 10:14:30 AM (16 years ago)
- Location:
- trunk/source/physics_lists
- Files:
-
- 29 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/physics_lists/History
r850 r921 1 $Id: History,v 1. 65 2008/08/05 10:25:00vnivanch Exp $1 $Id: History,v 1.74 2008/12/01 17:04:13 vnivanch Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 15 15 * Reverse chronological order (last date on top), please * 16 16 ---------------------------------------------------------- 17 18 01-12-2008, V.Ivanchenko phys-lists-V09-01-19 19 G4HadronElasticPhysics - fixed adding optional Barashenkov Xsection 20 QBBC - added QBBBG option 21 22 21-11-2008, V.Ivanchenko phys-lists-V09-01-18 23 - Added sigma_c+, sigma_c++ in the list of stable hadrons 24 - added interfaces to G4PhysicsListFactory - ALICE requirement 25 26 20-11-2008, V.Ivanchenko phys-lists-V09-01-17 27 - Added charge exchange process to QBBC Physics Lists 28 29 17-11-2008, V.Ivanchenko phys-lists-V09-01-16 30 - Added names to string models builders 31 32 14-11-2008, V.Ivanchenko phys-lists-V09-01-15 33 G4EmStandardPhysics_option1 - disable ApplyCuts option 34 G4EmStandardPhysics_option3 - linLossLimit set to be default (0.01) 35 G4PhysicsListFactory - added QBBCG 36 37 15-10-2008, V.Ivanchenko phys-lists-V09-01-14 38 In all EM builders - set inactive for AlongStep for bremsstrahlung and pair 39 production porcesses for minor CPU improvenment 40 41 15-10-2008, V.Ivanchenko phys-lists-V09-01-13 42 In all EM builders: added hadron bemsstrahlung and e+e- pair production 43 and e-msc for e+-; 44 G4EmStandardPhysics_option2 - enable "ApplyCuts", disable "SubCutoff" 45 G4EmStandardPhysics_option3 - added G4LowEnergyRayleigh, set 120 bins 46 for tables (60 is the default), StepFunction per particle type 47 48 24-09-2008, V.Ivanchenko phys-lists-V09-01-12 49 - QBBC temporary variant which is equivalent QGSP_BERT without LHEP 50 for protons, neutrons and pions 51 52 17-09-2008, V.Ivanchenko phys-lists-V09-01-11 53 - G4NeutronTrackingCut - added Set methods to define time and energy 54 limits directly 55 - G4HadronInelasticQBBC, QBBC - use FTF with Binary Casacde, improved cout 17 56 18 57 04-08-2008, V.Ivanchenko phys-lists-V09-01-10 -
trunk/source/physics_lists/builders/GNUmakefile
r850 r921 1 # $Id: GNUmakefile,v 1. 4 2008/05/30 11:01:37vnivanch Exp $1 # $Id: GNUmakefile,v 1.5 2008/10/15 18:24:11 vnivanch Exp $ 2 2 # --------------------------------------------------------------------------- 3 3 # GNUmakefile for physics_lists/builders library. Gunter Folger 25-Oct-2006. … … 39 39 -I$(G4BASE)/processes/electromagnetic/utils/include \ 40 40 -I$(G4BASE)/processes/electromagnetic/xrays/include \ 41 -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ 41 42 -I$(G4BASE)/processes/hadronic/cross_sections/include \ 42 43 -I$(G4BASE)/processes/hadronic/stopping/include \ -
trunk/source/physics_lists/builders/include/G4NeutronTrackingCut.hh
r850 r921 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4NeutronTrackingCut.hh,v 1. 1 2006/11/20 17:56:08 gunterExp $27 // GEANT4 tag $Name: HEAD$26 // $Id: G4NeutronTrackingCut.hh,v 1.2 2008/09/17 18:19:15 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-cand-01 $ 28 28 // 29 29 //--------------------------------------------------------------------------- … … 51 51 virtual ~G4NeutronTrackingCut(); 52 52 53 public:54 53 // This method will be invoked in the Construct() method. 55 54 // each particle type will be instantiated … … 61 60 virtual void ConstructProcess(); 62 61 62 inline void SetTimeLimit(G4double); 63 inline void SetKineticEnergyLimit(G4double); 64 63 65 private: 66 64 67 G4NeutronKiller* pNeutronKiller; 68 69 G4double timeLimit; 70 G4double kineticEnergyLimit; 71 65 72 G4int verbose; 66 73 G4bool wasActivated; 67 74 }; 75 76 inline void G4NeutronTrackingCut::SetTimeLimit(G4double val) 77 { 78 timeLimit = val; 79 } 80 81 inline void G4NeutronTrackingCut::SetKineticEnergyLimit(G4double val) 82 { 83 kineticEnergyLimit = val; 84 } 68 85 69 86 #endif -
trunk/source/physics_lists/builders/src/G4EmStandardPhysics.cc
r850 r921 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4EmStandardPhysics.cc,v 1.1 3 2008/04/22 18:28:37vnivanch Exp $27 // GEANT4 tag $Name: HEAD$26 // $Id: G4EmStandardPhysics.cc,v 1.16 2008/11/21 16:50:30 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-cand-01 $ 28 28 // 29 29 //--------------------------------------------------------------------------- … … 56 56 #include "G4MultipleScattering.hh" 57 57 #include "G4hMultipleScattering.hh" 58 #include "G4eMultipleScattering.hh" 58 59 59 60 #include "G4eIonisation.hh" … … 64 65 #include "G4MuBremsstrahlung.hh" 65 66 #include "G4MuPairProduction.hh" 67 #include "G4hBremsstrahlung.hh" 68 #include "G4hPairProduction.hh" 66 69 67 70 #include "G4hIonisation.hh" … … 152 155 } else if (particleName == "e-") { 153 156 154 pmanager->AddProcess(new G4 MultipleScattering,-1, 1, 1);157 pmanager->AddProcess(new G4eMultipleScattering,-1, 1, 1); 155 158 pmanager->AddProcess(new G4eIonisation, -1, 2, 2); 156 pmanager->AddProcess(new G4eBremsstrahlung(), -1, 159 pmanager->AddProcess(new G4eBremsstrahlung(), -1,-3, 3); 157 160 158 161 } else if (particleName == "e+") { 159 162 160 pmanager->AddProcess(new G4 MultipleScattering,-1, 1, 1);163 pmanager->AddProcess(new G4eMultipleScattering,-1, 1, 1); 161 164 pmanager->AddProcess(new G4eIonisation, -1, 2, 2); 162 pmanager->AddProcess(new G4eBremsstrahlung, -1, 165 pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); 163 166 pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); 164 167 … … 168 171 pmanager->AddProcess(new G4hMultipleScattering,-1, 1, 1); 169 172 pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); 170 pmanager->AddProcess(new G4MuBremsstrahlung, -1, 171 pmanager->AddProcess(new G4MuPairProduction, -1, 173 pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3); 174 pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4); 172 175 173 176 } else if (particleName == "alpha" || … … 177 180 pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); 178 181 pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); 182 183 } else if (particleName == "pi+" || 184 particleName == "pi-" || 185 particleName == "proton" ) { 186 187 pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); 188 pmanager->AddProcess(new G4hIonisation, -1, 2, 2); 189 pmanager->AddProcess(new G4hBremsstrahlung, -1,-3, 3); 190 pmanager->AddProcess(new G4hPairProduction, -1,-4, 4); 179 191 180 192 } else if (particleName == "B+" || … … 187 199 particleName == "anti_omega-" || 188 200 particleName == "anti_proton" || 201 particleName == "anti_sigma_c+" || 202 particleName == "anti_sigma_c++" || 189 203 particleName == "anti_sigma+" || 190 204 particleName == "anti_sigma-" || … … 192 206 particleName == "anti_xi-" || 193 207 particleName == "deuteron" || 194 208 particleName == "kaon+" || 195 209 particleName == "kaon-" || 196 210 particleName == "lambda_c+" || 197 211 particleName == "omega-" || 198 particleName == "pi+" || 199 particleName == "pi-" || 200 particleName == "proton" || 212 particleName == "sigma_c+" || 213 particleName == "sigma_c++" || 201 214 particleName == "sigma+" || 202 215 particleName == "sigma-" || -
trunk/source/physics_lists/builders/src/G4EmStandardPhysics_option1.cc
r850 r921 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4EmStandardPhysics_option1.cc,v 1. 7 2008/04/22 18:28:38vnivanch Exp $27 // GEANT4 tag $Name: HEAD$26 // $Id: G4EmStandardPhysics_option1.cc,v 1.11 2008/11/21 16:50:30 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-cand-01 $ 28 28 // 29 29 //--------------------------------------------------------------------------- … … 56 56 #include "G4PhotoElectricEffect.hh" 57 57 58 #include "G4eMultipleScattering.hh" 58 59 #include "G4hMultipleScattering.hh" 59 60 #include "G4MultipleScattering.hh" … … 67 68 #include "G4MuBremsstrahlung.hh" 68 69 #include "G4MuPairProduction.hh" 70 #include "G4hBremsstrahlung.hh" 71 #include "G4hPairProduction.hh" 69 72 70 73 #include "G4hIonisation.hh" … … 158 161 G4eIonisation* eioni = new G4eIonisation(); 159 162 eioni->SetStepFunction(0.8, 1.0*mm); 160 G4 MultipleScattering* msc = new G4MultipleScattering;163 G4eMultipleScattering* msc = new G4eMultipleScattering; 161 164 msc->SetStepLimitType(fMinimal); 162 165 pmanager->AddProcess(msc, -1, 1, 1); 163 166 pmanager->AddProcess(eioni, -1, 2, 2); 164 pmanager->AddProcess(new G4eBremsstrahlung, -1, 167 pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); 165 168 166 169 } else if (particleName == "e+") { … … 168 171 G4eIonisation* eioni = new G4eIonisation(); 169 172 eioni->SetStepFunction(0.8, 1.0*mm); 170 G4 MultipleScattering* msc = new G4MultipleScattering;173 G4eMultipleScattering* msc = new G4eMultipleScattering; 171 174 msc->SetStepLimitType(fMinimal); 172 175 pmanager->AddProcess(msc, -1, 1, 1); 173 176 pmanager->AddProcess(eioni, -1, 2, 2); 174 pmanager->AddProcess(new G4eBremsstrahlung, -1, 177 pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); 175 178 pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); 176 179 … … 180 183 pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); 181 184 pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); 182 pmanager->AddProcess(new G4MuBremsstrahlung, -1, 183 pmanager->AddProcess(new G4MuPairProduction, -1, 185 pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3); 186 pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4); 184 187 185 188 } else if (particleName == "alpha" || … … 189 192 pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); 190 193 pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); 194 195 } else if (particleName == "pi+" || 196 particleName == "pi-" || 197 particleName == "proton" ) { 198 199 pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); 200 pmanager->AddProcess(new G4hIonisation, -1, 2, 2); 201 pmanager->AddProcess(new G4hBremsstrahlung, -1,-3, 3); 202 pmanager->AddProcess(new G4hPairProduction, -1,-4, 4); 191 203 192 204 } else if (particleName == "B+" || … … 199 211 particleName == "anti_omega-" || 200 212 particleName == "anti_proton" || 213 particleName == "anti_sigma_c+" || 214 particleName == "anti_sigma_c++" || 201 215 particleName == "anti_sigma+" || 202 216 particleName == "anti_sigma-" || … … 204 218 particleName == "anti_xi-" || 205 219 particleName == "deuteron" || 206 220 particleName == "kaon+" || 207 221 particleName == "kaon-" || 208 222 particleName == "lambda_c+" || 209 223 particleName == "omega-" || 210 particleName == "pi+" || 211 particleName == "pi-" || 212 particleName == "proton" || 224 particleName == "sigma_c+" || 225 particleName == "sigma_c++" || 213 226 particleName == "sigma+" || 214 227 particleName == "sigma-" || … … 225 238 G4EmProcessOptions opt; 226 239 opt.SetVerbose(verbose); 240 //opt.SetApplyCuts(true); 227 241 } 228 242 -
trunk/source/physics_lists/builders/src/G4EmStandardPhysics_option2.cc
r850 r921 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4EmStandardPhysics_option2.cc,v 1.1 1 2008/08/05 10:24:44vnivanch Exp $27 // GEANT4 tag $Name: HEAD$26 // $Id: G4EmStandardPhysics_option2.cc,v 1.15 2008/11/21 17:59:23 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-cand-01 $ 28 28 // 29 29 //--------------------------------------------------------------------------- … … 161 161 } else if (particleName == "e-") { 162 162 163 pmanager->AddProcess(new G4 MuMultipleScattering, -1, 1, 1);163 pmanager->AddProcess(new G4eMultipleScattering, -1, 1, 1); 164 164 pmanager->AddProcess(new G4eIonisation, -1, 2, 2); 165 165 pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); 166 pmanager->AddDiscreteProcess(new G4CoulombScattering());167 166 168 167 } else if (particleName == "e+") { 169 168 170 pmanager->AddProcess(new G4 MuMultipleScattering, -1, 1, 1);169 pmanager->AddProcess(new G4eMultipleScattering, -1, 1, 1); 171 170 pmanager->AddProcess(new G4eIonisation, -1, 2, 2); 172 171 pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); 173 172 pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); 174 pmanager->AddDiscreteProcess(new G4CoulombScattering());175 173 176 174 } else if (particleName == "mu+" || 177 175 particleName == "mu-" ) { 178 176 179 pmanager->AddProcess(new G4MuMultipleScattering, 177 pmanager->AddProcess(new G4MuMultipleScattering,-1, 1, 1); 180 178 pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); 181 179 pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3); … … 194 192 particleName == "proton" ) { 195 193 196 pmanager->AddProcess(new G4MuMultipleScattering, 194 pmanager->AddProcess(new G4MuMultipleScattering,-1, 1, 1); 197 195 pmanager->AddProcess(new G4hIonisation, -1, 2, 2); 198 196 pmanager->AddProcess(new G4hBremsstrahlung, -1,-3, 3); … … 208 206 particleName == "anti_omega-" || 209 207 particleName == "anti_proton" || 208 particleName == "anti_sigma_c+" || 209 particleName == "anti_sigma_c++" || 210 210 particleName == "anti_sigma+" || 211 211 particleName == "anti_sigma-" || … … 217 217 particleName == "lambda_c+" || 218 218 particleName == "omega-" || 219 particleName == "sigma_c+" || 220 particleName == "sigma_c++" || 219 221 particleName == "sigma+" || 220 222 particleName == "sigma-" || … … 238 240 // Physics tables 239 241 // 240 opt.SetMinEnergy(100*eV);241 opt.SetMaxEnergy(100*TeV);242 opt.SetDEDXBinning(120);243 opt.SetLambdaBinning(120);244 opt.SetSplineFlag(true);242 //opt.SetMinEnergy(100*eV); 243 //opt.SetMaxEnergy(100*TeV); 244 //opt.SetDEDXBinning(84); 245 //opt.SetLambdaBinning(84); 246 //opt.SetSplineFlag(true); 245 247 opt.SetPolarAngleLimit(0.2); 246 248 247 249 // Energy loss 248 250 // 249 opt.SetLinearLossLimit(0.01);251 //opt.SetLinearLossLimit(0.01); 250 252 251 253 // Ionization -
trunk/source/physics_lists/builders/src/G4FTFBinaryNeutronBuilder.cc
r825 r921 33 33 { 34 34 theMin = 4*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("FTFB"); 36 36 37 37 theStringModel = new G4FTFModel; -
trunk/source/physics_lists/builders/src/G4FTFBinaryPiKBuilder.cc
r825 r921 33 33 { 34 34 theMin = 4*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("FTFB"); 36 36 37 37 theStringModel = new G4FTFModel; -
trunk/source/physics_lists/builders/src/G4FTFBinaryProtonBuilder.cc
r825 r921 33 33 { 34 34 theMin = 4*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("FTFB"); 36 36 37 37 theStringModel = new G4FTFModel; -
trunk/source/physics_lists/builders/src/G4FTFPNeutronBuilder.cc
r825 r921 33 33 { 34 34 theMin = 4*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("FTFP"); 36 36 37 37 theStringModel = new G4FTFModel; -
trunk/source/physics_lists/builders/src/G4FTFPPiKBuilder.cc
r825 r921 33 33 { 34 34 theMin = 4*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("FTFP"); 36 36 37 37 theStringModel = new G4FTFModel; -
trunk/source/physics_lists/builders/src/G4FTFPProtonBuilder.cc
r825 r921 33 33 { 34 34 theMin = 4*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("FTFP"); 36 36 37 37 theStringModel = new G4FTFModel; -
trunk/source/physics_lists/builders/src/G4HadronElasticPhysics.cc
r850 r921 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HadronElasticPhysics.cc,v 1. 8 2008/05/19 10:21:34vnivanch Exp $27 // GEANT4 tag $Name: HEAD$26 // $Id: G4HadronElasticPhysics.cc,v 1.9 2008/12/01 16:57:22 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-cand-01 $ 28 28 // 29 29 //--------------------------------------------------------------------------- … … 64 64 #include "G4VQCrossSection.hh" 65 65 #include "G4UElasticCrossSection.hh" 66 #include "G4BGGNucleonElasticXS.hh" 67 #include "G4BGGPionElasticXS.hh" 66 68 67 69 G4HadronElasticPhysics::G4HadronElasticPhysics( … … 123 125 { 124 126 G4ParticleDefinition* particle = theParticleIterator->value(); 127 G4ProcessManager* pmanager = particle->GetProcessManager(); 125 128 G4String pname = particle->GetParticleName(); 126 129 if(pname == "anti_lambda" || … … 138 141 pname == "lambda" || 139 142 pname == "omega-" || 140 pname == "pi-" ||141 pname == "pi+" ||142 pname == "proton" ||143 143 pname == "sigma-" || 144 144 pname == "sigma+" || … … 148 148 pname == "triton") { 149 149 150 G4ProcessManager* pmanager = particle->GetProcessManager();151 150 if(mname == "elastic") { 152 151 G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic"); … … 159 158 hel->RegisterMe(model); 160 159 pmanager->AddDiscreteProcess(hel); 160 if(verbose > 1) 161 G4cout << "### HadronElasticPhysics added for " 162 << particle->GetParticleName() << G4endl; 163 164 // proton case 165 } else if(pname == "proton") { 166 if(mname == "elastic") { 167 G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic"); 168 h->SetQElasticCrossSection(man); 169 hel = h; 170 if(glFlag) hel->AddDataSet(new G4BGGNucleonElasticXS(particle)); 171 } else { 172 hel = new G4HadronElasticProcess("hElastic"); 173 } 174 hel->RegisterMe(model); 175 pmanager->AddDiscreteProcess(hel); 176 if(verbose > 1) 177 G4cout << "### HadronElasticPhysics added for " 178 << particle->GetParticleName() << G4endl; 161 179 162 180 // neutron case 163 181 } else if(pname == "neutron") { 164 182 165 G4ProcessManager* pmanager = particle->GetProcessManager();166 183 if(mname == "elastic") { 167 184 G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic"); … … 172 189 h->SetQElasticCrossSection(nhe->GetCS()); 173 190 hel = h; 174 if(glFlag) hel->AddDataSet(new G4 UElasticCrossSection(particle));191 if(glFlag) hel->AddDataSet(new G4BGGNucleonElasticXS(particle)); 175 192 } else { 176 193 hel = new G4HadronElasticProcess("hElastic"); … … 191 208 G4cout << "### HadronElasticPhysics added for " 192 209 << particle->GetParticleName() << G4endl; 210 211 // pion case 212 } else if(pname == "pi+" || pname == "pi-") { 213 if(mname == "elastic") { 214 G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic"); 215 h->SetQElasticCrossSection(man); 216 hel = h; 217 if(glFlag) hel->AddDataSet(new G4BGGPionElasticXS(particle)); 218 } else { 219 hel = new G4HadronElasticProcess("hElastic"); 220 } 221 hel->RegisterMe(model); 222 pmanager->AddDiscreteProcess(hel); 223 224 if(verbose > 1) 225 G4cout << "### HadronElasticPhysics added for " 226 << particle->GetParticleName() << G4endl; 193 227 } 194 228 } -
trunk/source/physics_lists/builders/src/G4NeutronTrackingCut.cc
r850 r921 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4NeutronTrackingCut.cc,v 1. 4 2006/11/24 16:30:13 gunterExp $27 // GEANT4 tag $Name: HEAD$26 // $Id: G4NeutronTrackingCut.cc,v 1.5 2008/09/17 18:19:15 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-cand-01 $ 28 28 // 29 29 //--------------------------------------------------------------------------- … … 47 47 G4NeutronTrackingCut::G4NeutronTrackingCut(const G4String& name, G4int ver) 48 48 : G4VPhysicsConstructor(name), verbose(ver), wasActivated(false) 49 {} 49 { 50 timeLimit = 10.*microsecond; 51 kineticEnergyLimit = 0.0; 52 } 50 53 51 54 G4NeutronTrackingCut::~G4NeutronTrackingCut() … … 53 56 if(wasActivated) 54 57 { 55 58 delete pNeutronKiller; 56 59 } 57 60 } … … 59 62 void G4NeutronTrackingCut::ConstructParticle() 60 63 { 61 62 // G4cout << "G4NeutronTrackingCut::ConstructParticle" << G4endl;63 64 64 G4Neutron::NeutronDefinition(); 65 65 } … … 67 67 void G4NeutronTrackingCut::ConstructProcess() 68 68 { 69 G4double timeLimit =10*microsecond;70 // G4double kineticEnergylimit =1*keV;71 69 if(wasActivated) return; 72 70 wasActivated = true; 73 71 74 // Add Decay Process 72 // Add Process 73 75 74 pNeutronKiller = new G4NeutronKiller(); 76 75 G4ParticleDefinition * particle = G4Neutron::Neutron(); 77 76 G4ProcessManager * pmanager = particle->GetProcessManager(); 78 // if(verbose > 1) 79 G4cout << "### Adding Neutron tracking cut for " << particle->GetParticleName() << G4endl; 80 G4cout << "### cut value is " << timeLimit/microsecond << " microseconds" << G4endl; 81 pmanager -> AddDiscreteProcess(pNeutronKiller); 82 // pNeutronKiller->SetKinEnergyLimit(kineticEnergylimit); 83 pNeutronKiller->SetTimeLimit(timeLimit); 77 78 if(verbose > 0) { 79 G4cout << "### Adding tracking cuts for " << particle->GetParticleName() 80 << " TimeCut(ns)= " << timeLimit/ns 81 << " KinEnergyCut(MeV)= " << kineticEnergyLimit/MeV 82 << G4endl; 83 } 84 pmanager -> AddDiscreteProcess(pNeutronKiller); 85 pNeutronKiller->SetKinEnergyLimit(kineticEnergyLimit); 86 pNeutronKiller->SetTimeLimit(timeLimit); 84 87 } 85 88 -
trunk/source/physics_lists/builders/src/G4QGSBinaryNeutronBuilder.cc
r825 r921 33 33 { 34 34 theMin = 12*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSB"); 36 36 37 37 theStringModel = new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/builders/src/G4QGSBinaryPiKBuilder.cc
r825 r921 33 33 { 34 34 theMin = 12*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSB"); 36 36 37 37 theStringModel = new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/builders/src/G4QGSBinaryProtonBuilder.cc
r825 r921 33 33 { 34 34 theMin = 12*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSB"); 36 36 37 37 theStringModel = new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/builders/src/G4QGSCEflowNeutronBuilder.cc
r825 r921 33 33 { 34 34 theMin = 8*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSCElow"); 36 36 37 37 theStringModel= new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/builders/src/G4QGSCEflowPiKBuilder.cc
r825 r921 33 33 { 34 34 theMin = 8*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSCEflow"); 36 36 37 37 theStringModel = new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/builders/src/G4QGSCEflowProtonBuilder.cc
r825 r921 33 33 { 34 34 theMin = 8*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSCEflow"); 36 36 37 37 theStringModel = new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/builders/src/G4QGSCNeutronBuilder.cc
r825 r921 33 33 { 34 34 theMin = 8*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSC"); 36 36 37 37 theStringModel= new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/builders/src/G4QGSCPiKBuilder.cc
r825 r921 33 33 { 34 34 theMin = 8*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSC"); 36 36 37 37 theStringModel = new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/builders/src/G4QGSCProtonBuilder.cc
r825 r921 33 33 { 34 34 theMin = 8*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSC"); 36 36 37 37 theStringModel = new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/builders/src/G4QGSPNeutronBuilder.cc
r825 r921 33 33 { 34 34 theMin = 12*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSP"); 36 36 37 37 theStringModel = new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/builders/src/G4QGSPPiKBuilder.cc
r825 r921 33 33 { 34 34 theMin = 12*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSP"); 36 36 37 37 theStringModel = new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/builders/src/G4QGSPProtonBuilder.cc
r825 r921 33 33 { 34 34 theMin = 12*GeV; 35 theModel = new G4TheoFSGenerator ;35 theModel = new G4TheoFSGenerator("QGSP"); 36 36 37 37 theStringModel = new G4QGSModel< G4QGSParticipants >; -
trunk/source/physics_lists/lists/include/G4HadronInelasticQBBC.hh
r850 r921 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HadronInelasticQBBC.hh,v 1. 5 2008/08/05 10:25:00vnivanch Exp $27 // GEANT4 tag $Name: HEAD$26 // $Id: G4HadronInelasticQBBC.hh,v 1.7 2008/09/24 18:10:51 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-cand-01 $ 28 28 // 29 29 //--------------------------------------------------------------------------- … … 102 102 G4PreCompoundModel* thePreEquilib; 103 103 G4QuasiElasticChannel* theQuasiElastic; 104 // G4GeneratorPrecompoundInterface* theCascade;104 G4GeneratorPrecompoundInterface* preCompound; 105 105 G4BinaryCascade* theCascade; 106 106 G4QStringChipsParticleLevelInterface * theCHIPSCascade; 107 107 G4QGSModel< G4QGSParticipants > * theQGStringModel; 108 108 G4ExcitedStringDecay* theQGStringDecay; 109 G4ExcitedStringDecay* theFTFStringDecay; 110 G4FTFModel* theFTFStringModel; 109 G4ExcitedStringDecay* theFTFBStringDecay; 110 G4ExcitedStringDecay* theFTFCStringDecay; 111 G4FTFModel* theFTFBStringModel; 112 G4FTFModel* theFTFCStringModel; 111 113 112 114 G4int verbose; -
trunk/source/physics_lists/lists/include/QBBC.icc
r850 r921 24 24 // ******************************************************************** 25 25 // 26 // $Id: QBBC.icc,v 1.1 2 2008/08/05 10:25:00vnivanch Exp $27 // GEANT4 tag $Name: HEAD$26 // $Id: QBBC.icc,v 1.16 2008/11/25 15:36:19 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-cand-01 $ 28 28 // 29 29 //--------------------------------------------------------------------------- … … 55 55 #include "G4HadronDElasticPhysics.hh" 56 56 #include "G4HadronHElasticPhysics.hh" 57 #include "G4ChargeExchangePhysics.hh" 57 58 #include "G4IonBinaryCascadePhysics.hh" 58 59 #include "G4IonPhysics.hh" … … 79 80 // Hadron Physics 80 81 if(type == "QBBC") { 81 this->RegisterPhysics( new G4HadronElasticPhysics(" hElastic",ver,false,true));82 this->RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false,false)); 82 83 this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver)); 83 84 this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC")); 84 this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, true,85 false, false, false, false));85 this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, false, 86 true, false, false, false)); 86 87 87 } else if(type == "QBBCG") { 88 this->RegisterPhysics( new G4HadronElasticPhysics("hElastic",ver,false,true)); 88 } else if(type == "QBBBG") { 89 this->RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false,true)); 90 this->RegisterPhysics( new G4ChargeExchangePhysics(ver,true)); 89 91 this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver)); 90 92 this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC")); … … 92 94 false, false, false, true)); 93 95 94 } else if(type == "QBBC_DEL") { 95 this->RegisterPhysics( new G4HadronDElasticPhysics(ver,false)); 96 } else if(type == "QBBCG") { 97 this->RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false,true)); 98 this->RegisterPhysics( new G4ChargeExchangePhysics(ver,true)); 96 99 this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver)); 97 100 this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC")); 98 101 this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, false, 102 true, false, false, true)); 103 104 } else if(type == "QBBCF") { 105 this->RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false,false)); 106 this->RegisterPhysics( new G4ChargeExchangePhysics(ver,false)); 107 this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver)); 108 this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC")); 109 this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, true, 99 110 true, false, false, false)); 100 111 101 } else if(type == "QBBC_H EL") {102 this->RegisterPhysics( new G4Hadron HElasticPhysics(ver,false));112 } else if(type == "QBBC_HP") { 113 this->RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,true,false)); 103 114 this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver)); 104 115 this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC")); 105 116 this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, false, 106 true, false, false, false)); 107 108 } else if(type == "QBBC_HP") { 109 this->RegisterPhysics( new G4HadronElasticPhysics("hElastic",ver,true,true)); 110 this->RegisterPhysics( new G4QStoppingPhysics("stopping",ver)); 111 this->RegisterPhysics( new G4IonBinaryCascadePhysics("ionBIC")); 112 this->RegisterPhysics( new G4HadronInelasticQBBC("inelastic", ver, false, 113 false, false, true, false)); 117 true, false, true, false)); 114 118 115 119 } else { -
trunk/source/physics_lists/lists/src/G4HadronInelasticQBBC.cc
r850 r921 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HadronInelasticQBBC.cc,v 1. 9 2008/08/05 10:25:00vnivanch Exp $27 // GEANT4 tag $Name: HEAD$26 // $Id: G4HadronInelasticQBBC.cc,v 1.15 2008/11/21 18:42:36 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-cand-01 $ 28 28 // 29 29 //--------------------------------------------------------------------------- … … 57 57 #include "G4QStringChipsParticleLevelInterface.hh" 58 58 #include "G4StringChipsInterface.hh" 59 #include "G4GeneratorPrecompoundInterface.hh" 59 60 #include "G4QGSMFragmentation.hh" 60 61 #include "G4LundStringFragmentation.hh" … … 78 79 chipsFlag(chips), hpFlag(hp), glFlag(glauber), wasActivated(false) 79 80 { 80 if(verbose > -1) G4cout << "### HadronInelasticQBBC" << G4endl; 81 // store = G4HadronProcessStore::Instance(); 81 if(verbose > 1) G4cout << "### HadronInelasticQBBC bertFlag= " << bertFlag <<G4endl; 82 82 theHPXSecI = 0; 83 83 theHPXSecC = 0; 84 84 theHPXSecF = 0; 85 85 theCascade = 0; 86 preCompound = 0; 86 87 theCHIPSCascade = 0; 87 88 theQuasiElastic = 0; 88 89 theQGStringDecay = 0; 89 90 theQGStringModel = 0; 90 theFTFStringDecay = 0; 91 theFTFStringModel = 0; 91 theFTFBStringDecay = 0; 92 theFTFBStringModel = 0; 93 theFTFCStringDecay = 0; 94 theFTFCStringModel = 0; 92 95 } 93 96 … … 95 98 { 96 99 delete theCascade; 100 delete preCompound; 97 101 delete theCHIPSCascade; 98 102 delete theQuasiElastic; 99 103 delete theQGStringDecay; 100 104 delete theQGStringModel; 101 delete theFTFStringDecay; 102 delete theFTFStringModel; 105 delete theFTFBStringDecay; 106 delete theFTFCStringDecay; 107 delete theFTFBStringModel; 108 delete theFTFCStringModel; 103 109 delete theHPXSecI; 104 110 delete theHPXSecC; … … 121 127 122 128 if(verbose > 1) 123 G4cout << "### HadronInelasticQBBC Construct Process" << G4endl; 124 125 G4double minEstring = 4.0*GeV; 126 G4double maxEcascade = 6.0*GeV; 127 // G4double minFtf = 7.5*GeV; 129 G4cout << "### HadronInelasticQBBC Construct Process" 130 << " ftfFlag= " << ftfFlag << " bertFlag= " << bertFlag 131 << G4endl; 132 133 G4double minEstring = 9.5*GeV; 134 G4double maxEcascade = 7.5*GeV; 135 G4double minFTF = 4.5*GeV; 136 G4double maxFTF = 25.*GeV; 128 137 129 138 //Binary … … 143 152 144 153 //QGS 145 theCascade = new G4BinaryCascade; 154 theCascade = new G4BinaryCascade(); 155 preCompound = new G4GeneratorPrecompoundInterface(); 156 146 157 theCHIPSCascade = new G4QStringChipsParticleLevelInterface; 147 G4TheoFSGenerator* theQGSModel = new G4TheoFSGenerator( );158 G4TheoFSGenerator* theQGSModel = new G4TheoFSGenerator("QGSP"); 148 159 theQGStringModel = new G4QGSModel< G4QGSParticipants >; 149 160 theQGStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation()); 150 161 theQGStringModel->SetFragmentationModel(theQGStringDecay); 151 theQGSModel->SetTransport( theCHIPSCascade);152 153 theQuasiElastic = new G4QuasiElasticChannel ;162 theQGSModel->SetTransport(preCompound); 163 164 theQuasiElastic = new G4QuasiElasticChannel(); 154 165 theQGSModel->SetQuasiElasticChannel(theQuasiElastic); 155 166 theQGSModel->SetHighEnergyGenerator(theQGStringModel); … … 157 168 theQGSModel->SetMaxEnergy(100*TeV); 158 169 159 //FTF 160 G4TheoFSGenerator* theFTFModel = new G4TheoFSGenerator(); 161 theFTFStringModel = new G4FTFModel(); 162 theFTFStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation()); 163 theFTFStringModel->SetFragmentationModel(theFTFStringDecay); 164 //theFTFModel->SetTransport(theCHIPSCascade); 165 theFTFModel->SetTransport(theCascade); 166 theFTFModel->SetHighEnergyGenerator(theFTFStringModel); 167 theFTFModel->SetMinEnergy(minEstring); 168 theFTFModel->SetMaxEnergy(100*TeV); 169 //theFTFModel->SetQuasiElasticChannel(theQuasiElastic); 170 //FTFB 171 G4TheoFSGenerator* theFTFBModel = new G4TheoFSGenerator("FTFP"); 172 theFTFBStringModel = new G4FTFModel(); 173 theFTFBStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation()); 174 theFTFBStringModel->SetFragmentationModel(theFTFBStringDecay); 175 176 // theFTFBModel->SetTransport(theCascade); 177 theFTFBModel->SetTransport(preCompound); 178 theFTFBModel->SetHighEnergyGenerator(theFTFBStringModel); 179 theFTFBModel->SetMinEnergy(minFTF); 180 theFTFBModel->SetMaxEnergy(100*TeV); 181 182 //FTFP 183 G4TheoFSGenerator* theFTFCModel = new G4TheoFSGenerator("FTFP"); 184 theFTFCStringModel = new G4FTFModel(); 185 theFTFCStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation()); 186 theFTFCStringModel->SetFragmentationModel(theFTFCStringDecay); 187 188 theFTFCModel->SetTransport(preCompound); 189 theFTFCModel->SetHighEnergyGenerator(theFTFCStringModel); 190 theFTFCModel->SetMinEnergy(minFTF); 191 theFTFCModel->SetMaxEnergy(maxFTF); 170 192 171 193 theParticleIterator->reset(); … … 205 227 hp->AddDataSet(&theXSecP); 206 228 207 if(ftfFlag) hp->RegisterMe(theFTFModel); 208 else hp->RegisterMe(theQGSModel); 229 hp->RegisterMe(theQGSModel); 230 hp->RegisterMe(theFTFCModel); 231 //if(ftfFlag) hp->RegisterMe(theFTFCModel); 232 //else hp->RegisterMe(theQGSModel); 209 233 210 234 if(bertFlag) hp->RegisterMe(theBERT); … … 216 240 } else if(pname == "neutron") { 217 241 hp->AddDataSet(&theXSecN); 218 if(ftfFlag) hp->RegisterMe(theFTFModel); 219 else hp->RegisterMe(theQGSModel); 242 hp->RegisterMe(theQGSModel); 243 hp->RegisterMe(theFTFCModel); 244 //if(ftfFlag) hp->RegisterMe(theFTFCModel); 245 //else hp->RegisterMe(theQGSModel); 220 246 221 247 G4HadronCaptureProcess* theNeutronCapture = … … 260 286 } else if(pname == "pi-" || pname == "pi+") { 261 287 hp->AddDataSet(&thePiCross); 262 if(ftfFlag) hp->RegisterMe(theFTFModel); 263 else hp->RegisterMe(theQGSModel); 288 hp->RegisterMe(theQGSModel); 289 hp->RegisterMe(theFTFCModel); 290 //if(ftfFlag) hp->RegisterMe(theFTFCModel); 291 //else hp->RegisterMe(theQGSModel); 264 292 265 293 hp->RegisterMe(theBERT); … … 274 302 pname == "kaon0S" || 275 303 pname == "kaon0L") { 276 hp->RegisterMe(theFTF Model);304 hp->RegisterMe(theFTFBModel); 277 305 hp->RegisterMe(theBERT); 278 306 //hp->AddDataSet(new G4UInelasticCrossSection(particle)); … … 284 312 pname == "xi0") { 285 313 286 hp->RegisterMe(theFTF Model);314 hp->RegisterMe(theFTFBModel); 287 315 hp->RegisterMe(theBERT); 288 316 //hp->AddDataSet(new G4UInelasticCrossSection(particle)); 289 317 290 318 } else if(pname == "anti_proton" || pname == "anti_neutron") { 291 hp->RegisterMe(theFTF Model);319 hp->RegisterMe(theFTFBModel); 292 320 hp->RegisterMe(theCHIPS); 293 321 //hp->AddDataSet(new G4UInelasticCrossSection(particle)); 294 322 295 323 } else { 296 hp->RegisterMe(theFTF Model);324 hp->RegisterMe(theFTFBModel); 297 325 hp->RegisterMe(theCHIPS); 298 326 //hp->AddDataSet(new G4UInelasticCrossSection(particle));
Note: See TracChangeset
for help on using the changeset viewer.