Message: Re: cold neutron spin tracking Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question Re: cold neutron spin tracking 

Keywords: spin, neutrons, magnetic field
Forum: Fields: Magnetic and Otherwise
Re: Question cold neutron spin tracking (Emil Frlez)
Date: 11 Jan, 2006
From: Emil Frlez <Emil Frlez>

 Thanks Peter,
 
 your comment was helpful, but has enabled me to only
 partially solve the problem. Maybe you or
 others can think about this: 

 I did not want to modify and recompile
 the Geant4 source so that it would track the neutral
 particle in magnetic field, but I fudged it:

 (1) I define the new type of neutron that has
     a charge "1.0*eplus" and call this new partice "bdneutron".
     I am interested only how its spin changes as
     a function of time and position, and I want it
     to move straight, field or no field.

 (2) Therefore, I copy G4Mag_SpinEqRhs.cc into
     my new user file G4Mag_Neutron_SpinEqRhs.cc where I do
     necessary modifications:

     (i)    // Reset the anomaly for Neutron
            anomaly = -2.913;

     (ii)   // "turn off" the force on the "bdneutron" ;8-)
 
           dydx[3] = 0.; //cof*(y[4]*B[2] - y[5]*B[1]) ;   // Ax = a*(Vy*Bz - Vz*By)
           dydx[4] = 0.; //cof*(y[5]*B[0] - y[3]*B[2]) ;   // Ay = a*(Vz*Bx - Vx*Bz)
           dydx[5] = 0.; //cof*(y[3]*B[1] - y[4]*B[0]) ;   // Az = a*(Vx*By - Vy*Bx)

 Now, I thought I would have a bdneutron tracked straight in a magnetic field,
 with spin equations integrated. Well, it actually works, I tried it
 for a polarized neutron with Ekine=1.0001*eV. It steps
 thru my "World" from (0,1799.9*mm,0) to (0,-1999.5*mm,0) and
 spin is tracked properly, I tried several different spin states, eg.:

sx   sy       sz        x y/mm   z particle  Ekine/MeV  time/ns

0.99 0.140759 0.0093242 0 1799.9 0 bdneutron 1.0001e-06 2167.34
0.99 0.139835 0.0186078 0 1799.8 0 bdneutron 1.0001e-06 4334.68
0.99 0.138299 0.0278099 0 1799.7 0 bdneutron 1.0001e-06 6502.02
0.99 0.136158 0.0368904 0 1799.6 0 bdneutron 1.0001e-06 8669.36
0.99 0.133422 0.0458095 0 1799.5 0 bdneutron 1.0001e-06 10836.7
0.99 0.130103 0.0545283 0 1799.4 0 bdneutron 1.0001e-06 13004
0.99 0.126214 0.0630085 0 1799.3 0 bdneutron 1.0001e-06 15171.4
     ...
0.99 0.140802 -0.00865308 0 -1999.4 0 bdneutron 1.0001e-06 8.23459e+07
0.99 0.140802 -0.00865308 0 -1999.5 0 bdneutron 1.0001e-06 8.2348e+07

 But then, in my application, I need to track a cold neutron
 with Ekine=1E-6*eV. And my code does not track this kind of
 "charged" bdneutron. I try Ekine=0.9999*eV and
 the Geant4 then does just one step and then it terminates, 
 and it seems there is also a memory problem, because it thinks
 that the kinetic energy of the particle is 2.11758e-22/MeV:

 0.99 0.140759 0.00932521 0 1799.9 0 bdneutron 2.11758e-22 2167.56
 0.99 0.140759 0.00932521 0 1799.9 0 bdneutron 2.11758e-22 2167.56

 So there is some cut somewhere, I assume, in the integration of equations 
 of motion, there is some "if statement", I am not able to locate 
 with a value Ekine_cut=1*eV. 

 I have checked that the default, neutral neutron with Ekine=9.09495E-7*eV, 
 is transported thru my detector correctly:

 0.99 0.141067 0 0 1799.9 0 neutron 9.09495e-13 7581.02
 0.99 0.141067 0 0 1799.8 0 neutron 9.09495e-13 15162
 0.99 0.141067 0 0 1799.7 0 neutron 9.09495e-13 22743.1
 0.99 0.141067 0 0 1799.6 0 neutron 9.09495e-13 30324.1
 0.99 0.141067 0 0 1799.5 0 neutron 9.09495e-13 37905.1
 0.99 0.141067 0 0 1799.4 0 neutron 9.09495e-13 45486.1
 0.99 0.141067 0 0 1799.3 0 neutron 9.09495e-13 53067.2
 0.99 0.141067 0 0 1799.2 0 neutron 9.09495e-13 60648.2
 0.99 0.141067 0 0 1799.1 0 neutron 9.09495e-13 68229.2
....
0.99 0.141067 0 0 -1999.5 0 neutron 9.09495e-13 2.88041e+08

 But now, the equations of motion are not integrated and
 spin components do not change ;8-( A bummer!

 So, it appears to me that even if I edited out and recompiled
 "if( (particleCharge != 0.0) )" in the code quoted by Peter above in
 G4double G4Transportation::AlongStepGetPhysicalInteractionLength()
 I would still have non-working code for Ekine<1*eV ...

					Best Regards, Emil


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

1 Note: Re: cold neutron spin tracking   (Emil Frlez - 03 Feb, 2006)
3 None: Re: cold neutron spin tracking   (Kosta Kliakhandler - 23 Jun, 2010)
1 Idea: Re: cold neutron spin tracking   (Gumplinger Peter - 24 Jun, 2010)
1 None: Re: cold neutron spin tracking   (Kosta Kliakhandler - 25 Jun, 2010)
... 1 Message(s)
2 None: Re: cold neutron spin tracking   (John Apostolakis - 24 Jun, 2010)
1 None: Re: cold neutron spin tracking   (Kosta Kliakhandler - 25 Jun, 2010)
... 2 Message(s)
 Add Message Add Message
to: "Re: cold neutron spin tracking"

 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 ]