Message: define deuterium but get different Z and N value of target nucleus Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question define deuterium but get different Z and N value of target nucleus 

Keywords: define deuterium but get different Z and N value of target nucleus
Forum: Hadronic Processes
Date: 13 Jan, 2007
From: Lam YiHua <LamYiHua@gmail.com>

dear Experts,

I try to define a material composed by deuterium.

I used both of the methods below to define deuterium element:

//Deuterium element a = 2.01363*g/mole; G4Element *D = new G4Element(name="Deuterium" ,symbol="(D)" , iz=1, a);

and the second method

//Deuterium element a = 2.01363*g/mole; G4Isotope *D2 = new G4Isotope(name="D2", z=1, n=2, a); G4Element *D = new G4Element(name="Deuterium" ,symbol="(D)", ncomponents=1); D->AddIsotope(D2, abundance= 100.00*perCent);

after that I define deuterium ice

   // Deuterium solid
  density = 195*kg/m3;
  G4Material *DeuteronSolid = new G4Material(name="DeuteronSolid", density, ncomponents=2);
  DeuteronSolid ->AddElement(D , 1);
  DeuteronSolid ->AddElement(D , 1);  

I have added a few lines into the G4LEDeuteronInelastic to the info of the target nucleus of the target material.

G4HadFinalState * G4DeuteronInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { 
    theParticleChange.Clear();
    const G4HadProjectile 	*originalIncident = &aTrack;

    const G4Material 		*targetMaterial = aTrack.GetMaterial();

    G4double N = targetNucleus.GetN();
    G4double Z = targetNucleus.GetZ();
    G4cout<<"N value of target nucleus is "<<N<<G4endl;
    G4cout<<"Z value of target nucleus is "<<Z<<G4endl;G
...
...
...

Then I defined the whole "experimental hall" and materials inside the hall are composed by deuteriumSolid

Run is ok, G4LEDeuteronInelastic was invoked, but N and Z value of the target nucleus are weird.

...	...	...	...	...	...	...	...	...
...	...	...	...	...	...	...	...	...
...	...	...	...	...	...	...	...	...
         Polarization - x    :                    0                   0
         Polarization - y    :                    0                   0
         Polarization - Z    :                    0                   0
         Weight              :                    1                   1
         Step Status         :            Undefined     AlongStep Proc.
         Process defined Step:            Undefined           hLowEIoni
      -----------------------------------------------------------------------

    ++List of secondaries generated (x,y,z,kE,t,PID):  No. of secodaries = 0

N value of target nucleus is 1

Z value of target nucleus is 1 ... ...

The run should produce N=2 and Z=1 as the whole environment is filled with deuterium. I've checked the program sequence of G4Material, G4Element, G4Isotope, I think the sequence is ok. http://geant4-hn.slac.stanford.edu:5090/HyperNews/public/get/materials/103.html

I'm not sure whether the problem is due to the method G4HadronicProcess::ChooseAandZ or G4HadronicProcess::GeneralPostStepDoIt

What should I modify in G4HadronicProcess (or the instantiated MyHadronicProcess) to make sure that the expected N and Z are correct?

many thanks,

regards,

YiHua

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

1 None: Re: define deuterium but get different Z and N value of target nucleus   (Dennis H. Wright - 14 Jan, 2007)
(_ None: Re: define deuterium but get different Z and N value of target nucleus   (Lam YiHua - 14 Jan, 2007)
 Add Message Add Message
to: "define deuterium but get different Z and N value of target nucleus"

 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 ]