- Timestamp:
- Jun 18, 2010, 11:42:07 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/physics_lists/builders/src/G4HadronDElasticPhysics.cc
r1228 r1315 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4HadronDElasticPhysics.cc,v 1. 3 2008/05/19 10:21:34 vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 3$26 // $Id: G4HadronDElasticPhysics.cc,v 1.6 2010/06/03 15:09:54 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 28 28 // 29 29 //--------------------------------------------------------------------------- … … 43 43 // for neutrons 44 44 // 06.03.2007 V.Ivanchenko use updated interface to G4UElasticCrossSection 45 // 03.06.2010 V.Ivanchenko cleanup constructors and ConstructProcess method 45 46 // 46 47 //---------------------------------------------------------------------------- 47 48 // 49 // Diffuse optical model for sampling scattering 50 // BBG cross sections for p, pi+- 51 // XS cross sections for n 52 // LHEP cross sections for other particles 48 53 49 54 #include "G4HadronDElasticPhysics.hh" 50 55 51 #include "G4HadronicProcess.hh"52 #include "G4HadronElasticProcess.hh"53 #include "G4HadronicInteraction.hh"54 #include "G4DiffuseElastic.hh"55 #include "G4HadronElastic.hh"56 57 56 #include "G4ParticleDefinition.hh" 58 57 #include "G4ProcessManager.hh" 58 #include "G4HadronicProcess.hh" 59 59 60 60 #include "G4MesonConstructor.hh" … … 63 63 #include "G4Neutron.hh" 64 64 65 #include "G4VQCrossSection.hh" 66 #include "G4UElasticCrossSection.hh" 65 #include "G4WHadronElasticProcess.hh" 66 #include "G4VHadronElastic.hh" 67 #include "G4CHIPSElastic.hh" 68 #include "G4ElasticHadrNucleusHE.hh" 69 #include "G4BGGNucleonElasticXS.hh" 70 #include "G4BGGPionElasticXS.hh" 71 #include "G4NeutronElasticXS.hh" 72 73 #include "G4DiffuseElastic.hh" 74 75 #include "G4NeutronElasticXS.hh" 67 76 #include "G4BGGNucleonElasticXS.hh" 68 77 #include "G4BGGPionElasticXS.hh" 69 78 70 G4HadronDElasticPhysics::G4HadronDElasticPhysics(G4int ver , G4bool hp)71 : G4VPhysicsConstructor(" DElastic"), mname("DElastic"), verbose(ver),72 hpFlag(hp),wasActivated(false)79 G4HadronDElasticPhysics::G4HadronDElasticPhysics(G4int ver) 80 : G4VPhysicsConstructor("hElasticDIFFUSE"), verbose(ver), 81 wasActivated(false) 73 82 { 74 if(verbose > 1) G4cout << "### HadronDElasticPhysics" << G4endl; 83 if(verbose > 1) { 84 G4cout << "### G4HadronHElasticPhysics: " << GetPhysicsName() 85 << G4endl; 86 } 87 } 88 89 G4HadronDElasticPhysics::G4HadronDElasticPhysics(G4int ver, G4bool) 90 : G4VPhysicsConstructor("hElasticDIFFUSE"), verbose(ver), 91 wasActivated(false) 92 { 93 if(verbose > 1) { 94 G4cout << "### G4HadronHElasticPhysics: " << GetPhysicsName() 95 << G4endl; 96 } 75 97 } 76 98 … … 97 119 wasActivated = true; 98 120 99 if(verbose > 1) 100 G4cout << "### HadronDElasticPhysics Construct Processes with the model <" 101 << mname << ">" << G4endl; 121 //G4double elimit = 1.0*GeV; 102 122 103 G4UHadronElasticProcess* hel = 0; 123 if(verbose > 1) { 124 G4cout << "### HadronDElasticPhysics Construct Processes " << G4endl; 125 } 126 127 //G4VHadronElastic* plep0 = new G4VHadronElastic(); 128 //G4VHadronElastic* plep1 = new G4VHadronElastic(); 129 //plep1->SetMaxEnergy(elimit); 130 131 // G4CHIPSElastic* chipsp = new G4CHIPSElastic(); 132 // G4CHIPSElastic* chipsn = new G4CHIPSElastic(); 133 134 //G4ElasticHadrNucleusHE* he = new G4ElasticHadrNucleusHE(); 135 //he->SetMinEnergy(elimit); 136 104 137 G4DiffuseElastic* model = 0; 105 106 G4double elimit = 11.0*MeV;107 108 G4HadronElastic* he = new G4HadronElastic();109 G4VQCrossSection* man = he->GetCS();110 he->SetMaxEnergy(elimit);111 138 112 139 theParticleIterator->reset(); … … 140 167 141 168 G4ProcessManager* pmanager = particle->GetProcessManager(); 142 hel = new G4UHadronElasticProcess("hElastic"); 143 hel->SetQElasticCrossSection(man); 169 G4WHadronElasticProcess* hel = new G4WHadronElasticProcess(); 144 170 if(pname == "proton") { 145 171 hel->AddDataSet(new G4BGGNucleonElasticXS(particle)); 146 172 } else if (pname == "pi+" || pname == "pi-") { 147 173 hel->AddDataSet(new G4BGGPionElasticXS(particle)); 148 } else {149 hel->AddDataSet(new G4UElasticCrossSection(particle));150 174 } 151 175 model = new G4DiffuseElastic(particle); 152 176 hel->RegisterMe(model); 153 hel->RegisterMe(he);154 177 pmanager->AddDiscreteProcess(hel); 155 178 … … 158 181 159 182 G4ProcessManager* pmanager = particle->GetProcessManager(); 160 hel = new G4UHadronElasticProcess("hElastic"); 161 hel->SetQElasticCrossSection(man); 162 hel->AddDataSet(new G4BGGNucleonElasticXS(particle)); 183 G4WHadronElasticProcess* hel = new G4WHadronElasticProcess(); 184 hel->AddDataSet(new G4NeutronElasticXS()); 163 185 model = new G4DiffuseElastic(particle); 164 if(hpFlag) {165 model->SetMinEnergy(19.5*MeV);166 G4NeutronHPElastic* modelHP = new G4NeutronHPElastic();167 hel->RegisterMe(modelHP);168 hel->AddDataSet(new G4NeutronHPElasticData());169 } else {170 hel->RegisterMe(he);171 }172 186 hel->RegisterMe(model); 173 187 pmanager->AddDiscreteProcess(hel);
Note: See TracChangeset
for help on using the changeset viewer.