File: Test_Fluorescence.instr

package info (click to toggle)
mccode 3.5.19%2Bds5-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 1,113,256 kB
  • sloc: ansic: 40,697; python: 25,137; yacc: 8,438; sh: 5,405; javascript: 4,596; lex: 1,632; cpp: 742; perl: 296; lisp: 273; makefile: 226; fortran: 132
file content (89 lines) | stat: -rw-r--r-- 2,394 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*******************************************************************************
*         McXtrace instrument definition URL=http://www.mcxtrace.org
*
* Instrument: Test_Fluorescence
*
* %Identification
* Written by: E. Farhi (emmanuel.farhi@synchrotron-soleil.fr)
* Date: March '21
* Origin: Synchrotron SOLEIL
* Release: McXtrace 1.7
* Version: $Revision$
* %INSTRUMENT_SITE: Tests_samples
*
* Example instrument to test the Fluorescence sample.
* 
* %Description
* This instrument simply has a lab source, a few monitors and a sample 
* to model material fluorescence, Compton and Rayleigh scattering. 
* 
* %Example: Test_Fluorescence.instr material=LaB6 -n1e5 Detector: emon_I=7.3e-13
*
* %Parameters
* material: [str]  Material file to use, e.g. chemical formulae "Pb2SnO4"
* E0:       [keV]  Mean photon energy
* dE:       [keV]  Photon energy spread, half width
*
* %End
*******************************************************************************/

DEFINE INSTRUMENT Test_Fluorescence(string material="LaB6", E0=39, dE=0.06)

DECLARE %{
  #ifndef WIN32
  #include <unistd.h>
  #else
  #ifdef WIN32
  #include <io.h>
  #define F_OK 0
  #define access _access
  #endif
  #endif
%}

USERVARS %{
  int Stype;
%}

TRACE

COMPONENT Origin = Progress_bar(percent=1)
AT (0,0,0) ABSOLUTE

COMPONENT source1 =  Source_flat(E0=E0, dE=dE, xwidth=1e-3, yheight=1e-3, focus_xw=0.001, focus_yh=0.001, dist=3)
AT(0,0,0) RELATIVE Origin

COMPONENT sample_mount_point = Arm()
AT(0,0,3) RELATIVE Origin


COMPONENT sample=Fluorescence(material=material,
  xwidth=0.001,yheight=0.001,zdepth=0.0001, p_interact=0.99,
  target_index=1, focus_xw=0.0005, focus_yh=0.0005)
AT (0,0,0) RELATIVE sample_mount_point
EXTEND %{
  if (!SCATTERED) ABSORB;
  Stype=type;
%}

COMPONENT emon = E_monitor(restore_xray=1,nE=2001,Emin=0, Emax=1.2*E0, 
  filename="emon.dat",xwidth=0.007, yheight=0.007)
AT(0,0,0.1) RELATIVE PREVIOUS

COMPONENT psd = PSD_monitor(xwidth=0.0015, yheight=0.0015, nx=100, ny=100, filename="psd.dat")
AT(0,0,0.1) RELATIVE PREVIOUS

COMPONENT emon_fluo = COPY(emon)(filename="Fluorescence.dat")
WHEN (Stype == FLUORESCENCE)
AT(0,0,0.1) RELATIVE PREVIOUS

COMPONENT emon_Compton = COPY(emon)(filename="Compton.dat")
WHEN (Stype == COMPTON)
AT(0,0,0.1) RELATIVE PREVIOUS

COMPONENT emon_Rayleigh = COPY(emon)(filename="Rayleigh.dat")
WHEN (Stype == RAYLEIGH)
AT(0,0,0.1) RELATIVE PREVIOUS


END