Message: Re: Need help on hadron process at low energy Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: Need help on hadron process at low energy 

Forum: Physics List
Re: Question Need help on hadron process at low energy (Khem)
Date: 05 Feb, 2007
From: Vladimir IVANTCHENKO <vnivanch@mail.cern.ch>

On Sun, 4 Feb 2007, Khem wrote:

> *** Discussion title: Physics List
> Email replies to PublicHyperNews@slac.stanford.edu must include:
>   In-Reply-To: <"/phys-list/344"@geant4-hn.slac.stanford.edu>
>   Subject: ...change this to be about your reply.
> 
> Hi,
> 
> Help, my simulation stop and abort itself after a few run. I took the
> code from ExN02. And changed energy to 10 MeV. And added the following
> code I found in user forum.
> 
>  theParticleIterator->reset();
>   while( (*theParticleIterator)() ){
>     G4ParticleDefinition* particle = theParticleIterator->value();
>     G4ProcessManager* pmanager = particle->GetProcessManager();
>     G4String particleName = particle->GetParticleName();
> 
>     if(particleName =="proton"){
>       G4HadronElasticProcess* theElasticProcess = new G4HadronElasticProcess;
>       G4LElastic* theElasticModel = new G4LElastic;  
>       theElasticProcess->RegisterMe(theElasticModel);
>       pmanager->AddDiscreteProcess(theElasticProcess);
>       G4ProtonInelasticProcess* theInelasticProcess = new G4ProtonInelasticProcess("inelastic");
>       G4LEProtonInelastic* theLEInelasticModel = new G4LEProtonInelastic;
>       theInelasticProcess->RegisterMe(theLEInelasticModel);
>       G4ProtonInelasticCrossSection* theProtonData1= new G4ProtonInelasticCrossSection;
>       theInelasticProcess->AddDataSet(theProtonData1); 
>       pmanager->AddDiscreteProcess(theInelasticProcess);
> }
> 
>  else if (particleName == "neutron") {        
> 
>       // elastic scattering
>         G4HadronElasticProcess* theNeutronElasticProcess = new G4HadronElasticProcess;
>        G4LElastic* theElasticModel1 = new G4LElastic;
>        G4NeutronHPElastic * theElasticNeutron = new G4NeutronHPElastic;
>        theNeutronElasticProcess->RegisterMe(theElasticModel1);
>        theElasticModel1->SetMinEnergy(19*MeV);
>        theNeutronElasticProcess->RegisterMe(theElasticNeutron);
>        //G4CrossSectionDataStore * theStore = ((G4HadronElasticProcess*)theNeutronElasticProcess)->GetCrossSectionDataStore();
>        G4NeutronHPElasticData * theNeutronData = new G4NeutronHPElasticData;
>        //theStore->AddDataSet(theNeutronData);
>          theNeutronElasticProcess->AddDataSet(theNeutronData);
>          //theNeutronElasticProcess->DumpPhysicsTable(*particle);// 
>          pmanager->AddDiscreteProcess(theNeutronElasticProcess);
> 
>          // inelastic scattering
>          G4NeutronInelasticProcess* theInelasticProcess =
>            new G4NeutronInelasticProcess("inelastic");
>          G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic;
>          theInelasticModel->SetMinEnergy(19*MeV);
>          theInelasticProcess->RegisterMe(theInelasticModel);
>          G4NeutronHPInelastic * theLENeutronInelasticModel = new G4NeutronHPInelastic;
>          theInelasticProcess->RegisterMe(theLENeutronInelasticModel);
>          //  G4CrossSectionDataStore * theStore1 = ((G4HadronInelasticProcess*)theInelasticProcess)->GetCrossSectionDataStore();
>          G4NeutronHPInelasticData * theNeutronData1 = new G4NeutronHPInelasticData;
>          // theStore1->AddDataSet(theNeutronData1);
>          theInelasticProcess->AddDataSet(theNeutronData1);
>          pmanager->AddDiscreteProcess(theInelasticProcess);
> 
>          // fission
>          G4HadronFissionProcess* theFissionProcess =
>            new G4HadronFissionProcess;
>          G4LFission* theFissionModel = new G4LFission;
>          theFissionModel->SetMinEnergy(19*MeV);
>          theFissionProcess->RegisterMe(theFissionModel);
>          G4NeutronHPFission * theLENeutronFissionModel = new G4NeutronHPFission;
>          theFissionProcess->RegisterMe(theLENeutronFissionModel);
>          //G4CrossSectionDataStore * theStore2 = ((G4HadronFissionProcess*)theFissionProcess)->GetCrossSectionDataStore();  
>          G4NeutronHPFissionData * theNeutronData2 = new G4NeutronHPFissionData;
>          theFissionProcess->AddDataSet(theNeutronData2);
>          //theStore2->AddDataSet(theNeutronData2);
>          pmanager->AddDiscreteProcess(theFissionProcess);
> 
>          // capture
>          G4HadronCaptureProcess* theCaptureProcess =
>            new G4HadronCaptureProcess;
>          G4LCapture* theCaptureModel = new G4LCapture;
>          theCaptureModel->SetMinEnergy(19*MeV);
>          theCaptureProcess->RegisterMe(theCaptureModel);
>          G4NeutronHPCapture * theLENeutronCaptureModel = new G4NeutronHPCapture;
>          theCaptureProcess->RegisterMe(theLENeutronCaptureModel);
>          //  G4CrossSectionDataStore * theStore3 = ((G4HadronCaptureProcess*)theCaptureProcess)->GetCrossSectionDataStore();
>          G4NeutronHPCaptureData * theNeutronData3 = new G4NeutronHPCaptureData;
>          //theStore3->AddDataSet(theNeutronData3);
>          theCaptureProcess->AddDataSet(theNeutronData3);
>          pmanager->AddDiscreteProcess(theCaptureProcess);
>       }
>   }
> 
> Then when I compile, there's a messege
> 
> Using granular libraries ...
> 
> Linking b ...
> 
> /usr/bin/ld:
> `.gnu.linkonce.t._ZNK23G4NeutronHPInterpolator11InterpolateE21G4InterpolationSchemeddddd'
> referenced in section `.rodata' of
> /opt/geant4.8.0.p01/lib/geant4/Linux-g++/libG4had_neu_hp.a(G4NeutronHPVector.o):
> defined in discarded section
> `.gnu.linkonce.t._ZNK23G4NeutronHPInterpolator11InterpolateE21G4InterpolationSchemeddddd'
> of
> /opt/geant4.8.0.p01/lib/geant4/Linux-g++/libG4had_neu_hp.a(G4NeutronHPVector.o)
> 
> /usr/bin/ld:
> `.gnu.linkonce.t._ZNK23G4NeutronHPInterpolator11InterpolateE21G4InterpolationSchemeddddd'
> referenced in section `.rodata' of
> /opt/geant4.8.0.p01/lib/geant4/Linux-g++/libG4had_neu_hp.a(G4NeutronHPVector.o):
> defined in discarded section
> `.gnu.linkonce.t._ZNK23G4NeutronHPInterpolator11InterpolateE21G4InterpolationSchemeddddd'
> of
> /opt/geant4.8.0.p01/lib/geant4/Linux-g++/libG4had_neu_hp.a(G4NeutronHPVector.o)
> 
> and so on.
> 
> I don't know if there is any problem here. Cause, I can run the
> simulation, but after a few run it abort itseft. (I use G4NDL3.10 for
> NeutronHPCrossSections) Is there anything wrong?
> 
> Thank you very much, Khem
> 

Hello,

I would suggest to start from 

example/extended/hdronic/Hadr01

There are examples of both options using HP physics and work 
at low energy without HP.

VI

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 None: Re: Need help on hadron process at low energy   (Khem - 05 Feb, 2007)
(_ None: Re: Need help on hadron process at low energy   (Vladimir IVANTCHENKO - 05 Feb, 2007)
 Add Message Add Message
to: "Re: Need help on hadron process at low energy"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]