EF, Oct 30, 2001 ; minor changes. mccompcurname replaced
This routine is a neutron source (rectangular or circular), which aims at
a square target centered at the beam (in order to improve MC-acceptance
rate). The angular divergence is then given by the dimensions of the
The neutron energy/wavelength is distributed between Emin=E0-dE and
Emax=E0+dE or Lmin=Lambda0-dLambda and Lmax=Lambda0+dLambda. The I1 may
be either arbitrary (I1=0), or specified in neutrons per steradian per
square cm per Angstrom. A Maxwellian spectra may be selected if you give
the source temperatures (up to 3). And a high energytail of the shape A/(lambda0-lambda) can also be
specified if you give an A. Finally, a file with the flux as a
function of the wavelength [lambda(AA) flux(n/s/cm^2/st/AA)] may be used
with the 'flux_file' parameter. Format is 2 columns free text.
Additionl distributions for the horizontal and vertical phase spaces
distributions (position-divergence) may be specified with the
'xdiv_file' and 'ydiv_file' parameters. Format is free text, requiring
a comment line '# xylimits: pos_min pos_max div_min div_max' to set
the axis of the distribution matrix. All these files may be generated using
standard monitors (better in McStas/PGPLOT format), e.g.:
Monitor_nD(options="auto lambda per cm2")
Monitor_nD(options="x hdiv, all auto")
Monitor_nD(options="y vdiv, all auto")
The source shape is defined by its radius, or can alternatively be squared
if you specify non-zero h and w parameters.
The beam is spatially uniform, but becomes gaussian if one of the source
dimensions (radius, h or w) is negative, or you set the gaussian flag.
Divergence profiles are triangular.
The source may have a thickness, which will broaden the default zero time
For the Maxwellian spectra, the generated intensity is dPhi/dLambda (n/s/AA)
For flat spectra, the generated intensity is Phi (n/s).
Source_gen(radius=0.1,Lambda0=2.36,dLambda=0.16, T1=20, I1=1e13)
Source_gen(h=0.1,w=0.1,Emin=1,Emax=3, I1=1e13, verbose=1, gaussian=1)
t = rand0max(1e-3); // set time from 0 to 1 ms for TOF instruments.
Some sources parameters:
PSI cold source T1= 296.16, I1=8.5E11, T2=40.68, I2=5.2E11
ILL VCS cold source T1=216.8,I1=1.24e+13,T2=33.9,I2=1.02e+13
(H1) T3=16.7 ,I3=3.0423e+12
ILL HCS cold source T1=413.5,I1=10.22e12,T2=145.8,I2=3.44e13
(H5) T3=40.1 ,I3=2.78e13
ILL Thermal tube T1=683.7,I1=0.5874e+13,T2=257.7,I2=2.5099e+13
(H12) T3=16.7 ,I3=1.0343e+12
ILL Hot source T1=1695,I1=1.74e13,T2=708,I2=3.9e12
Feb 2005: output cross-checked for 3 Maxwellians against VITESS source
I(lambda), I(hor_div), I(vert_div) identical in shape and absolute values
Validated by: K. Lieutenant
WARNING: This is a contributed Component.
Parameters in boldface are required;
the others are optional.
Name of a two columns [lambda flux] text file that contains
the wavelength distribution of the flux in [1/(s*cm**2*st*AA)].
Comments (#) and further columns are ignored. Format is
compatible with McStas/PGPLOT wavelength monitor files.
When specified, temperature and intensity values are ignored.
Name of the x-horiz. divergence distribution file, given as a
free format text matrix, preceeded with a line
'# xylimits: xmin xmax xdiv_min xdiv_max'
Name of the y-vert. divergence distribution file, given as a
free format text matrix, preceeded with a line
'# xylimits: ymin ymax ydiv_min ydiv_max'
Radius of circle in (x,y,0) plane where neutrons
are generated. You may also use 'h' and 'w' for a square source
Distance to target along z axis.
Width(x) of target.
If dist=0.0, xw = full horz. div in deg
Height(y) of target.
If dist=0.0, yh = full vert. div in deg
Mean energy of neutrons.
Energy spread of neutrons, half width.
Mean wavelength of neutrons.
Wavelength spread of neutrons,half width
Source flux per solid angle, area and Angstrom
Source y-height, then does not use radius parameter
Source x-width, then does not use radius parameter
Use gaussian divergence beam, normal distributions
display info about the source. -1 unactivate source.
Temperature of the Maxwellian source, 0=none
When true (1), indicates that flux file data is already per
Angstroem. If false, file data is per wavelength bin.
When true, will transform the flux table in log scale to
improve the sampling. This may also cause
Minimum wavelength of neutrons
Maximum wavelength of neutrons
Minimum energy of neutrons
Maximum energy of neutrons
Second Maxwellian source Temperature, 0=none
Second Maxwellian Source flux
Third Maxwellian source Temperature, 0=none
Third Maxwellian Source flux
Source z-length, not anymore flat
Angle abowe the x-z-plan that the source is amied at
Angle from the z-axis in the x-z-plan that the source is amied at