Message: Why does not my reaction work? Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Why does not my reaction work? 

Keywords: hadronic reactions, neutrons
Forum: Hadronic Processes
Date: 11 Mar, 2008
From: gin chen <gin chen>

Hi,

I am trying to simulate the reaction of D(d,n)He3 ( deteron on deuterium) to get the n. deuteron energy is in the range 5 MeV to 30 MeV. When I transport deuteron, I am getting so many electrons instead of neutrons. I don't understand where I am wrong. I appreciate any help to get this work. Building of Material deuterium and ionPhysics.cc file is attached.

Thank you, G.

I have set up material of deuterium gas as follows in the DetectorConstruction.cc file.

// Deuterium Gas ( with pressure 7.0 atm and room temp 293.15K)

 G4Isotope* iso_H2= new G4Isotope(name="D",iz=1,n=2,a=2.014*g/mole);
 G4Element* ele_H2= new G4Element(name="Deuterium Gas",symbol="D",
                                ncomponents=1);
 ele_H2 -> AddIsotope(iso_H2, abundance =1);

  DeuteriumGas = new G4Material("Deuterium Gas",density= 0.00124*g/cm3,
                  ncomponents=1,kStateGas, 293.15*kelvin, 7.0*atmosphere);
  DeuteriumGas->AddElement(ele_H2,fractionmass =1);

//

Then following is the ionPhysics.cc file in the modular physics List.

//////////////////////////////////////////////////////////////////////////// // // // Title: Ion Physics for Space Electronics Applications // // Date: 22 March 2005 // // Author: D.H. Wright (SLAC) // // // //////////////////////////////////////////////////////////////////////////// //

#include "IonPhysics.hh"

#include "G4ParticleTable.hh"
#include "G4ProcessManager.hh"
#include "G4IonConstructor.hh"

// processes

#include "G4MultipleScattering.hh"
#include "G4hIonisation.hh"
#include "G4ionIonisation.hh"
#include "G4HadronElasticProcess.hh"
#include "G4HadronInelasticProcess.hh"
#include "G4DeuteronInelasticProcess.hh"
#include "G4LEDeuteronInelastic.hh"
#include "G4TritonInelasticProcess.hh"
#include "G4AlphaInelasticProcess.hh"

// models

#include "G4LElastic.hh"
#include "G4BinaryLightIonReaction.hh"

// cross sections

#include "G4TripathiLightCrossSection.hh"
#include "G4TripathiCrossSection.hh"
#include "G4IonsShenCrossSection.hh"
#include "G4IonsSihverCrossSection.hh"

IonPhysics::IonPhysics(const G4String& name)
               :  G4VPhysicsConstructor(name)
{;}

IonPhysics::~IonPhysics() {;}

void IonPhysics::ConstructParticle()
{
  // Construct light ions (d, t, 3He, alpha, and generic ion)
  G4IonConstructor ionConstruct;
  ionConstruct.ConstructParticle();
}

