Message: A question about JENDLHE library Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question A question about JENDLHE library 

Forum: Hadronic Processes
Date: 04 Dec, 2015
From: Aleksandr Nesterenok <Aleksandr Nesterenok>

Dear collegues! I have a question about JENDLHE library. The JENDLHE cross secions are not used by the standard physics lists. I could add these cross sections to the neutron hadronic processes in my own physics list (the code is below). What is the status of JENDLHE cross sections? Are they supported in the latest versions of Geant4? What advantages are of these data over the Barashenkov-Glauber and ChipsNeutronElasticXS cross sections?

CRMars_PhysicsList::CRMars_PhysicsList(G4bool JHE) : G4VModularPhysicsList(), JENDLHE(JHE)
{
   verboseLevel = 1;
   defaultCutValue = 0.1*CLHEP::mm;
   PhysicsName = "QGSP_BIC_HP";

   G4DataQuestionaire it(photon, neutron);

   // EM physics
   RegisterPhysics(new G4EmStandardPhysics(verboseLevel));

   // Particles
   RegisterPhysics(new G4DecayPhysics(verboseLevel));

   // Synchroton Radiation & GN Physics
   G4String State;
   G4EmExtraPhysics *extraEMPhysList = new G4EmExtraPhysics(verboseLevel);

   // Are switch on by default in the current Geant4 version:
   extraEMPhysList->MuonNuclear(State = "ON");
   extraEMPhysList->GammaNuclear(State = "ON");
   RegisterPhysics(extraEMPhysList);

   // Hadron Elastic scattering
   RegisterPhysics(new G4HadronElasticPhysicsHP(verboseLevel));

   // Hadron Physics
   if (PhysicsName == "FTF_BERT_HP") {
       RegisterPhysics(new G4HadronPhysicsFTFP_BERT_HP(verboseLevel));
   }
   else {
      RegisterPhysics(new G4HadronPhysicsQGSP_BIC_HP(verboseLevel));
   }
   // Is absent in standard FTF_BERT_HP physics list:
   // PhysListVector.push_back( new G4RadioactiveDecayPhysics());

   // Stopping Physics
   RegisterPhysics( new G4StoppingPhysics(verboseLevel) );

   // Ion Physics
   RegisterPhysics( new G4IonPhysics(verboseLevel) );
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....

CRMars_PhysicsList::~CRMars_PhysicsList() {}

void CRMars_PhysicsList::ConstructProcess()
{
   G4VModularPhysicsList::ConstructProcess();
   if (JENDLHE) AddJENDLHEData();
}

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....

void CRMars_PhysicsList::AddJENDLHEData()
{
   G4int i, n;

   G4HadronicProcess* had = 0;
   G4ProcessVector* pvec = G4Neutron::Neutron()->GetProcessManager()->GetProcessList();

   n = (int) pvec->size();
   if (n > 0) 
   {
      for (i = 0; i < n; ++i) 
      {
          if (fHadronInelastic == ((*pvec)[i])->GetProcessSubType()) 
          {
              had = static_cast<G4HadronicProcess*>((*pvec)[i]);
              had->AddDataSet(new G4NeutronHPJENDLHEInelasticData());
              G4cout << "JENDLHE data were added to the neutron inelastic process;" << G4endl;
          }
          else if (fHadronElastic == ((*pvec)[i])->GetProcessSubType()) 
          {
             had = static_cast<G4HadronicProcess*>((*pvec)[i]);
             had->AddDataSet(new G4NeutronHPJENDLHEElasticData());
             G4cout << "JENDLHE data were added to the neutron elastic process;" << G4endl;
          }
      }
   }
}

 Add Message Add Message
to: "A question about JENDLHE library"

 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 ]