Probability sampling in URR

Hello,
I have downloaded the GEANT4.11.3 beta version to check the new HP neutron physics.

I see that Geant4.11.3 beta already includes a set of nuclear data for probability sampling in the URR. However, I do not understand how to activate/deactivate the probability tables. It is not clear in the release notes. I believe it is activated by default since I see “Use probability tables from njoy” in the output of GEANT4 but I am not sure and I do not know how to deactivate it for comparison purpose.

Do you have any suggestions about activating/deactivating PT in GEANT4?

Also, could you please just confirm whether the SVT algorithm is used by default or not and how to activate/deactivate it ?

Thank you for your help

Just a reminder about my question. Is there someone aware about this ?

Hello,
unfortunately there was a mistake in this implementation and also the URRPT library is compressed incorrectly, so you will have to wait to the official 11.3 release in December to use it correctly. If you need it now, send me your e-mail and I will send you the corrected version. To use it in your calculations, you will need to create a physics list with registering the G4ParticleHP_XXX_URR models and G4ParticleHP_XXX_PT and G4ParticleHP_XXX_Data cross sections like in the enclosed class.

Yes, SVT algorithm is used by default up to maximum energy, which can be controlled by a user command (default is 400kT). You only need to turn on the DBRC option for heavy nuclei.

Cheers,
Marek
NeutronHPphysics.cc (7.5 KB)

Thank you very much Marek. I would be happy if you could send me the corrected version. My email is le_froz@hotmail.com

Also I have slightly modified the Elastic process in the .cc you attached to be able to chose between PT or not and thermal scattering or not.

    // // (re) create process: elastic
    G4HadronElasticProcess* Elastic = new G4HadronElasticProcess("hadElastic");
    pManager->AddDiscreteProcess(Elastic);
    Elastic->AddDataSet(new G4NeutronElasticXS());
    Elastic->AddDataSet(new G4ParticleHPElasticData());
    G4NeutronHPElastic * nElastic = new G4NeutronHPElastic;
    G4ParticleHPElasticURR* nElasticURR =  new G4ParticleHPElasticURR();
    // // Probability tables
    if(fPTURR)
    {
        Elastic->AddDataSet(new G4ParticleHPElasticDataPT());
        Elastic->RegisterMe(nElasticURR);
    }
    else
    {
        Elastic->RegisterMe(nElastic);
    }

    // Thermal Scattering
    if (fThermal) {
        nElastic->SetMinEnergy(4*eV);
        nElasticURR->SetMinEnergy(4*eV);
        G4ParticleHPThermalScattering* ThermalScat = new G4ParticleHPThermalScattering();
        Elastic->RegisterMe(ThermalScat);
        Elastic->AddDataSet(new G4ParticleHPThermalScatteringData());
    }