Message: Re: serious problem with benchmark Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: serious problem with benchmark 

Keywords: neutron ambient dose
Forum: Hadronic Processes
Re: None serious problem with benchmark (Sylvia Studeny)
Re: None Re: serious problem with benchmark (Koi, Tatsumi)
Date: 25 Sep, 2006
From: Sylvia Studeny <sylvia.studeny@gsf.de>

Hi, Thank you for reply! I will answer what I know:

1, What is primary? Particle species and energy? For primary particle I took monoenergetic neutrons with 1MeV, monoenergetic. The published data are also monoenergetic, for example : the ambient dose equivalent for one incoming particle on the orb H*(10)/Flux= 416pSvcm2

2, I am not familiar RE-02 physics list. 
   So please give me more information about the list.
I made different calculations, one with the LHEP_PRECO_HP list, which I 
understood to be the right one for low energy neutron Problems.
The one I made myself is an extended physics list from example RE02
(of geant4-examples):
I changed low energy EM:

void RE02EMPhysics::ConstructProcess()
{
   G4ProcessManager * pManager = 0;

   //Gamma
   pManager = G4Gamma::Gamma()->GetProcessManager();

      lowePhot = new  G4LowEnergyPhotoElectric("LowEnPhotoElec");
      pManager->AddDiscreteProcess(new G4LowEnergyRayleigh);
      pManager->AddDiscreteProcess(lowePhot);
      pManager->AddDiscreteProcess(new G4LowEnergyCompton);
      pManager->AddDiscreteProcess(new G4LowEnergyGammaConversion);

   //Electorn
   pManager = G4Electron::Electron()->GetProcessManager();

   loweIon  = new G4LowEnergyIonisation("LowEnergyIoni");
      loweBrem = new G4LowEnergyBremsstrahlung("LowEnBrem");
      loweBrem->SetAngularGenerator("tsai");

      pManager->AddProcess(new G4MultipleScattering, -1, 1,1);
      pManager->AddProcess(loweIon,     -1, 2,2);
      pManager->AddProcess(loweBrem,    -1,-1,3);        

   //Positron
   pManager = G4Positron::Positron()->GetProcessManager();

    pManager->AddProcess(new G4MultipleScattering, -1, 1,1);
      pManager->AddProcess(new G4eIonisation,        -1, 2,2);
      pManager->AddProcess(new G4eBremsstrahlung,    -1,-1,3);
      pManager->AddProcess(new G4eplusAnnihilation,   0,-1,4);    

}

And hadronic Physics:

