File: Test_grating_trans.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 (79 lines) | stat: -rw-r--r-- 2,339 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
/*******************************************************************************
 * Instrument: Test_grating_trans
*
* %Identification
* Written by: Erik B Knudsen (erkn@fysik.dtu.dk)
* Date: Aug 21
* Origin: DTU Physics
* Version: 1.0
* %INSTRUMENT_SITE: Tests_optics
*
* Template/test instrument for Grating_trans
*
* %Description
* A simple test insrument for the transmission grating component. Two examples
* of gratings are included matching those in the Chandra X-ray Observatory
*
* %Example: Test_grating_trans.instr E0=1.2 dE=0.01 GD=3 MEG=0 Detector: psd_giant_I=0.0269197
* %Example: Test_grating_trans.instr E0=1.2 dE=0.01 GD=3 MEG=1 Detector: psd_giant_I=0.0573462
*
* %Parameters
* E0: [keV]        Central energy to emit from the source.
* dE: [kEV]        Half energy spread of source.
* GD: [m]          Distance from grating to detector.
* Rx: [deg]        Rotation of grating around the X-axis.
* Ry: [deg]        Rotation of grating around the Y-axis.
* Rz: [deg]        Rotation of grating around the Z-axis.
* MEG: [ ]         Flag to chosse between the two included gratings. 1: medium energy grating (MEG), 0: high energy grating (HEG).
*
* %Link
* https://cxc.harvard.edu/proposer/POG/html/chap8.html#tb:hetg-params
*
* %End
*******************************************************************************/
DEFINE INSTRUMENT Test_grating_trans(E0=1, dE=0.001, GD=1, Rx=0, Ry=0,Rz=0, int MEG=0)

DECLARE
%{
%}

INITIALIZE
%{
%}

TRACE

COMPONENT origin = Progress_bar()
AT (0, 0, 0) RELATIVE ABSOLUTE

// insert components here (e.g. Insert -> Source -> ...)
COMPONENT src_div = Source_div(xwidth=2e-8,yheight=25e-3, focus_aw=0.001, focus_ah=0, E0=E0, dE=dE)
AT(0,0,0) RELATIVE origin



COMPONENT MEG_1a = Arm()
AT(0,0,1) RELATIVE origin

COMPONENT MEG_1 = Grating_trans(
    xwidth=25e-3, yheight=25e-3, gamma=0.3, period=4000e-10, zdepth=3600e-10, max_order=3, material="Au.txt"
)
WHEN(MEG) AT(0,0,0) RELATIVE MEG_1a
ROTATED (Rx,Ry,Rz) RELATIVE origin

COMPONENT HEG4 = Grating_trans(
    xwidth=25e-3, yheight=25e-3, gamma=0.4, period=2000e-10, zdepth=5100e-10, max_order=3, material="Au.txt"
)
WHEN(!MEG) AT(0,0,0) RELATIVE MEG_1a
ROTATED(Rx,Ry,Rz) RELATIVE origin

COMPONENT psd_giant = PSD_monitor(xwidth=0.2, yheight=1e-2, filename="psd_giant",ny=1,nx=2001)
AT(0,0,GD) RELATIVE MEG_1a



FINALLY
%{
%}

END