void IonPhysics::ConstructProcess()
{
  // Hadronic Elastic Process and Model (for all ions except generic ion)

  G4HadronElasticProcess* elasticProcess = new G4HadronElasticProcess();
  G4LElastic* elasticModel = new G4LElastic();
  elasticProcess->RegisterMe(elasticModel);

  // Hadronic inelastic models

  G4BinaryLightIonReaction* lightIonReaction = new G4BinaryLightIonReaction();
  lightIonReaction->SetMinEnergy(0.);
  lightIonReaction->SetMaxEnergy(30.*MeV);

  G4TripathiLightCrossSection* tripLightCS = new G4TripathiLightCrossSection();
  G4TripathiCrossSection* tripCS = new G4TripathiCrossSection();
  G4IonsShenCrossSection* shenCS = new G4IonsShenCrossSection();
  G4IonsSihverCrossSection* sihverCS = new G4IonsSihverCrossSection();

  G4ProcessManager * pManager = 0;

  ///////////////////
  //               //
  //   Deuteron    //
  //               //
  ///////////////////

  pManager = G4Deuteron::Deuteron()->GetProcessManager();

  // EM processes
  pManager->AddProcess(new G4MultipleScattering(), -1, 1, 1);
  pManager->AddProcess(new G4hIonisation(),        -1, 2, 2);

  // hadron elastic
  pManager->AddDiscreteProcess(elasticProcess);

  // hadron inelastic

// G4LEDeuteronInelastic* deuteriumLEPModel = new G4LEDeuteronInelastic; // deuteriumLEPModel->SetMaxEnergy(30.*MeV);

  G4DeuteronInelasticProcess* dinelProc = new G4DeuteronInelasticProcess();
  dinelProc->RegisterMe(lightIonReaction);
//  dinelProc->RegisterMe(deuteriumLEPModel);
  dinelProc->AddDataSet(sihverCS);
  dinelProc->AddDataSet(shenCS);
  dinelProc->AddDataSet(tripCS);
  dinelProc->AddDataSet(tripLightCS);
  pManager->AddDiscreteProcess(dinelProc);

  ///////////////////
  //               //
  //    Triton     //
  //               //
  ///////////////////

  pManager = G4Triton::Triton()->GetProcessManager();

  // EM processes
  pManager->AddProcess(new G4MultipleScattering(), -1, 1, 1);
  pManager->AddProcess(new G4hIonisation(),        -1, 2, 2);

  // hadron elastic
  pManager->AddDiscreteProcess(elasticProcess);

  // hadron inelastic
  G4TritonInelasticProcess* tinelProc = new G4TritonInelasticProcess();
  tinelProc->RegisterMe(lightIonReaction);
  tinelProc->AddDataSet(sihverCS);
  tinelProc->AddDataSet(shenCS);
  tinelProc->AddDataSet(tripCS);
  tinelProc->AddDataSet(tripLightCS);
  pManager->AddDiscreteProcess(tinelProc);

  ///////////////////
  //               //
  //      3He      //
  //               //
  ///////////////////

  pManager = G4He3::He3()->GetProcessManager();

  // EM processes
  pManager->AddProcess(new G4MultipleScattering(), -1, 1, 1);
  pManager->AddProcess(new G4ionIonisation(),      -1, 2, 2);

  // hadron inelastic
  G4HadronInelasticProcess* he3inelProc =
    new G4HadronInelasticProcess("He3Inelastic",G4He3::He3());
  he3inelProc->RegisterMe(lightIonReaction);
  he3inelProc->AddDataSet(sihverCS);
  he3inelProc->AddDataSet(shenCS);
  he3inelProc->AddDataSet(tripCS);
  he3inelProc->AddDataSet(tripLightCS);
  pManager->AddDiscreteProcess(he3inelProc);

  ///////////////////
  //               //
  //     Alpha     //
  //               //
  ///////////////////

  pManager = G4Alpha::Alpha()->GetProcessManager();

  // EM processes
  pManager->AddProcess(new G4MultipleScattering(), -1, 1, 1);
  pManager->AddProcess(new G4ionIonisation(),      -1, 2, 2);

  // hadron elastic
  pManager->AddDiscreteProcess(elasticProcess);

  // hadron inelastic
  G4AlphaInelasticProcess* ainelProc = new G4AlphaInelasticProcess();
  ainelProc->RegisterMe(lightIonReaction);
  ainelProc->AddDataSet(sihverCS);
  ainelProc->AddDataSet(shenCS);
  ainelProc->AddDataSet(tripCS);
  ainelProc->AddDataSet(tripLightCS);
  pManager->AddDiscreteProcess(ainelProc);

  ///////////////////
  //               //
  //  generic ion  //
  //               //
  ///////////////////

  pManager = G4GenericIon::GenericIon()->GetProcessManager();

  // EM processes for generic ion
  pManager->AddProcess(new G4MultipleScattering(), -1, 1, 1);
  pManager->AddProcess(new G4ionIonisation(),      -1, 2, 2);

  // hadron inelastic
  G4HadronInelasticProcess* genericIon =
    new G4HadronInelasticProcess("ionInelastic",G4GenericIon::GenericIon());
  genericIon->RegisterMe(lightIonReaction);
  genericIon->AddDataSet(sihverCS);
  genericIon->AddDataSet(shenCS);
  genericIon->AddDataSet(tripCS);
  pManager->AddDiscreteProcess(genericIon);
}

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

1 None: Re: Why does not my reaction work?   (cheng - 15 Mar, 2008)
1 None: Re: Why does not my reaction work?   (gin chen - 15 Mar, 2008)
3 None: Re: Why does not my reaction work?   (Dennis H. Wright - 07 Apr, 2008)
 Add Message Add Message
to: "Why does not my reaction work?"

 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 ]