void RE02HadronPhysics::ConstructProcess()
{
   G4ProcessManager * pManager = 0;

   // Proton Physics
   pManager = G4Proton::Proton()->GetProcessManager();

   // add process
   G4HadronElasticProcess* thepElasticProcess 
                         = new G4HadronElasticProcess();
   G4LElastic* thepElasticModel = new G4LElastic();
   thepElasticProcess->RegisterMe(thepElasticModel);
   pManager->AddDiscreteProcess(thepElasticProcess);

   G4ProtonInelasticProcess* theProtonInelasticProcess 
                         = new G4ProtonInelasticProcess(); 

   G4BinaryCascade* theProtonBCModel = new G4BinaryCascade();
   theProtonBCModel->SetMaxEnergy(6.*GeV);
   G4LEProtonInelastic* theProtonLEPModel = new G4LEProtonInelastic();
   theProtonLEPModel->SetMinEnergy(4.*GeV); 
   G4HEProtonInelastic* theProtonHEPModel = new G4HEProtonInelastic();
   theProtonInelasticProcess->RegisterMe(theProtonBCModel);
   theProtonInelasticProcess->RegisterMe(theProtonLEPModel);
   theProtonInelasticProcess->RegisterMe(theProtonHEPModel);
   pManager->AddDiscreteProcess(theProtonInelasticProcess);

   G4VProcess* thepMultipleScattering = new G4MultipleScattering();
   G4VProcess* thepIonisation        = new G4hIonisation();

   pManager->AddProcess(thepIonisation);
   pManager->AddProcess(thepMultipleScattering);

   // set ordering for AlongStepDoIt
   pManager->SetProcessOrdering(thepMultipleScattering, idxAlongStep,1);
   pManager->SetProcessOrdering(thepIonisation,        idxAlongStep,2);
   // 
   // set ordering for PostStepDoIt
   pManager->SetProcessOrdering(thepMultipleScattering, idxPostStep,1);
   pManager->SetProcessOrdering(thepIonisation,        idxPostStep,2);

   // neutron Physics
   pManager = G4Neutron::Neutron()->GetProcessManager();
  // pManager -> AddProcess(new G4UserSpecialCuts(),-1,-1,1);

   // add process
   G4HadronElasticProcess* thenElasticProcess 
                         = new G4HadronElasticProcess();
   thenElasticProcess->AddDataSet(new G4NeutronHPElasticData);

   G4LElastic* thenElasticModel = new G4LElastic();
   thenElasticModel->SetMinEnergy(19.*MeV);
   G4NeutronHPElastic* theNeutronHPElasticModel= new G4NeutronHPElastic();
   theNeutronHPElasticModel ->SetMaxEnergy(20.*MeV);
   thenElasticProcess->RegisterMe(thenElasticModel);
   thenElasticProcess->RegisterMe(theNeutronHPElasticModel);
   pManager->AddDiscreteProcess(thenElasticProcess);

   G4NeutronInelasticProcess* theNeutronInelasticProcess 
                         = new G4NeutronInelasticProcess(); 
   theNeutronInelasticProcess->AddDataSet(new G4NeutronHPInelasticData);

   G4NeutronHPInelastic* theNeutronHPInelasticModel= new G4NeutronHPInelastic();
   theNeutronHPInelasticModel ->SetMaxEnergy(20.*MeV);
   G4BinaryCascade* theNeutronBCModel = new G4BinaryCascade();
   theNeutronBCModel->SetMinEnergy(19.*MeV);
   theNeutronBCModel->SetMaxEnergy(6.*GeV);
   G4LENeutronInelastic* theNeutronLEPModel = new G4LENeutronInelastic();
   theNeutronLEPModel->SetMinEnergy(4.*GeV);
   G4HENeutronInelastic* theNeutronHEPModel = new G4HENeutronInelastic();
   theNeutronInelasticProcess->RegisterMe(theNeutronHPInelasticModel);
   theNeutronInelasticProcess->RegisterMe(theNeutronBCModel);
   theNeutronInelasticProcess->RegisterMe(theNeutronLEPModel);
   theNeutronInelasticProcess->RegisterMe(theNeutronHEPModel);
   pManager->AddDiscreteProcess(theNeutronInelasticProcess);

   G4HadronFissionProcess* thenFission
                         = new G4HadronFissionProcess();
   thenFission->AddDataSet(new G4NeutronHPFissionData);

   G4LFission* thenFissionModel = new G4LFission();
   thenFissionModel->SetMinEnergy(19.*MeV);
   G4NeutronHPFission* theNeutronHPFissionModel= new G4NeutronHPFission();
   theNeutronHPFissionModel ->SetMaxEnergy(20.*MeV);
   thenFission->RegisterMe(thenFissionModel);
   thenFission->RegisterMe(theNeutronHPFissionModel);
   pManager->AddDiscreteProcess(thenFission);

   G4HadronCaptureProcess* thenCapture
                         = new G4HadronCaptureProcess();
   thenCapture->AddDataSet(new G4NeutronHPCaptureData);

   G4LCapture* thenCaptureModel = new G4LCapture();
   thenCaptureModel->SetMinEnergy(19.*MeV);
   G4NeutronHPCapture* theNeutronHPCaptureModel= new G4NeutronHPCapture();
   theNeutronHPCaptureModel ->SetMaxEnergy(20.*MeV);
   thenCapture->RegisterMe(thenCaptureModel);
   thenCapture->RegisterMe(theNeutronHPCaptureModel);
   pManager->AddDiscreteProcess(thenCapture);

}

3, You should used High-Precision-Data Set,
   when you use High-Precision neutron models.
Here you can see that the high precission model and the data are
included. My problem is, that my task in the end will be to perform 
calculations in a voxel phantom. If I include HP-data in these calculations,
they get much too slow! 
I also posted a question if there is some way to cut off neutrons at
some energy and integrate the crossection of the lower energy and with
this force a certain path and reaction. Unfortunately nobody answered
and I am quite at a loss at how to manage this.

4, You said that "Both the Q and the DEDX look fine". 
   What this mean? What did you check exactly?
I checked that the Q-functions with running LET gives the right values
(which it does) and made the programm give me back the DEDX-values 
(together with the fitting Ekin) in a test run and compared these with 
published data. These looked right,too. (here the problem is, that the
published data are allways in water whereas my orb is out of ICRU-Tissue.
Therefore the values are not exactly the same, but in the right range 
and curve-shape when represented graphically)

5, Could you send me more information about discrepancy? The run with LHEP_PRECO_HP-List, 4*10^8 1MeV neutrons, 1mm sensitive volume size gives H*(10)/phi = 140pSvcm2+/-4% statistical error. That is -66% wrong! If I take my own physics list (HP models and data): H*(10)/phi = 316 pSvcm2+/-5% which is still -24% wrong. For other energies I wanted to make faster calculations (the other took 40h/70h!) and took only 10^8 neutrons, commented out the HP-data-lines and made my sensitive volume 5mm big (18h/16h). I got for 100keV: 93pSvcm2+/-1% which is quite right (+6%), but this could be chance, and for 10MeV 295pSvcm2+/-4% which is -33% wrong.

The whole table from where I took the data is in ICRU 57 page 119.

I hope you can help me!!!! Sylvia

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

1 None: Re: serious problem with benchmark   (Koi, Tatsumi - 25 Sep, 2006)
(_ None: Re: serious problem with benchmark   (Sylvia Studeny - 25 Sep, 2006)
(_ None: Re: serious problem with benchmark   (Sylvia Studeny - 04 Oct, 2006)
(_ None: Re: serious problem with benchmark   (Koi, Tatsumi - 04 Oct, 2006)
(_ None: Re: serious problem with benchmark   (Sylvia Studeny - 10 Oct, 2006)
(_ None: Re: serious problem with benchmark   (Sylvia Studeny - 12 Oct, 2006)
 Add Message Add Message
to: "Re: serious problem with benchmark"

 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 ]