From c16b8da177d5a814330bcab6d5722e4f75331438 Mon Sep 17 00:00:00 2001 From: paraiso Date: Tue, 21 Feb 2006 15:02:20 +0000 Subject: [PATCH] Added to SVN repository --- geant4/LEMuSR/MEYER/M10.eps | 734 ---- geant4/LEMuSR/MEYER/M10.keV | 167 - geant4/LEMuSR/MEYER/M10.pdf | Bin 8540 -> 0 bytes geant4/LEMuSR/MEYER/M10sin.eps | 805 ---- geant4/LEMuSR/MEYER/M10sin.pdf | Bin 9389 -> 0 bytes geant4/LEMuSR/MEYER/M20.keV | 167 - geant4/LEMuSR/MEYER/M20sin.eps | 805 ---- geant4/LEMuSR/MEYER/M30.keV | 111 - geant4/LEMuSR/MEYER/M5.keV | 203 -- geant4/LEMuSR/MEYER/M50.keV | 134 - geant4/LEMuSR/MEYER/Mall.eps | 1129 ------ geant4/LEMuSR/MEYER/Mall.pdf | Bin 19140 -> 0 bytes geant4/LEMuSR/MEYER/Mall2.eps | 977 ----- geant4/LEMuSR/MEYER/Mall2.pdf | Bin 15881 -> 0 bytes geant4/LEMuSR/MEYER/Mallsin.eps | 978 ----- geant4/LEMuSR/MEYER/Mallsin.pdf | Bin 15322 -> 0 bytes geant4/LEMuSR/MEYER/a.out | Bin 30825 -> 0 bytes geant4/LEMuSR/MEYER/meyer.cc | 888 ----- geant4/LEMuSR/MEYER/meyer.for | 364 -- geant4/LEMuSR/MEYER/meyer.h | 27 - geant4/LEMuSR/MEYER/mk.sh | 1 - geant4/LEMuSR/MEYER/mtest.for | 698 ---- geant4/LEMuSR/MEYER/mutrack.for | 5466 ---------------------------- geant4/LEMuSR/MEYER/testmeyer.cc | 195 - geant4/LEMuSR/MEYER/testmeyer.eps | 730 ---- geant4/LEMuSR/MEYER/testmeyer.out | 168 - geant4/LEMuSR/MEYER/testmeyer.pdf | Bin 6921 -> 0 bytes geant4/LEMuSR/MEYER/testmeyer2.eps | 703 ---- geant4/LEMuSR/MEYER/testmeyer2.pdf | Bin 7728 -> 0 bytes geant4/LEMuSR/MEYER/tkm.out | 168 - geant4/LEMuSR/MEYER/txt.for | 1156 ------ 31 files changed, 16774 deletions(-) delete mode 100644 geant4/LEMuSR/MEYER/M10.eps delete mode 100644 geant4/LEMuSR/MEYER/M10.keV delete mode 100644 geant4/LEMuSR/MEYER/M10.pdf delete mode 100644 geant4/LEMuSR/MEYER/M10sin.eps delete mode 100644 geant4/LEMuSR/MEYER/M10sin.pdf delete mode 100644 geant4/LEMuSR/MEYER/M20.keV delete mode 100644 geant4/LEMuSR/MEYER/M20sin.eps delete mode 100644 geant4/LEMuSR/MEYER/M30.keV delete mode 100644 geant4/LEMuSR/MEYER/M5.keV delete mode 100644 geant4/LEMuSR/MEYER/M50.keV delete mode 100644 geant4/LEMuSR/MEYER/Mall.eps delete mode 100644 geant4/LEMuSR/MEYER/Mall.pdf delete mode 100644 geant4/LEMuSR/MEYER/Mall2.eps delete mode 100644 geant4/LEMuSR/MEYER/Mall2.pdf delete mode 100644 geant4/LEMuSR/MEYER/Mallsin.eps delete mode 100644 geant4/LEMuSR/MEYER/Mallsin.pdf delete mode 100755 geant4/LEMuSR/MEYER/a.out delete mode 100644 geant4/LEMuSR/MEYER/meyer.cc delete mode 100644 geant4/LEMuSR/MEYER/meyer.for delete mode 100644 geant4/LEMuSR/MEYER/meyer.h delete mode 100644 geant4/LEMuSR/MEYER/mk.sh delete mode 100644 geant4/LEMuSR/MEYER/mtest.for delete mode 100644 geant4/LEMuSR/MEYER/mutrack.for delete mode 100644 geant4/LEMuSR/MEYER/testmeyer.cc delete mode 100644 geant4/LEMuSR/MEYER/testmeyer.eps delete mode 100644 geant4/LEMuSR/MEYER/testmeyer.out delete mode 100644 geant4/LEMuSR/MEYER/testmeyer.pdf delete mode 100644 geant4/LEMuSR/MEYER/testmeyer2.eps delete mode 100644 geant4/LEMuSR/MEYER/testmeyer2.pdf delete mode 100644 geant4/LEMuSR/MEYER/tkm.out delete mode 100644 geant4/LEMuSR/MEYER/txt.for diff --git a/geant4/LEMuSR/MEYER/M10.eps b/geant4/LEMuSR/MEYER/M10.eps deleted file mode 100644 index dc500bb..0000000 --- a/geant4/LEMuSR/MEYER/M10.eps +++ /dev/null @@ -1,734 +0,0 @@ -%!PS-Adobe-2.0 -%%Title: M10.eps -%%Creator: gnuplot 3.7 patchlevel 3 -%%CreationDate: Mon Apr 11 19:41:32 2005 -%%DocumentFonts: (atend) -%%BoundingBox: 50 50 554 770 -%%Orientation: Landscape -%%Pages: (atend) -%%EndComments -/gnudict 256 dict def -gnudict begin -/Color true def -/Solid false def -/gnulinewidth 5.000 def -/userlinewidth gnulinewidth def -/vshift -46 def -/dl {10 mul} def -/hpt_ 31.5 def -/vpt_ 31.5 def -/hpt hpt_ def -/vpt vpt_ def -/M {moveto} bind def -/L {lineto} bind def -/R {rmoveto} bind def -/V {rlineto} bind def -/vpt2 vpt 2 mul def -/hpt2 hpt 2 mul def -/Lshow { currentpoint stroke M - 0 vshift R show } def -/Rshow { currentpoint stroke M - dup stringwidth pop neg vshift R show } def -/Cshow { currentpoint stroke M - dup stringwidth pop -2 div vshift R show } def -/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def - /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def -/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } - {pop pop pop Solid {pop []} if 0 setdash} ifelse } def -/BL { stroke userlinewidth 2 mul setlinewidth } def -/AL { stroke userlinewidth 2 div setlinewidth } def -/UL { dup gnulinewidth mul /userlinewidth exch def - dup 1 lt {pop 1} if 10 mul /udl exch def } def -/PL { stroke userlinewidth setlinewidth } def -/LTb { BL [] 0 0 0 DL } def -/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def -/LT0 { PL [] 1 0 0 DL } def -/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def -/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def -/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def -/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def -/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def -/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def -/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def -/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def -/Pnt { stroke [] 0 setdash - gsave 1 setlinecap M 0 0 V stroke grestore } def -/Dia { stroke [] 0 setdash 2 copy vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke - Pnt } def -/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V - currentpoint stroke M - hpt neg vpt neg R hpt2 0 V stroke - } def -/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke - Pnt } def -/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M - hpt2 vpt2 neg V currentpoint stroke M - hpt2 neg 0 R hpt2 vpt2 V stroke } def -/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke - Pnt } def -/Star { 2 copy Pls Crs } def -/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath fill } def -/TriUF { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath fill } def -/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke - Pnt } def -/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath fill} def -/DiaF { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath fill } def -/Pent { stroke [] 0 setdash 2 copy gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore Pnt } def -/PentF { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath fill grestore } def -/Circle { stroke [] 0 setdash 2 copy - hpt 0 360 arc stroke Pnt } def -/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def -/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def -/C1 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - vpt 0 360 arc closepath } bind def -/C2 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C3 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C4 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C5 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc - 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc } bind def -/C6 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C7 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C8 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C9 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 450 arc closepath fill - vpt 0 360 arc closepath } bind def -/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill - 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C11 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C12 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C13 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C14 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 360 arc closepath fill - vpt 0 360 arc } bind def -/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto - neg 0 rlineto closepath } bind def -/Square { dup Rec } bind def -/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def -/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def -/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def -/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def -/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def -/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def -/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill - exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def -/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def -/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill - 2 copy vpt Square fill - Bsquare } bind def -/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def -/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def -/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill - Bsquare } bind def -/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill - Bsquare } bind def -/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def -/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy vpt Square fill Bsquare } bind def -/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def -/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def -/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def -/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def -/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def -/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def -/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def -/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def -/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def -/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def -/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def -/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def -/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def -/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def -/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def -/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def -/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def -/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def -/DiaE { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke } def -/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke } def -/TriUE { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke } def -/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke } def -/PentE { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore } def -/CircE { stroke [] 0 setdash - hpt 0 360 arc stroke } def -/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def -/DiaW { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V Opaque stroke } def -/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V Opaque stroke } def -/TriUW { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V Opaque stroke } def -/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V Opaque stroke } def -/PentW { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - Opaque stroke grestore } def -/CircW { stroke [] 0 setdash - hpt 0 360 arc Opaque stroke } def -/BoxFill { gsave Rec 1 setgray fill grestore } def -/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont -dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall -currentdict end definefont pop -end -%%EndProlog -%%Page: 1 1 -gnudict begin -gsave -50 50 translate -0.100 0.100 scale -90 rotate -0 -5040 translate -0 setgray -newpath -(Helvetica) findfont 140 scalefont setfont -1.000 UL -LTb -1.000 UL -LTa -714 420 M -6248 0 V -1.000 UL -LTb -714 420 M -63 0 V -6185 0 R --63 0 V -630 420 M -( 0) Rshow -1.000 UL -LTa -714 865 M -6248 0 V -1.000 UL -LTb -714 865 M -63 0 V -6185 0 R --63 0 V -630 865 M -( 0.1) Rshow -1.000 UL -LTa -714 1310 M -6248 0 V -1.000 UL -LTb -714 1310 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.2) Rshow -1.000 UL -LTa -714 1756 M -6248 0 V -1.000 UL -LTb -714 1756 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.3) Rshow -1.000 UL -LTa -714 2201 M -6248 0 V -1.000 UL -LTb -714 2201 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.4) Rshow -1.000 UL -LTa -714 2646 M -6248 0 V -1.000 UL -LTb -714 2646 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.5) Rshow -1.000 UL -LTa -714 3091 M -6248 0 V -1.000 UL -LTb -714 3091 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.6) Rshow -1.000 UL -LTa -714 3536 M -6248 0 V -1.000 UL -LTb -714 3536 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.7) Rshow -1.000 UL -LTa -714 3982 M -6248 0 V -1.000 UL -LTb -714 3982 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.8) Rshow -1.000 UL -LTa -714 4427 M -6248 0 V -1.000 UL -LTb -714 4427 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.9) Rshow -1.000 UL -LTa -714 4872 M -6248 0 V -1.000 UL -LTb -714 4872 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 1) Rshow -1.000 UL -LTa -714 420 M -0 4452 V -1.000 UL -LTb -714 420 M -0 63 V -0 4389 R -0 -63 V -714 280 M -( 0) Cshow -1.000 UL -LTa -1408 420 M -0 4452 V -1.000 UL -LTb -1408 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 5) Cshow -1.000 UL -LTa -2102 420 M -0 4452 V -1.000 UL -LTb -2102 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 10) Cshow -1.000 UL -LTa -2797 420 M -0 4452 V -1.000 UL -LTb -2797 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 15) Cshow -1.000 UL -LTa -3491 420 M -0 4452 V -1.000 UL -LTb -3491 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 20) Cshow -1.000 UL -LTa -4185 420 M -0 4452 V -1.000 UL -LTb -4185 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 25) Cshow -1.000 UL -LTa -4879 420 M -0 4452 V -1.000 UL -LTb -4879 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 30) Cshow -1.000 UL -LTa -5574 420 M -0 4109 V -0 280 R -0 63 V -1.000 UL -LTb -5574 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 35) Cshow -1.000 UL -LTa -6268 420 M -0 4109 V -0 280 R -0 63 V -1.000 UL -LTb -6268 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 40) Cshow -1.000 UL -LTa -6962 420 M -0 4452 V -1.000 UL -LTb -6962 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 45) Cshow -1.000 UL -LTb -714 420 M -6248 0 V -0 4452 V --6248 0 V -714 420 L -140 2646 M -currentpoint gsave translate 90 rotate 0 0 M -(Meyer's distribution) Cshow -grestore -3838 70 M -(scatt. angle [deg]) Cshow -1.000 UP -1.000 UL -LT0 -6311 4739 M -('M10.keV' us 1:2) Rshow -783 4872 Pls -853 4843 Pls -922 4814 Pls -992 4785 Pls -1061 4756 Pls -1131 4712 Pls -1200 4619 Pls -1269 4527 Pls -1339 4434 Pls -1408 4342 Pls -1478 4238 Pls -1547 4121 Pls -1616 4003 Pls -1686 3869 Pls -1755 3734 Pls -1825 3601 Pls -1894 3467 Pls -1964 3334 Pls -2033 3201 Pls -2102 3067 Pls -2172 2939 Pls -2241 2811 Pls -2311 2682 Pls -2380 2554 Pls -2450 2430 Pls -2519 2323 Pls -2588 2215 Pls -2658 2108 Pls -2727 2001 Pls -2797 1903 Pls -2866 1818 Pls -2936 1733 Pls -3005 1648 Pls -3074 1563 Pls -3144 1489 Pls -3213 1420 Pls -3283 1354 Pls -3352 1297 Pls -3421 1239 Pls -3491 1193 Pls -3560 1147 Pls -3630 1101 Pls -3699 1055 Pls -3769 1011 Pls -3838 978 Pls -3907 945 Pls -3977 912 Pls -4046 879 Pls -4116 850 Pls -4185 826 Pls -4255 802 Pls -4324 778 Pls -4393 755 Pls -4463 735 Pls -4532 717 Pls -4602 700 Pls -4671 682 Pls -4740 665 Pls -4810 652 Pls -4879 640 Pls -4949 629 Pls -5018 617 Pls -5088 605 Pls -5157 596 Pls -5226 587 Pls -5296 578 Pls -5365 569 Pls -5435 560 Pls -5504 554 Pls -5574 547 Pls -5643 540 Pls -5712 534 Pls -5782 529 Pls -5851 524 Pls -5921 520 Pls -5990 516 Pls -6060 512 Pls -6129 508 Pls -6198 504 Pls -6268 500 Pls -6337 496 Pls -6407 492 Pls -6476 488 Pls -6545 483 Pls -6615 481 Pls -6684 479 Pls -6754 477 Pls -6823 474 Pls -6893 472 Pls -6962 470 Pls -6594 4739 Pls -1.000 UL -LT1 -6311 4599 M -(exp\(-x*x/200.\)) Rshow -6395 4599 M -399 0 V -714 4872 M -63 -5 V -63 -13 V -63 -23 V -63 -32 V -64 -41 V -63 -49 V -63 -57 V -63 -65 V -63 -72 V -63 -80 V -63 -86 V -63 -92 V -63 -98 V -64 -103 V -63 -107 V -63 -112 V -63 -114 V -63 -117 V -63 -120 V -63 -121 V -63 -122 V -63 -123 V -64 -122 V -63 -123 V -63 -121 V -63 -120 V -63 -118 V -63 -115 V -63 -114 V -63 -110 V -63 -107 V -64 -104 V -63 -101 V -63 -96 V -63 -93 V -63 -89 V -63 -85 V -63 -80 V -63 -77 V -63 -72 V -64 -69 V -63 -64 V -63 -61 V -63 -56 V -63 -53 V -63 -50 V -63 -46 V -63 -42 V -63 -39 V -64 -37 V -63 -33 V -63 -30 V -63 -28 V -63 -26 V -63 -23 V -63 -22 V -63 -19 V -63 -17 V -64 -16 V -63 -14 V -63 -13 V -63 -11 V -63 -10 V -63 -9 V -63 -8 V -63 -8 V -63 -6 V -64 -6 V -63 -4 V -63 -5 V -63 -4 V -63 -3 V -63 -3 V -63 -2 V -63 -3 V -63 -2 V -64 -1 V -63 -2 V -63 -1 V -63 -1 V -63 -1 V -63 -1 V -63 0 V -63 -1 V -63 0 V -64 -1 V -63 0 V -63 -1 V -63 0 V -63 0 V -63 0 V -63 0 V -63 0 V -63 -1 V -64 0 V -63 0 V -63 0 V -63 0 V -63 0 V -stroke -grestore -end -showpage -%%Trailer -%%DocumentFonts: Helvetica -%%Pages: 1 diff --git a/geant4/LEMuSR/MEYER/M10.keV b/geant4/LEMuSR/MEYER/M10.keV deleted file mode 100644 index a5743d4..0000000 --- a/geant4/LEMuSR/MEYER/M10.keV +++ /dev/null @@ -1,167 +0,0 @@ -0.5 1 0 -1 0.99351 0.0357481 -1.5 0.98702 0.0710264 -2 0.98053 0.105832 -2.5 0.974041 0.140163 -3 0.964167 0.173408 -3.5 0.943389 0.203577 -4 0.922611 0.232237 -4.5 0.901832 0.259387 -5 0.881054 0.285026 -5.5 0.857766 0.30825 -6 0.83169 0.328679 -6.5 0.805237 0.347053 -7 0.775073 0.361776 -7.5 0.744909 0.374314 -8 0.714917 0.384761 -8.5 0.684995 0.39308 -9 0.655074 0.399237 -9.5 0.625152 0.403233 -10 0.595231 0.405073 -10.5 0.566391 0.405532 -11 0.537611 0.403961 -11.5 0.508832 0.400324 -12 0.480052 0.394622 -12.5 0.452135 0.387601 -13 0.428038 0.381995 -13.5 0.403941 0.374666 -14 0.379845 0.36562 -14.5 0.355748 0.354859 -15 0.333765 0.344571 -15.5 0.314688 0.335826 -16 0.295611 0.32573 -16.5 0.276534 0.314285 -17 0.257457 0.301498 -17.5 0.240716 0.290187 -18 0.225189 0.279208 -18.5 0.21038 0.268056 -19 0.19745 0.258329 -19.5 0.18452 0.247699 -20 0.173957 0.239428 -20.5 0.163673 0.230816 -21 0.153388 0.22149 -21.5 0.143103 0.211455 -22 0.133193 0.201278 -22.5 0.125753 0.194237 -23 0.118313 0.186686 -23.5 0.110873 0.178626 -24 0.103433 0.170059 -24.5 0.0967697 0.16229 -25 0.0914364 0.156345 -25.5 0.086103 0.150039 -26 0.0807697 0.143374 -26.5 0.0754364 0.136352 -27 0.0709517 0.130535 -27.5 0.0670204 0.125456 -28 0.063089 0.120115 -28.5 0.0591577 0.114514 -29 0.0552264 0.108655 -29.5 0.0523566 0.10466 -30 0.0496858 0.100881 -30.5 0.0470149 0.0969269 -31 0.0443441 0.0927989 -31.5 0.041722 0.0886018 -32 0.0396678 0.0854598 -32.5 0.0376137 0.0821853 -33 0.0355596 0.0787792 -33.5 0.0335055 0.0752425 -34 0.0316272 0.0719762 -34.5 0.0301299 0.0694702 -35 0.0286327 0.0668695 -35.5 0.0271354 0.064175 -36 0.0256381 0.0613873 -36.5 0.0244597 0.0592799 -37 0.0235393 0.0577323 -37.5 0.0226189 0.0561271 -38 0.0216985 0.0544646 -38.5 0.0207781 0.0527455 -39 0.0198577 0.0509702 -39.5 0.0189373 0.0491392 -40 0.0180169 0.0472529 -40.5 0.0170965 0.045312 -41 0.0161761 0.0433168 -41.5 0.0152557 0.041268 -42 0.0143353 0.0391661 -42.5 0.013698 0.0377927 -43 0.0132167 0.0368168 -43.5 0.0127354 0.0358126 -44 0.0122542 0.0347803 -44.5 0.0117729 0.0337203 -45 0.0112916 0.0326328 -45.5 0.0108103 0.0315181 -46 0.010329 0.0303765 -46.5 0.00984769 0.0292083 -47 0.00936639 0.0280139 -47.5 0.0088851 0.0267934 -48 0.00840381 0.0255473 -48.5 0.00807864 0.0247543 -49 0.00780923 0.0241159 -49.5 0.00753982 0.0234628 -50 0.00727041 0.0227952 -50.5 0.007001 0.0221132 -51 0.00673158 0.0214171 -51.5 0.00646217 0.0207071 -52 0.00619276 0.0199833 -52.5 0.00592335 0.0192459 -53 0.00565394 0.0184951 -53.5 0.00538453 0.0177311 -54 0.00511512 0.016954 -54.5 0.00493893 0.0164751 -55 0.00478199 0.0160521 -55.5 0.00462504 0.0156214 -56 0.0044681 0.0151829 -56.5 0.00431115 0.0147369 -57 0.00415421 0.0142835 -57.5 0.00399726 0.0138227 -58 0.00384032 0.0133547 -58.5 0.00368337 0.0128797 -59 0.00352643 0.0123976 -59.5 0.00336948 0.0119088 -60 0.00321254 0.0114132 -60.5 0.00307638 0.0109852 -61 0.00294201 0.0105579 -61.5 0.00280764 0.0101251 -62 0.00267327 0.00968679 -62.5 0.0025389 0.00924312 -63 0.00240453 0.00879422 -63.5 0.00227016 0.00834018 -64 0.00213579 0.00788111 -64.5 0.00200142 0.00741713 -65 0.00186704 0.00694834 -65.5 0.00173267 0.00647487 -66 0.0015983 0.00599681 -66.5 0.00146393 0.00551429 -67 0.00132956 0.00502741 -67.5 0.00119519 0.0045363 -68 0.00106082 0.00404106 -68.5 0.000926448 0.00354181 -69 0.000792077 0.00303867 -69.5 0.000657706 0.00253176 -70 0.000523335 0.00202119 -70.5 0.000388965 0.00150707 -71 0.000254594 0.000989538 -71.5 0.000120223 0.0004687 -72 0 0 -72.5 0 0 -73 0 0 -73.5 0 0 -74 0 0 -74.5 0 0 -75 0 0 -75.5 0 0 -76 0 0 -76.5 0 0 -77 0 0 -77.5 0 0 -78 0 0 -78.5 0 0 -79 0 0 -79.5 0 0 -80 0 0 -80.5 0 0 -81 0 0 -81.5 0 0 -82 0 0 -82.5 0 0 -83 0 0 -83.5 0 0 diff --git a/geant4/LEMuSR/MEYER/M10.pdf b/geant4/LEMuSR/MEYER/M10.pdf deleted file mode 100644 index 635131d58e0534e4086aaf0643b35fd3b580d1c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8540 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 diff --git a/geant4/LEMuSR/MEYER/M10sin.eps b/geant4/LEMuSR/MEYER/M10sin.eps deleted file mode 100644 index 859b971..0000000 --- a/geant4/LEMuSR/MEYER/M10sin.eps +++ /dev/null @@ -1,805 +0,0 @@ -%!PS-Adobe-2.0 -%%Title: Ma10sin.eps -%%Creator: gnuplot 3.7 patchlevel 3 -%%CreationDate: Mon Apr 11 19:49:42 2005 -%%DocumentFonts: (atend) -%%BoundingBox: 50 50 554 770 -%%Orientation: Landscape -%%Pages: (atend) -%%EndComments -/gnudict 256 dict def -gnudict begin -/Color true def -/Solid false def -/gnulinewidth 5.000 def -/userlinewidth gnulinewidth def -/vshift -46 def -/dl {10 mul} def -/hpt_ 31.5 def -/vpt_ 31.5 def -/hpt hpt_ def -/vpt vpt_ def -/M {moveto} bind def -/L {lineto} bind def -/R {rmoveto} bind def -/V {rlineto} bind def -/vpt2 vpt 2 mul def -/hpt2 hpt 2 mul def -/Lshow { currentpoint stroke M - 0 vshift R show } def -/Rshow { currentpoint stroke M - dup stringwidth pop neg vshift R show } def -/Cshow { currentpoint stroke M - dup stringwidth pop -2 div vshift R show } def -/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def - /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def -/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } - {pop pop pop Solid {pop []} if 0 setdash} ifelse } def -/BL { stroke userlinewidth 2 mul setlinewidth } def -/AL { stroke userlinewidth 2 div setlinewidth } def -/UL { dup gnulinewidth mul /userlinewidth exch def - dup 1 lt {pop 1} if 10 mul /udl exch def } def -/PL { stroke userlinewidth setlinewidth } def -/LTb { BL [] 0 0 0 DL } def -/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def -/LT0 { PL [] 1 0 0 DL } def -/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def -/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def -/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def -/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def -/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def -/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def -/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def -/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def -/Pnt { stroke [] 0 setdash - gsave 1 setlinecap M 0 0 V stroke grestore } def -/Dia { stroke [] 0 setdash 2 copy vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke - Pnt } def -/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V - currentpoint stroke M - hpt neg vpt neg R hpt2 0 V stroke - } def -/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke - Pnt } def -/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M - hpt2 vpt2 neg V currentpoint stroke M - hpt2 neg 0 R hpt2 vpt2 V stroke } def -/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke - Pnt } def -/Star { 2 copy Pls Crs } def -/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath fill } def -/TriUF { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath fill } def -/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke - Pnt } def -/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath fill} def -/DiaF { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath fill } def -/Pent { stroke [] 0 setdash 2 copy gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore Pnt } def -/PentF { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath fill grestore } def -/Circle { stroke [] 0 setdash 2 copy - hpt 0 360 arc stroke Pnt } def -/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def -/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def -/C1 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - vpt 0 360 arc closepath } bind def -/C2 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C3 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C4 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C5 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc - 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc } bind def -/C6 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C7 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C8 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C9 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 450 arc closepath fill - vpt 0 360 arc closepath } bind def -/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill - 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C11 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C12 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C13 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C14 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 360 arc closepath fill - vpt 0 360 arc } bind def -/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto - neg 0 rlineto closepath } bind def -/Square { dup Rec } bind def -/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def -/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def -/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def -/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def -/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def -/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def -/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill - exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def -/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def -/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill - 2 copy vpt Square fill - Bsquare } bind def -/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def -/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def -/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill - Bsquare } bind def -/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill - Bsquare } bind def -/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def -/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy vpt Square fill Bsquare } bind def -/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def -/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def -/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def -/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def -/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def -/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def -/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def -/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def -/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def -/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def -/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def -/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def -/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def -/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def -/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def -/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def -/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def -/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def -/DiaE { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke } def -/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke } def -/TriUE { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke } def -/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke } def -/PentE { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore } def -/CircE { stroke [] 0 setdash - hpt 0 360 arc stroke } def -/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def -/DiaW { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V Opaque stroke } def -/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V Opaque stroke } def -/TriUW { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V Opaque stroke } def -/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V Opaque stroke } def -/PentW { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - Opaque stroke grestore } def -/CircW { stroke [] 0 setdash - hpt 0 360 arc Opaque stroke } def -/BoxFill { gsave Rec 1 setgray fill grestore } def -/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont -dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall -currentdict end definefont pop -end -%%EndProlog -%%Page: 1 1 -gnudict begin -gsave -50 50 translate -0.100 0.100 scale -90 rotate -0 -5040 translate -0 setgray -newpath -(Helvetica) findfont 140 scalefont setfont -1.000 UL -LTb -1.000 UL -LTa -714 420 M -6248 0 V -1.000 UL -LTb -714 420 M -63 0 V -6185 0 R --63 0 V -630 420 M -( 0) Rshow -1.000 UL -LTa -714 915 M -6248 0 V -1.000 UL -LTb -714 915 M -63 0 V -6185 0 R --63 0 V -630 915 M -( 0.1) Rshow -1.000 UL -LTa -714 1409 M -6248 0 V -1.000 UL -LTb -714 1409 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.2) Rshow -1.000 UL -LTa -714 1904 M -6248 0 V -1.000 UL -LTb -714 1904 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.3) Rshow -1.000 UL -LTa -714 2399 M -6248 0 V -1.000 UL -LTb -714 2399 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.4) Rshow -1.000 UL -LTa -714 2893 M -6248 0 V -1.000 UL -LTb -714 2893 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.5) Rshow -1.000 UL -LTa -714 3388 M -6248 0 V -1.000 UL -LTb -714 3388 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.6) Rshow -1.000 UL -LTa -714 3883 M -6248 0 V -1.000 UL -LTb -714 3883 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.7) Rshow -1.000 UL -LTa -714 4377 M -6248 0 V -1.000 UL -LTb -714 4377 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.8) Rshow -1.000 UL -LTa -714 4872 M -6248 0 V -1.000 UL -LTb -714 4872 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.9) Rshow -1.000 UL -LTa -714 420 M -0 4452 V -1.000 UL -LTb -714 420 M -0 63 V -0 4389 R -0 -63 V -714 280 M -( 0) Cshow -1.000 UL -LTa -1408 420 M -0 4452 V -1.000 UL -LTb -1408 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 5) Cshow -1.000 UL -LTa -2102 420 M -0 4452 V -1.000 UL -LTb -2102 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 10) Cshow -1.000 UL -LTa -2797 420 M -0 4452 V -1.000 UL -LTb -2797 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 15) Cshow -1.000 UL -LTa -3491 420 M -0 4109 V -0 280 R -0 63 V -1.000 UL -LTb -3491 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 20) Cshow -1.000 UL -LTa -4185 420 M -0 4109 V -0 280 R -0 63 V -1.000 UL -LTb -4185 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 25) Cshow -1.000 UL -LTa -4879 420 M -0 4109 V -0 280 R -0 63 V -1.000 UL -LTb -4879 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 30) Cshow -1.000 UL -LTa -5574 420 M -0 4109 V -0 280 R -0 63 V -1.000 UL -LTb -5574 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 35) Cshow -1.000 UL -LTa -6268 420 M -0 4109 V -0 280 R -0 63 V -1.000 UL -LTb -6268 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 40) Cshow -1.000 UL -LTa -6962 420 M -0 4452 V -1.000 UL -LTb -6962 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 45) Cshow -1.000 UL -LTb -714 420 M -6248 0 V -0 4452 V --6248 0 V -714 420 L -140 2646 M -currentpoint gsave translate 90 rotate 0 0 M -(distribution) Cshow -grestore -3838 70 M -([deg]) Cshow -1.000 UP -1.000 UL -LT0 -6311 4739 M -('M20.keV' us 1:3) Rshow -749 420 Pls -783 773 Pls -818 1122 Pls -853 1466 Pls -888 1806 Pls -922 2135 Pls -957 2433 Pls -992 2717 Pls -1026 2986 Pls -1061 3240 Pls -1096 3470 Pls -1131 3673 Pls -1165 3856 Pls -1200 4003 Pls -1235 4128 Pls -1269 4232 Pls -1304 4316 Pls -1339 4379 Pls -1374 4420 Pls -1408 4439 Pls -1443 4446 Pls -1478 4432 Pls -1512 4398 Pls -1547 4343 Pls -1582 4275 Pls -1616 4221 Pls -1651 4150 Pls -1686 4062 Pls -1721 3957 Pls -1755 3856 Pls -1790 3771 Pls -1825 3672 Pls -1859 3560 Pls -1894 3435 Pls -1929 3323 Pls -1964 3215 Pls -1998 3105 Pls -2033 3010 Pls -2068 2905 Pls -2102 2824 Pls -2137 2739 Pls -2172 2648 Pls -2207 2549 Pls -2241 2447 Pls -2276 2378 Pls -2311 2304 Pls -2345 2224 Pls -2380 2140 Pls -2415 2062 Pls -2450 2003 Pls -2484 1941 Pls -2519 1875 Pls -2554 1805 Pls -2588 1747 Pls -2623 1697 Pls -2658 1644 Pls -2693 1589 Pls -2727 1530 Pls -2762 1490 Pls -2797 1453 Pls -2831 1413 Pls -2866 1372 Pls -2901 1330 Pls -2936 1299 Pls -2970 1266 Pls -3005 1232 Pls -3040 1197 Pls -3074 1164 Pls -3109 1139 Pls -3144 1113 Pls -3178 1086 Pls -3213 1058 Pls -3248 1037 Pls -3283 1022 Pls -3317 1006 Pls -3352 989 Pls -3387 972 Pls -3421 955 Pls -3456 936 Pls -3491 917 Pls -3526 898 Pls -3560 877 Pls -3595 856 Pls -3630 835 Pls -3664 821 Pls -3699 811 Pls -3734 801 Pls -3769 791 Pls -3803 780 Pls -3838 769 Pls -3873 758 Pls -3907 746 Pls -3942 734 Pls -3977 722 Pls -4012 709 Pls -4046 697 Pls -4081 688 Pls -4116 682 Pls -4150 675 Pls -4185 669 Pls -4220 662 Pls -4255 654 Pls -4289 647 Pls -4324 640 Pls -4359 632 Pls -4393 624 Pls -4428 616 Pls -4463 608 Pls -4498 603 Pls -4532 599 Pls -4567 594 Pls -4602 590 Pls -4636 585 Pls -4671 581 Pls -4706 576 Pls -4740 571 Pls -4775 566 Pls -4810 561 Pls -4845 556 Pls -4879 550 Pls -4914 546 Pls -4949 541 Pls -4983 536 Pls -5018 532 Pls -5053 527 Pls -5088 522 Pls -5122 517 Pls -5157 512 Pls -5192 507 Pls -5226 502 Pls -5261 496 Pls -5296 491 Pls -5331 485 Pls -5365 480 Pls -5400 474 Pls -5435 468 Pls -5469 463 Pls -5504 457 Pls -5539 451 Pls -5574 445 Pls -5608 439 Pls -5643 432 Pls -5678 426 Pls -5712 420 Pls -5747 420 Pls -5782 420 Pls -5817 420 Pls -5851 420 Pls -5886 420 Pls -5921 420 Pls -5955 420 Pls -5990 420 Pls -6025 420 Pls -6060 420 Pls -6094 420 Pls -6129 420 Pls -6164 420 Pls -6198 420 Pls -6233 420 Pls -6268 420 Pls -6302 420 Pls -6337 420 Pls -6372 420 Pls -6407 420 Pls -6441 420 Pls -6476 420 Pls -6511 420 Pls -6594 4739 Pls -1.000 UL -LT1 -6311 4599 M -(exp\(-x*x/55.\)*sin\(x/180*3.14\)*14.7) Rshow -6395 4599 M -399 0 V -749 737 M -58 525 V -58 509 V -58 484 V -59 449 V -58 408 V -58 359 V -58 306 V -58 250 V -59 192 V -58 133 V -58 76 V -58 21 V -58 -30 V -59 -77 V -58 -118 V -58 -153 V -58 -181 V -58 -205 V -59 -220 V -58 -232 V -58 -236 V -58 -237 V -58 -232 V -59 -225 V -58 -215 V -58 -202 V -58 -187 V -58 -172 V -59 -156 V -58 -140 V -58 -125 V -58 -110 V -58 -96 V -59 -83 V -58 -70 V -58 -61 V -58 -50 V -58 -42 V -59 -35 V -58 -29 V -58 -23 V -58 -19 V -58 -15 V -59 -12 V -58 -10 V -58 -7 V -58 -6 V -58 -5 V -59 -3 V -58 -3 V -58 -2 V -58 -1 V -58 -1 V -59 -1 V -58 -1 V -58 0 V -58 0 V -58 0 V -59 -1 V -58 0 V -58 0 V -58 0 V -58 0 V -59 0 V -58 0 V -58 0 V -58 0 V -58 0 V -59 0 V -58 0 V -58 0 V -58 0 V -58 0 V -59 0 V -58 0 V -58 0 V -58 0 V -59 0 V -58 0 V -58 0 V -58 0 V -58 0 V -59 0 V -58 0 V -58 0 V -58 0 V -58 0 V -59 0 V -58 0 V -58 0 V -58 0 V -58 0 V -59 0 V -58 0 V -58 0 V -58 0 V -58 0 V -59 0 V -58 0 V -stroke -grestore -end -showpage -%%Trailer -%%DocumentFonts: Helvetica -%%Pages: 1 diff --git a/geant4/LEMuSR/MEYER/M10sin.pdf b/geant4/LEMuSR/MEYER/M10sin.pdf deleted file mode 100644 index baa7f15e55eb61e0a682f24a37ba461807a4c37b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9389 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 Ig8r`o0NcONkpKVy diff --git a/geant4/LEMuSR/MEYER/Mall2.eps b/geant4/LEMuSR/MEYER/Mall2.eps deleted file mode 100644 index 1b3c6ba..0000000 --- a/geant4/LEMuSR/MEYER/Mall2.eps +++ /dev/null @@ -1,977 +0,0 @@ -%!PS-Adobe-2.0 -%%Title: Mall2.eps -%%Creator: gnuplot 3.7 patchlevel 3 -%%CreationDate: Mon Apr 11 19:39:42 2005 -%%DocumentFonts: (atend) -%%BoundingBox: 50 50 554 770 -%%Orientation: Landscape -%%Pages: (atend) -%%EndComments -/gnudict 256 dict def -gnudict begin -/Color true def -/Solid false def -/gnulinewidth 5.000 def -/userlinewidth gnulinewidth def -/vshift -46 def -/dl {10 mul} def -/hpt_ 31.5 def -/vpt_ 31.5 def -/hpt hpt_ def -/vpt vpt_ def -/M {moveto} bind def -/L {lineto} bind def -/R {rmoveto} bind def -/V {rlineto} bind def -/vpt2 vpt 2 mul def -/hpt2 hpt 2 mul def -/Lshow { currentpoint stroke M - 0 vshift R show } def -/Rshow { currentpoint stroke M - dup stringwidth pop neg vshift R show } def -/Cshow { currentpoint stroke M - dup stringwidth pop -2 div vshift R show } def -/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def - /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def -/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } - {pop pop pop Solid {pop []} if 0 setdash} ifelse } def -/BL { stroke userlinewidth 2 mul setlinewidth } def -/AL { stroke userlinewidth 2 div setlinewidth } def -/UL { dup gnulinewidth mul /userlinewidth exch def - dup 1 lt {pop 1} if 10 mul /udl exch def } def -/PL { stroke userlinewidth setlinewidth } def -/LTb { BL [] 0 0 0 DL } def -/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def -/LT0 { PL [] 1 0 0 DL } def -/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def -/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def -/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def -/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def -/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def -/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def -/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def -/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def -/Pnt { stroke [] 0 setdash - gsave 1 setlinecap M 0 0 V stroke grestore } def -/Dia { stroke [] 0 setdash 2 copy vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke - Pnt } def -/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V - currentpoint stroke M - hpt neg vpt neg R hpt2 0 V stroke - } def -/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke - Pnt } def -/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M - hpt2 vpt2 neg V currentpoint stroke M - hpt2 neg 0 R hpt2 vpt2 V stroke } def -/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke - Pnt } def -/Star { 2 copy Pls Crs } def -/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath fill } def -/TriUF { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath fill } def -/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke - Pnt } def -/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath fill} def -/DiaF { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath fill } def -/Pent { stroke [] 0 setdash 2 copy gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore Pnt } def -/PentF { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath fill grestore } def -/Circle { stroke [] 0 setdash 2 copy - hpt 0 360 arc stroke Pnt } def -/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def -/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def -/C1 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - vpt 0 360 arc closepath } bind def -/C2 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C3 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C4 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C5 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc - 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc } bind def -/C6 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C7 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C8 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C9 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 450 arc closepath fill - vpt 0 360 arc closepath } bind def -/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill - 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C11 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C12 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C13 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C14 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 360 arc closepath fill - vpt 0 360 arc } bind def -/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto - neg 0 rlineto closepath } bind def -/Square { dup Rec } bind def -/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def -/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def -/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def -/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def -/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def -/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def -/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill - exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def -/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def -/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill - 2 copy vpt Square fill - Bsquare } bind def -/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def -/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def -/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill - Bsquare } bind def -/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill - Bsquare } bind def -/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def -/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy vpt Square fill Bsquare } bind def -/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def -/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def -/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def -/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def -/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def -/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def -/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def -/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def -/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def -/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def -/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def -/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def -/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def -/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def -/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def -/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def -/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def -/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def -/DiaE { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke } def -/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke } def -/TriUE { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke } def -/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke } def -/PentE { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore } def -/CircE { stroke [] 0 setdash - hpt 0 360 arc stroke } def -/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def -/DiaW { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V Opaque stroke } def -/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V Opaque stroke } def -/TriUW { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V Opaque stroke } def -/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V Opaque stroke } def -/PentW { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - Opaque stroke grestore } def -/CircW { stroke [] 0 setdash - hpt 0 360 arc Opaque stroke } def -/BoxFill { gsave Rec 1 setgray fill grestore } def -/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont -dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall -currentdict end definefont pop -end -%%EndProlog -%%Page: 1 1 -gnudict begin -gsave -50 50 translate -0.100 0.100 scale -90 rotate -0 -5040 translate -0 setgray -newpath -(Helvetica) findfont 140 scalefont setfont -1.000 UL -LTb -1.000 UL -LTa -714 420 M -6248 0 V -1.000 UL -LTb -714 420 M -63 0 V -6185 0 R --63 0 V -630 420 M -( 0) Rshow -1.000 UL -LTa -714 1310 M -6248 0 V -1.000 UL -LTb -714 1310 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.2) Rshow -1.000 UL -LTa -714 2201 M -6248 0 V -1.000 UL -LTb -714 2201 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.4) Rshow -1.000 UL -LTa -714 3091 M -6248 0 V -1.000 UL -LTb -714 3091 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.6) Rshow -1.000 UL -LTa -714 3982 M -6248 0 V -1.000 UL -LTb -714 3982 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.8) Rshow -1.000 UL -LTa -714 4872 M -6248 0 V -1.000 UL -LTb -714 4872 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 1) Rshow -1.000 UL -LTa -714 420 M -0 4452 V -1.000 UL -LTb -714 420 M -0 63 V -0 4389 R -0 -63 V -714 280 M -( 0) Cshow -1.000 UL -LTa -1408 420 M -0 4452 V -1.000 UL -LTb -1408 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 5) Cshow -1.000 UL -LTa -2102 420 M -0 4452 V -1.000 UL -LTb -2102 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 10) Cshow -1.000 UL -LTa -2797 420 M -0 4452 V -1.000 UL -LTb -2797 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 15) Cshow -1.000 UL -LTa -3491 420 M -0 4452 V -1.000 UL -LTb -3491 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 20) Cshow -1.000 UL -LTa -4185 420 M -0 4452 V -1.000 UL -LTb -4185 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 25) Cshow -1.000 UL -LTa -4879 420 M -0 4452 V -1.000 UL -LTb -4879 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 30) Cshow -1.000 UL -LTa -5574 420 M -0 3829 V -0 560 R -0 63 V -1.000 UL -LTb -5574 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 35) Cshow -1.000 UL -LTa -6268 420 M -0 3829 V -0 560 R -0 63 V -1.000 UL -LTb -6268 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 40) Cshow -1.000 UL -LTa -6962 420 M -0 4452 V -1.000 UL -LTb -6962 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 45) Cshow -1.000 UL -LTb -714 420 M -6248 0 V -0 4452 V --6248 0 V -714 420 L -140 2646 M -currentpoint gsave translate 90 rotate 0 0 M -(Meyer's distribution) Cshow -grestore -3838 70 M -(scatt. angle [deg]) Cshow -1.000 UP -1.000 UL -LT0 -6311 4739 M -('M5.keV') Rshow -783 4872 Pls -853 4858 Pls -922 4843 Pls -992 4829 Pls -1061 4814 Pls -1131 4800 Pls -1200 4785 Pls -1269 4771 Pls -1339 4756 Pls -1408 4742 Pls -1478 4712 Pls -1547 4666 Pls -1616 4620 Pls -1686 4573 Pls -1755 4527 Pls -1825 4481 Pls -1894 4434 Pls -1964 4388 Pls -2033 4342 Pls -2102 4296 Pls -2172 4238 Pls -2241 4180 Pls -2311 4122 Pls -2380 4064 Pls -2450 4004 Pls -2519 3937 Pls -2588 3869 Pls -2658 3802 Pls -2727 3735 Pls -2797 3668 Pls -2866 3601 Pls -2936 3535 Pls -3005 3468 Pls -3074 3401 Pls -3144 3335 Pls -3213 3268 Pls -3283 3201 Pls -3352 3135 Pls -3421 3068 Pls -3491 3004 Pls -3560 2940 Pls -3630 2876 Pls -3699 2811 Pls -3769 2747 Pls -3838 2683 Pls -3907 2619 Pls -3977 2555 Pls -4046 2491 Pls -4116 2431 Pls -4185 2377 Pls -4255 2324 Pls -4324 2270 Pls -4393 2216 Pls -4463 2163 Pls -4532 2109 Pls -4602 2055 Pls -4671 2002 Pls -4740 1948 Pls -4810 1904 Pls -4879 1862 Pls -4949 1819 Pls -5018 1777 Pls -5088 1734 Pls -5157 1692 Pls -5226 1649 Pls -5296 1607 Pls -5365 1564 Pls -5435 1525 Pls -5504 1490 Pls -5574 1455 Pls -5643 1421 Pls -5712 1386 Pls -5782 1355 Pls -5851 1326 Pls -5921 1297 Pls -5990 1269 Pls -6060 1240 Pls -6129 1216 Pls -6198 1193 Pls -6268 1170 Pls -6337 1147 Pls -6407 1124 Pls -6476 1102 Pls -6545 1079 Pls -6615 1056 Pls -6684 1033 Pls -6754 1012 Pls -6823 995 Pls -6893 979 Pls -6962 962 Pls -6594 4739 Pls -1.000 UP -1.000 UL -LT1 -6311 4599 M -('M10.keV') Rshow -783 4872 Crs -853 4843 Crs -922 4814 Crs -992 4785 Crs -1061 4756 Crs -1131 4712 Crs -1200 4619 Crs -1269 4527 Crs -1339 4434 Crs -1408 4342 Crs -1478 4238 Crs -1547 4121 Crs -1616 4003 Crs -1686 3869 Crs -1755 3734 Crs -1825 3601 Crs -1894 3467 Crs -1964 3334 Crs -2033 3201 Crs -2102 3067 Crs -2172 2939 Crs -2241 2811 Crs -2311 2682 Crs -2380 2554 Crs -2450 2430 Crs -2519 2323 Crs -2588 2215 Crs -2658 2108 Crs -2727 2001 Crs -2797 1903 Crs -2866 1818 Crs -2936 1733 Crs -3005 1648 Crs -3074 1563 Crs -3144 1489 Crs -3213 1420 Crs -3283 1354 Crs -3352 1297 Crs -3421 1239 Crs -3491 1193 Crs -3560 1147 Crs -3630 1101 Crs -3699 1055 Crs -3769 1011 Crs -3838 978 Crs -3907 945 Crs -3977 912 Crs -4046 879 Crs -4116 850 Crs -4185 826 Crs -4255 802 Crs -4324 778 Crs -4393 755 Crs -4463 735 Crs -4532 717 Crs -4602 700 Crs -4671 682 Crs -4740 665 Crs -4810 652 Crs -4879 640 Crs -4949 629 Crs -5018 617 Crs -5088 605 Crs -5157 596 Crs -5226 587 Crs -5296 578 Crs -5365 569 Crs -5435 560 Crs -5504 554 Crs -5574 547 Crs -5643 540 Crs -5712 534 Crs -5782 529 Crs -5851 524 Crs -5921 520 Crs -5990 516 Crs -6060 512 Crs -6129 508 Crs -6198 504 Crs -6268 500 Crs -6337 496 Crs -6407 492 Crs -6476 488 Crs -6545 483 Crs -6615 481 Crs -6684 479 Crs -6754 477 Crs -6823 474 Crs -6893 472 Crs -6962 470 Crs -6594 4599 Crs -1.000 UP -1.000 UL -LT2 -6311 4459 M -('M20.keV') Rshow -749 4872 Star -783 4843 Star -818 4814 Star -853 4785 Star -888 4757 Star -922 4713 Star -957 4620 Star -992 4528 Star -1026 4436 Star -1061 4343 Star -1096 4240 Star -1131 4124 Star -1165 4006 Star -1200 3872 Star -1235 3738 Star -1269 3605 Star -1304 3472 Star -1339 3338 Star -1374 3205 Star -1408 3072 Star -1443 2944 Star -1478 2816 Star -1512 2688 Star -1547 2560 Star -1582 2435 Star -1616 2328 Star -1651 2221 Star -1686 2114 Star -1721 2007 Star -1755 1908 Star -1790 1823 Star -1825 1738 Star -1859 1654 Star -1894 1569 Star -1929 1494 Star -1964 1425 Star -1998 1359 Star -2033 1301 Star -2068 1244 Star -2102 1196 Star -2137 1150 Star -2172 1105 Star -2207 1059 Star -2241 1014 Star -2276 981 Star -2311 948 Star -2345 915 Star -2380 882 Star -2415 852 Star -2450 828 Star -2484 804 Star -2519 781 Star -2554 757 Star -2588 737 Star -2623 719 Star -2658 702 Star -2693 684 Star -2727 667 Star -2762 654 Star -2797 642 Star -2831 630 Star -2866 618 Star -2901 606 Star -2936 597 Star -2970 588 Star -3005 579 Star -3040 570 Star -3074 561 Star -3109 555 Star -3144 548 Star -3178 541 Star -3213 535 Star -3248 529 Star -3283 525 Star -3317 521 Star -3352 517 Star -3387 513 Star -3421 509 Star -3456 505 Star -3491 501 Star -3526 496 Star -3560 492 Star -3595 488 Star -3630 484 Star -3664 481 Star -3699 479 Star -3734 477 Star -3769 475 Star -3803 473 Star -3838 470 Star -3873 468 Star -3907 466 Star -3942 464 Star -3977 462 Star -4012 460 Star -4046 458 Star -4081 456 Star -4116 455 Star -4150 454 Star -4185 452 Star -4220 451 Star -4255 450 Star -4289 449 Star -4324 448 Star -4359 446 Star -4393 445 Star -4428 444 Star -4463 443 Star -4498 442 Star -4532 441 Star -4567 441 Star -4602 440 Star -4636 439 Star -4671 439 Star -4706 438 Star -4740 437 Star -4775 436 Star -4810 436 Star -4845 435 Star -4879 434 Star -4914 434 Star -4949 433 Star -4983 433 Star -5018 432 Star -5053 431 Star -5088 431 Star -5122 430 Star -5157 430 Star -5192 429 Star -5226 428 Star -5261 428 Star -5296 427 Star -5331 427 Star -5365 426 Star -5400 425 Star -5435 425 Star -5469 424 Star -5504 424 Star -5539 423 Star -5574 422 Star -5608 422 Star -5643 421 Star -5678 421 Star -5712 420 Star -5747 420 Star -5782 420 Star -5817 420 Star -5851 420 Star -5886 420 Star -5921 420 Star -5955 420 Star -5990 420 Star -6025 420 Star -6060 420 Star -6094 420 Star -6129 420 Star -6164 420 Star -6198 420 Star -6233 420 Star -6268 420 Star -6302 420 Star -6337 420 Star -6372 420 Star -6407 420 Star -6441 420 Star -6476 420 Star -6511 420 Star -6594 4459 Star -1.000 UP -1.000 UL -LT3 -6311 4319 M -('M50.keV') Rshow -731 4872 Box -749 4836 Box -766 4800 Box -783 4764 Box -801 4713 Box -818 4597 Box -835 4482 Box -853 4366 Box -870 4240 Box -888 4095 Box -905 3939 Box -922 3771 Box -940 3604 Box -957 3438 Box -974 3271 Box -992 3105 Box -1009 2943 Box -1026 2783 Box -1044 2623 Box -1061 2463 Box -1078 2327 Box -1096 2193 Box -1113 2059 Box -1131 1929 Box -1148 1823 Box -1165 1717 Box -1183 1611 Box -1200 1511 Box -1217 1424 Box -1235 1344 Box -1252 1272 Box -1269 1207 Box -1287 1150 Box -1304 1093 Box -1321 1036 Box -1339 989 Box -1356 948 Box -1374 906 Box -1391 865 Box -1408 834 Box -1426 804 Box -1443 774 Box -1460 745 Box -1478 723 Box -1495 702 Box -1512 680 Box -1530 660 Box -1547 645 Box -1564 630 Box -1582 615 Box -1599 602 Box -1616 590 Box -1634 579 Box -1651 567 Box -1669 558 Box -1686 549 Box -1703 541 Box -1721 533 Box -1738 527 Box -1755 522 Box -1773 517 Box -1790 512 Box -1807 507 Box -1825 501 Box -1842 496 Box -1859 491 Box -1877 486 Box -1894 482 Box -1912 479 Box -1929 476 Box -1946 474 Box -1964 471 Box -1981 468 Box -1998 466 Box -2016 463 Box -2033 460 Box -2050 458 Box -2068 456 Box -2085 454 Box -2102 453 Box -2120 451 Box -2137 450 Box -2155 448 Box -2172 447 Box -2189 445 Box -2207 444 Box -2224 442 Box -2241 442 Box -2259 441 Box -2276 440 Box -2293 439 Box -2311 438 Box -2328 437 Box -2345 436 Box -2363 435 Box -2380 435 Box -2397 434 Box -2415 433 Box -2432 432 Box -2450 432 Box -2467 431 Box -2484 430 Box -2502 429 Box -2519 429 Box -2536 428 Box -2554 427 Box -2571 426 Box -2588 426 Box -2606 425 Box -2623 424 Box -2640 423 Box -2658 423 Box -2675 422 Box -2693 421 Box -2710 420 Box -2727 420 Box -2745 420 Box -2762 420 Box -2779 420 Box -2797 420 Box -2814 420 Box -2831 420 Box -2849 420 Box -2866 420 Box -2883 420 Box -2901 420 Box -2918 420 Box -2936 420 Box -2953 420 Box -2970 420 Box -2988 420 Box -3005 420 Box -3022 420 Box -3040 420 Box -6594 4319 Box -stroke -grestore -end -showpage -%%Trailer -%%DocumentFonts: Helvetica -%%Pages: 1 diff --git a/geant4/LEMuSR/MEYER/Mall2.pdf b/geant4/LEMuSR/MEYER/Mall2.pdf deleted file mode 100644 index 7c458949ae481de6cd63d7e69e9d4efa39714e9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15881 zcmb_@1yoes+pi)Bj4T=niJ?St=gq)879vqPHx4qw#SDjn)6$+h{qAivyC6n9oInMdk5I!(lo(4doP-JR23DM037PEf65 zeb2$+>&x9Plx`==?Xt7OVSDk+P;F7Q(!BE&)fIHof?9^6RtYZQLgqmiMwh(NQ>w|^ zo|p1@TN+xt8}SE_DnClA>GrqKc8#eEV^nSZNG->dTJm;1Kyn0-I3xfh0om@;>t@I^ zTgM!OFTN^!?MFHHCKqs36%k1&c)g~hgu~*cKcY&o-i+mxr2bO6=15VC*AcRAu8pj# zI#fce=2QhVIvnP_MS{9sc~yBI`yQL?BQl>>SedH_H4Ix|j+I@^XcyJXBsMZ-bhnAN zFa*uu@EvFEewl4-sQNfUVNsx1YL@aPeZ{XmDmj|uF`iylvyRu}%jkh(olee*0OYY_ z&P1V96VsxjX6j@%w^i=ZU>b}MX*elqj(kklW)b+Qe#8n?aiM~eM+D0vuJhe=OfZ?G zo#`w(3J5SZLgu(4)J&u5GgkZ%QOPhs!DM!`jvt@^mLc(pbV~9v*3o?8$=mk-t{~9s z1ys)QlCLr#%gP?1xyRx_KY}vj5M-uJvyB}kB z=MmNFgD8Q72>uS!C%PAuox1*+sDr_Wt9?3t??2W)aQNd@S~2s|5-iVZIYCHDbx`i>Yx~Eez^nbM6S|xqPB7Z&*vBYTrCk$6gx@K$vos$ z<21B2<7Ypzbdz-rf+`C@noFUMJGu8?AhIccynvri74iiHKC$1-zPYX}qI(gM$6NeP zw-&e9^!_c|A5|~=Mb_;z{eLX6FK0UdEmB@TTHepBe~EV6Xr`Mc9)58D&CPX3PZtee zsrtCdPa1{gEQ25PrJ2uyxpw3qJoH)C6Dwp$C~_=&7M*#kqfbnBZ4k~YSlv@&MRT)|KAdgZW|5S_R_i}cqx+dR0;U`QsJ!L8%ge95#y0vul4m+lo-yf8P^iSxS%C9#_J+H|c;YtcC%x=B zx6iQ)PX=JP9d~S{Uc-Qlj$v0x}2TUY+g(am+L>NWPyE9xrnfSGs=ZiYzb{r!&3FqV&%(R)*+io=Hoovd%daq`97XZ`aoWhh{m zN3Rcq)0xCiedGyEUtxo?ahiy1zBU)+tng~~n!1rkg1g5EZqpcsy-Fr(C3I|EkvJ`5 zlQG5wu@&0S?Z?-SarWbFCG#jT*;ToXu5~6FP2jgFk)0C3QXeWL)3OmaG17Rj94kw3 zEznr&1WW1>9Y zWV+F&WMWr1%nHHB$U5c1g&l;o!|$OEc% z7|6%Dx8$?Dq)0h8{Fz)dIVV=!9~PLDyK1k-ioBQ4svX9NU#zgs!j9B?a<>|rrqtbj zFE+bmKPgwDp5tK-fahc@SehZh)zQ-Wrw=lHY zV=Glq86dTsoZ*bHX)kyK1-==U|y%4Yjs%n z!uJbTEwztP45pK*vFci9YQ)jv99#o-L$E2I5Er(YEAsqVYMHyu$C9cO(=AeWqMr|S zXLQ(CXjxehNT0};ukO_8gehm5ZF#{5n=zSR-(O)RSn@TAS7ImEW^(BbBp6^%@hcdA z<;vWw^q#>eI0_RXsH3KI8Ln45G>~DkClSv6f=4jz{k)Vxg+em}=jwpG&1L1zm(K?e znCuds=b2`{k=uYBe`e08cq+Wa4JVJ97_+j!cdXnlZ0I~95hoT9L@;Q|YjKDLHT z{8Sjw$#i;sgBGm7E}_HZa=h82sOhFaC1{~JE^^#u(xmc#;JQh@oQ1d@`n!0YD>DyDj%>>KJ?L8}oi#g*w}qn}{8p z)_%s{N(x+9P+zc3KxrnQ5BC`TiBy8gy*#{NZFlY*4rbp6CE1;d+PTpK+5Nhpo8FO7 zW6ETAY}YaN6Uk8M91t|{s4hrky^~KMEq8wV`<)>ayUy@bP{skZ@0}5A8D=BN?7n=H zq;z-q?mO%!>quQ%31AG+-S_+0-9b=lylBpgv&ACZw1-CqjI7DI?U9vey%=|R^Qh*u zxRDQ6Bqkz|*u!IEJ9Ts^uP4ok%&3`=VQdejU~G9A&R=)AC8JpRM00dNosqc7{gTaz z4FH!Yx#5vFIN>QjU=e7$J?~PMs+7`D@slJ~6E8&+rqco^^}}Wc^;OkFuS?eav?8EM zBHe)DSh-ez`Mc2&7FXpLlK}}s+oxCYd2`nXzij#>`If~N+_ZdIl#3id`X&-fDoI#l zN0J?5mBcuASw74;K4qDbjD?N3b1=$i)ir7QxH0nkpk(3;TP5Zy-b02T?sC#D-#G8E9 z4&$Z1z8L4@u|9*VVfvW|lTspo~~9?5%>|lckKm_kEn7fct{{1MXXq_-l+{hfv$54K|ICe1W%5%W#NmXi3>YcXUz{`jM!(-mM7bKvEBsi&^g94zK@K=BH(N9L#i7)Yz11Q zJ;K1)WZF<)fJW++AyYV&hz4+Q=K44E7rf}iM}HVT26&q2SBCo9J|mqB+5)%Cue1{F z@x9LQ=_H9h9=RAyM;nd-*9dS=E!Er+a*U_%YohO-Ej3#Wp_e+z66htgo+H$W_RTpx zB0nENQ)9>~GVjYmfUslyt!q4Z0Lv%8&PBkApY5!^p4ZJB0Ok)yQTwR9!{iVu9*QL zIS;vFQV?Aadgt5DexC4QyFw%a%m}U?wqMwe)*t9#2l0n+2nAUZzUJ8GrJZI)By=c|K&eL`XPy@q1U zmPqjfJ+ADfPq5rCnr7?L-zokb0h+;bv&}H_`SXpdjL7=t`AmBWCBAA2GDQz7`S(?2 zW=Hd!1w~u7jaM$|KmPE;sR|TmcHD?Y?h+0veZ#Zr#S(UBD*(*cXC*Xd7iEIhcDN`n zG?1@r!-oYR{!R}%U8UNt21m(`Z@Ew)U%`*9gkMgOm5XeoRh78yd`4pm2WLTMBdbci z#dc@pN+2;QA}PMOPYWG^(UY!5#v+{RoQb8!xWRe^j6M8uS)p z<&o7q(Ia_G1Jx&ZjRxcZs)3A!;$;A1zgFcC=_c#wn2dT>l0LJ#@?Oj$1i`pUYs63 zg{vT)@xQ%`n^AhT@2u?=a?KHTmyhu0WtH3X2I}(Sq#9nDf*+%cS@tgQt?Ag^FW0a= zAto)Nj(twnWb$5LOs|UzYlxZ(BC*C(`7Ir+ON@qI`6^c}C511%2FcF1j~I-Dzly$+ zE!F2Mn#Qv^PVf|ca{nu3an08ZaL8IEUx{lOm+U*A7FqpUe3gc+lO$Wd9DDmESS<-O z^};b{4SOshRY)QSqgOlYa|0iHvW0JZ;i)IS(g8%f%CawtpNgDz13;2mrDR zW`tEXnF>WbqFOmwuD-<%w||<03~_c?Q&uVxpBtd`t=@h$Qqszlo&1a0>7?THxcoaW z2D#VS4b*wS8WX{|6WzlHnY-is+-!V?%O<8W(SPX6XwfQzgY;+%{d*joLEfkFKdV1c z%Q4x(qX|s&#B^$oMHE`I8!$pTBkAoHiEbF;*m^Y?&f#wtxK=iCQR%)Du=8d4kb~^J<>?Ey zRg-`*+T^O4JFtUlGC~JaB5O>{bf8`r&U^_;%ay=>&enb{@zv=yQiLxIgtHg~ub**#+H9+N~6O%AOZ6nz}j;|EVBA_Q(+l#oxaf^ET+z1i08_Fie-hak0{X)IDF->=a)SA!>b!dAR|IDqTvgNvW# z$61ky{&e~I>QxQYAE+Cpk=MtXT9cSb)A}-CYg_n9A6c>U)iu#sQ@FdD_Cjs8f+JRceL?wR7;%4cW(Q zvDDRSO?nJcNPI0-zB>G0DPx%-Ymp?1H31i^J3L;&kZ?+7HVCe~8#U?AsWMjdydrY6 z2`Bm*Bg3d1;YIEbap2?0f$)4gsQ^8P48c;GZCIwbp(~q@ zq7B+%Zec%OVDVyvjL}(#=RQ^p`bH(g8F`%Bst~_|bOr$-0pZkFqKn?ZS97i#EN?nJ zBo1qf&tF%Rdoy^NcQFDg(Ce@)0$V;-w#N9YzU74+DM)oqBQt6$cpOrpdmk1U!dvB4&yt?+g}9hHUQ<5Ef0aX zxF{5Hi2r042P|U_$={+D8Lz9qfu3oBY|52fJp1On7f+!ur#2jUw-q(x^-A|$z>f&Q zi&Znv&)V{*bLAa5@^j_cF4(^o3dLD3rZ%Sg)RwF9W+2TC)YX__;;;6p$SZdWiK`Z)e(HGiYKSG7axL!5)vfnTfq)qFO|!^~ zzl-JQLVjWRoOxm1(Pdsx-D$q1J@8!o4Q>1E~n`54BwAp5^!NPdA!}MCbseQys04!3L$x=;XPU=;vlKg zxGmf);(%VSFbpT(dLVU8STKUfLFzg>D_a8-M`UYj!0w=yQe^={gOjf+sROv45NP}?A||^2%Dqo)$SL&&x{IOpH!S> z8Q(b~aq>lj4%lfC1&fXlD-y=l>1mqah>ZcPwG@9>82PaK;ao$QYW{@WgmJrD%Ld@x~XraQ~9(2KvU%2l6uVKh=*KIVg+f9`CGhMMDtb=jM zG#Y;6A28=HpKEFSv|!sssRt(G=)@rnrWvYg7yZ3ii2Jd$uL`JX<(@~DE z!<%|3o&5`hJbGcr01AhT$V79@q}~IcyrkZzQ4^Xj+8|_j6tHYzVO~|2kL2xQyiN*< zw-@~#-iYZWgn6+Z;phGtD?qr-F~=sFF6Z-$5yY)IlA$ZMBmbm1K409mMx-Xlc2ge2viZ-fCnT?+0mpem{8>tS zg{z`n`N9g~Itl;~jbV9tC43kp-Y3SgQSHf+Nv`tJV9wtWyd3eOkCl2!&+>HH|EGLT zmD0!7)cAPI`2%3`>2t+Ih+&AOQbr{JJ6GaG%Fd5b3d$0LSr5GaqL-+N;RZsfyN9vn ze16$=d_#=6P0iH<C=015iQWSuASI5;-)K_8{X&0-=VuPDAuQVAV#ma;Vmgj55AY{hFV`Ij*` zK8%vL1pGgibnm(^x_%zUbt*MmN=?i)1q1|VJ_>Gk>wem`L~R1W;4 z|IhRz--kQpxK~d4kU8C4)5+t=1(+SyCy44zjU+X?MA1sPog-0047vvLj`DSc7X>F230lew7IKVzF{)A-inmo>JUb4m^J z7}DX}?0*A8M8wNjDpGqP$DAHy8LZ)Wd6s`G2VUC_3xv60y3b(%NIrW^BzxNNh)8zi zoIW!)f?p093{3j3E+$$Yg3)+5u}Lf>{;XLnc;v6nf>A0Z7G(fn5nTp6nj^##c@YFY zD^e7Z*w1h&GcIr`dJUM(sl?sOIT|R>zrqm|O02R9DHfbUF>*qs#%5py#+zq#&bRv_ zBjYnaQl_hNNM$RNvt}w8{%gjd==*RkcVrt`uwSfuCrg4FcUy;}GrvLfGWU<bm@q+A4Ek- z7huQ_!e{Qsyzm=-AFg~YQ5^r-KX72lPk0^Jy{8rfuR49$frj8)PlQ>Zd>_u2Qw6Tf z&(kHHVy@x$ZZd>Z+(Zvr)zfNcoO(JUN)c}qZ+vy7)X&rX(l|+Tg*{*m0m{LvYX1`n zkIp2Y8;{x~4jx1J$t{CfPj)HrThC1c6i7R9;xrWcDs zD;yn5rQLgekuZ9l$eBEJZ6aObsgSrU&k-1@eJGGF<<8OBFtT@5((IAt9Wh!mJV!v; z){$0`!Wi}uN5DJ^do^8rXpMkM1;0NFU037iWQKH_S|Fa;O~h10YHc>i1~)MZb)P*R z>tn|sH0Iwk{f;-L6HjVYc#Yf=aI#Ma$G!8)r2;NVBSAVI@S4a1|;4wz_ zYJz{Xt=n>R9%=F7iVKhmy{xtdjh)wc~KFgLp6{&iF8lZy%*r2wk zFh1U6%m>1w2@FrdEIOS?P=Vb9pJWhi&Qxo?R6C=pinh59M^MFsz>ysIYqL&*ohS1x z8FWM-k&PvtDEKtt4318uzdTSXp$q4+l)gwDN}|p1Q|wM1m-TZ-6{o>YcMtj^-qFfw z2yFquCb0P-!0br=c6NK9vE=>*Dh;#BsX1dYr-B_Y#1f1>V%|+&)`D`u|BkqV4Ch-K z!e7gt^CrO~aiWv)&`n1Ub4Jy?b3)f>_!ZRP#*=KoBosy6&z2ri8zZU)nb=7*}1c^`GE7$^<5fLjx2^Fl6+F z(+#?UJm6F#$M1%k{X!lqU`DCY4Ui|DZ07_xLM!>)6uCkzf;Zbmi$1|8vnQ! z7W0gF?bEsjzH~aGsTRu5K@3laO@kaS0o)wfU9uhT&DMIt%}^{M<`}#I1c>9v;KV5< zWN3E7RIMi+B8b7DeI3YKXiikB8xn{yFa=Dt__JR|y`PRX>9jnhLJ-2AKX`65>k3%} zXVbQAJQ}dt`?dS_A z&J^p`UG*%GsS;x&R>*{Z;+{SwmY%Naz`F(k!bgXpdYY!p)%d!K$#*QPz2;Qj@S%!} zVwp5K{fEDYGJRl%DWFj43TZ%?l7i;fF{=x$0Doq@QeHkPDHvtX^dT1wk1Qi_-00aw_I34l8VgWdw*{*Hz2-u9dMT=U5hnpEKpp)HO zP0c&C;J~poGpd)HxCtKpGF+N>>h-nu)s98X3#K0BWD7d6$M8bfd;T(#)jhJ zI2c8oM~6rKKII~ayfGGdCwjoq2}&x=5e|=BTep9MuUIh%q1p0}epGU!=0g?%2UfZXI)nH2CXGH$#cqCnhu$OiaUQPW;bJ zSRO%xmwU#K=32UKyGLIVIH*z80{v+<9BJp{>r9bqY{Jeq_CZDrj|_e8C^(Al+7gwb z`QJ+Uv+m2#D22-zq(3bSjNe1BwqqN`jR3YW1e9lb_0JEvBh@{P3gJ4ISyR&>*6 zoUqf}BQ-`BUs!2mp5e5yaZFfu_Y$j`7+D7Hk^$|cjjIsguB$fG9V+x4H!P9LSlrzL*l#EYajpH4@d*UOIwJrSWGM6=$(!2p;ZEtq)({ z=64|-7}rQ^w7Xe*Ua)1T8kY~aX?c^cvQcAt_^r*(wbY^;`p&pv)&4rgpN0?Wbb070 z4l62Fxm~Hmj|$eM6#!c&>cs^ti_mFbc5m}+c}g3bGK{Z|U3M;vldxC76_K!K4G_lJ(4i5pL2L*K2@hnbO~uEC}L@Q^!-uUy0p4%MU|7Og4F|G zQLPxQS;t~yrJiLaz=KoQapa?x7RAZ~kKCtumD3ttvMM&TqT>fFWEQFmr3d7WKyn znvWZ@6Jr5sfQht<&yuhYyEUx}Q~(p_x(+?LC5)l&U5^~ru{}FHMc)&dkB@68$lnjd z+?JVd^zRx2qv=pDZb+2& z`#$DM(~;7*M3#DE%qu;piypc0Kx;KH;)z&za3io-q3E-*M8F<;ejpbn%X-~u<_dPmCH|z#se154$dJWv-XNw z$yw3G+iN&VKa~I;sG0po*C%MgSxcI4u_t!x*oU6|_%0l^h$a{rojM(#YCIGVcD#QjQq4DP_2=aIng?FViAF_+ zZr3B#Ms+{GMad4T$`8hSJ1E~vWDtKqd7+K7_3yK`z!Um>F8Wk1`p(0{!z~E<-6-(S z;axo+7aNF{g{=)l-NxG9LKf-`Hs%Jp1-SXaLcH9jAczjs131bH7U2fS+-#gZzzwcSVVx&6nz5Q z)*Z~p3xdeFTcPs?v;rZwa8b6gx3%*C3-R-SAZRt{J~S@~q5?$9-b%*V_K6Lc8wAny zuyHZ~B=UnG>h|vL_RhA3_SV2jZ(bo`5ahvcF#>!dfK)pRHz5D_Anq;}RyGhJLOkr;Y-}Kp0rWr~+ds8|xZ8U}u55y+Lku96ZWdOK zHXcuG9((+G{w2x+VhOQ=SVL?ewh()WBjgFh83Kj4LEIr85Ko8?E9fd7zyWj{KCtkA zMi~A2I{~_$mL6!#qa)2D_xrs1zmKc`InT~>g%nB2zh~D?4IK4Irm3#85Fd(q=R4F{UwtKz)DK6VrkRBr zTDPnUm1D(%@7OGKoMfw=RqWJXP-zlBOA+ z+OCqWJ}xNVhu3EGaO5nntsP9qZ+;BF1!wIEnoGhi+2b9rUE%9j$Wu+pdZTXxhomD@ ziUnT9>iM)32`go>7#0ZSD(x&G1_x1O4rH&lsFnYPWx(2-Fa3-RJrG|+6 zyya!rtW4}J8NbCpFn2jqa8K1BGmR=ct7t%dHO<>}xV9+|F&%r0y*%{G{ihh>>Z{nf3~!DzRsjb4>O) zRZD7z+~oihH}l}V&4Kg}Dm<4&!)L<>iuKQO`lek@IBQ9=2gRc1>~Q#}ANx8P>FSj! zrYy)6!h2e0mWh=RlG^+j=M{y@b`_08m#KOwh!r&ghS(lh(D1dB)CIB^CcEE^8136$%{s$UhOF={ zQ8r#|4i!&L7dNtPToA?-i(0WKV?*Ci7X=SpNP54K{h^ZKTWN3;JS9>|V1|uUYk4lQ zs(a36Z8;&KX9X&`4ZhJi4PN>3G&3_m&!8)n$@Ps+P}MZDObh>CRPOgQTk%x#rT|dbBa$KqAzc zs;U~Y#p8XWY9-e2w$+`_2;8xlRWT*;Ydn!vQr`DymT~Ckzb!!S-MPI-RvjgGgRUVp zv!BAu-xXgb`&4ku9@lKog>5ioH*{WlnlNiGG7^R zmVlmUBxb2>J@BIR%&Xeq@~9EP1ATqh!d)(1+v1I-lNTF(E~lVxEH(c$*;IP_^*kNc zl=5?D8f5iE7s7=Afl7A-pCxppYqd%?1s*fZR zW-14-mK-rhWxqFDC|tC3gi}O~7>o30h&4P>nx%dxXh4(k!Sjc<%bg$oWLWkN_GZIK z7|rJydf)BFxI@wIBLN$hJ`hC#7YFWqv^gj1LUuDNgJDWo$U~JRUBi{m7MLT%G-WGF zD%%T}Mm`PBa+EAC$Nl_WqjTTT$Y{Zn`|?j-Y*-`V5iN9VHW3%kpHAz)vrO4nYdI$s z`)V~F{dmGV&4;uKuB1?FS3>nA8Ul|mHy(ke46*U7O*AYIO?8*&dF;K2gsFG8 z3khAlB1&DY?{m|bOoOKIHZg6aq-(YNpp3)L*QSmIixP!EdaPvqGMn>6KL`U6iO`gM zo*#EW+92xea}3@WYiBrW7|U+y<<>UUb<3-^Yj-9ykLAb8 zM}178dHdvVl4LA64crNLXLYETq$F74`gn;%=j(Jb zHR-DtZ65aDPmSj*R=4|IUZ+`ik5X>JDJeHMhiI_(GN4UZt=C=EUGeYXV^%g)29bx$!vV@yX zhbJM7@gLX?J0xt)#&si~pWI5I`}|2#?rw&|^(LyY>Kw@GApEATEdQGiA&1P~12+vU zL<$qLp&R5oN8Kr=zQgCB_U(;T&{E5uJ2p>B8^ls%+Dgd9 zzO8pGeBEU%4d!xO2slV#{9-#y*B<*|K0Hm0IJ(~cj*ZW@W5e@p>)wJ8kz*e$?M()4 z$7}w=Kdr9ikRKQCmUmIi*~SwMS$+E+fWJDPcuUAkgLuvJ+gp~-Tk`GHmalxMX`l@x z61gMwfv$;d>#nw6>l*Vv(gY+Auz-Nz)g>$}0u~e$0`v0nfcg0NeqBJDfH40r zTA=MWALtLy|LOim4_e0GOF$6VBk%}ZDMKq1;^n=%(9eRvUPA~l4Bdui7U1T-qC+bZ z1`N2O1)_Mx_nYo7AHait7UAdrD;q8Ej}hoQzaZccU;r;b``36t$DijboxcNurn#a6 z`q6i^{@-+e1Aq<`+Qz?pz%$xLblabcj}Hi-AU6=uUqJw9|0V#<_y2JHf8oEf{kN|? zK-~Vs;Ln{$lNGAJzYt_bUVb3gHv_mBW7vLHmWq;uR5}puk@ze-m9vK#!V# zGyTUi00cAuuK>xzWBRXs{J-|hz}E$9Pb(X@drBJmU?n@KyT`A+F<6L;TYyzk^7n+{ z?Pl{B1jLXZ1UUZt2P`Ncz$XBH4F1)|!^6)92uA;ao&U56@C*I7HXc49VEgx`D7@}+MYXigz41C{#0$)(j(;^t6;`|s2Mo0eYV~o3p Wg`3A!RCxphczHq0%nF){p#KFoR5nup diff --git a/geant4/LEMuSR/MEYER/Mallsin.eps b/geant4/LEMuSR/MEYER/Mallsin.eps deleted file mode 100644 index db30591..0000000 --- a/geant4/LEMuSR/MEYER/Mallsin.eps +++ /dev/null @@ -1,978 +0,0 @@ -%!PS-Adobe-2.0 -%%Title: Mallsin.eps -%%Creator: gnuplot 3.7 patchlevel 3 -%%CreationDate: Tue Apr 12 08:59:12 2005 -%%DocumentFonts: (atend) -%%BoundingBox: 50 50 554 770 -%%Orientation: Landscape -%%Pages: (atend) -%%EndComments -/gnudict 256 dict def -gnudict begin -/Color true def -/Solid false def -/gnulinewidth 5.000 def -/userlinewidth gnulinewidth def -/vshift -46 def -/dl {10 mul} def -/hpt_ 31.5 def -/vpt_ 31.5 def -/hpt hpt_ def -/vpt vpt_ def -/M {moveto} bind def -/L {lineto} bind def -/R {rmoveto} bind def -/V {rlineto} bind def -/vpt2 vpt 2 mul def -/hpt2 hpt 2 mul def -/Lshow { currentpoint stroke M - 0 vshift R show } def -/Rshow { currentpoint stroke M - dup stringwidth pop neg vshift R show } def -/Cshow { currentpoint stroke M - dup stringwidth pop -2 div vshift R show } def -/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def - /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def -/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } - {pop pop pop Solid {pop []} if 0 setdash} ifelse } def -/BL { stroke userlinewidth 2 mul setlinewidth } def -/AL { stroke userlinewidth 2 div setlinewidth } def -/UL { dup gnulinewidth mul /userlinewidth exch def - dup 1 lt {pop 1} if 10 mul /udl exch def } def -/PL { stroke userlinewidth setlinewidth } def -/LTb { BL [] 0 0 0 DL } def -/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def -/LT0 { PL [] 1 0 0 DL } def -/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def -/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def -/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def -/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def -/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def -/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def -/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def -/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def -/Pnt { stroke [] 0 setdash - gsave 1 setlinecap M 0 0 V stroke grestore } def -/Dia { stroke [] 0 setdash 2 copy vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke - Pnt } def -/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V - currentpoint stroke M - hpt neg vpt neg R hpt2 0 V stroke - } def -/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke - Pnt } def -/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M - hpt2 vpt2 neg V currentpoint stroke M - hpt2 neg 0 R hpt2 vpt2 V stroke } def -/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke - Pnt } def -/Star { 2 copy Pls Crs } def -/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath fill } def -/TriUF { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath fill } def -/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke - Pnt } def -/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath fill} def -/DiaF { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath fill } def -/Pent { stroke [] 0 setdash 2 copy gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore Pnt } def -/PentF { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath fill grestore } def -/Circle { stroke [] 0 setdash 2 copy - hpt 0 360 arc stroke Pnt } def -/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def -/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def -/C1 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - vpt 0 360 arc closepath } bind def -/C2 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C3 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C4 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C5 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc - 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc } bind def -/C6 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C7 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C8 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C9 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 450 arc closepath fill - vpt 0 360 arc closepath } bind def -/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill - 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C11 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C12 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C13 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C14 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 360 arc closepath fill - vpt 0 360 arc } bind def -/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto - neg 0 rlineto closepath } bind def -/Square { dup Rec } bind def -/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def -/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def -/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def -/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def -/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def -/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def -/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill - exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def -/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def -/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill - 2 copy vpt Square fill - Bsquare } bind def -/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def -/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def -/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill - Bsquare } bind def -/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill - Bsquare } bind def -/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def -/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy vpt Square fill Bsquare } bind def -/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def -/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def -/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def -/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def -/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def -/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def -/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def -/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def -/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def -/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def -/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def -/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def -/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def -/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def -/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def -/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def -/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def -/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def -/DiaE { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke } def -/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke } def -/TriUE { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke } def -/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke } def -/PentE { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore } def -/CircE { stroke [] 0 setdash - hpt 0 360 arc stroke } def -/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def -/DiaW { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V Opaque stroke } def -/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V Opaque stroke } def -/TriUW { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V Opaque stroke } def -/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V Opaque stroke } def -/PentW { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - Opaque stroke grestore } def -/CircW { stroke [] 0 setdash - hpt 0 360 arc Opaque stroke } def -/BoxFill { gsave Rec 1 setgray fill grestore } def -/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont -dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall -currentdict end definefont pop -end -%%EndProlog -%%Page: 1 1 -gnudict begin -gsave -50 50 translate -0.100 0.100 scale -90 rotate -0 -5040 translate -0 setgray -newpath -(Helvetica) findfont 140 scalefont setfont -1.000 UL -LTb -1.000 UL -LTa -714 420 M -6248 0 V -1.000 UL -LTb -714 420 M -63 0 V -6185 0 R --63 0 V -630 420 M -( 0) Rshow -1.000 UL -LTa -714 1056 M -6248 0 V -1.000 UL -LTb -714 1056 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.2) Rshow -1.000 UL -LTa -714 1692 M -6248 0 V -1.000 UL -LTb -714 1692 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.4) Rshow -1.000 UL -LTa -714 2328 M -6248 0 V -1.000 UL -LTb -714 2328 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.6) Rshow -1.000 UL -LTa -714 2964 M -6248 0 V -1.000 UL -LTb -714 2964 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 0.8) Rshow -1.000 UL -LTa -714 3600 M -6248 0 V -1.000 UL -LTb -714 3600 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 1) Rshow -1.000 UL -LTa -714 4236 M -6248 0 V -1.000 UL -LTb -714 4236 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 1.2) Rshow -1.000 UL -LTa -714 4872 M -6248 0 V -1.000 UL -LTb -714 4872 M -63 0 V -6185 0 R --63 0 V --6269 0 R -( 1.4) Rshow -1.000 UL -LTa -714 420 M -0 4452 V -1.000 UL -LTb -714 420 M -0 63 V -0 4389 R -0 -63 V -714 280 M -( 0) Cshow -1.000 UL -LTa -1408 420 M -0 4452 V -1.000 UL -LTb -1408 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 5) Cshow -1.000 UL -LTa -2102 420 M -0 4452 V -1.000 UL -LTb -2102 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 10) Cshow -1.000 UL -LTa -2797 420 M -0 4452 V -1.000 UL -LTb -2797 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 15) Cshow -1.000 UL -LTa -3491 420 M -0 4452 V -1.000 UL -LTb -3491 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 20) Cshow -1.000 UL -LTa -4185 420 M -0 4452 V -1.000 UL -LTb -4185 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 25) Cshow -1.000 UL -LTa -4879 420 M -0 4452 V -1.000 UL -LTb -4879 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 30) Cshow -1.000 UL -LTa -5574 420 M -0 3829 V -0 560 R -0 63 V -1.000 UL -LTb -5574 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 35) Cshow -1.000 UL -LTa -6268 420 M -0 3829 V -0 560 R -0 63 V -1.000 UL -LTb -6268 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 40) Cshow -1.000 UL -LTa -6962 420 M -0 4452 V -1.000 UL -LTb -6962 420 M -0 63 V -0 4389 R -0 -63 V -0 -4529 R -( 45) Cshow -1.000 UL -LTb -714 420 M -6248 0 V -0 4452 V --6248 0 V -714 420 L -140 2646 M -currentpoint gsave translate 90 rotate 0 0 M -(distribution) Cshow -grestore -3838 70 M -([deg]) Cshow -1.000 UP -1.000 UL -LT0 -6311 4739 M -('M5.keV' us 1:3) Rshow -783 420 Pls -853 449 Pls -922 477 Pls -992 505 Pls -1061 533 Pls -1131 561 Pls -1200 588 Pls -1269 616 Pls -1339 643 Pls -1408 670 Pls -1478 696 Pls -1547 720 Pls -1616 744 Pls -1686 767 Pls -1755 789 Pls -1825 811 Pls -1894 832 Pls -1964 853 Pls -2033 872 Pls -2102 892 Pls -2172 909 Pls -2241 925 Pls -2311 941 Pls -2380 956 Pls -2450 969 Pls -2519 981 Pls -2588 992 Pls -2658 1002 Pls -2727 1011 Pls -2797 1020 Pls -2866 1027 Pls -2936 1034 Pls -3005 1040 Pls -3074 1044 Pls -3144 1048 Pls -3213 1052 Pls -3283 1054 Pls -3352 1055 Pls -3421 1056 Pls -3491 1056 Pls -3560 1056 Pls -3630 1054 Pls -3699 1052 Pls -3769 1049 Pls -3838 1045 Pls -3907 1041 Pls -3977 1035 Pls -4046 1029 Pls -4116 1023 Pls -4185 1019 Pls -4255 1013 Pls -4324 1007 Pls -4393 1001 Pls -4463 993 Pls -4532 985 Pls -4602 977 Pls -4671 968 Pls -4740 958 Pls -4810 951 Pls -4879 943 Pls -4949 936 Pls -5018 928 Pls -5088 919 Pls -5157 910 Pls -5226 900 Pls -5296 890 Pls -5365 879 Pls -5435 870 Pls -5504 861 Pls -5574 852 Pls -5643 843 Pls -5712 834 Pls -5782 825 Pls -5851 817 Pls -5921 809 Pls -5990 801 Pls -6060 792 Pls -6129 785 Pls -6198 779 Pls -6268 772 Pls -6337 765 Pls -6407 757 Pls -6476 750 Pls -6545 742 Pls -6615 734 Pls -6684 725 Pls -6754 718 Pls -6823 712 Pls -6893 706 Pls -6962 700 Pls -6594 4739 Pls -1.000 UP -1.000 UL -LT1 -6311 4599 M -('M10.keV' us 1:3) Rshow -783 420 Crs -853 534 Crs -922 646 Crs -992 757 Crs -1061 866 Crs -1131 971 Crs -1200 1067 Crs -1269 1159 Crs -1339 1245 Crs -1408 1326 Crs -1478 1400 Crs -1547 1465 Crs -1616 1524 Crs -1686 1570 Crs -1755 1610 Crs -1825 1644 Crs -1894 1670 Crs -1964 1690 Crs -2033 1702 Crs -2102 1708 Crs -2172 1710 Crs -2241 1705 Crs -2311 1693 Crs -2380 1675 Crs -2450 1653 Crs -2519 1635 Crs -2588 1611 Crs -2658 1583 Crs -2727 1548 Crs -2797 1516 Crs -2866 1488 Crs -2936 1456 Crs -3005 1419 Crs -3074 1379 Crs -3144 1343 Crs -3213 1308 Crs -3283 1272 Crs -3352 1241 Crs -3421 1208 Crs -3491 1181 Crs -3560 1154 Crs -3630 1124 Crs -3699 1092 Crs -3769 1060 Crs -3838 1038 Crs -3907 1014 Crs -3977 988 Crs -4046 961 Crs -4116 936 Crs -4185 917 Crs -4255 897 Crs -4324 876 Crs -4393 854 Crs -4463 835 Crs -4532 819 Crs -4602 802 Crs -4671 784 Crs -4740 766 Crs -4810 753 Crs -4879 741 Crs -4949 728 Crs -5018 715 Crs -5088 702 Crs -5157 692 Crs -5226 681 Crs -5296 671 Crs -5365 659 Crs -5435 649 Crs -5504 641 Crs -5574 633 Crs -5643 624 Crs -5712 615 Crs -5782 609 Crs -5851 604 Crs -5921 598 Crs -5990 593 Crs -6060 588 Crs -6129 582 Crs -6198 576 Crs -6268 570 Crs -6337 564 Crs -6407 558 Crs -6476 551 Crs -6545 545 Crs -6615 540 Crs -6684 537 Crs -6754 534 Crs -6823 531 Crs -6893 527 Crs -6962 524 Crs -6594 4599 Crs -1.000 UP -1.000 UL -LT2 -6311 4459 M -('M20.keV'us 1:3) Rshow -749 420 Star -783 647 Star -818 871 Star -853 1093 Star -888 1311 Star -922 1522 Star -957 1714 Star -992 1897 Star -1026 2069 Star -1061 2233 Star -1096 2381 Star -1131 2511 Star -1165 2629 Star -1200 2723 Star -1235 2804 Star -1269 2871 Star -1304 2925 Star -1339 2965 Star -1374 2991 Star -1408 3004 Star -1443 3008 Star -1478 2999 Star -1512 2977 Star -1547 2942 Star -1582 2898 Star -1616 2863 Star -1651 2818 Star -1686 2761 Star -1721 2694 Star -1755 2629 Star -1790 2574 Star -1825 2511 Star -1859 2439 Star -1894 2358 Star -1929 2286 Star -1964 2217 Star -1998 2146 Star -2033 2085 Star -2068 2018 Star -2102 1965 Star -2137 1911 Star -2172 1852 Star -2207 1788 Star -2241 1723 Star -2276 1679 Star -2311 1631 Star -2345 1580 Star -2380 1525 Star -2415 1476 Star -2450 1438 Star -2484 1398 Star -2519 1355 Star -2554 1311 Star -2588 1273 Star -2623 1241 Star -2658 1207 Star -2693 1171 Star -2727 1134 Star -2762 1108 Star -2797 1084 Star -2831 1059 Star -2866 1032 Star -2901 1005 Star -2936 985 Star -2970 964 Star -3005 942 Star -3040 920 Star -3074 898 Star -3109 882 Star -3144 866 Star -3178 848 Star -3213 830 Star -3248 817 Star -3283 807 Star -3317 797 Star -3352 786 Star -3387 775 Star -3421 764 Star -3456 752 Star -3491 740 Star -3526 727 Star -3560 714 Star -3595 701 Star -3630 687 Star -3664 678 Star -3699 671 Star -3734 665 Star -3769 658 Star -3803 651 Star -3838 644 Star -3873 637 Star -3907 630 Star -3942 622 Star -3977 614 Star -4012 606 Star -4046 598 Star -4081 592 Star -4116 588 Star -4150 584 Star -4185 580 Star -4220 575 Star -4255 571 Star -4289 566 Star -4324 561 Star -4359 556 Star -4393 551 Star -4428 546 Star -4463 541 Star -4498 538 Star -4532 535 Star -4567 532 Star -4602 529 Star -4636 526 Star -4671 523 Star -4706 520 Star -4740 517 Star -4775 514 Star -4810 511 Star -4845 507 Star -4879 504 Star -4914 501 Star -4949 498 Star -4983 495 Star -5018 492 Star -5053 489 Star -5088 486 Star -5122 482 Star -5157 479 Star -5192 476 Star -5226 472 Star -5261 469 Star -5296 466 Star -5331 462 Star -5365 458 Star -5400 455 Star -5435 451 Star -5469 447 Star -5504 444 Star -5539 440 Star -5574 436 Star -5608 432 Star -5643 428 Star -5678 424 Star -5712 420 Star -5747 420 Star -5782 420 Star -5817 420 Star -5851 420 Star -5886 420 Star -5921 420 Star -5955 420 Star -5990 420 Star -6025 420 Star -6060 420 Star -6094 420 Star -6129 420 Star -6164 420 Star -6198 420 Star -6233 420 Star -6268 420 Star -6302 420 Star -6337 420 Star -6372 420 Star -6407 420 Star -6441 420 Star -6476 420 Star -6511 420 Star -6594 4459 Star -1.000 UP -1.000 UL -LT3 -6311 4319 M -('M30.keV' us 1:3) Rshow -749 420 Box -783 931 Box -818 1433 Box -853 1924 Box -888 2368 Box -922 2775 Box -957 3149 Box -992 3472 Box -1026 3744 Box -1061 3948 Box -1096 4107 Box -1131 4221 Box -1165 4287 Box -1200 4311 Box -1235 4298 Box -1269 4240 Box -1304 4146 Box -1339 4061 Box -1374 3938 Box -1408 3779 Box -1443 3657 Box -1478 3508 Box -1512 3330 Box -1547 3173 Box -1582 3014 Box -1616 2872 Box -1651 2743 Box -1686 2617 Box -1721 2475 Box -1755 2347 Box -1790 2240 Box -1825 2122 Box -1859 2008 Box -1894 1921 Box -1929 1826 Box -1964 1727 Box -1998 1655 Box -2033 1577 Box -2068 1492 Box -2102 1438 Box -2137 1381 Box -2172 1321 Box -2207 1271 Box -2241 1223 Box -2276 1172 Box -2311 1130 Box -2345 1092 Box -2380 1052 Box -2415 1019 Box -2450 997 Box -2484 973 Box -2519 948 Box -2554 921 Box -2588 893 Box -2623 864 Box -2658 833 Box -2693 811 Box -2727 796 Box -2762 781 Box -2797 766 Box -2831 749 Box -2866 732 Box -2901 714 Box -2936 696 Box -2970 682 Box -3005 673 Box -3040 663 Box -3074 653 Box -3109 642 Box -3144 631 Box -3178 620 Box -3213 608 Box -3248 600 Box -3283 593 Box -3317 587 Box -3352 580 Box -3387 573 Box -3421 566 Box -3456 558 Box -3491 551 Box -3526 544 Box -3560 537 Box -3595 530 Box -3630 523 Box -3664 515 Box -3699 508 Box -3734 500 Box -3769 492 Box -3803 484 Box -3838 475 Box -3873 467 Box -3907 458 Box -3942 449 Box -3977 440 Box -4012 431 Box -4046 421 Box -4081 420 Box -4116 420 Box -4150 420 Box -4185 420 Box -4220 420 Box -4255 420 Box -4289 420 Box -4324 420 Box -4359 420 Box -4393 420 Box -4428 420 Box -4463 420 Box -4498 420 Box -4532 420 Box -4567 420 Box -6594 4319 Box -stroke -grestore -end -showpage -%%Trailer -%%DocumentFonts: Helvetica -%%Pages: 1 diff --git a/geant4/LEMuSR/MEYER/Mallsin.pdf b/geant4/LEMuSR/MEYER/Mallsin.pdf deleted file mode 100644 index cc44613880952cf20887897a860b27343dc05322..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15322 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

0pr#!}tD|dd;I5VJqjT%4 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 E0o;2Xafc4q;eBbl@{`lT{nK?6O&YU@O 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 -#include -#include -#include -#include -using namespace std; - - -meyer::meyer() -{;} - -meyer::~meyer() -{;} - - -void meyer::GFunctions(double* g1,double* g2, double tau) - -{ - - //Diese Routine gibt in Abhaengigkeit von der reduzierten Dicke 'tau' - //Funktionswerte fuer g1 und g2 zurueck. g1 und g2 sind dabei die von - //Meyer angegebenen tabellierten Funktionen fuer die Berechnung von Halbwerts- - //breiten von Streuwinkelverteilungen. (L.Meyer, phys.stat.sol. (b) 44, 253 - //(1971)) - - - double help; - - int i; - - - double tau_[] = {0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, - 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, - 10.0, 12.0, 14.0, 16.0, 18.0, 20.0 }; - - double g1_[] = {0.050,0.115,0.183,0.245,0.305,0.363,0.419,0.473,0.525,0.575, - 0.689,0.799,0.905,1.010,1.100,1.190,1.370,1.540,1.700,1.850, - 1.990,2.270,2.540,2.800,3.050,3.290 }; - - double g2_[] = {0.00,1.25,0.91,0.79,0.73,0.69,0.65,0.63,0.61,0.59, - 0.56,0.53,0.50,0.47,0.45,0.43,0.40,0.37,0.34,0.32, - 0.30,0.26,0.22,0.18,0.15,0.13 }; - - - if (tau kann ich nicht ... => STOP"< Tabelle A - thetaSchlangeMax = 4.0; - } - else if (tau<=8.) - { - //! => Tabelle B - thetaSchlangeMax = 7.0; - } - else if (tau<=20.) - { - //! => Tabelle C - thetaSchlangeMax = 20.0; - } - else - { - std::cout<< "Subroutine ''Get_F_Function_Meyer'':"< kann ich nicht ... => STOP"<50.) - { - thetaStep = .5; - } - - else if (thetaMax>25) - { - thetaStep = .25; - } - else if (thetaMax>12.5) - { - thetaStep = .125; - } - else - { - thetaStep = .0625; - } - - - //Tabelle der F-Werte erstellen: - - nBin = 0; - std::cout<<"thetamax = "<nBinMax) - { - std::cout<< "nBin > nBinMax => EXIT"; - break; - } - - value[nBin] = sin(theta)*F; - - fValues[nBin+1] = F; // ! fuer Testzwecke - fValuesFolded[nBin+1] = sin(theta/180*M_PI)*F;// ! fuer Testzwecke - - - }// end of do loop - - - //Berechnen der Flaecheninhalte der einzelnen Kanaele sowie der Integrale: - - bigtheta:for( i = 1;i<= nBin; i++) - { - area[i] = (value[i]+value[i-1])/2.* thetaStep; - integ[i] = integ[i-1] + area[i]; - } - - - //Normiere totale Flaeche auf 1: - - rHelp = integ[nBin]; - for( i = 1; i<=nBin; i++) - { - value[i] = value[i] / rHelp; - area[i] = area[i] / rHelp; - integ[i] = integ[i] / rHelp; - } - - - //vorerst noch: gib Tabelle in Datei und Histogrammfile aus: - - //! Berechne die Werte fuer theta=0: - - F_Functions_Meyer(tau,0.,&f1,&f2); - F = Meyer_faktor4*Meyer_faktor4 * Ekin*Ekin /2 /M_PI * (f1 - Meyer_faktor3*f2);// TAO, Anselm was: Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2); - fValues[1] = F; - fValuesFolded[1] = 0.; - - //! Gib die Werte in das Tabellenfile aus: - - ofstream Mprint("tkm.out"); - theta = thetaStep; - if (!Mprint.is_open()) exit(8); - for( i = 1; i<=nBin+1;i++) - { - Mprint << theta<< " "<< fValues[i]/fValues[1]<<" " << fValuesFolded[i]< Reihe mit hoeherem Index - //iColumn = 2 => Reihe mit kleinerem Index - - - iColumn = 1; - - // 5 continue; - do{ - - if (column_<=8) - { - //! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - //! Werte aus 1. Tabelle: 0.2 <= tau <= 1.8 - - column = column_; - // std::cout<<"thetaSchlange = "<> 20*(a/r0)^(4/3) sein muss. Fuer Protonen auf -c Graphit ist laut Referenz a/r0 gleich 0.26 (mit Dichte von 3.5 g/ccm habe -c ich einen Wert von 0.29 abgeschaetzt). Fuer Myonen hat man den selben -c Wert zu nehmen. Damit ergibt sich die Forderung, dass n >> 3.5 sein muss. -c -c (2) unabhaengig von (1) n >> 5 sein muss, was (1) also mit einschliesst. -c -c Mit n = Pi*r0*r0*Teilchen/Flaeche ergibt sich fuer eine Foliendicke von -c 3 ug/cm^2 als Abschaetzung fuer n ein Wert von 37. (r0 ueber r0 = 0.5 N^(1/3) -c und 3.5 g/ccm zu 8.9e-9 cm abgeschaetzt). D.h., dass die Bedingungen in -c unserem Fall gut erfuellt sind. -c In dem Paper wird eine Formel fuer Halbwertsbreiten angegeben. Ich habe nicht -c kontrolliert, in wie weit die Form der Verteilung tatsaechlich einer Gauss- -c verteilung entspricht. Zumindest im Bereich der Vorwaertsstreuung sollte -c die in diesem Programm verwendete Gaussverteilung aber eine sehr gute -c Naeherung abgeben. Abweichungen bei groesseren Winkeln koennten jedoch u. U. -c die absolute Streuintensitaet in Vorwaertsrichtung verfaelschen. - -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -c HIER GEHT DER PROGRAMMTEXT RICHTIG LOS -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz - - - - - -c=============================================================================== - - options /extend_source - - subroutine Get_F_Function_Meyer(tau,Ekin) -c ========================================= - - implicit none - - real tau - real Ekin - - real thetaSchlange,thetaSchlangeMax - real theta,thetaMax,thetaStep - real f1,f2,F - - -c------------------------------------ -c - Parameter: - - real Z1, Z2 ! die atomaren Nummern von Projektil und Target -c real a0 ! Bohrscher Radius in cm - real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der - ! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6) - ! bei Streichung von Z1 (vgl. Referenz, S. 268) - - real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a' - ! und dem ebenfalls bei Meyer angegebenem - ! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben) - real eSquare ! elektrische Ladung zum Quadrat in keV*cm - - real Pi ! die Kreiszahl - -c parameter (a0 = 5.29E-9) - parameter (Z1 = 1, Z2 = 6, ScreeningPar = 2.5764E-9) - parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10) - parameter (Pi = 3.141592654) - - real Meyer_Faktor3 - real Meyer_Faktor4 - real zzz ! 'Hilfsparameter' - real Meyer_Faktor5 - - parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer)) - parameter (Meyer_faktor4 = screeningPar / (2.*Z1*Z2*eSquare) * Pi/180.) - parameter (zzz = screeningPar / (2.*Z1*Z2*eSquare)) - parameter (Meyer_faktor5 = zzz*zzz / (8*Pi*Pi)) - -c------------------------------------ - - integer nBin,nBinMax - parameter (nBinMax=201) - real value(0:nBinMax) /0.,nBinMax*0./ - real area(nBinMax) / nBinMax*0./ - real integ(0:nBinMax) /0.,nBinMax*0./ - common /MeyerTable/ value,area,integ,thetaStep,nBin - - integer i - real rhelp - - integer HB_memsize - parameter(HB_memsize=500000) - real memory(HB_memsize) - COMMON /PAWC/ memory - - -c nur noch fuer Testzwecke: - - real fValues(203) - real fValuesFolded(203) - - integer idh - parameter (idh = 50) - - INCLUDE 'mutrack$sourcedirectory:COM_DIRS.INC' - character filename*20 ! Name der Ausgabe-Dateien - COMMON /filename/ filename - -c------------------------------------------------------------------------------- - -c Festlegen des maximalen Theta-Wertes sowie der Schrittweite: - - if (tau.LT.0.2) then - write(*,*) 'Subroutine ''Get_F_Function_Meyer'':' - write(*,*) 'Effektive Dicke ist kleiner als 0.2 => kann ich nicht ... => STOP' - call exit - elseif (tau.LE.2.) then - ! => Tabelle A - thetaSchlangeMax = 4.0 - elseif (tau.LE.8.) then - ! => Tabelle B - thetaSchlangeMax = 7.0 - elseif (tau.LE.20.) then - ! => Tabelle C - thetaSchlangeMax = 20.0 - else - write(*,*) 'Subroutine ''Get_F_Function_Meyer'':' - write(*,*) 'Effektive Dicke ist groesser als 20 => kann ich nicht ... => STOP' - call exit - endif - - thetaMax = thetaSchlangeMax / Meyer_Faktor4 / Ekin - if (thetaMax.GT.50) then - thetaStep = .5 - elseif (thetaMax.GT.25) then - thetaStep = .25 - elseif (thetaMax.GT.12.5) then - thetaStep = .125 - else - thetaStep = .0625 - endif - - -c Tabelle der F-Werte erstellen: - - nBin = 0 - do theta = thetaStep, thetaMax, thetaStep - - ! Berechne aus theta das 'reduzierte' thetaSchlange (dabei gleich - ! noch von degree bei theta in Radiant bei thetaSchlange umrechnen): - - thetaSchlange = Meyer_faktor4 * Ekin * theta - - ! Auslesen der Tabellenwerte fuer die f-Funktionen: - - call F_Functions_Meyer(tau,thetaSchlange,f1,f2) - if (thetaSchlange.EQ.-1) then - ! wir sind jenseits von thetaSchlangeMax - goto 10 - endif - - ! Berechnen der Streuintensitaet: - F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2) - - nBin = nBin + 1 - if (nBin.GT.nBinMax) then - write(*,*) 'nBin > nBinMax => EXIT' - call exit - endif - value(nBin) = sind(theta)*F - - fValues(nBin+1) = F ! fuer Testzwecke - fValuesFolded(nBin+1) = sind(theta)*F ! fuer Testzwecke - - enddo - - -c Berechnen der Flaecheninhalte der einzelnen Kanaele sowie der Integrale: - -10 do i = 1, nBin - area(i) = (value(i)+value(i-1))/2. * thetaStep - integ(i) = integ(i-1) + area(i) - enddo - - -c Normiere totale Flaeche auf 1: - - rHelp = integ(nBin) - do i = 1, nBin - value(i) = value(i) / rHelp - area(i) = area(i) / rHelp - integ(i) = integ(i) / rHelp - enddo - - -c vorerst noch: gib Tabelle in Datei und Histogrammfile aus: - - ! Berechne die Werte fuer theta=0: - - call F_Functions_Meyer(tau,0.,f1,f2) - F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2) - fValues(1) = F - fValuesFolded(1) = 0. - - ! Gib die Werte in das Tabellenfile aus: - -c theta = 0. -c open (10,file=outDir//':'//filename//'.TAB',status='NEW') -c do i = 1, nBin+1 -c write(10,*) theta, fValues(i), fValuesFolded(i) -c theta = theta + thetaStep -c enddo -c close (10) - - - ! Buchen und Fuellen der Histogramme: - - call HBOOK1(idh,'F',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.) - call HPAK(idh,fValues) - call HRPUT(idh,outDir//':'//filename//'.RZ','N') - call HDELET(idh) - - call HBOOK1(idh+1,'F*sin([q])',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.) - call HPAK(idh+1,fValuesFolded) - call HRPUT(idh+1,outDir//':'//filename//'.RZ','U') - call HDELET(idh+1) - - - END - - -c=============================================================================== - - options /extend_source - - subroutine throwMeyerAngle (theta) -c ================================== - - implicit none - - real lowerbound,y1,y2,f,root,radiant,fraction - integer bin,nBin - integer nBinMax - parameter (nBinMax=201) - - real theta,thetaStep - real value(0:nBinMax) /0.,nBinMax*0./ - real area(nBinMax) / nBinMax*0./ - real integ(0:nBinMax) /0.,nBinMax*0./ - common /MeyerTable/ value,area,integ,thetaStep,nBin - - real rhelp - - real random - integer seed - common /seed/ seed - - -c bin: Nummer des Bins, innerhalb dessen das Integral den Wert von -c random erreicht oder ueberschreitet: - - random = ran(seed) - - bin = 1 - do while (random.GT.integ(bin)) - bin = bin + 1 - if (bin.GT.nBin) then - write(*,*) 'error 1' - call exit - endif - enddo - - fraction = (random-integ(bin-1)) / (integ(bin)-integ(bin-1)) - y1 = value(bin-1) - y2 = value(bin) - f = thetaStep / (y2-y1) - rHelp = y1*f - - radiant = rHelp*rHelp + fraction*thetaStep*(y1+y2)*f - root = SQRT(radiant) - lowerBound = real(bin-1)*thetaStep - if (f.GT.0) then - theta = lowerBound - rHelp + root - else - theta = lowerBound - rHelp - root - endif - - - END - - -c=============================================================================== - - options /extend_source - - subroutine F_Functions_Meyer(tau,thetaSchlange,f1,f2) -c ===================================================== - - implicit none - -c Diese Routine gibt in Abhaengigkeit von 'thetaSchlange' und 'tau' -c Funktionswerte fuer f1 und f2 zurueck. f1 und f2 entsprechen dabei den -c bei Meyer angegebenen Funktion gleichen Namens. Die in dieser Routine -c verwendeten Tabellen sind eben dieser Referenz entnommen: -c L.Meyer, phys.stat.sol. (b) 44, 253 (1971) - - real tau,thetaSchlange - real f1, f2, f1_(2), f2_(2) - - integer column_,column,row - - integer iColumn - real weightCol, weightRow - -c------------------------------------------------------------------------------- diff --git a/geant4/LEMuSR/MEYER/meyer.h b/geant4/LEMuSR/MEYER/meyer.h deleted file mode 100644 index 351da12..0000000 --- a/geant4/LEMuSR/MEYER/meyer.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef meyer_h -#define meyer_h 1 - -#include -#include -#include -#include -#include -#include -#include - - -class meyer -{ - public: - meyer(); - ~meyer(); - - - void GFunctions(double*, double*, double); - void Get_F_Function_Meyer(double tau, double Ekin, double Z1, double Z2, double m1, double m2); - void F_Functions_Meyer( double tau,double thetaSchlange,double *f1,double *f2); - - -}; - -#endif diff --git a/geant4/LEMuSR/MEYER/mk.sh b/geant4/LEMuSR/MEYER/mk.sh deleted file mode 100644 index 064470f..0000000 --- a/geant4/LEMuSR/MEYER/mk.sh +++ /dev/null @@ -1 +0,0 @@ -g++ testmeyer.cc meyer.cc diff --git a/geant4/LEMuSR/MEYER/mtest.for b/geant4/LEMuSR/MEYER/mtest.for deleted file mode 100644 index 494d82a..0000000 --- a/geant4/LEMuSR/MEYER/mtest.for +++ /dev/null @@ -1,698 +0,0 @@ - PROGRAM mtest - IMPLICIT NONE - - - write(*,*)'SUBROUTINE G_Functions:' - - - SUBROUTINE G_Functions(G1,G2,tau) -c ================================= - -c Diese Routine gibt in Abhaengigkeit von der reduzierten Dicke 'tau' -c Funktionswerte fuer g1 und g2 zurueck. g1 und g2 sind dabei die von -c Meyer angegebenen tabellierten Funktionen fuer die Berechnung von Halbwerts- -c breiten von Streuwinkelverteilungen. (L.Meyer, phys.stat.sol. (b) 44, 253 -c (1971)) - - IMPLICIT NONE - - real tau,g1,g2 - real tau_(26),g1_(26),g2_(26) - real help - - integer i - - DATA tau_ /0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, - + 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, - + 10.0, 12.0, 14.0, 16.0, 18.0, 20.0 / - - DATA g1_ /0.050,0.115,0.183,0.245,0.305,0.363,0.419,0.473,0.525,0.575, - + 0.689,0.799,0.905,1.010,1.100,1.190,1.370,1.540,1.700,1.850, - + 1.990,2.270,2.540,2.800,3.050,3.290 / - DATA g2_ / 0.00,1.25,0.91,0.79,0.73,0.69,0.65,0.63,0.61,0.59, - + 0.56,0.53,0.50,0.47,0.45,0.43,0.40,0.37,0.34,0.32, - + 0.30,0.26,0.22,0.18,0.15,0.13 / - - if (tau.LT.tau_(1)) then - write(*,*) - write(*,*)'SUBROUTINE G_Functions:' - write(*,*)' Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:' - write(*,*)' aktuelles tau ist kleiner als kleinster Tabellenwert:' - write(*,*)' tau = ',tau - write(*,*)' tau_(1) = ',tau_(1) - write(*,*) - STOP - endif - - i = 1 - - 10 i = i + 1 - if (i.EQ.27) then - write(*,*) - write(*,*)'SUBROUTINE G_Functions:' - write(*,*)' Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:' - write(*,*)' aktuelles tau ist groesser als groesster Tabellenwert:' - write(*,*)' tau = ',tau - write(*,*)' tau_(26) = ',tau_(26) - write(*,*) - STOP - elseif (tau.gt.tau_(i)) then - goto 10 - endif - - -c lineare Interpolation zwischen Tabellenwerten: - - help = (tau-tau_(i-1))/(tau_(i)-tau_(i-1)) - - g1 = g1_(i-1) + help*(g1_(i)-g1_(i-1)) - g2 = g2_(i-1) + help*(g2_(i)-g2_(i-1)) - - - END - - -c=============================================================================== - - options /extend_source - - subroutine Get_F_Function_Meyer(tau,Ekin) -c ========================================= - - implicit none - - real tau - real Ekin - - real thetaSchlange,thetaSchlangeMax - real theta,thetaMax,thetaStep - real f1,f2,F - - -c------------------------------------ -c - Parameter: - - real Z1, Z2 ! die atomaren Nummern von Projektil und Target -c real a0 ! Bohrscher Radius in cm - real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der - ! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6) - ! bei Streichung von Z1 (vgl. Referenz, S. 268) - - real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a' - ! und dem ebenfalls bei Meyer angegebenem - ! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben) - real eSquare ! elektrische Ladung zum Quadrat in keV*cm - - real Pi ! die Kreiszahl - -c parameter (a0 = 5.29E-9) - parameter (Z1 = 1, Z2 = 6, ScreeningPar = 2.5764E-9) - parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10) - parameter (Pi = 3.141592654) - - real Meyer_Faktor3 - real Meyer_Faktor4 - real zzz ! 'Hilfsparameter' - real Meyer_Faktor5 - - parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer)) - parameter (Meyer_faktor4 = screeningPar / (2.*Z1*Z2*eSquare) * Pi/180.) - parameter (zzz = screeningPar / (2.*Z1*Z2*eSquare)) - parameter (Meyer_faktor5 = zzz*zzz / (8*Pi*Pi)) - -c------------------------------------ - - integer nBin,nBinMax - parameter (nBinMax=201) - real value(0:nBinMax) /0.,nBinMax*0./ - real area(nBinMax) / nBinMax*0./ - real integ(0:nBinMax) /0.,nBinMax*0./ - common /MeyerTable/ value,area,integ,thetaStep,nBin - - integer i - real rhelp - - integer HB_memsize - parameter(HB_memsize=500000) - real memory(HB_memsize) - COMMON /PAWC/ memory - - -c nur noch fuer Testzwecke: - - real fValues(203) - real fValuesFolded(203) - - integer idh - parameter (idh = 50) - - INCLUDE 'mutrack$sourcedirectory:COM_DIRS.INC' - character filename*20 ! Name der Ausgabe-Dateien - COMMON /filename/ filename - -c------------------------------------------------------------------------------- - -c Festlegen des maximalen Theta-Wertes sowie der Schrittweite: - - if (tau.LT.0.2) then - write(*,*) 'Subroutine ''Get_F_Function_Meyer'':' - write(*,*) 'Effektive Dicke ist kleiner als 0.2 => kann ich nicht ... => STOP' - call exit - elseif (tau.LE.2.) then - ! => Tabelle A - thetaSchlangeMax = 4.0 - elseif (tau.LE.8.) then - ! => Tabelle B - thetaSchlangeMax = 7.0 - elseif (tau.LE.20.) then - ! => Tabelle C - thetaSchlangeMax = 20.0 - else - write(*,*) 'Subroutine ''Get_F_Function_Meyer'':' - write(*,*) 'Effektive Dicke ist groesser als 20 => kann ich nicht ... => STOP' - call exit - endif - - thetaMax = thetaSchlangeMax / Meyer_Faktor4 / Ekin - if (thetaMax.GT.50) then - thetaStep = .5 - elseif (thetaMax.GT.25) then - thetaStep = .25 - elseif (thetaMax.GT.12.5) then - thetaStep = .125 - else - thetaStep = .0625 - endif - - -c Tabelle der F-Werte erstellen: - - nBin = 0 - do theta = thetaStep, thetaMax, thetaStep - - ! Berechne aus theta das 'reduzierte' thetaSchlange (dabei gleich - ! noch von degree bei theta in Radiant bei thetaSchlange umrechnen): - - thetaSchlange = Meyer_faktor4 * Ekin * theta - - ! Auslesen der Tabellenwerte fuer die f-Funktionen: - - call F_Functions_Meyer(tau,thetaSchlange,f1,f2) - if (thetaSchlange.EQ.-1) then - ! wir sind jenseits von thetaSchlangeMax - goto 10 - endif - - ! Berechnen der Streuintensitaet: - F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2) - - nBin = nBin + 1 - if (nBin.GT.nBinMax) then - write(*,*) 'nBin > nBinMax => EXIT' - call exit - endif - value(nBin) = sind(theta)*F - - fValues(nBin+1) = F ! fuer Testzwecke - fValuesFolded(nBin+1) = sind(theta)*F ! fuer Testzwecke - - enddo - - -c Berechnen der Flaecheninhalte der einzelnen Kanaele sowie der Integrale: - - 10 do i = 1, nBin - area(i) = (value(i)+value(i-1))/2. * thetaStep - integ(i) = integ(i-1) + area(i) - enddo - - -c Normiere totale Flaeche auf 1: - - rHelp = integ(nBin) - do i = 1, nBin - value(i) = value(i) / rHelp - area(i) = area(i) / rHelp - integ(i) = integ(i) / rHelp - enddo - - -c vorerst noch: gib Tabelle in Datei und Histogrammfile aus: - - ! Berechne die Werte fuer theta=0: - - call F_Functions_Meyer(tau,0.,f1,f2) - F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2) - fValues(1) = F - fValuesFolded(1) = 0. - - ! Gib die Werte in das Tabellenfile aus: - -c theta = 0. -c open (10,file=outDir//':'//filename//'.TAB',status='NEW') -c do i = 1, nBin+1 -c write(10,*) theta, fValues(i), fValuesFolded(i) -c theta = theta + thetaStep -c enddo -c close (10) - - - ! Buchen und Fuellen der Histogramme: - - call HBOOK1(idh,'F',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.) - call HPAK(idh,fValues) - call HRPUT(idh,outDir//':'//filename//'.RZ','N') - call HDELET(idh) - - call HBOOK1(idh+1,'F*sin([q])',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.) - call HPAK(idh+1,fValuesFolded) - call HRPUT(idh+1,outDir//':'//filename//'.RZ','U') - call HDELET(idh+1) - - - END - - -c=============================================================================== - - options /extend_source - - subroutine throwMeyerAngle (theta) -c ================================== - - implicit none - - real lowerbound,y1,y2,f,root,radiant,fraction - integer bin,nBin - integer nBinMax - parameter (nBinMax=201) - - real theta,thetaStep - real value(0:nBinMax) /0.,nBinMax*0./ - real area(nBinMax) / nBinMax*0./ - real integ(0:nBinMax) /0.,nBinMax*0./ - common /MeyerTable/ value,area,integ,thetaStep,nBin - - real rhelp - - real random - integer seed - common /seed/ seed - - -c bin: Nummer des Bins, innerhalb dessen das Integral den Wert von -c random erreicht oder ueberschreitet: - - random = ran(seed) - - bin = 1 - do while (random.GT.integ(bin)) - bin = bin + 1 - if (bin.GT.nBin) then - write(*,*) 'error 1' - call exit - endif - enddo - - fraction = (random-integ(bin-1)) / (integ(bin)-integ(bin-1)) - y1 = value(bin-1) - y2 = value(bin) - f = thetaStep / (y2-y1) - rHelp = y1*f - - radiant = rHelp*rHelp + fraction*thetaStep*(y1+y2)*f - root = SQRT(radiant) - lowerBound = real(bin-1)*thetaStep - if (f.GT.0) then - theta = lowerBound - rHelp + root - else - theta = lowerBound - rHelp - root - endif - - - END - - -c=============================================================================== - - options /extend_source - - subroutine F_Functions_Meyer(tau,thetaSchlange,f1,f2) -c ===================================================== - - implicit none - -c Diese Routine gibt in Abhaengigkeit von 'thetaSchlange' und 'tau' -c Funktionswerte fuer f1 und f2 zurueck. f1 und f2 entsprechen dabei den -c bei Meyer angegebenen Funktion gleichen Namens. Die in dieser Routine -c verwendeten Tabellen sind eben dieser Referenz entnommen: -c L.Meyer, phys.stat.sol. (b) 44, 253 (1971) - - real tau,thetaSchlange - real f1, f2, f1_(2), f2_(2) - - integer column_,column,row - - integer iColumn - real weightCol, weightRow - -c------------------------------------------------------------------------------- - -c die Tabellendaten der Referenz (Tabellen 2 und 3): - - integer nColumn - parameter (nColumn = 25) - real tau_(nColumn) / - + 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0, - + 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 10., 12., 14., 16., 18., 20. / - - integer nRowA - parameter (nRowA = 25) - real thetaSchlangeA(nRowA) / - + .00, .05, .10, .15, .20, .25, .30, .35, .40, .45, .50, .60, - + .70, .80, .90, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0, 3.5, 4.0 / - - integer nRowB - parameter (nRowB = 24) - real thetaSchlangeB(nRowB) / - + 0.0, 0.2, 0.4, 0.5, 0.6, 0.8, 1.0, 1.2, 1.4, 1.5, 1.6, 1.8, - + 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0 / - - integer nRowC - parameter (nRowC = 24) - real thetaSchlangeC(nRowC) / - + 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, - + 7.0, 8.0, 9.0, 10., 11., 12., 13., 14., 15., 16., 18., 20. / - - - real f1_A(9,nRowA) - + /1.69E+2,4.55E+1,2.11E+1,1.25E+1,8.48E+0,6.21E+0,4.80E+0,3.86E+0,3.20E+0, - + 9.82E+1,3.72E+1,1.97E+1,1.20E+1,8.27E+0,6.11E+0,4.74E+0,3.83E+0,3.17E+0, - + 3.96E+1,2.58E+1,1.65E+1,1.09E+1,7.73E+0,5.82E+0,4.58E+0,3.72E+0,3.10E+0, - + 1.76E+1,1.58E+1,1.27E+1,9.26E+0,6.93E+0,5.38E+0,4.31E+0,3.55E+0,2.99E+0, - + 8.62E+0,1.01E+1,9.45E+0,7.58E+0,6.02E+0,4.85E+0,3.98E+0,3.33E+0,2.84E+0, - + 4.65E+0,6.55E+0,6.91E+0,6.06E+0,5.11E+0,4.28E+0,3.62E+0,3.08E+0,2.66E+0, - + 2.74E+0,4.45E+0,5.03E+0,4.78E+0,4.27E+0,3.72E+0,3.23E+0,2.82E+0,2.47E+0, - + 1.77E+0,3.02E+0,3.71E+0,3.76E+0,3.53E+0,3.20E+0,2.86E+0,2.55E+0,2.27E+0, - + 1.22E+0,2.19E+0,2.78E+0,2.96E+0,2.91E+0,2.73E+0,2.51E+0,2.28E+0,2.07E+0, - + 8.82E-1,1.59E+0,2.12E+0,2.35E+0,2.39E+0,2.32E+0,2.19E+0,2.03E+0,1.87E+0, - + 6.55E-1,1.20E+0,1.64E+0,1.88E+0,1.97E+0,1.96E+0,1.90E+0,1.79E+0,1.68E+0, - + 3.80E-1,7.15E-1,1.01E+0,1.22E+0,1.35E+0,1.40E+0,1.41E+0,1.39E+0,1.34E+0, - + 2.26E-1,4.45E-1,6.44E-1,8.08E-1,9.28E-1,1.01E+0,1.05E+0,1.06E+0,1.05E+0, - + 1.39E-1,2.80E-1,4.21E-1,5.45E-1,6.46E-1,7.22E-1,7.75E-1,8.07E-1,8.21E-1, - + 8.22E-2,1.76E-1,2.78E-1,3.71E-1,4.53E-1,5.21E-1,5.74E-1,6.12E-1,6.37E-1, - + 5.04E-2,1.11E-1,1.86E-1,2.57E-1,3.22E-1,3.79E-1,4.27E-1,4.65E-1,4.94E-1, - + 2.51E-2,5.60E-2,9.24E-2,1.31E-1,1.69E-1,2.02E-1,2.40E-1,2.71E-1,2.97E-1, - + 1.52E-2,3.20E-2,5.08E-2,7.23E-2,9.51E-2,1.18E-1,1.41E-1,1.63E-1,1.83E-1, - + 1.03E-2,2.05E-2,3.22E-2,4.55E-2,6.01E-2,7.53E-2,9.02E-2,1.05E-1,1.19E-1, - + 8.80E-3,1.48E-2,2.25E-2,3.13E-2,4.01E-2,5.03E-2,6.01E-2,7.01E-2,8.01E-2, - + 6.10E-3,1.15E-2,1.71E-2,2.28E-2,2.89E-2,3.52E-2,4.18E-2,4.86E-2,5.55E-2, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,1.71E-2,1.98E-2,2.28E-2,2.58E-2, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.90E-3,1.02E-2,1.16E-2,1.31E-2, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,4.90E-3,5.70E-3,6.40E-3,7.20E-3, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.90E-3,3.40E-3,3.90E-3,4.30E-3/ - - real f1_B(9,nRowB) - + /2.71E+0,1.92E+0,1.46E+0,1.16E+0,9.52E-1,8.03E-1,6.90E-1,5.32E-1,4.28E-1, - + 2.45E+0,1.79E+0,1.39E+0,1.12E+0,9.23E-1,7.82E-1,6.75E-1,5.23E-1,4.23E-1, - + 1.87E+0,1.48E+0,1.20E+0,9.96E-1,8.42E-1,7.24E-1,6.32E-1,4.98E-1,4.07E-1, - + 1.56E+0,1.30E+0,1.09E+0,9.19E-1,7.89E-1,6.86E-1,6.03E-1,4.80E-1,3.95E-1, - + 1.28E+0,1.11E+0,9.62E-1,8.33E-1,7.27E-1,6.40E-1,5.69E-1,4.59E-1,3.81E-1, - + 8.23E-1,7.90E-1,7.29E-1,6.64E-1,6.01E-1,5.44E-1,4.94E-1,4.12E-1,3.49E-1, - + 5.14E-1,5.36E-1,5.29E-1,5.07E-1,4.78E-1,4.47E-1,4.16E-1,3.60E-1,3.13E-1, - + 3.19E-1,3.58E-1,3.76E-1,3.78E-1,3.70E-1,3.57E-1,3.45E-1,3.08E-1,2.76E-1, - + 2.02E-1,2.40E-1,2.64E-1,2.77E-1,2.82E-1,2.80E-1,2.65E-1,2.59E-1,2.39E-1, - + 1.67E-1,1.96E-1,2.20E-1,2.36E-1,2.44E-1,2.47E-1,2.45E-1,2.35E-1,2.21E-1, - + 1.33E-1,1.61E-1,1.85E-1,2.02E-1,2.12E-1,2.18E-1,2.18E-1,2.14E-1,2.03E-1, - + 8.99E-2,1.12E-1,1.32E-1,1.48E-1,1.59E-1,1.67E-1,1.68E-1,1.75E-1,1.72E-1, - + 6.24E-2,7.94E-2,9.50E-2,1.09E-1,1.20E-1,1.29E-1,1.35E-1,1.42E-1,1.43E-1, - + 4.55E-2,5.74E-2,6.98E-2,8.11E-2,9.09E-2,9.92E-2,1.06E-1,1.15E-1,1.19E-1, - + 3.35E-2,4.22E-2,5.19E-2,6.11E-2,6.95E-2,7.69E-2,8.33E-2,9.28E-2,9.85E-2, - + 2.50E-2,3.16E-2,3.92E-2,4.66E-2,5.35E-2,6.00E-2,6.57E-2,7.49E-2,8.13E-2, - + 1.90E-2,2.40E-2,2.99E-2,3.58E-2,4.16E-2,4.70E-2,5.20E-2,6.05E-2,6.70E-2, - + 1.47E-2,1.86E-2,2.32E-2,2.79E-2,3.25E-2,3.70E-2,4.12E-2,4.89E-2,5.51E-2, - + 8.10E-3,1.04E-2,1.30E-2,1.57E-2,1.84E-2,2.12E-2,2.40E-2,2.93E-2,3.42E-2, - + 4.80E-3,6.20E-3,7.70E-3,9.30E-3,1.09E-2,1.26E-2,1.44E-2,1.79E-2,2.14E-2, - + 2.80E-3,3.80E-3,4.70E-3,5.70E-3,6.70E-3,7.50E-3,8.90E-3,1.13E-2,1.36E-2, - + 1.70E-3,2.30E-3,2.90E-3,3.60E-3,4.20E-3,4.90E-3,5.60E-3,7.20E-3,8.80E-3, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.00E-3,2.80E-3,3.50E-3, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.80E-4,1.20E-3,1.60E-3/ - - real f1_C(7,nRowC) - + /3.65E-1,2.62E-1,2.05E-1,1.67E-1,1.41E-1,1.21E-1,1.05E-1, - + 3.33E-1,2.50E-1,1.95E-1,1.61E-1,1.36E-1,1.18E-1,1.03E-1, - + 2.75E-1,2.18E-1,1.76E-1,1.48E-1,1.27E-1,1.11E-1,9.80E-2, - + 2.04E-1,1.75E-1,1.50E-1,1.29E-1,1.13E-1,1.01E-1,9.00E-2, - + 1.41E-1,1.31E-1,1.19E-1,1.08E-1,9.71E-2,8.88E-2,8.01E-2, - + 9.32E-2,9.42E-2,9.10E-2,8.75E-2,8.00E-2,7.44E-2,6.91E-2, - + 5.98E-2,6.52E-2,6.72E-2,6.62E-2,6.40E-2,6.12E-2,5.82E-2, - + 3.83E-2,4.45E-2,4.80E-2,4.96E-2,4.98E-2,4.90E-2,4.77E-2, - + 2.46E-2,3.01E-2,3.40E-2,3.65E-2,3.79E-2,3.84E-2,3.83E-2, - + 1.59E-2,2.03E-2,2.39E-2,2.66E-2,2.85E-2,2.97E-2,3.04E-2, - + 1.04E-2,1.37E-2,1.66E-2,1.92E-2,2.12E-2,2.27E-2,2.37E-2, - + 4.39E-3,6.26E-3,8.26E-3,9.96E-3,1.15E-2,1.29E-2,1.41E-2, - + 2.06E-3,3.02E-3,4.24E-3,5.28E-3,6.32E-3,7.32E-3,8.26E-3, - + 1.21E-3,1.69E-3,2.24E-3,2.85E-3,3.50E-3,4.16E-3,4.82E-3, - + 8.50E-4,1.10E-3,1.38E-3,1.65E-3,2.03E-3,2.45E-3,2.88E-3, - + 5.90E-4,7.40E-4,8.50E-4,9.90E-4,1.23E-3,1.49E-3,1.71E-3, - + 3.90E-4,4.60E-4,5.20E-4,6.30E-4,7.65E-4,9.65E-4,1.12E-3, - + 2.40E-4,2.70E-4,3.10E-4,3.98E-4,4.97E-4,6.03E-4,7.18E-4, - + 1.50E-4,1.70E-4,2.15E-4,2.70E-4,3.35E-4,4.35E-4,5.00E-4, - + 1.00E-4,1.20E-4,1.46E-4,1.90E-4,2.40E-4,2.88E-4,3.43E-4, - + 0.00 ,0.00 ,1.04E-4,1.41E-4,1.80E-4,2.10E-4,2.50E-4, - + 0.00 ,0.00 ,8.20E-5,1.06E-4,1.38E-4,1.58E-4,1.85E-4, - + 0.00 ,0.00 ,5.40E-5,7.00E-5,8.60E-5,1.03E-4,1.20E-4, - + 0.00 ,0.00 ,4.20E-5,5.40E-5,6.50E-5,7.70E-5,8.80E-5/ - - real f2_A(9,nRowA) - + / 3.52E+3, 3.27E+2, 9.08E+1, 3.85E+1, 2.00E+1, 1.18E+1, 7.55E+0, 5.16E+0, 3.71E+0, - + 2.58E+2, 1.63E+2, 7.30E+1, 3.42E+1, 1.85E+1, 1.11E+1, 7.18E+0, 4.96E+0, 3.59E+0, - + -1.12E+2, 4.84E+0, 3.56E+1, 2.34E+1, 1.45E+1, 9.33E+0, 6.37E+0, 4.51E+0, 3.32E+0, - + -5.60E+1,-1.12E+1, 9.87E+0, 1.24E+1, 9.59E+0, 7.01E+0, 5.16E+0, 3.83E+0, 2.91E+0, - + -2.13E+1,-1.22E+1,-2.23E+0, 3.88E+0, 5.15E+0, 4.65E+0, 3.87E+0, 3.12E+0, 2.45E+0, - + -8.25E+0,-9.58E+0,-5.59E+0,-1.40E+0, 1.76E+0, 2.71E+0, 2.71E+0, 2.35E+0, 1.95E+0, - + -3.22E+0,-6.12E+0,-5.28E+0,-2.87E+0,-1.92E-1, 1.32E+0, 1.69E+0, 1.74E+0, 1.48E+0, - + -1.11E+0,-3.40E+0,-4.12E+0,-3.08E+0,-6.30E-1, 3.60E-1, 9.20E-1, 1.03E+0, 1.04E+0, - + -2.27E-1,-2.00E+0,-2.93E+0,-2.69E+0,-1.48E+0,-3.14E-1, 2.69E-1, 5.28E-1, 6.09E-1, - + 1.54E-1,-1.09E+0,-2.10E+0,-2.15E+0,-1.47E+0,-6.77E-1,-1.80E-1, 1.08E-1, 2.70E-1, - + 3.28E-1,-6.30E-1,-1.50E+0,-1.68E+0,-1.34E+0,-8.43E-1,-4.60E-1,-1.85E-1,-4.67E-3, - + 3.32E-1,-2.06E-1,-7.32E-1,-9.90E-1,-9.42E-1,-8.20E-1,-6.06E-1,-4.51E-1,-3.01E-1, - + 2.72E-1,-3.34E-2,-3.49E-1,-5.65E-1,-6.03E-1,-5.79E-1,-5.05E-1,-4.31E-1,-3.45E-1, - + 2.02E-1, 2.80E-2,-1.54E-1,-3.00E-1,-3.59E-1,-3.76E-1,-4.60E-1,-3.40E-1,-3.08E-1, - + 1.38E-1, 4.84E-2,-5.56E-2,-1.44E-1,-2.04E-1,-2.39E-1,-2.54E-1,-2.49E-1,-2.48E-1, - + 9.47E-2, 4.86E-2,-1.08E-2,-6.44E-2,-1.02E-1,-1.34E-1,-1.62E-1,-1.79E-1,-1.87E-1, - + 5.33E-2, 3.71E-2, 1.85E-2, 1.63E-3,-1.69E-2,-3.69E-2,-5.66E-2,-7.78E-2,-9.33E-2, - + 3.38E-2, 2.40E-2, 1.62E-2, 9.90E-3, 3.76E-3,-4.93E-3,-1.66E-2,-3.05E-2,-4.22E-2, - + 2.12E-2, 1.56E-2, 1.05E-2, 7.80E-3, 7.92E-3, 6.30E-3, 3.20E-4,-8.50E-3,-1.66E-2, - + 1.40E-2, 9.20E-3, 5.30E-3, 4.70E-3, 6.31E-3, 8.40E-3, 5.30E-3, 8.80E-4,-3.30E-3, - + 9.20E-3, 4.70E-3, 1.70E-3, 2.60E-3, 4.49E-3, 6.60E-3, 6.00E-3, 4.70E-3, 2.80E-3, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 / - - real f2_B(9,nRowB) - + / 2.75E+0, 1.94E+0, 9.13E-1, 6.06E-1, 4.26E-1, 3.14E-1, 2.40E-1, 1.51E-1, 1.03E-1, - + 1.94E+0, 1.16E+0, 7.56E-1, 5.26E-1, 3.81E-1, 2.87E-1, 2.23E-1, 1.43E-1, 9.78E-2, - + 5.85E-1, 5.04E-1, 4.10E-1, 3.30E-1, 2.69E-1, 2.17E-1, 1.78E-1, 1.22E-1, 8.71E-2, - + 7.83E-2, 2.00E-1, 2.35E-1, 2.19E-1, 1.97E-1, 1.73E-1, 1.48E-1, 1.08E-1, 7.93E-2, - + -1.82E-1, 1.56E-2, 1.04E-1, 1.36E-1, 1.38E-1, 1.31E-1, 1.19E-1, 9.46E-2, 7.19E-2, - + -2.71E-1,-1.66E-1,-7.29E-2,-4.74E-3, 3.60E-2, 5.50E-2, 6.28E-2, 5.98E-2, 5.09E-2, - + -1.87E-1,-1.58E-1,-1.09E-1,-5.80E-2,-2.03E-2, 2.48E-3, 1.99E-2, 3.36E-2, 3.27E-2, - + -1.01E-1,-1.05E-1,-8.95E-2,-6.63E-2,-3.93E-2,-2.38E-2,-9.22E-3, 8.47E-3, 1.52E-2, - + -5.19E-2,-6.47E-2,-6.51E-2,-5.62E-2,-4.51E-2,-3.49E-2,-2.45E-2,-8.19E-3, 2.05E-3, - + -3.68E-2,-4.89E-2,-5.36E-2,-5.06E-2,-4.27E-2,-3.65E-2,-2.80E-2,-1.33E-2,-3.47E-3, - + -2.33E-2,-3.69E-2,-4.41E-2,-4.38E-2,-3.97E-2,-3.50E-2,-2.88E-2,-1.60E-2,-6.68E-3, - + -8.76E-3,-2.07E-2,-2.90E-2,-3.17E-2,-3.09E-2,-2.92E-2,-2.63E-2,-1.79E-2,-1.03E-2, - + -1.20E-3,-1.11E-2,-1.90E-2,-2.20E-2,-2.32E-2,-2.24E-2,-2.10E-2,-1.66E-2,-1.11E-2, - + 1.72E-3,-4.82E-3,-1.02E-2,-1.42E-2,-1.65E-2,-1.66E-2,-1.60E-2,-1.39E-2,-1.09E-2, - + 2.68E-3,-1.18E-3,-5.19E-3,-8.30E-5,-1.01E-2,-1.14E-2,-1.16E-2,-1.16E-2,-9.99E-3, - + 2.81E-3, 8.21E-4,-1.96E-3,-3.99E-3,-5.89E-3,-7.13E-3,-8.15E-3,-9.05E-3,-8.60E-3, - + 2.61E-3, 1.35E-3,-2.99E-4,-1.79E-3,-3.12E-3,-4.44E-3,-5.61E-3,-7.01E-3,-7.27E-3, - + 2.06E-3, 1.45E-3, 4.64E-4,-5.97E-4,-1.71E-3,-2.79E-3,-3.84E-3,-5.29E-3,-5.90E-3, - + 1.07E-3, 9.39E-4, 8.22E-4, 3.58E-4,-1.15E-4,-6.60E-4,-1.18E-3,-2.15E-3,-2.88E-3, - + 4.97E-4, 5.46E-4, 6.15E-4, 5.56E-4, 3.14E-4, 9.80E-5,-1.30E-4,-5.98E-4,-1.07E-4, - + 1.85E-4, 3.11E-4, 4.25E-4, 4.08E-4, 3.63E-4, 3.04E-4, 2.24E-4, 2.80E-5,-2.10E-4, - + 4.80E-5, 1.48E-4, 2.44E-4, 2.80E-4, 3.01E-4, 3.11E-4, 3.13E-4, 2.40E-4, 1.10E-4, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 1.39E-4, 1.80E-4, 1.80E-4, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 4.38E-5, 7.30E-5, 8.40E-5/ - - real f2_C(7,nRowC) - + / 7.36E-2, 4.21E-2, 2.69E-2, 1.83E-2, 1.34E-2, 1.01E-2, 7.88E-3, - + 5.79E-2, 3.61E-2, 2.34E-2, 1.64E-2, 1.21E-2, 9.26E-3, 7.28E-3, - + 2.94E-2, 2.17E-2, 1.60E-2, 1.23E-2, 9.49E-3, 7.45E-3, 5.95E-3, - + 2.30E-3, 7.07E-3, 7.76E-3, 7.02E-3, 6.13E-3, 5.17E-3, 4.34E-3, - + -7.50E-3,-2.00E-3, 9.93E-4, 2.36E-3, 2.82E-3, 2.86E-3, 2.72E-3, - + -8.27E-3,-5.37E-3,-2.58E-3,-7.96E-4, 3.75E-4, 9.71E-4, 1.28E-3, - + -5.79E-3,-5.12E-3,-3.86E-3,-2.46E-3,-1.20E-3,-3.74E-4, 1.74E-4, - + -3.26E-3,-3.43E-3,-3.26E-3,-2.68E-3,-1.84E-3,-1.12E-3,-4.54E-4, - + -1.46E-3,-1.49E-3,-2.20E-3,-2.18E-3,-1.85E-3,-1.40E-3,-8.15E-4, - + -4.29E-4,-9.44E-4,-1.29E-3,-1.50E-3,-1.51E-3,-1.36E-3,-9.57E-4, - + -3.30E-5,-3.66E-4,-6.78E-4,-9.38E-4,-1.09E-3,-1.09E-3,-9.56E-4, - + 1.50E-4, 3.10E-5,-1.38E-4,-3.06E-4,-4.67E-4,-5.48E-4,-6.08E-4, - + 1.00E-4, 8.50E-5, 2.30E-5,-6.60E-5,-1.58E-4,-2.40E-4,-3.05E-4, - + 5.40E-5, 6.50E-5, 4.90E-5, 1.20E-5,-3.60E-5,-8.90E-5,-1.31E-4, - + 2.90E-5, 4.30E-5, 4.40E-5, 2.90E-5, 5.10E-6,-2.20E-5,-4.80E-5, - + 1.40E-5, 2.40E-5, 2.80E-5, 2.60E-5, 1.90E-5, 7.50E-6,-1.10E-5, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 / - - -c=============================================================================== - -c Bestimme, welche Reihen der Tabellen fuer Interpolation benoetigt werden: - - if (tau.LT.tau_(1)) then - write(*,*) 'tau is less than the lowest tabulated value:' - write(*,*) 'tau = ',tau - write(*,*) 'minimum = ',tau_(1) - call exit - elseif (tau.GT.tau_(nColumn)) then - write(*,*) 'tau is greater than the highest tabulated value:' - write(*,*) 'tau = ',tau - write(*,*) 'maximum = ',tau_(nColumn) - call exit - endif - - column_ = 2 - do while (tau.GT.tau_(column_)) - column_ = column_ + 1 - enddo - ! Das Gewicht der Reihe zu groesserem Tau: - weightCol = (tau-tau_(column_-1)) / (tau_(column_)-tau_(column_-1)) - - -c Besorge fuer gegebenes 'thetaSchlange' die interpolierten f1- und f2 -Werte -c der beiden relevanten Reihen: -c iColumn = 1 => Reihe mit hoeherem Index -c iColumn = 2 => Reihe mit kleinerem Index - - - iColumn = 1 - - - 5 continue - - if (column_.LE.9) then ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ! Werte aus 1. Tabelle: 0.2 <= tau <= 1.8 - - column = column_ - - if (thetaSchlange.LT.thetaSchlangeA(1)) then - write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:' - write(*,*) 'thetaSchlange = ',thetaSchlange - write(*,*) 'minimum = ',thetaSchlangeA(1) - call exit - elseif (thetaSchlange.GT.thetaSchlangeA(nRowA)) then -c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:' -c write(*,*) 'thetaSchlange = ',thetaSchlange -c write(*,*) 'maximum = ',thetaSchlangeA(nRowA) -c call exit - thetaSchlange = -1. - RETURN - endif - - row = 2 - do while (thetaSchlange.GT.thetaSchlangeA(row)) - row = row + 1 - enddo - ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange: - weightRow = (thetaSchlange-thetaSchlangeA(row-1)) / - + (thetaSchlangeA(row)-thetaSchlangeA(row-1)) - - f1_(iColumn) = (1.-weightRow) * f1_A(column,row-1) + - + weightRow * f1_A(column,row) - f2_(iColumn) = (1.-weightRow) * f2_A(column,row-1) + - + weightRow * f2_A(column,row) - - - elseif (column_.LE.18) then ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ! Werte aus 2. Tabelle: 2.0 <= tau <= 7.0 - - column = column_ - 9 - - if (thetaSchlange.LT.thetaSchlangeB(1)) then - write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:' - write(*,*) 'thetaSchlange = ',thetaSchlange - write(*,*) 'minimum = ',thetaSchlangeB(1) - call exit - elseif (thetaSchlange.GT.thetaSchlangeB(nRowB)) then -c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:' -c write(*,*) 'thetaSchlange = ',thetaSchlange -c write(*,*) 'maximum = ',thetaSchlangeB(nRowB) -c call exit - thetaSchlange = -1. - RETURN - endif - - row = 2 - do while (thetaSchlange.GT.thetaSchlangeB(row)) - row = row + 1 - enddo - ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange: - weightRow = (thetaSchlange-thetaSchlangeB(row-1)) / - + (thetaSchlangeB(row)-thetaSchlangeB(row-1)) - - f1_(iColumn) = (1.-weightRow) * f1_B(column,row-1) + - + weightRow * f1_B(column,row) - f2_(iColumn) = (1.-weightRow) * f2_B(column,row-1) + - + weightRow * f2_B(column,row) - - - else ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ! Werte aus 3. Tabelle: 8.0 <= tau <= 20. - - column = column_ - 18 - - if (thetaSchlange.LT.thetaSchlangeC(1)) then - write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:' - write(*,*) 'thetaSchlange = ',thetaSchlange - write(*,*) 'minimum = ',thetaSchlangeC(1) - call exit - elseif (thetaSchlange.GT.thetaSchlangeC(nRowC)) then -c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:' -c write(*,*) 'thetaSchlange = ',thetaSchlange -c write(*,*) 'maximum = ',thetaSchlangeC(nRowC) -c call exit - thetaSchlange = -1. - RETURN - endif - - row = 2 - do while (thetaSchlange.GT.thetaSchlangeC(row)) - row = row + 1 - enddo - ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange: - weightRow = (thetaSchlange-thetaSchlangeC(row-1)) / - + (thetaSchlangeC(row)-thetaSchlangeC(row-1)) - - f1_(iColumn) = (1.-weightRow) * f1_C(column,row-1) + - + weightRow * f1_C(column,row) - f2_(iColumn) = (1.-weightRow) * f2_C(column,row-1) + - + weightRow * f2_C(column,row) - - - endif ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - if (iColumn.EQ.1) then - column_ = column_ - 1 - iColumn = 2 - goto 5 - endif - - f1 = weightCol*f1_(1) + (1.-weightCol)*f1_(2) - f2 = weightCol*f2_(1) + (1.-weightCol)*f2_(2) - - - END - - -c=============================================================================== - END PROGRAM mtest diff --git a/geant4/LEMuSR/MEYER/mutrack.for b/geant4/LEMuSR/MEYER/mutrack.for deleted file mode 100644 index 5e8635e..0000000 --- a/geant4/LEMuSR/MEYER/mutrack.for +++ /dev/null @@ -1,5466 +0,0 @@ -c -c------------------------------------------------------------------------------ -c -c Changes starting on 17-Oct-2000, TP, PSI -c -c - add position of muons at TD foil and position of -c foil electrons when hitting MCP3 to NTuple -c - start changes for migration to NT and Unix; avoid using -c logicals or environment variables; cancel OPTIONS/EXTEND_SOURCE; -c use lower case filenames always -c -c****************************************************************************** -c* ... MUTRACK.FOR (Stand: Februar '96) * -c* * -c* Dieses Programm integriert Teilchenbahnen in der UHV-Kammer der NEMU- * -c* Apparatur. Startpunkte koennen zwischen der Moderatorfolie und dem MCP2 * -c* frei gewaehlt werden, Endpunkt der Berechnungen ist (sofern die Teilchen * -c* nicht vorher schon ausscheiden) die Ebene des MCP2. Bis jetzt koennen * -c* also nur Bewegungen in Strahlrichtung, nicht entgegen derselben berechnet * -c* werden. * -c* Das Programm selbst rechnet den zweistufigen Beschleuniger als ideal, * -c* bietet aber die Moeglichkeit Simulationen von TP oder AH (Programm 'Accel')* -c* mit realem Beschleuniger einzulesen. Die Integration der Teilchenbahnen * -c* erstreckt sich bei diesen Simulationen bis etwa zum He-Schild, MUTRACK * -c* rechnet dann von dort aus weiter. * -c* Verschiedene Einstellungen koennen in ineinandergreifenden Schleifen in * -c* aequidistanten Schritten variiert werden (z.B. Spannungen des Transport- * -c* Systems, Startgroessen der Teilchen, Masse und Ladung ...). Ein Teil dieser* -c* Groessen kann aber auch alternativ nach verschiedenen frei waehlbaren * -c* Zufallsverteilungen gewurfelt werden. * -c* Die Integrationsergebnisse koennen in der Form von NTupeln abgespeichert * -c* werden, was sie der Darstellung und Auswertung mit dem CERN-Programm PAW * -c* zugaenglich macht. * -c* Neben der reinen Integrationsarbeit fuehrt Mutrack Statistiken ueber * -c* verschiedene Groessen (z.Z. verschiedene Flugzeiten und Ortsverteilungen) * -c* die Mittelwerte und Standandartabweichungen sowie Minimal- und Maximalwerte* -c* umfassen. * -c* Diese Groessen koennen einfach ausgegeben oder in einem Tabellenfile abge- * -c* speichert werden, welches von PHYSICA mittels der Fortran-Routine * -c* 'READ_DATA' eingelesen werden kann. Verschiedene PHYSICA-Makros * -c* (.PCM-files) ermoeglichen dann die Darstellung dieser statistischen * -c* Groessen in Form von 2D- und 3D-Graphiken. (z.B. Abhaengigkeit der Trans- * -c* mission von HV-Settings des Transportsystems). * -c* Die momentan vorhandenen Routinen heissen * -c* * -c* MUINIT.PCM * -c* HELP.PCM * -c* MUPLOT_1DIM.PCM * -c* MUPLOT_2DIM.PCM * -c* TYPE_LOGHEADER.PCM * -c* TYPE_PARAMS_GRAPHIC.PCM * -c* TYPE_PARAMS_TEXT.PCM * -c* * -c* Nach dem Start (von dem Directory aus, in dem obige Routinen abgelegt sind)* -c* muss PHYSICA mit dem Befehl '@MUINIT' initialisiert werden. Danach koennen * -c* obige Routinen ueber Aliasse angesprochen werden. Weitere Informationen * -c* hierzu erhaelt man, indem man in PHYSICA nach der Initialisierung 'MUHELP' * -c* eingibt. * -c* Der Sourcecode fuer Mutrack ist ueber verschiedene .FOR-Dateien verteilt, * -c* die jeweils zu einem Problembereich gehoerige Subroutinen enthalten. Die * -c* zur Zeit vorhandenen Files und die darin enthaltenen Routinen sind: -c* -c* MUTRACK.FOR -c* SUB_ARTLIST.FOR -c* SUB_OUTPUT.FOR -c* SUB_INPUT.FOR -c* SUB_INTEGR_FO.FOR -c* SUB_INTEGR_L1.FOR -c* SUB_INTEGR_L3.FOR -c* SUB_INTEGR_M2.FOR -c* SUB_PICTURE.FOR -c* SUB_TRIGGER.FOR -c* -c* -c* Includefiles mit COMMON-Blöcken: -c* -c* COM_DIRS.INC -c* COM_KAMMER.INC -c* COM_LUNS.INC -c* COM_MUTRACK.INC -c* COM_OUTPUT.INC -c* COM_TD_EXT.INC -c* COM_TD_INT.INC -c* COM_WINKEL.INC -c* GEO_KAMMER.INPUT -c* GEO_TRIGGER.INC -c* -c* -c* Icludefile mit Defaultwerten fuer eine Reihe benutzerdefinierbarer und Programm- -c* interner Groessen: -c* -c* INITIALIZE.INC -c* -c* -c* Includefiles fuer die Potentialmappen: -c* -c* MAP_DEF_FO.INC -c* MAP_DEF_L1.INC -c* MAP_DEF_L3.INC -c* MAP_DEF_M2.INC -c* -c* READ_MAP.INC -c* -c* -c* Benoetigte Eingabfiles: -c* -c* MUTRACK.INPUT (fuer die Integrationen zu verwendende Einstellungen) -c* kammer_geo.INPUT (Spezifizierung der Kammergeometrie) -c* mappenName.INFO (Dateien mit Angaben ueber zugehoerige Potentialmappen) -c* mappenName.MAPPE (die Potentialmappen) -c* MUTRACK_NR.DAT (zuletzt vergebene Nummern der Ausgabedateien, wird -c* von Mutrack verwaltet). -c* -c* -c* Fuer die Erstellung der Potentialmappen mit dem Triumf-Programm stehen folgende -c* Hilfsmittel zur Verfuegung: -c* -c* BESCHL-INIT.FOR -c* LENSE-INIT.FOR -c* -c* Diese Boundary-Routinen stellen folgende Moeglichkeiten zur Verfuegung: -c* -c* Initialisierung von Scratch, von 2D und von 3D-Mappen. Kontrollmoeglichkeiten -c* ueber die Ausgabe der Potentialbereiche. -c* -c* Die Mappen koennen von PHYSICA aus mittels der FORTRAN-Routine ' ' -c* und den .PCM-Makros ' ' ... angeschaut und ausgegeben werden. -c* -c* -c* -c* Liste der moeglichen Ausgabefiles: -c* -c* MU_nnnn.LOG -c* MU_nnnn.GEO -c* MU_nnnn.PHYSICA -c* MU_nnnn.NTP -c* MU_nnnn._tab -c* -c* Diese Version von MUTRACK enthaelt nur noch rudimentaere Anteile des ursprueng- -c* lichen Programmes von Thomas Wutzke. Hauptunterschiede und Erweiterungen sind: -c* -c* # Ersetzen der Euler-Integration durch ein schrittweitenkontrolliertes -c* Runge-Kutta Verfahren. Der dieser Implementation zugrundeliegende Algo- -c* rythmus entstammt dabei dem Buch 'NUMERICAL RECIPES, The Art of Scientific -c* Computing' (Fortran Version) von Press, Flannery, Teukolsky und Vetterling, -c* Cambridge University Press (1989). -c* -c* # Verbesserter Algorythmus zur Berechnung der Feldstaerken aus den Potential- -c* Mappen. -c* -c* # Implementierung des gesamten Statistikaparates. (Zuvor waren PAW-Ntupel die -c* einzige Ausgabeform abgesehen von den Debuginformationen). -c* -c* # Uebersichtlichere Gestalltung der Ein- und Ausgabe, sowie der Debug-Infos. -c* -c* # Implementierung der Moeglichkeit, verschiedenen Parameter in Schleifen zu -c* durchlaufen. -c* -c* # Implementierung der fuer die graphische Darstellung mit PHYSICA notwendigen -c* Routinen. -c* -c* # Implementierung des Triggerdetektors. -c* -c* # Implementierung der Graphikausgabe der Teilchenbahnen (diese Routinen wurden -c* in ihrer ersten Fassung von Michael Birke geschrieben). -c* -c* # Umstellen der Potentialmappen auf 'unformattiert' und Einschraenken der -c* Mappen auf den wirklich benoetigten Bereich (d.h. z.B. Ausnutzen der -c* Symmetrie der Linsen, wodurch die Mappengroesse bei den Linsen mehr als -c* halbiert werden konnte. -c* -c* # Implementierung der Moeglichkeit, die Kammergeometrie (d.h. die Positionen -c* der verwendeten Elemente) sowie die Potentialmappen (z.B. fuer unter- -c* schiedliche Linsenkonfigurationen) ueber ein .INPUT-Eingabefile ohne -c* Umschreiben des Sourcecodes aendern zu koennen. -c* -c* Das Programm verwendet fuer Graphikdarstellung und NTupel-Erzeugung Routinen der -c* zum PAW-Komplex gehoerenden CERN-Bibliotheken 'HPLOT' und 'HBOOK'. -c* -c* Am Anfang der Deatei 'COM_MUTRACK.INC' findet sich eine Liste der wichtigsten -c* Aenderungen ueber die verschiedenen Versionen ab 1.4.1. -c* -c* Gruss, Anselm Hofer -c****************************************************************************** -c - -C =============== - program MUTRACK -C =============== - -c Deklarationen: - - Implicit None - - INCLUDE 'com_mutrack.inc' - INCLUDE 'com_dirs.inc' - INCLUDE 'com_td_ext.inc' - INCLUDE 'com_winkel.inc' - INCLUDE 'com_kammer.inc' - INCLUDE 'geo_trigger.inc' - - -c die SCHLEIFENVARIABLEN fuer die 'do 200 ...'-Schleifenund und damit -c zusammenhaengendes (Common-Bloecke werden fuer die NTupel-Ausgabe benoetigt): - -c - 'virtuelle' Flugstreckenverlaengerungen: - - real delta_L1,delta_L2 - -c - Energieverlust in der Triggerfolie und Dicke derselben: - - real E_loss - -c - Drehwinkel: -c (alfaTgt, alfaSp, alfaTD und ihre Winkelfunktionen werden in 'COM_WINKEL.INC' -c erledigt: COMMON /ANGELS/) - - real y_intersectSP ! Benoetigt fuer Schnittpkt. der Trajektorie - real yUppLeft, yLowLeft ! mit forderer Spiegelebene - - real x_intersectTD ! Benoetigt fuer Schnittpkt. der Trajektorie - ! mit TD-Folie - real x_intersectTDMap ! ... mit TD-Mappe - common /x_intersectTD/ x_intersectTD,x_intersectTDMap - -c - Masse und Ladung: - - real m, m_ ! Masse, Laufvariable fuer Massen-Schleife - real q, q_ ! Ladung, Laufvariable fuer Ladungs-Schleife - integer qInt - COMMON /charge/ qInt ! fuer 'NTP_charge' - - integer nNeutral,nCharged ! fuer Ausgabe des gewuerfelten neutralen anteils - COMMON /nNeutral/ nNeutral,nCharged - -c - MCP2: - - real U_MCP2 ! Spannung am MCP2 - - -c - Triggerdetektor: U_F, U_V, U_H und U_MCP3 werden in 'COM_TD_EXT.INC' -c erledigt. (COMMON /TRIGGERSETTINGS/) - -c - Transportsystem: - - real U_Tgt ! Target-Spannung - real U_Gua ! Spannung am Guardring - real U_G1 ! Spannung am ersten Gitter - real U_L1 ! Spannung an Linse 1 - real U_Sp ! Spiegelspannung - real U_L2 ! Spannung an Linse 2 - real U_L3 ! Spannung an Linse 3 - - COMMON /U_L2/ U_L2 ! fuer die Addition der 'L2andFo'-Mappe - - real last_U_L2 / -1.E10 / ! fuer die Addition der 'L2andFo'-Mappe - real last_U_F / -1.E10 / - -c - Magnetfeldstaerken: - - real B_Helm ! Magnetfeld der Helmholtzspulen - real B_TD ! Magnetfeld der Kompensationsspule am TD - -c - Startparameter: - - integer randomloop_ ! Laufvariable fuer zufallsverteilte Starts - real E0_ ! Laufvariable fuer Startenergie_Schleife - real theta0_ ! Laufvarialbe fuer Startwinkel-Schleife - real Sin_theta0, Cos_theta0 ! Startwinkel gegen x-Achse - real phi0_ ! Laufvariable fuer Startwinkel-Schleife - real Sin_phi0, Cos_phi0 ! azimuthaler Startwinkel (phi0=0: y-Achse) - real y0_ ! Laufvariable fuer Startpositions_Schleife - real z0_ ! Laufvariable fuer Startpositions_Schleife - real r0 ! Radius beim Wuerfeln der Startposition - real phi_r0 ! Winkel beim Wuerfeln der Startposition - - ! x0(3),v0(3),E0,theta0,phi0 werden in 'COM_MUTRACK.INC' declariert - - -c allgemeine Trajektoriengroessen - - real dt ! zeitl. Aenderung - real v_xy ! Geschwindigkeit in x/y-Ebene - real v_square, v0_Betrag, v_Betrag - real Ekin ! kinetische Energie - real a1,a2 ! Beschleunigung in 1. bzw. 2. Beschl.Stufe - real aFoil ! Beschleunigung zwischen Massegitter und Folie - real radiusQuad ! RadiusQuadrat - real radiusQuad_ ! RadiusQuadrat - real radius - - real S1xM2 ! Zeit vom Start bis zur MCP2-Ebene - real S1M2 ! Zeit vom Start bis zum MCP2 (Treffer voarausgesetzt) - real S1Fo ! Zeit vom Start bis zur Folie - real S1FoOnly ! Zeit vom Start bis zur Folie - real FoM2 ! Zeit zwischen Folie und MCP2 - real FoM2Only ! wie FoM2, falls keine anderen TOFs verlangt - real S1M3 ! Zeit vom Start bis Eintreffen der FE auf MCP3 - real M3M2 ! Zeit vom Eintreffen der FE auf MCP3 bis MCP2 - - real alfa ! Bahnwinkel gegen die Triggerfolienebene - real E_Verlust /0./ ! Energieverlust in der Folie - real delta_E_Verlust ! Streuung des Energieverlustes in der Folie - real thetaAufstreu ! Ablenkung aus vorheriger Richtung in der Folie - real phiAufstreu ! azimuthaler Winkel der Ablenkung gegenueber Horiz. - COMMON /FOLIE/ E_Verlust,thetaAufstreu,phiAufstreu - - real Beschl_Faktor ! Faktor bei Berechn. der Beschleunigung im EFeld - COMMON /BESCHL_FAKTOR/ Beschl_Faktor - - real length1 ! = d_Folie_Achse + MappenLaenge_FO - real length2 ! = xTD - d_Folie_Achse - MappenLaenge_FO ! = xTD-length1 - - -c Groessen der Folienelektronen ('FE'): - - integer nFE ! jeweilige Anzahl an FE (2 <= nFE <= 5) - real E0FE ! Startenergie der Folienelektronen - real ct0,st0,cf0,sf0 ! die Winkelfunktionen der Startwinkel der FE - real f0 ! 'phi0' fuer die FE - real x0FE(3) ! Startort der Folienelektronen auf der TD-Folie - real xFE(3),vFE(3) ! Ort und Geschw. der FE - real tFE ! Zeit - real tFE_min ! kuerzeste gueltige FE-Flugzeit je Projektil - integer tFE_(5) /-1,-1,-1,-1,-1/ ! Flugzeit jedes FE in ps (fuer NTP) -c -c---------------- -c -c-TP-10/2000 add variables to have position information of muons at -c TD and FE at MCP3 in NTuple; up to 5 electrons possible -c - real xFE_MCP(5), yFE_MCP(5), zFE_MCP(5) - common /TrigDet/ x0FE, xFE_MCP, yFE_MCP, zFE_MCP -c -c---------------- -c - COMMON /S1xM2/ S1xM2 ! fuer NTupel - COMMON /TIMES/ S1M2,S1Fo,FoM2,S1M3,M3M2,tFE_ ! fuer NTupel - common /FoM2Only/ FoM2Only - COMMON /S1FoOnly/ S1FoOnly - -c Variablen fuer den allgemeinen Programmablauf: - - integer qIndxMu - common /qIndxMu/ qIndxMu - - integer ntpid(1) ! fuer das Einlesen des NTupels von ACCEL oder von - integer ntpnr ! FoilFile - - integer firstEventNr - external firstEventNr - - logical NTPalreadyWritten - - real Spiegel_Faktor ! Faktor bei Berechn. der Reflektionszeit im Spiegel - - integer bis_Spiegel ! verschiedene Label - integer bis_L3_Mappe, bis_MCP2_Mappe, MCP2_Mappe - - character uhrzeit*8 - - integer percent_done - logical fill_NTP - - real radiusQuad_HeShield - real radiusQuad_LNShield - real radiusQuad_L1 - real radiusQuad_L2 - real radiusQuad_L3 - real radiusQuad_Blende - real radiusQuad_Rohr - real radiusQuad_MCP2 ! Radiusquadrat des MCP2 - real radiusQuad_MCP2active ! Radiusquadrat der aktiven Flaeche des MCP2 - real radiusQuad_Sp ! Radiusquadrat der Spiegeldraehte - real rWires_Sp ! Radius der Spiegeldraehte - - logical check_Blende /.false./ - - real xChangeKoord ! legt den Ort nach dem Spiegel fest, bei - parameter (xChangeKoord = 75.) ! dem das Koordinatensystem gewechselt wird - - integer n_return ! die Returnvariable fuer Aufruf von 'TD_CALC' - integer zaehler ! Zaehler fuer Monitoring der Trajektorie in den - ! Gebieten, in denen stepwise integriert werden - ! muss - logical flag, flag_ok - integer okStepsCounter - - integer i, k ! integer-Hilfsvariablen - real help1, help2 ! real-Hilfsvariablen - real help3, help4 ! real-Hilfsvariablen - - real YieldPlus,YieldNeutral ! Ladungsanteile nach TD-Foliendurchgang - - integer startLabel ! das Einsprunglabel beim Teilchenstart - - character helpChar*7, ant*1 - character HistogramTitle*32 /'Schnitt bei x = (i. Teil)'/ - -d real dtmin_L1, dtmin_Sp, dtmin_L2andFo, dtmin_FO, dtmin_L3, dtmin_M2 -d real dtmax_L1, dtmax_Sp, dtmax_L2andFo, dtmax_FO, dtmax_L3, dtmax_M2 -d real x_dtmin_L1(3), x_dtmax_L1(3), x_dtmin_FO(3), x_dtmax_FO(3) -d real x_dtmin_L2andFo(3), x_dtmax_L2andFo(3) -d real x_dtmin_L3(3), x_dtmax_L3(3), x_dtmin_M2(3), x_dtmax_M2(3) -d real x_dtmin_Sp(3), x_dtmax_Sp(3) -d -d ! /ntp_steps/ enthaelt auch 'steps' (ueber COM-MUTRACK.INC) -d COMMON /ntp_steps/ dtmin_L1, x_dtmin_L1, dtmax_L1, x_dtmax_L1, -d + dtmin_Sp, x_dtmin_Sp, dtmax_Sp, x_dtmax_Sp, -d + dtmin_L2andFo, x_dtmin_L2andFo, dtmax_L2andFo, x_dtmax_L2andFo, -d + dtmin_FO, x_dtmin_FO, dtmax_FO, x_dtmax_FO, -d + dtmin_L3, x_dtmin_L3, dtmax_L3, x_dtmax_L3, -d + dtmin_M2, x_dtmin_M2, dtmax_M2, x_dtmax_M2 - - real x40(2:3),v40(3),t40,E40 ! Speicher fuer Trajektoriengroessen bei x=40mm - COMMON /NTP_40mm/ x40,v40,t40,E40 - -cMBc logical writeTraj2File -cMBc common /writeTraj2File/ writeTraj2File - - -c Variablen fuer Test ob Draht getroffen wurde: - - real distToWire(2) - integer DrahtNr - logical WireHit - - real WireRadiusQuad_G1,WireRadiusQuad_G2 - real WireRadiusQuad_Sp - - -c Variablen fuer die Graphikausgabe: - - real xKoord(1000),xKoord_(1000) ! Koordinatenfelder fuer die - real yKoord(1000),yKoord_(1000) ! Graphikausgabe - real zKoord(1000),zKoord_(1000) ! -cMBc real tKoord(1000),tKoord_(1000) ! - integer nKoord,nKoordSave ! Anzahl der Koordinaten - -cMBc COMMON /GRAPHIX/ xKoord,yKoord,zKoord,nKoord,tKoord - COMMON /GRAPHIX/ xKoord,yKoord,zKoord,nKoord - - -c Variablen fuer HBOOK und PAW: - - integer istat ! fuer HBOOK-Fehlermeldungen - - integer HB_memsize - parameter(HB_memsize=1000000) - real memory(HB_memsize) - - common /pawc/ memory ! Der Arbeitsbereich fuer HBOOK - - -c Konstanten: - - real c ! Lichtgeschwindigkeit in mm/ns - real meanLifeTime ! mittlere Myon-Lebensdauer in ns - - parameter (c = 299.7925, meanLifeTime = 2197) - -c------------------------------------------------------------------------------- -c Konstanten und Variable fuer Berechnung der Winkelaufstreuung in Triggerfolie -c mittels Meyer-Formel (L.Meyer, phys.stat.sol. (b) 44, 253 (1971)): - - real g1, g2 ! Tabellierte Funktionen der Referenz - real effRedThick ! effektive reduzierte Dicke ('tau' der Referenz) - - -c - Parameter: - - real Z1, Z2 ! die atomaren Nummern von Projektil und Target - real a0 ! Bohrscher Radius in cm - real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der - ! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6) - ! bei Streichung von Z1 (vgl. Referenz, S. 268) - - real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a' - ! und dem ebenfalls bei Meyer angegebenem - ! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben) - real eSquare ! elektrische Ladung zum Quadrat in keV*cm - real HWHM2sigma ! Umrechnungsfaktor von (halber!) Halbwertsbreite - ! nach Sigma der Gaussfunktion - - real Na ! die Avogadrokonstante - real mMolC ! molare Masse von C in ug - real Pi ! die Kreiszahl - - parameter (Z1 = 1, Z2 = 6, a0 = 5.29E-9, ScreeningPar = 2.5764E-9) - parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10, HWHM2sigma = 1./1.17741) - parameter (Na = 6.022e23, mMolC = 12.011e6, Pi = 3.141592654) - - -c - Bei der Berechnung von Sigma auftretende Vorfaktoren. -c (Meyer_faktor 1 wird benoetigt fuer Berechnung der reduzierten Dicke aus der -c 'ug/cm2'-Angabe der Foliendicke. Meyer_faktor2 und Meyer_faktor3 werden -c direkt fuer die Berechnung von sigma aus den beiden tabellierten Funktionen -c g1 und g2 verwendet): - - real Meyer_Faktor1, Meyer_Faktor2, Meyer_Faktor3 - - parameter (Meyer_faktor1 = Pi*screeningPar*screeningPar * Na/mMolC) - ! Na/mMolC = 1/m(C-Atom) - parameter (Meyer_faktor2 = (2*Z1*Z2 * eSquare)/ScreeningPar * 180./Pi - + * HWHM2sigma) - parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer)) - - -c------------------------------------------------------------------------------- -c Kommentar zur Berechnung der Winkelaufstreuung nach Meyer: -c -c Als Bedingung fuer die Gueltigkeit der Rechnung wird verlangt, dass -c -c (1) die Anzahl n der Stoesse >> 20*(a/r0)^(4/3) sein muss. Fuer Protonen auf -c Graphit ist laut Referenz a/r0 gleich 0.26 (mit Dichte von 3.5 g/ccm habe -c ich einen Wert von 0.29 abgeschaetzt). Fuer Myonen hat man den selben -c Wert zu nehmen. Damit ergibt sich die Forderung, dass n >> 3.5 sein muss. -c -c (2) unabhaengig von (1) n >> 5 sein muss, was (1) also mit einschliesst. -c -c Mit n = Pi*r0*r0*Teilchen/Flaeche ergibt sich fuer eine Foliendicke von -c 3 ug/cm^2 als Abschaetzung fuer n ein Wert von 37. (r0 ueber r0 = 0.5 N^(1/3) -c und 3.5 g/ccm zu 8.9e-9 cm abgeschaetzt). D.h., dass die Bedingungen in -c unserem Fall gut erfuellt sind. -c In dem Paper wird eine Formel fuer Halbwertsbreiten angegeben. Ich habe nicht -c kontrolliert, in wie weit die Form der Verteilung tatsaechlich einer Gauss- -c verteilung entspricht. Zumindest im Bereich der Vorwaertsstreuung sollte -c die in diesem Programm verwendete Gaussverteilung aber eine sehr gute -c Naeherung abgeben. Abweichungen bei groesseren Winkeln koennten jedoch u. U. -c die absolute Streuintensitaet in Vorwaertsrichtung verfaelschen. - -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -c HIER GEHT DER PROGRAMMTEXT RICHTIG LOS -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz - -c Initialisierungen: - - INCLUDE 'initialize.inc' - - -c Einlesen der Parameter aus 'MUTRACK.INPUT' und Setzen der entsprechenden -c Voreinstellungen. Einlesen der Kammergeometrie sowie der INFO-files der -c Feldmappen: - - call read_inputFile - - -c Berechnen der RadiusQuadrate: - - radiusQuad_HeShield = rHeShield*rHeShield - radiusQuad_LNShield = rLNShield*rLNShield - radiusQuad_Rohr = radius_Rohr*radius_Rohr - radiusQuad_L1 = iRadiusCyl_L1*iRadiusCyl_L1 - radiusQuad_L2 = iRadiusCyl_L2*iRadiusCyl_L2 - radiusQuad_L3 = iRadiusCyl_L3*iRadiusCyl_L3 - radiusQuad_Blende = radius_Blende*radius_Blende - radiusQuad_MCP2 = radius_MCP2*radius_MCP2 - radiusQuad_MCP2active = radius_MCP2active*radius_MCP2active - WireRadiusQuad_G1 = dWires_G1/2. * dWires_G1/2. - WireRadiusQuad_G2 = dWires_G2/2. * dWires_G2/2. - WireRadiusQuad_Sp = dWires_Sp/2. * dWires_Sp/2. - rWires_Sp = dWires_Sp/2. - radiusQuad_Sp = rWires_Sp * rWires_Sp - - -c Einlesen der Feldmappen: - - write(*,*)'----------------------------------------'// - + '----------------------------------------' - if (.NOT.(par(1,UL1).EQ.0. .AND. n_par(UL1).LE.1)) call READ_MAP_L1 - - if (.NOT.(idealMirror .OR. (par(1,USp).EQ.0. .AND. n_par(USp).LE.1))) then - call read_Map_SP_1 - call read_Map_SP_2 - call read_Map_SP_3 - endif - - if (TriggerInBeam .AND. .NOT.lense2 .AND. - ! 'lense2' muss noch in sub_input richtig gesetzt werden! (-> foilfile) - + .NOT.(par(1,UFolie).EQ.0. .AND. n_par(UFolie).LE.1) ) then - call READ_MAP_FO - endif - - if (.NOT.(par(1,UL3).EQ.0. .AND. n_par(UL3).LE.1)) then - if (.NOT.(par(1,UMCP2).EQ.0. .AND. n_par(UMCP2).LE.1)) then - if (xLeaveMap_L3.GT.xEnterMap_M2) then - write(*,*) - write(*,*)' Potentialmappen von Linse 3 und MCP2 ueberlappen!' - write(*,*)' Dies ist in der aktuellen Implementierung des Programmes' - write(*,*)' nicht vorgesehen!' - write(*,*) - write(*,*)' -> STOP' - write(*,*) - STOP - endif - endif - call READ_MAP_L3 - endif - - if (.NOT.(par(1,UMCP2).EQ.0. .AND. n_par(UMCP2).LE.1)) call READ_MAP_M2 - - -c Eingelesene Simulationsparameter auf Schirm geben und bestaetigen lassen. -c Die Ausgabefiles initialisieren: - - call initialize_output - - -c falls ein 'FoilFile' erstellt werden soll, schreibe das .INFO-files: - - if (createFoilFile) call make_INFOFile - if (Use_MUTRACK) Use_ACCEL = .false. - - -c Defaultwert fuer 'fill_NTP' setzen (wird weiter unten ueberschrieben, falls -c fuer das Fuellen des NTupels spezielle Triggerbedingung verlangt ist): - - if (createNTP) then - fill_NTP = .true. - else - fill_NTP = .false. - endif - - -c CERN-Pakete initialisieren (Groesse des COMMONblocks PAWC uebermitteln): - - if (.NOT.fromScratch.OR.Graphics.OR.createNTP.OR.createFoilFile) call HLIMIT(HB_memsize) - - -c Graphikausgabe initialisieren: - - if (GRAPHICS) then - call masstab_setzen - CALL HPLSET ('VSIZ',.6) ! AXIS VALUES SIZE - write(HistogramTitle(17:22),'(F6.1)') schnitt_x - write(HistogramTitle(25:25),'(I1)') schnitt_p - CALL HPLSET ('TSIZ',.7) ! HISTOGRAM TITLE SIZE - CALL HBOOK2 (50,HistogramTitle,100,-30.,30.,100,-30.,30.,20.) - endif - - -c falls fruehere Simulation fortgefuehrt werden soll, oeffne entsprechende Datei: - - if (.NOT.fromScratch) then - if (use_ACCEL) then - call HROPEN(lunREAD,'ACCEL',ACCEL_Dir//':'//fileName_ACCEL//'.NTP', - + ' ',1024,istat) - else - call HROPEN(lunREAD,'MUread',outDir//':'//fileName_MUTRACK//'.NTP', - + ' ',1024,istat) - endif - - call HRIN(0,99999,0) - call HIDALL(ntpid,ntpNr) - call HDELET(ntpid(1)) - i = NTP_read - ntpid(1) - call HRIN(NTP_read-i,9999,i) ! NTP_read = NTP_write+1 - call HBNAME(NTP_read,' ',0,'$CLEAR') ! alles resetten - - ! fuer die benoetigten Bloecke des CWN die entsprechenden Speicher- - ! lokalisationen uebermitteln: - - if (random_E0) call HBNAME(NTP_read,'E0',E0,'$SET') - if (random_pos) call HBNAME(NTP_read,'x0',x0,'$SET') - if (random_angle) call HBNAME(NTP_read,'angle0',theta0,'$SET') ! theta0,phi0 - if (UseDecay_prevSim) call HBNAME(NTP_read,'lifetime',lifetime,'$SET') - - if (smearS1Fo .AND. use_MUTRACK) then - call HBNAME(NTP_read,'S1FoS',S1FoOnly,'$SET') - endif - - call HBNAME(NTP_read,'dest',gebiet,'$SET') ! gebiet,destiny - call HBNAME(NTP_read,'Traj',t,'$SET') ! t,x,v - - endif - - -c NTP-relevante Befehle: - -c BAD LUCK!!! Das Packen der Real-Variablen im folgenden hat KEINERLEI VER- -c KLEINERUNG DER FILEGROESSE bewirkt!!!! (fuer die Integers habe ich noch -c keinen Test gemacht). -> wohl besser wieder herausnehmen. Ich verliere -c u.U. nur Genauigkeit und habe nur einen eingeschraenkten Wertebereich zur -c Verfuegung! - - if (createNtp.OR.createFoilFile) then - - !c Datei fuer NTupelausgabe oeffnen: - call HROPEN(lunNTP,'MUwrite',outDir//':'//filename//'.NTP', - + 'N',1024,istat) - if (istat.NE.0) then - write(*,*) - write(*,*)'error ',istat,' opening HBOOK-file' - write(*,*) - STOP - endif - - call HBNT(NTP_write,filename,'D') ! D: Disk resident CWN buchen - - !c die Bloecke des CWN definieren: - - if (.NOT.OneLoop) call HBNAME(NTP_write,'LOOP',schleifenNr,'loop[1,1000]:u') - if (M2_triggered .OR. Fo_triggered.AND.upToTDFoilOnly) then - ! -> Gebiet und Destiny stehen hier sowieso fest, nimm - ! diese Groessen daher erst gar nicht mehr in das NTupel auf! - else - call HBNAME(NTP_write,'DEST',gebiet,'Gebiet[0,20]:u,dest[-10,10]:i') - endif - if (NTP_Start .OR. createFoilFile.AND.random_pos) then - call HBNAME(NTP_write,'X0',x0,'x0,y0,z0') - endif - if (NTP_Start) call HBNAME(NTP_write,'V0',v0,'vx0,vy0,vz0') - if (NTP_Start .OR. createFoilFile.AND.random_E0) then - call HBNAME(NTP_write,'E0',E0,'E0') - endif - if (NTP_Start .OR. createFoilFile.AND.random_angle) then - call HBNAME(NTP_write,'ANGLE0',theta0,'theta0,phi0') - endif - if (NTP_lifetime .OR. createFoilFile.AND.UseDecay) then - call HBNAME(NTP_write,'LIFETIME',lifetime,'lifetime:r') - endif - if (NTP_40mm) call HBNAME(NTP_write,'X=40MM',x40, - + 'y40,z40,vx40,vy40,vz40,t40,E40') - if (NTP_S1xM2) call HBNAME(NTP_write,'S1xM2',S1xM2,'S1xM2') - if (NTP_Times) then - if (TriggerInBeam) then - if (generate_FE) then - call HBNAME(NTP_write,'TIMES',S1M2, - + 'S1M2,S1Fo,FoM2,S1M3,M3M2:r,TFE(5):i') - else - call HBNAME(NTP_write,'TIMES',S1M2, - + 'S1M2,S1Fo,FoM2') - endif - else - call HBNAME(NTP_write,'TIMES',S1M2, - + 'S1M2') - endif - endif - if (NTP_FoM2Only) then - call HBNAME(NTP_write,'FoM2',FoM2Only,'FoM2') - endif - if (NTP_Folie) then - call HBNAME(NTP_write,'FOLIE',E_Verlust, - + 'ELoss,thetStreu,phiStreu') -c -c-------------------------- -c -c-TP-10/2000 add position at foil and MCP3 (FE) -c - call HBNAME(NTP_write, 'TrigDet', x0FE, - + 'x0FE,y0FE,z0FE,xFE(5),yFE(5),zFE(5)') -c -c-------------------------- -c - endif - if (NTP_charge) call HBNAME(NTP_write,'CHARGE',qInt,'q[-5,5]:i') - if (NTP_stop.OR.createFoilFile) then - call HBNAME(NTP_write,'TRAJ',t,'t,x,y,z,vx,vy,vz') - endif -c if (createFoilFile .AND. smearS1Fo .AND. .NOT.NTP_times) then - if (smearS1Fo) then - call HBNAME(NTP_write,'S1FoS',S1FoOnly,'S1FoS') - endif - if (NTP_stop) then - call HBNAME(NTP_write,'EKIN',Ekin,'Ekin') - endif -d if (NTP_steps) then -d call HBNAME(NTP_write,'STEP',steps,'steps[1,100000]:u,'// -d + 'dtminL1, xdtminL1, ydtminL1, zdtminL1,'// -d + 'dtmaxL1, xdtmaxL1, ydtmaxL1, zdtmaxL1,'// -d + 'dtminL2, xdtminL2, ydtminL2, zdtminL2,'// -d + 'dtmaxL2, xdtmaxL2, ydtmaxL2, zdtmaxL2,'// -d + 'dtminFO, xdtminFO, ydtminFO, zdtminFO,'// -d + 'dtmaxFO, xdtmaxFO, ydtmaxFO, zdtmaxFO,'// -d + 'dtminL3, xdtminL3, ydtminL3, zdtminL3,'// -d + 'dtmaxL3, xdtmaxL3, ydtmaxL3, zdtmaxL3,'// -d + 'dtminM2, xdtminM2, ydtminM2, zdtminM2,'// -d + 'dtmaxM2, xdtmaxM2, ydtmaxM2, zdtmaxM2') -d endif - endif - - -c die Label definieren: - - assign 7 to bis_Spiegel - assign 14 to bis_L3_Mappe - assign 16 to bis_MCP2_Mappe - assign 17 to MCP2_Mappe - - -c die Einsprungposition fuer den Beginn der Trajektorienberechnungen setzen: - - if (Use_MUTRACK) then - assign 113 to startLabel - elseif (Use_ACCEL) then - assign 3 to startLabel - elseif (Gebiet0.EQ.target .OR. Gebiet0.EQ.upToGrid1) then - assign 1 to startLabel - elseif (Gebiet0.EQ.upToGrid2) then - assign 2 to startLabel - elseif (Gebiet0.EQ.upToHeShield) then - assign 3 to startLabel - elseif (Gebiet0.EQ.upToLNShield) then - assign 4 to startLabel - elseif (Gebiet0.EQ.upToL1Map) then - assign 5 to startLabel - elseif (Gebiet0.EQ.upToExL1) then - assign 6 to startLabel - elseif (Gebiet0.EQ.upToEnSp) then - assign 7 to startLabel - elseif (Gebiet0.EQ.upToExSp) then - assign 8 to startLabel - elseif (Gebiet0.EQ.upToChKoord) then - assign 9 to startLabel - elseif (Gebiet0.EQ.upToEnTD) then - assign 10 to startLabel - elseif (Gebiet0.EQ.upToExTD) then - if (log_alpha0_KS) then - assign 111 to startLabel - else - assign 112 to startLabel - endif - elseif (Gebiet0.EQ.upToL2andFoMap) then -c assign 12 to startLabel - elseif (Gebiet0.EQ.upToExL2) then -c assign 13 to startLabel - elseif (Gebiet0.EQ.upToL3Map) then - assign 12 to startLabel - elseif (Gebiet0.EQ.upToExL3) then - assign 13 to startLabel - elseif (Gebiet0.EQ.upToM2Map) then - assign 14 to startLabel - elseif (Gebiet0.EQ.upToMCP2) then - assign 15 to startLabel - endif - - -c Abkuerzungen 'Length1' und 'length2' setzen: - - length1 = d_Folie_Achse + MappenLaenge_FO - length2 = xTD - d_Folie_Achse - MappenLaenge_FO - - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c ab hier beginnen die Schleifen: -c (Bemerkung: eine Laufvariable darf kein Feldelement sein!) -c -c Besonderheit der Massen- und der Ladungsschleife: -c Wurde im INPUT-File in der Variablen 'artList' eine Teilchenart spezifi- -c ziert (-> 'artList_defined'), so werden die Parameter Masse und Ladung nicht -c entsprechend den Inhalten von par(n,mass) bzw. par(n,charge) eingestellt, -c sondern entsprechend den zu den Teilchenarten gehoerenden Werten fuer diese -c Groessen. In diesem Fall besteht die Massenschleife aus genau einem (Leer-) -c Durchlauf, waehrend die Ladungsschleife fuer jede Teilchenart einen Durchlauf -c macht, in welcher dann die Einstellung von Ladung UND Masse stattfindet. -c -c Bei Aenderungen in der Abfolge der Schleifen muss die Anweisungszeile -c 'DATA reihenfolge /.../' in 'INITIALIZE.INC' entsprechend editiert werden! -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c zusaetliche Flugstrecken vor TD und MCP2 (gehen NUR in t, NICHT in x ein!!): -c ---------------------------------------------------------------------------- - - do 200 Delta_L1 = par(1,DeltaL1),par(2,DeltaL1),par(3,DeltaL1) - parWert(DeltaL1) = Delta_L1 - do 200 Delta_L2 = par(1,DeltaL2),par(2,DeltaL2),par(3,DeltaL2) - parWert(DeltaL2) = Delta_L2 - -c Foliendicke und Energieverlust: -c ------------------------------- - - do 200 E_loss = par(1,Eloss),par(2,Eloss),par(3,Eloss) ! Eloss - parWert(Eloss) = E_loss - mean_E_Verlust = E_loss - - do 200 Thickness = par(1,Thickn),par(2,Thickn),par(3,Thickn)! Thickness - parWert(Thickn) = Thickness - -c MCP2: -c ----- - - do 200 U_MCP2 = par(1,UMCP2),par(2,UMCP2),par(3,UMCP2) ! U(MCP2) - parWert(UMCP2) = U_MCP2 - -c Winkel: -c ------- - - do 200 alfaTgt = par(1,alfTgt),par(2,alfTgt),par(3,alfTgt) ! ALPHA(TARGET) - parWert(alfTgt) = alfaTgt - Sin_alfaTgt= sind(alfaTgt) - Cos_alfaTgt= cosd(alfaTgt) - - do 200 alfaSp = par(1,alfSp),par(2,alfSp),par(3,alfSp) ! ALPHA(SPIEGEL) - parWert(alfSp) = alfaSp - Sin_alfaSp = sind(alfaSp) - Cos_alfaSp = cosd(alfaSp) - Tan_alfaSp = tand(alfaSp) - help1 = dSpiegel/2.+DreharmLaenge - ! Berechne die y-Werte der 'oberen linken' (yUppLeft) und der - ! 'unteren linken' (yLowLeft) Spiegelecke: - if (idealMirror) then - yUppLeft = + bSpiegel/2. * Sin_alfaSp - + + help1 * Cos_alfaSp - yLowLeft = - bSpiegel/2. * Sin_alfaSp - + + help1 * Cos_alfaSp - endif - ! Berechne Schnittpunkt y_intersectSp der vorderen Spiegelebene bzw. - ! der vorderen Mappenkante mit der Geraden x = xSpiegel: - if (.NOT.idealMirror) help1 = help1 + xSpGrid1 - y_intersectSp = help1/Cos_alfaSp - - do 200 alfaTD = par(1,alfTD),par(2,alfTD),par(3,alfTD) ! ALPHA(TRIGGERDETEKTOR) - parWert(alfTD) = alfaTD - Sin_alfaTD = sind(alfaTD) - Cos_alfaTD = cosd(alfaTD) - Tan_alfaTD = tand(alfaTD) - ! Berechne Schnittpunkt 'x_intersectTD' der x-Achse mit der Folien- - ! ebene bzw im Fall von 'GridInFrontOfFoil' mit dem Gitter vor der - ! Triggerfolie: - help1 = d_Folie_Achse - if (gridInFrontOfFoil) help1 = help1 + d_Grid_Folie - x_intersectTD = xTD - help1/Cos_alfaTD - help1 = d_Folie_Achse + mappenLaenge_Fo - x_intersectTDMap = xTD - help1/Cos_alfaTD - -c TriggerDetektor: -c ---------------- - - do 200 U_V = par(1,UVorne),par(2,UVorne),par(3,UVorne) ! U(VORNE) - parWert(UVorne) = U_V - do 200 U_H = par(1,UHinten),par(2,UHinten),par(3,UHinten) ! U(HINTEN) - parWert(UHinten) = U_H - do 200 U_MCP3 = par(1,UMCP3),par(2,UMCP3),par(3,UMCP3) ! U(MCP3) - parWert(UMCP3) = U_MCP3 - do 200 U_F = par(1,UFolie),par(2,UFolie),par(3,UFolie) ! U(FOLIE) - parWert(UFolie) = U_F - -c Transportsystem: -c ---------------- - - do 200 U_L2 = par(1,UL2),par(2,UL2),par(3,UL2) ! U(Linse 2) - parWert(UL2) = U_L2 - -c gegebenenfalls die Mappe 'L2andFo' zusammenbauen: - if (lense2) then - if ( .NOT.(par(1,UL2).EQ.0. .AND. n_par(UL2).LE.1) .OR. - + .NOT.(par(1,UFolie).EQ.0. .AND. n_par(UFolie).LE.1) ) then - ! Addiere die Mappen nur erneut, falls die jetztige Konfiguration - ! nicht mit der letzten uebereinstimmt: - if (U_L2.NE.last_U_L2 .OR. U_F.NE.last_U_F) then - call ADD_MAP_L2andFo - last_U_L2 = U_L2 - last_U_F = U_F - endif - endif - endif - - do 200 U_Sp = par(1,USp),par(2,USp),par(3,USp) ! U(SPIEGEL) - parWert(USp) = U_Sp - - do 200 U_L1 = par(1,UL1),par(2,UL1),par(3,UL1) ! U(Linse 1) - parWert(UL1) = U_L1 - - do 200 U_L3 = par(1,UL3),par(2,UL3),par(3,UL3) ! U(Linse 3) - parWert(UL3) = U_L3 - -c die Magnetfelder: -c ----------------- - - do 200 B_Helm = par(1,BHelm),par(2,BHelm),par(3,BHelm) ! Helmholtzsp. - parWert(BHelm) = B_Helm - - do 200 B_TD = par(1,BTD),par(2,BTD),par(3,BTD) ! TD-Spule - parWert(BTD) = B_TD - -c Masse und Ladung: -c ----------------- - - do 200 m_ = par(1,mass),par(2,mass),par(3,mass) ! MASSE - if (.NOT.artList_defined) then - m = m_ - parWert(mass) = m - endif - - do 200 q_ = par(1,charge),par(2,charge),par(3,charge) ! LADUNG - if (.NOT.artList_defined) then - q = q_ - parWert(charge) = q - else - qIndxMu = q_ ! fuer Verwendung in function firstEventNr! - ArtNr = Art_Nr(q_) - m = Art_Masse(ArtNr) - q = Art_Ladung(ArtNr) - parWert(mass) = m - parWert(charge) = q - endif - ! gegebenenfalls ein Flag fuer die Beruecksichtigung des Myonen- - ! zerfalles setzen: - if (useDecay) then ! 'useDecay' setzt 'artList_defined' voraus - if (ArtNr.LE.4) then! es ist ein Myon involviert - useDecay_ = .true. - else ! kein Myon involviert - useDecay_ = .false. - endif - endif - - -c Beschleuniger: -c -------------- - - do 200 U_Tgt = par(1,UTgt),par(2,UTgt),par(3,UTgt) ! U(TARGET) - parWert(UTgt) = U_Tgt - do 200 U_Gua = par(1,UGua),par(2,UGua),par(3,UGua) ! U(GUARD) - parWert(UGua) = U_Gua - do 200 U_G1 = par(1,UG1),par(2,UG1),par(3,UG1) ! U(GITTER) - parWert(UG1) = U_G1 - parIndx(5) = parIndx(5) + 1 - - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c haeufig benoetigte Faktoren, die von der aktuellen Masse, Ladung und Hoch- -c spannungen abhaengen: -c (bei Linse 2 wird die Spannung direkt auf die Potentialmappe aufmultipliziert. -c Daher wird dort 'Beschl_Faktor' verwendet und kein 'Beschl_Faktor_L2' benoetigt) - - Energie_Faktor = m / (2.*c*c) - Beschl_Faktor = q / m * c*c - Beschl_Faktor_L1 = Beschl_Faktor * U_L1 - Beschl_Faktor_Sp = Beschl_Faktor * U_Sp - Beschl_Faktor_FO = Beschl_Faktor * U_F - Beschl_Faktor_L3 = Beschl_Faktor * U_L3 - Beschl_Faktor_M2 = Beschl_Faktor * U_MCP2 - - aFoil = - Beschl_Faktor * U_F / d_Grid_Folie - if (U_Sp.EQ.0. .OR. q.EQ.0.) then - Spiegel_Faktor = 0 - else - Spiegel_Faktor = 2.*dspiegel / (Beschl_Faktor * U_Sp) !<-- pruefen! - endif - - ! Die Beschleunigungen in den beiden (idealen) Beschleunigerstufen: - a1 = Beschl_Faktor * (U_Tgt - U_G1) / (XGrid1 - XTarget) - a2 = Beschl_Faktor * U_G1 / (XGrid2 - xGrid1) - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Falls 'fromScratch': -c Die in den ab hier beginnenden Startparameter-Schleifen gesetzten Werte -c werden gegebenenfalls weiter unten durch zufallsverteilte Offsets modi- -c fiziert. (-> 'Zufallschleife': 'do 100 randomloop_ = 1, n_par(0)) -c Andernfalls: -c Wurden waehrend ACCEL oder 'foilfile' fuer die Startparameter Zufalls- -c verteilungen verwendet, so werden die entsprechenden Groessen aus dem -c betreffenden NTupel eingelesen. -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Startparameter: -c --------------- - - do 200 E0_ = par(1,ener),par(2,ener),par(3,ener) ! E0 - if (.NOT.random_E0) then - E0 = E0_ - v0_Betrag = sqrt(E0/Energie_Faktor) - endif - - if (E0InterFromFile) then - lowerE0 = E0Low(nInt(E0_)) - upperE0 = E0Low(nint(E0_+1)) - endif - - -c falls Energieverlustberechnung aus ICRU-Tabelle verlangt ist und mittlerer -c Energieverlust nicht fuer jedes Teilchen extra berechnet werden soll (sinnvoll -c wenn alle Teilchen gleiche Startenergie haben oder Streuung der Startenergien -c klein ist, so dass die Streuung des mittleren Energieverlustes vernachlaessigt -c werden kann): - - if (log_E_Verlust_ICRU .AND. .NOT.calculate_each) then - if (random_E0_equal) then - Ekin = E0_ + (upperE0+lowerE0)/2. - else - Ekin = E0_ - endif - if (Gebiet0.EQ.target .OR. Gebiet0.EQ.upToGrid1) then - Ekin = Ekin + q*(U_Tgt - U_F) - elseif (Gebiet0.EQ.upToGrid2) then - Ekin = Ekin + q*(U_G1 - U_F) - endif - call CALC_ELOSS_ICRU(Ekin,q,m,Thickness,mean_E_Verlust) - endif - - if (log_Meyer_F_Function) then - if (random_E0_equal) then - Ekin = E0_ + (upperE0+lowerE0)/2. - else - Ekin = E0_ - endif - if (Gebiet0.EQ.target .OR. Gebiet0.EQ.upToGrid1) then - Ekin = Ekin + q*(U_Tgt - U_F) - elseif (Gebiet0.EQ.upToGrid2) then - Ekin = Ekin + q*(U_G1 - U_F) - endif - effRedThick = Meyer_Faktor1 * Thickness - call Get_F_Function_Meyer(effRedThick,Ekin) - endif - - do 200 theta0_ = par(1,thetAng),par(2,thetAng),par(3,thetAng) ! theta0 - if (.NOT.random_angle) then - theta0 = theta0_ - Cos_theta0 = cosd(theta0) - Sin_theta0 = sind(theta0) - endif - do 200 phi0_ = par(1,phiAng),par(2,phiAng),par(3,phiAng) ! phi0 - if (.NOT.random_angle) then - phi0 = phi0_ - Cos_phi0 = cosd(phi0) - Sin_phi0 = sind(phi0) - endif - - do 200 y0_ = par(1,yPos),par(2,yPos),par(3,yPos) ! y0 - if (.NOT.random_pos) then - x0(2) = y0_ - endif - - do 200 z0_ = par(1,zPos),par(2,zPos),par(3,zPos) ! z0 - if (.NOT.random_pos) then - x0(3) = z0_ - endif - -c die folgenden parWert(n) werden u.U. in der 'Zufallsschleife' weiter unten -c abgeaendert. Hier werden sie in jedem Fall fuer Tabellenausgaben, Debug- -c angelegenheiten u.s.w. erst einmal mit den aktuellen Werten der -c entsprechenden Schleifen gefuellt: - - parWert(ener) = E0_ - parWert(thetAng) = theta0_ - parWert(phiAng) = phi0_ - parWert(yPos) = y0_ - parWert(zPos) = z0_ - - -c falls fruehere Simulation fortgefuehrt wird: -c Berechne diejenige Eventnummer in NTP_read, ab welcher die relevanten -c Simulationsparameter von ACCEL bzw. des 'FoilFiles' mit den gegenwaertigen -c MUTRACK-(Schleifen)-Parametern uebereinstimmen: - - if (.NOT.fromScratch) eventNr = firstEventNr() - - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Hier folgen die Befehle, die zu Beginn jeder neuen Schleife faellig sind: -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SchleifenNr = SchleifenNr + 1 ! Schleifen zaehlen - okStepsCounter = 0 ! 'okStepsCounter' dient der Bestimmung - ! der mittleren Anzahl von Integrations- - ! schritten bis zum Ziel - nNeutral = 0 ! noch wurden keine Teilchen in der TD-Folie - nCharged = 0 ! neutralisiert - -c Die Statistikspeicher resetten: -c Falls nur ein Teilchenstart pro Schleife erfolgt, nimm die Statistik ueber -c alle Schleifen. (Dann erfolgt der Reset nur bei der ersten Schleife): - - flag_ok = (.NOT.(OneStartPerLoop .AND. SchleifenNr.GT.1)) - - if (flag_ok) call reset_statistics - - -c Die Kammer zeichnen: -c Wird pro Schleife nur ein Teilchen gestartet ('OneStartPerLoop'; d.h. kein -c oder genau ein 'Zufallsstart'), so trage alle Trajektorien in die gleiche -c Graphik ein. Zeichne die Kammer dann also nur bei der ersten Schleife. - - if (GRAPHICS .AND. flag_ok) then - CALL IZPICT ('CHAM_1','M') ! ERZEUGEN VON BILDERN IM PAWC-COMM-BLOCK - CALL IZPICT ('CHAM_2','M') - CALL IZPICT ('HISTO','M') - CALL IZPICT ('TEXT','M') - call plot_chamber(schnitt_p) - call Graphics_Text ! Text fuer Textwindow erstellen - call text_plot ! Ausgabe des Textes - endif - - -c Ausgabe der aktuellen Settings: -c Auch dies im Falle von 'OneStartPerLoop' nur bei der ersten Schleife: - - if ((n_outWhere.NE.0 .OR. smallLogFile) .AND. flag_ok) then - call output_new_loop(q_) ! (q_) wegen der neutral fractions - endif - - -c Ausgabe der Prozentzahl schon gerechneten Trajektorien vorbereiten: - - if (log_percent) then - call time(uhrzeit) - percent_done = 0 - write(*,1001)Uhrzeit,' %: 0' - endif -1001 format ($,6x,A,A) - - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c bei 'fromScratch': -c Hier wird gegebenenfalls bei Zufallsverteilung von Startparametern ein ent- -c sprechend gewuerfelter Offset auf den aktuellen Wert aufgeschlagen. -c Ansonsten: -c Lies bei Zufallsverteilungen die entsprechenden Startwerte aus dem NTupel -c ein. -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - do 100 randomloop_ = 1, n_par(0) - - if (.NOT.fromScratch) then - - eventNr = eventNr + 1 ! Eventnummer im NTP - - if (smearS1Fo.AND.use_MUTRACK) call HGNTB(NTP_read,'S1FoS',eventNr,istat) - if (istat.NE.0) then - write(*,*) - write(*,*)' error executing ''call HGNTB(',NTP_read,',''S1FoS'',eventNr,istat)''' - write(*,*)' eventNr = ',eventNr - write(*,*)' -> STOP' - write(*,*) - call exit - endif - - ! Einlesen von 'Gebiet' und 'destiny': - call HGNTB(NTP_read,'dest',eventNr,istat) - ! gegebenenfallsvon freuher verwendete Gebietskodierung - ! (ohne Linse2) aktualisieren - if (gebiet.GE.10 .AND. MutrackVersionIndx.LE.1) gebiet = gebiet+2 - -c if (istat.NE.0) then -c write(*,*) -c write(*,*)' error executing ''call HGNTB(',NTP_read,',''dest'',eventNr,istat)''' -c write(*,*)' eventNr = ',eventNr -c write(*,*)' -> STOP' -c write(*,*) -c call exit -c endif - ! Einlesen der Trajektoriendaten 't,x(3),v(3)': - call HGNTB(NTP_read,'Traj',eventNr,istat) -c if (istat.NE.0) then -c write(*,*) -c write(*,*)' error executing ''call HGNTB(',NTP_read,',''Traj'',eventNr,istat)''' -c write(*,*)' eventNr = ',eventNr -c write(*,*)' -> STOP' -c write(*,*) -c call exit -c endif - - if (Use_Accel) then - ! Uebersetzen der von ACCEL verwendeten code_Nummern fuer die - ! moeglichen Teilchenschicksale in von MUTRACK verwendete - ! code_Nummern: - if (destiny.EQ.-5) then - destiny = code_frontOfMapAc - elseif (destiny.EQ.-4) then - destiny = code_leftMapAc - elseif (destiny.EQ.-3) then - gebiet = upToGrid2 - destiny = code_grid - elseif (destiny.EQ.-2) then - gebiet = upToGrid1 - destiny = code_grid - elseif (destiny.EQ.-1) then - destiny = code_hit_TgtHolder - elseif (destiny.EQ.code_ok) then - Gebiet = upToHeShield - elseif (destiny.EQ.+1) then - destiny = code_decay - elseif (destiny.EQ.+2) then - destiny = code_reflektiert - elseif (destiny.EQ.+3) then - destiny = code_wand - elseif (destiny.EQ.+4) then - destiny = code_lost - elseif (destiny.EQ.+5) then - destiny = code_dtsmall - else - write(*,*)'UNKNOWN ACCEL-CODE-NR: destiny = ',destiny - call exit - endif - - ! Auf xGrid2 zurueckrechnen, damit unabhaengiger Test auf - ! Treffer des He-Fensters gemacht werden kann (nur, falls - ! Teilchen nicht schon anderweitig gestorben ist). Auch - ! notwendig fuer Graphikausgabe. - - if (destiny.EQ.0) then - dt = (xGrid2-x(1))/v(1) ! < 0. - t = t + dt - x(1) = xGrid2 - x(2) = x(2)+v(2)*dt - x(3) = x(3)+v(3)*dt - endif - - ! falls Kryo verdreht ist, rechne in Kammerkoordinaten um: - - if (alfaTgt.NE.0.) then - if (alfaTgtVertically) then - help1 = x(1) - x(1) = help1 * Cos_alfaTgt - x(3) * Sin_alfaTgt - x(3) = help1 * Sin_alfaTgt + x(3) * Cos_alfaTgt - help1 = v(1) - v(1) = help1 * Cos_alfaTgt - v(3) * Sin_alfaTgt - v(3) = help1 * Sin_alfaTgt + v(3) * Cos_alfaTgt - else - help1 = x(1) - x(1) = help1 * Cos_alfaTgt - x(2) * Sin_alfaTgt - x(2) = help1 * Sin_alfaTgt + x(2) * Cos_alfaTgt - help1 = v(1) - v(1) = help1 * Cos_alfaTgt - v(2) * Sin_alfaTgt - v(2) = help1 * Sin_alfaTgt + v(2) * Cos_alfaTgt - endif - endif - - endif - - endif - - if (random_E0) then ! random_ENERGIE - if (fromScratch) then - if (random_E0_equal) then ! -> gleichverteilt -300 E0 = E0_ + lowerE0 + (upperE0 - lowerE0)*ran(seed) - if (E0.LT.0) goto 300 - elseif (random_E0_gauss) then ! -> gaussverteilt -310 call Gauss_Verteilung(sigmaE0,help1) - E0 = E0_ + help1 - if (E0.LT.0) goto 310 - endif - else - ! Einlesen von 'E0' aus NTP: - call HGNTB(NTP_read,'E0',eventNr,istat) -c if (istat.NE.0) then -c write(*,*) -c write(*,*)' error executing ''call HGNTB(NTP_read,''E0'',eventNr,istat)''' -c write(*,*)' eventNr = ',eventNr -c write(*,*)' -> STOP' -c write(*,*) -c call exit -c endif - endif - parWert(ener) = E0 - v0_Betrag = sqrt(E0/Energie_Faktor) - endif - - if (random_pos) then ! random_POSITION - if (fromScratch) then - if (random_y0z0_equal) then ! -> rechteckig, gleichverteilt - x0(2) = StartBreite * (ran(seed)-.5) - x0(3) = StartHoehe * (ran(seed)-.5) - elseif (random_y0z0_Gauss) then ! -> rechteckig, Gaussverteilt -320 r0 = abs(sigmaPosition*sqrt(-2.*log(1.-ran(seed)))) - phi_r0= 360.*ran(seed) - x0(2) = r0 * cosd(phi_r0) - if (abs(x0(2)).GT.StartBreite/2.) goto 320 - x0(3) = r0 * sind(phi_r0) - if (abs(x0(3)).GT.StartHoehe/2.) goto 320 - elseif (random_r0_equal) then ! -> rund, gleichverteilt - r0 = StartRadius * sqrt(ran(seed)) - phi_r0= 360. * ran(seed) - x0(2) = r0 * cosd(phi_r0) - x0(3) = r0 * sind(phi_r0) - elseif (random_r0_Gauss) then ! -> rund, Gaussverteilt -330 r0 = abs(sigmaPosition*sqrt(-2.*log(1.-ran(seed)))) - if (r0.GT.StartRadius) goto 330 - phi_r0= 360.*ran(seed) - x0(2) = r0 * cosd(phi_r0) - x0(3) = r0 * sind(phi_r0) - endif - x0(2) = y0_ + x0(2) - x0(3) = z0_ + x0(3) - else - ! Einlesen von 'x0(3)' aus NTP: - call HGNTB(NTP_read,'x0',eventNr,istat) -c if (istat.NE.0) then -c write(*,*) -c write(*,*)' error executing ''call HGNTB(',NTP_read,',''x0'',eventNr,istat)''' -c write(*,*)' eventNr = ',eventNr -c write(*,*)' -> STOP' -c write(*,*) -c call exit -c endif - endif - parWert(yPos) = x0(2) - parWert(zPos) = x0(3) - endif - - if (random_angle) then ! random_WINKEL - if (fromScratch) then -340 if (random_lambert) then ! -> Lambert-verteilt - call lambert_verteilung(StartLambertOrd, - + Cos_theta0,Sin_theta0) - theta0 = acosd(Cos_theta0) - elseif (random_gauss) then - call Gauss_Verteilung_theta(sigmaWinkel,theta0) - Cos_theta0 = cosd(theta0) - Sin_theta0 = sind(theta0) - endif - - phi0 = 360.*ran(seed) - Cos_phi0 = cosd(phi0) - Sin_phi0 = sind(phi0) - - if (angle_offset) then - -c -> Es soll aus gewuerfelter Startrichtung (theta0,phi0) und durch die Winkel- -c schleifen vorgegebenen Startrichtung (theta0_,phi0_) die tatsaechliche -c Startrichtung berechnet werden. Dafuer werden die gewuerfelten Winkel als -c 'Streuwinkel' betrachtet. -c Vorgehensweise: -c Es werden die Komponenten eines Geschwindigkeitsvektors mit Betrag=1 und durch -c theta0_,phi0_ bestimmter Richtung berechnet. Danach werden die Komponenten des -c mit theta0,phi0 gestreuten Geschwindigkeitsvektors und die zugehoerigen Winkel -c gewonnen, die dann als neuetheta0,phi0 als die tatsaechlichen Startwinkel -c verwendet werden. Das alles geschieht vollkommen analog zur Winkelaufstreuung -c in der Triggerfolie. -c v wird als Hilfsvariable missbraucht. - - ! Berechnung der 'Geschwindigkeitskomponenten': - v(1) = cosd(theta0_) - help1 = sind(theta0_) - v(2) = help1 * cosd(phi0_) - v(3) = help1 * sind(phi0_) - ! v_xy ist stets groesser 0 ausser wenn die Zentralrichtung - ! senkrecht nach oben oder unten gerichtet ist. Diese Wahl ist - ! aber sowieso wenig sinnvoll: - v_xy = SQRT(v(1)*v(1) + v(2)*v(2)) - if (v_xy.EQ.0.) then - write(*,*) - write(*,*)' Bei Zufallsverteilung fuer Startwinkel darf die durch die Winkelschleifen' - write(*,*)' vorgegebene Zentralrichtung nicht senkrecht nach oben oder nach unten weisen!' - write(*,*)' -> STOP' - STOP - endif - ! berechne neue 'Geschwindigkeitskomponenten': - help1 = v(1) - help2 = v(2) - help3 = Sin_theta0*Cos_phi0/v_xy - help4 = Sin_theta0*Sin_phi0 - v(1) = Cos_theta0*help1 - help3*help2 - help4*help1*v(3)/v_xy - if (v(1).LT.0.) goto 340 - v(2) = Cos_theta0*help2 + help3*help1 - help4*help2*v(3)/v_xy - v(3) = Cos_theta0*v(3) + help4*v_xy - ! Berechne tatsaechlichen Startwinkel: - if (v(2).EQ.0. .AND. v(3).EQ.0.) then - if (v(1).GE.0) then - theta0 = 0. - else - theta0 = 180. - endif - phi0 = 0. - else - theta0 = acosd(v(1)) - phi0 = atan2d(v(3),v(2)) - if (phi0.LT.0) phi0 = phi0+360. - endif - Cos_theta0 = cosd(theta0) - Sin_theta0 = sind(theta0) - Cos_phi0 = cosd(phi0) - Sin_phi0 = sind(phi0) - endif - - if (theta0.GT.90.) goto 340 - - else - - ! Einlesen von 'theta0' und 'phi0' aus NTP: - call HGNTB(NTP_read,'angle0',eventNr,istat) -c if (istat.NE.0) then -c write(*,*) -c write(*,*)' error executing ''call HGNTB(',NTP_read,',''angle0'',eventNr,istat)''' -c write(*,*)' eventNr = ',eventNr -c write(*,*)' -> STOP' -c write(*,*) -c call exit -c endif - - endif - - parWert(thetAng) = theta0 - parWert(phiAng) = phi0 - - endif - - ! Berechnung der Start-Geschwindigkeitskomponenten: - v0(1) = v0_Betrag * Cos_theta0 - v0(2) = v0_Betrag * Sin_theta0 * Cos_phi0 - v0(3) = v0_Betrag * Sin_theta0 * Sin_phi0 - - if (fromScratch) then - ! den Zeit-Speicher resetten: - t = 0. - ! Startparameter in Koordinatenspeicher uebergeben: - do i = 1, 3 - x(i) = x0(i) - v(i) = v0(i) - enddo - endif - - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Hier folgen die restl. Vorbereitungen zum Start des individuellen Projektils: -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c n_dtsmall resetten: - - n_dtsmall = 0 - - -c Aufstreuwinkel resetten: - - thetaAufstreu = 0. - phiAufstreu = 0. - - -c x-Komponente der Startgeschwindigkeit ueberpruefen: - - if (v0(1).LT.0) then - write(*,*) - write(*,*) ' >>>> v(x) beim Start negativ!' - write(*,*) - call exit - endif - - -c die Lebensdauer wuerfeln: -c (wird eine fruehere Simulation fortgefuehrt und wurde dort bereits der Myonen- -c zerfall beruecksichtigt, so verwende die dort gewuerfelten Lebenszeiten) - - if (UseDecay_) then - if (.NOT.UseDecay_prevSim) then -350 lifeTime = -meanlifeTime * Log(Ran(seed) + 1.0E-37) - if (lifeTime.LE.0.) goto 350 - elseif (.NOT.fromScratch) then - call HGNTB(NTP_read,'lifetime',eventNr,istat) -c if (istat.NE.0) then -c write(*,*) -c write(*,*)' error executing ''call HGNTB(',NTP_read,',''lifetime'',eventNr,istat)''' -c write(*,*)' eventNr = ', eventNr -c write(*,*)' -> STOP' -c write(*,*) -c call exit -c endif - endif - endif - - -c die Ladung resetten (falls in der Folie Neutralisierung stattgefunden hat): -c ('qInt' wird fuer 'NTP_charge' benoetigt) - - q = parWert(charge) - qInt = int(q) - - -c Ausgabe der Prozentzahl schon gerechneter Trajektorien: - - if (log_percent) then - if (100.*real(start_nr(1))/real(n_par(0)) - + .GE.percent_done+5) then - percent_done = percent_done + 5 - write(*,1002) percent_done - endif - endif -1002 format ($,'+',I3) - - -c andere Variablen auf den richtigen Stand bringen: - - if (fromScratch) then - destiny = code_ok ! bis jetzt ist dem Teilchen noch nichts zugestossen - Gebiet = Gebiet0 - endif - - start_nr(1) = start_nr(1) + 1 ! Projektil-Startnummer erhoehen - steps = 0 ! es wurden noch keine Integrationsschritte durchgefuehrt - NTPalreadyWritten = .false. ! fuer 'createFoilFile' - - -c die DEBUG-Daten ausgeben: - - if (Debug .AND. start_Nr(1).LE.DEBUG_Anzahl) then - Debug_ = .true. - call output_new_particle - call Output_Debug - else - Debug_ = .false. - endif - - -c StartKoordinaten fuer Graphikausgabe sichern: - - if (graphics .AND. (start_Nr(1).LE.graphics_Anzahl .OR. OneStartPerLoop)) then - graphics_ = .true. - if (Use_ACCEL) then - nKoord = 1 - xKoord(1) = x0(1) - yKoord(1) = x0(2) - zKoord(1) = x0(3) - else - nKoord = 0 - endif - if (.NOT.(Use_MUTRACK.OR.Gebiet0.EQ.upToExTD)) call Save_Graphics_Koord - else - graphics_ = .false. - endif - - -c gegebenenfalls 'fill_NTP' resetten: - - if (Fo_triggered.OR.M2_triggered.OR.xM2_triggered) fill_NTP = .false. - - -c Falls Schrittweiteninformationen im NTupel verlangt sind: Speicher resetten -c und Startkoordinaten sichern: - -d if (NTP_steps) then -d dtmin_L1 = +1.e10 -d x_dtmin_L1(1) = 0 -d x_dtmin_L1(2) = 0 -d x_dtmin_L1(3) = 0 -d dtmax_L1 = -1.e10 -d x_dtmax_L1(1) = 0 -d x_dtmax_L1(2) = 0 -d x_dtmax_L1(3) = 0 -d -d dtmin_L2andFo = +1.e10 -d x_dtmin_L2andFo(1) = 0 -d x_dtmin_L2andFo(2) = 0 -d x_dtmin_L2andFo(3) = 0 -d dtmax_L2andFo = -1.e10 -d x_dtmax_L2andFo(1) = 0 -d x_dtmax_L2andFo(2) = 0 -d x_dtmax_L2andFo(3) = 0 -d -d dtmin_FO = +1.e10 -d x_dtmin_FO(1) = 0 -d x_dtmin_FO(2) = 0 -d x_dtmin_FO(3) = 0 -d dtmax_FO = -1.e10 -d x_dtmax_FO(1) = 0 -d x_dtmax_FO(2) = 0 -d x_dtmax_FO(3) = 0 -d -d dtmin_L3 = +1.e10 -d x_dtmin_L3(1) = 0 -d x_dtmin_L3(2) = 0 -d x_dtmin_L3(3) = 0 -d dtmax_L3 = -1.e10 -d x_dtmax_L3(1) = 0 -d x_dtmax_L3(2) = 0 -d x_dtmax_L3(3) = 0 -d -d dtmin_M2 = +1.e10 -d x_dtmin_M2(1) = 0 -d x_dtmin_M2(2) = 0 -d x_dtmin_M2(3) = 0 -d dtmax_M2 = -1.e10 -d x_dtmax_M2(1) = 0 -d x_dtmax_M2(2) = 0 -d x_dtmax_M2(3) = 0 -d endif - - if (NTP_40mm) then - x40(2) = 0. - x40(3) = 0. - v40(1) = 0. - v40(2) = 0. - v40(3) = 0. - t40 = 0. - E40 = 0. - endif - - -c Die Flugzeiten resetten: - - S1xM2 = 0. - S1M2 = 0. - S1Fo = 0. - FoM2 = 0. - S1M3 = 0. - M3M2 = 0. - - -c Falls das Teilchen schon nicht mehr existiert, gehe gleich zur Ausgabe: - - if (destiny.NE.code_ok) goto 555 ! (nur bei '.NOT.fromScratch' moeglich) - - -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -c hier starten die Projektile: -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz - - goto startLabel ! StartLabel = Gebiet0 als label - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c erste Beschleunigerstufe: (homogenes Feld) - -1 Gebiet = upToGrid1 - steps = Steps + 1 - - if (a1.NE.0.) then - help1 = v(1)*v(1) + 2.*a1*(xGrid1-x(1)) - if (help1.LT.0) then ! Reflektion noch vor 1. Gitter - dt = -2*v(1)/a1 - t = t + dt - !x(1) bleibt unveraendert - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - v(1) = -v(1) - !v(2) bleibt unveraendert - !v(3) bleibt unveraendert - destiny = code_reflektiert - goto 555 - endif - dt = (sqrt(help1) - v(1))/a1 - ! (ergibt sich aus x=v*t+1/2*a*t**2 mit richtiger V.Z.-Wahl ('+')) - v(1) = v(1) + a1*dt - else - if (v(1).EQ.0) then - write(*,*) - write(*,*)'ERROR: v(x) beim Start = 0. und '// - + 'Beschleunigung = 0' - write(*,*) - STOP - endif - dt = (xGrid1-xTarget) / v(1) - endif - - t = t + dt - !v(2) bleibt unveraendert - !v(3) bleibt unveraendert - x(1) = xGrid1 - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - -c - Aufgeschlagen? - - if (Abs(x(2)).gt.dygrid1/2. .OR. - + Abs(x(3)).gt.dzgrid1/2.) then - flag = .true. - destiny = code_wand - else - flag = .false. - endif - -c - Gitterstab getroffen? - - if (testOnWireHit) then - DrahtNr = nInt(x(2)/dist_Wires_G1) - distToWire(1) = 0. - distToWire(2) = x(2) - DrahtNr * dist_Wires_G1 - call Test_WireHit(distToWire,WireRadiusQuad_G1,v(1),v(2),WireHit) - if (WireHit) then - flag = .true. - destiny = code_grid - endif - endif - -c - Koordinatentransformation in Kammersystem: - - if (alfaTgt.NE.0.) then - if (alfaTgtVertically) then - help1 = x(3) - help2 = v(1) - help3 = v(3) - x(1) = xgrid1 * Cos_alfaTgt - help1 * Sin_alfaTgt - x(3) = xgrid1 * Sin_alfaTgt + help1 * Cos_alfaTgt - v(1) = help2 * Cos_alfaTgt - help3 * Sin_alfaTgt - v(3) = help2 * Sin_alfaTgt + help3 * Cos_alfaTgt - else - help1 = x(2) - help2 = v(1) - help3 = v(2) - x(1) = xgrid1 * Cos_alfaTgt - help1 * Sin_alfaTgt - x(2) = xgrid1 * Sin_alfaTgt + help1 * Cos_alfaTgt - v(1) = help2 * Cos_alfaTgt - help3 * Sin_alfaTgt - v(2) = help2 * Sin_alfaTgt + help3 * Cos_alfaTgt - endif - endif - -c - zerfallen? - - if (useDecay_) call Decay_Test(*555) - -c - falls aufgeschlagen: - - if (flag) goto 555 - -c - Koordinatentransformation zurueck in Beschleunigersystem: - - if (alfaTgt.NE.0.) then - if (alfaTgtVertically) then - x(1) = xGrid1 - x(3) = help1 - v(1) = help2 - v(3) = help3 - else - x(1) = xGrid1 - x(2) = help1 - v(1) = help2 - v(2) = help3 - endif - endif - -c - Datenausgabe: - - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c zweite Beschleunigerstufe: (homogenes Feld) - -2 Gebiet = upToGrid2 - steps = Steps + 1 - - if (a2.NE.0.) then - help1 = v(1)*v(1) + 2.*a2*(XGrid2-XGrid1) - if (help1.LT.0) then ! Reflektion noch vor 2. Gitter - dt = -2*v(1)/a2 - t = t + dt - !x(1) bleibt unveraendert - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - v(1) = -v(1) - !v(2) bleibt unveraendert - !v(3) bleibt unveraendert - destiny = code_reflektiert - goto 555 - endif - dt = (sqrt(help1) - v(1))/a2 - v(1) = v(1) + a2*dt - else - if (v(1).EQ.0) then ! (kann nur bei Start in 2. Stufe passieren) - write(*,*) - write(*,*)'ERROR: v(x) beim Start = 0. und '// - + 'Beschleunigung = 0' - write(*,*) - STOP - endif - dt = (XGrid2-XGrid1) / v(1) - endif - - t = t + dt - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - -c - Aufgeschlagen? - - if (Abs(x(2)).gt.dygrid2/2. .OR. - + Abs(x(3)).gt.dzgrid2/2.) then - flag = .true. - destiny = code_wand - else - flag = .false. ! <- noetig, falls Start auf 1. Gitter - endif - -c - Gitterstab getroffen? - - if (testOnWireHit) then - DrahtNr = nInt(x(2)/dist_Wires_G2) - distToWire(1) = 0 - distToWire(2) = x(2) - DrahtNr * dist_Wires_G2 - call Test_WireHit(distToWire,WireRadiusQuad_G2,v(1),v(2),WireHit) - if (WireHit) then - flag = .true. - destiny = code_grid - endif - endif - -c - Koordinatentransformation in Kammersystem: - - if (alfaTgt.NE.0.) then - if (alfaTgtVertically) then - x(1) = xgrid2 * Cos_alfaTgt - x(3) * Sin_alfaTgt - x(3) = xgrid2 * Sin_alfaTgt + x(3) * Cos_alfaTgt - help1 = v(1) - v(1) = help1 * Cos_alfaTgt - v(3) * Sin_alfaTgt - v(3) = help1 * Sin_alfaTgt + v(3) * Cos_alfaTgt - else - x(1) = xgrid2 * Cos_alfaTgt - x(2) * Sin_alfaTgt - x(2) = xgrid2 * Sin_alfaTgt + x(2) * Cos_alfaTgt - help1 = v(1) - v(1) = help1 * Cos_alfaTgt - v(2) * Sin_alfaTgt - v(2) = help1 * Sin_alfaTgt + v(2) * Cos_alfaTgt - endif - else - x(1) = xgrid2 - endif - -c - zerfallen? - - if (useDecay_) call Decay_Test(*555) - -c - falls aufgeschlagen: - - if (flag) goto 555 - -c - Datenausgabe: - - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c zwischen zweitem Gitter und He-Shield: (feldfrei) - -3 Gebiet = upToHeShield - Steps = Steps + 1 - - radiusQuad = x(1)*x(1) + x(2)*x(2) - help1 = v(1)*v(1)+v(2)*v(2) - help2 = x(1)*v(1)+x(2)*v(2) - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_HeShield))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) ! den Ort berechnen, an dem - x(2) = x(2) + dt*v(2) ! das Teilchen das Schild - x(3) = x(3) + dt*v(3) ! durchquert - - if (useDecay_) call Decay_Test(*555) - if (Abs(x(2)).gt.DYHESHIELD/2. .OR. - + Abs(x(3)).gt.DZHESHIELD/2.) then - destiny = code_wand - goto 555 - endif - if (Debug_) call Output_Debug - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c Groessen bei x=40 mm berechnen: - - if (NTP_40mm) then - dt = (40-x(1))/v(1) - x40(2) = x(2)+v(2)*dt - x40(3) = x(3)+v(3)*dt - v40(1) = v(1) - v40(2) = v(2) - v40(3) = v(3) - t40 = t + dt - ! help1 = v(1)*v(1)+v(2)*v(2) noch bekannt von 'upToHeShield' - v_square = help1 + v(3)*v(3) - E40 = v_square * Energie_Faktor - endif - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c zwischen He-Shield und LN-Shield: (feldfrei) - -4 Gebiet = upToLNShield - Steps = Steps + 1 - - radiusQuad = x(1)*x(1) + x(2)*x(2) - ! help1 = v(1)*v(1)+v(2)*v(2) ! noch bekannt von 'upToHeShield' - help2 = x(1)*v(1)+x(2)*v(2) - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_LNShield))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) ! den Ort berechnen, an dem - x(2) = x(2) + dt*v(2) ! das Teilchen das Schild - x(3) = x(3) + dt*v(3) ! durchquert - - if (useDecay_) call Decay_Test(*555) - if (abs(x(2)).gt.dyLNShield/2. .OR. - + Abs(x(3)).gt.dzLNShield/2.) then - destiny = code_wand - goto 555 - endif - if (Debug_) call Output_Debug - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c zwischen LN-Shield und Beginn der L1-Mappe: (feldfrei) - -5 Gebiet = upToL1Map - Steps = Steps + 1 - - dt = (xEnterMap_L1 - x(1)) / v(1) - - t = t + dt - x(1) = xEnterMap_L1 - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_Rohr) then - help1 = v(2)*v(2)+v(3)*v(3) - help2 = x(2)*v(2)+x(3)*v(3) - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_Rohr))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) ! den Ort berechnen, an dem - x(2) = x(2) + dt*v(2) ! das Teilchen auf das Rohr - x(3) = x(3) + dt*v(3) ! aufschlaegt - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - destiny = code_wand - goto 555 - endif - if (useDecay_) call Decay_Test(*555) - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - if (radiusQuad.GT.radiusQuad_L1) then ! Teilchen fliegt an L1 vorbei - destiny = code_vorbei - goto 555 - endif - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c innerhalb L1: (inhom. Felder -> Integrationen) - -6 Gebiet = upToExL1 ! GebietsNummer fuer L1 setzen - -c Teste, ob das Teilchen ueberhaupt eine Beschleunigung erfaehrt (Spannung=0?, -c Ladung=0?). Falls nicht, steppe gleich bis zum Mappenende: - - if (Beschl_Faktor_L1.EQ.0) then -d dtmax_L1 = 0. -d dtmin_L1 = 0. - dt = (xLeaveMap_L1 - x(1)) / v(1) ! Zeit bis zum Mappenende - x(1) = xLeaveMap_L1 - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - t = t + dt - goto 5106 - endif - -c............................................................................... -c Das Teilchen spuert eine Beschleunigung, es muss also integriert werden. -c Gehe als ersten Versuch 0.5 mm in das Gebiet hinein: - - dt = .5/v(1) - zaehler = 0 - -c............................................................................... -c hierher wird zurueckgesprungen, solange die Integration in der L1 bleibt - -5006 call INTEGRATIONSSTEP_RUNGE_KUTTA_L1(dt) -d if (NTP_steps) then -d if (dt.LT.dtmin_L1) then -d dtmin_L1 = dt -d x_dtmin_L1(1) = x(1) -d x_dtmin_L1(2) = x(2) -d x_dtmin_L1(3) = x(3) -d endif -d if (dt.GT.dtmax_L1) then -d dtmax_L1 = dt -d x_dtmax_L1(1) = x(1) -d x_dtmax_L1(2) = x(2) -d x_dtmax_L1(3) = x(3) -d endif -d endif - -c............................................................................... -5106 Steps = Steps + 1 ! neuer Ort, Zeit und Geschwindigkeit sind festgelegt - -c do some tests: - - if (destiny.EQ.code_dtSmall) then ! n_dtsmall>maxBelowDtSmall - goto 555 - elseif (destiny.EQ.code_wand) then ! aufgeschlagen - radiusQuad = x(2)*x(2) + x(3)*x(3) ! -> den Ort berechnen, an - help1 = v(2)*v(2)+v(3)*v(3) ! dem das Teilchen auf- - help2 = x(2)*v(2)+x(3)*v(3) - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_L1))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) - x(2) = x(2) + dt*v(2) - x(3) = x(3) + dt*v(3) - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - goto 555 -c elseif (destiny.NE.code_ok) then ! voruebergehend fuer Testzwecke -c write(*,*) -c write(*,*)'L1-1: ''destiny.NE.code_ok'' where it should -> STOP' -c write(*,*)' destiny = ',destiny,': ',code_text(destiny) -c write(*,*) -c STOP - elseif (useDecay_) then ! zerfallen? - call Decay_Test(*555) - endif - - if (x(1).LT.xEnterMap_L1) then - if (v(1).LT.0) then ! reflektiert? - destiny = code_reflektiert - goto 555 - else ! darf nicht sein! - write(*,*) - write(*,*)' L1: x(1).LT.xEnterMap .AND. v(1).GE.0. -> STOP' - write(*,*) - STOP - endif - elseif (Steps.GE.MaxStep) then ! Teilchen verloren - destiny = code_lost - goto 555 - elseif (x(1).GE.xLeaveMap_L1) then ! Verlasse L1 - dt = (xLeaveMap_L1 - x(1))/v(1) ! rechne zurueck auf exaktes - t = t + dt ! Mappenende - x(1) = xLeaveMap_L1 - x(2) = x(2) + dt*v(2) - x(3) = x(3) + dt*v(3) - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - goto bis_Spiegel ! -> Mache bei upToEnSp weiter -c elseif (destiny.NE.code_ok) then ! voruebergehend fuer Testzwecke -c write(*,*) -c write(*,*)'L1-2: ''destiny.NE.code_ok'' where it should -> STOP' -c write(*,*)' destiny = ',destiny,': ',code_text(destiny) -c write(*,*) -c STOP - endif - - -c verarbeite alle 'imonitor' Schritte die Koordinaten fuer GRAPHICS und DEBUG: - - if (GRAPHICS_.or.Debug_) then - zaehler = zaehler + 1 - if (zaehler.EQ.iMonitor) then - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - zaehler = 0 - endif - endif - - goto 5006 ! naechster Integrationsschritt in L1-Mappe - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c zwischen Linse 1 und Spiegel: (feldfrei) - -7 Gebiet = upToEnSp - Steps = Steps + 1 - -c - berechne Schnittpunkt mit forderer Spiegelebene: - - help2 = v(2)/v(1) ! Steigung der Bahn in der x-y-Ebene - - if (help2.GE.Tan_alfaSp) then - ! Teilchen fliegt am Spiegel vorbei - dt = (600-x(1))/v(1) - t = t + dt - x(1) = x(1) + v(1)*dt - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - if (useDecay_) call Decay_Test(*555) - destiny = code_vorbei - goto 555 - else - ! help1 == neues x(1) - help1 = (x(2) - y_intersectSP + xSpiegel*Tan_alfaSp - + - xLeaveMap_L1*help2) / (Tan_alfaSp - help2) - - dt = (help1-x(1)) / v(1) - t = t + dt - x(1) = help1 - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - endif - - if (useDecay_) call Decay_Test(*555) - if (Debug_) call Output_Debug - - -c Berechnung der Trajektorie bei idealem Spiegel: - - if (idealMirror) then ! ~~~ 40: if ~~~~~~~~~~~ - -c - pruefe, ob das Teilchen die ForderSEITE des Spiegels trifft: - - if ( x(2).GT.yUppLeft .OR. x(2).LT.yLowLeft .OR. - + abs(x(3)).GT.HSpiegel/2.) then - ! -> Teilchen fliegt am Spiegel vorbei - dt = (600-x(1))/v(1) - t = t + dt - x(1) = x(1) + v(1)*dt - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - destiny = code_vorbei - goto 555 - endif - - -c - pruefe, ob das Teilchen einen Gitterstab des Spiegels trifft: - - if (testOnWireHit) then - help1 = x(2)-yLowLeft ! Abstand zum Bezugspunkt - DrahtNr = nInt(help1/(Sin_alfaSp*dist_Wires_Sp)) - distToWire(2) = help1 - DrahtNr * Sin_alfaSp*dist_Wires_Sp - distToWire(1) = distToWire(2)/Tan_alfaSp - call Test_WireHit(distToWire,WireRadiusQuad_Sp,v(1),v(2),WireHit) - if (WireHit) then - destiny = code_grid - goto 555 - endif - endif - - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c im Spiegel: (homogenes Feld) - -8 Gebiet = upToExSp - Steps = Steps + 1 - -c - pruefe, ob Teilchen nicht zuviel Energie senkrecht zum Spiegel hat: - - if (Spiegel_Faktor.EQ.0.) then ! Spannung=0. oder q=0 - dt = (600-x(1))/v(1) - t = t + dt - x(1) = x(1) + v(1)*dt - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - destiny = code_durchSpiegel - goto 555 - endif - - ! help1 == Winkel in xy-Ebene zwischen Bewegungsrichtung und Spiegelfront - - help1 = alfaSp - atand(v(2)/v(1)) - - ! help2 = Geschw.Komponente senkrecht auf den Spiegel gerichtet - ! help3 = Geschw.Komponente parallel zum Spiegel, zu positiven y hin - - v_xy = sqrt( v(1)*v(1) + v(2)*v(2) ) - help2 = sind(help1) * v_xy - help3 = cosd(help1) * v_xy - - if (help2*help2*Energie_Faktor.GE.q*U_Sp) then - ! Teilchen tritt durch Spiegel durch - dt = (600-x(1))/v(1) - t = t + dt - x(1) = x(1) + v(1)*dt - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - destiny = code_durchSpiegel - goto 555 - endif - - if (Graphics_) call Save_Graphics_Koord - - -c - berechne Zeit, bis Teilchen wieder auf Spiegelforderseite ist: - - dt = help2 * Spiegel_Faktor ! Spiegel_Faktor == 2 / a - t = t + dt - -c - berechne Versetzung in xy-Ebene, parallel zur Spiegelebene, -c in 'positiver y-Richtung' (speichere in 'help1'): - - help1 = help3*dt - -c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -c falls Graphikausgabe verlangt ist: -c Um die Teilchenbahn im Innern des Spiegels anzudeuten, berechne die Orte bei -c t+dt/4, t+td/2 und t+3dt/4. Bestimme dafuer erst die jeweilige Versetzung -c senkrecht zur Spiegelebene aus dx = vx * t + 1/2 * a * t**2. -c (speichere in help4): - - if (Graphics_) then - - help4 = help2*dt*.25 - (dt*dt*.0625)/Spiegel_faktor - nKoord = nKoord + 1 - xKoord(nKoord) = x(1)+help4*Sin_alfaSp+help1*.25*Cos_alfaSp - yKoord(nKoord) = x(2)-help4*Cos_alfaSp+help1*.25*Sin_alfaSp - zKoord(nKoord) = x(3) + v(3)*dt*.25 - - help4 = help2*dt*.50 - (dt*dt*.2500)/Spiegel_faktor - nKoord = nKoord + 1 - xKoord(nKoord) = x(1)+help4*Sin_alfaSp+help1*.50*Cos_alfaSp - yKoord(nKoord) = x(2)-help4*Cos_alfaSp+help1*.50*Sin_alfaSp - zKoord(nKoord) = x(3)+v(3)*dt*.50 - - help4 = help2*dt*.75 - (dt*dt*.5625)/Spiegel_faktor - nKoord = nKoord + 1 - xKoord(nKoord) = x(1)+help4*Sin_alfaSp+help1*.75*Cos_alfaSp - yKoord(nKoord) = x(2)-help4*Cos_alfaSp+help1*.75*Sin_alfaSp - zKoord(nKoord) = x(3)+v(3)*dt*.75 - - endif -c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -c - berechne Austrittsort: - - x(1) = x(1) + help1 * Cos_alfaSp - x(2) = x(2) + help1 * Sin_alfaSp - x(3) = x(3) + v(3)*dt - - -c - berechne Austrittsgeschwindigkeit (help2 geht bei Spiegelung in -help2 ueber): - - v(1) = help3 * Cos_alfaSp - help2 * Sin_alfaSp - v(2) = help2 * Cos_alfaSp + help3 * Sin_alfaSp - - if (v(2).LE.0) then - write(*,*) - write(*,*)'ERROR: nach Spiegel ist v(y) <= 0.' - write(*,*) - STOP - endif - - if (useDecay_) call Decay_Test(*555) - - -c - pruefe, ob Austrittspunkt auf forderer Spiegelflaeche liegt: - - if (x(2).GT.yUppLeft .OR. x(2).LT.yLowLeft .OR. - + abs(x(3)).GT.hSpiegel/2.) then - ! Teilchen trifft auf Spiegelwand - destiny = code_wand - goto 555 - endif - - -c - pruefe, ob das Teilchen einen Gitterstab des Spiegels trifft: - - if (testOnWireHit) then - help1 = x(2)-yLowLeft ! Abstand zum Bezugspunkt - DrahtNr = nInt(help1/(Sin_alfaSp*dist_Wires_Sp)) - distToWire(2) = help1 - DrahtNr * Sin_alfaSp*dist_Wires_Sp - distToWire(1) = distToWire(2)/Tan_alfaSp - call Test_WireHit(distToWire,WireRadiusQuad_Sp,v(1),v(2),WireHit) - if (WireHit) then - destiny = code_grid - goto 555 - endif - endif - - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - - goto 9 - - endif ! ~~~ 40: endif ~~~~ - - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c innerhalb der Spiegelmappe (dx = 0.050 mm, dy = 0.050 mm) - - Gebiet = upToExSp - nKoordSave = nKoord - -c Die Anweisungen dieses Abschnitts verlaufen analog zu denen -c von Linse 1. -> Fuer Kommentare siehe dort! - - if (Beschl_Faktor_Sp.EQ.0. .OR. q.EQ.0) then -d dtmax_Sp = 0. -d dtmin_Sp = 0. - dt = (600-x(1))/v(1) - t = t + dt - x(1) = x(1) + v(1)*dt - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - destiny = code_durchSpiegel - goto 555 - endif - - dt = 0.5/v(1) - - reachedEndOfMap = .false. - zaehler = 0 - - -c Rechne in Spiegelmappen-Koordinaten um: -c Im Spiegelmappensystem: x-Achse verlaueft entlang der forderen Mappenkante, -c y-Achse aus dem Spiegel heraus. (entgegen der Richtung zunehmender Mappen- -c j-indizierung!) - - -5008 help1= x(1) - xSpiegel - x(1) = - x(2)*Cos_alfaSp + help1*Sin_alfaSp + - + (dSpiegel/2.+DreharmLaenge+xSpGrid1) - x(2) = x(2)*Sin_alfaSP + help1*Cos_alfaSP - help1= v(1) - v(1) = - v(2)*Cos_alfaSp + help1*Sin_alfaSp - v(2) = v(2)*Sin_alfaSP + help1*Cos_alfaSP - - -c mache Integrationsschritt: - - call INTEGRATIONSSTEP_RUNGE_KUTTA_Sp(dt) ! setzt u.U. auch 'destiny' - - Steps = Steps + 1 - - -c do some tests: - - if (Steps.GE.MaxStep) destiny = code_lost ! Teilchen verloren - - -c - Potentialmappe nach Reflektion wieder verlasssen? - - if (x(1).LT.0) then - reachedEndOfMap = .true. - -c - Spiegelrahmen getroffen? - - elseif (x(1).GE.xSpGrid1 .AND. - + (abs(x(2)).GT.bSpiegel/2. .OR. abs(x(3)).GT.hSpiegel/2.)) then - destiny = code_wand - -c - Gitterstab getroffen? - - else - help1 = min(abs(x(1)-xSpGrid1),abs(x(1)-xSpGrid1)) - if (help1.LE.rWires_Sp) then - DrahtNr = nInt(x(2)/dist_Wires_Sp) - distToWire(2) = x(2) - DrahtNr * dist_Wires_Sp - if ( (help1*help1 + distToWire(2)*distToWire(2)).LE. - + radiusQuad_Sp) destiny = code_grid - endif - - endif - -c if (destiny.NE.code_ok) then -c if (x(1).LT.xSpGrid1) then -c if (v(1).GT.0) then -c gebiet = UpToGrid -c else -c gebiet = upToExMap -c endif -c else -c gebiet = RetToGrid -c endif -c endif - - -c Rechne in Kammerkoordinaten zurueck: - - help1= x(1)-(dSpiegel/2.+DreharmLaenge+xSpGrid1) - x(1) = help1*Sin_alfaSP + x(2)*Cos_alfaSP + xSpiegel - x(2) = - help1*Cos_alfaSP + x(2)*Sin_alfaSP - help1= v(1) - v(1) = help1*Sin_alfaSP + v(2)*Cos_alfaSP - v(2) = - help1*Cos_alfaSP + v(2)*Sin_alfaSP - -d if (NTP_steps) then -d if (dt.LT.dtmin_Sp) then -d dtmin_Sp = dt -d x_dtmin_Sp(1) = x(1) -d x_dtmin_Sp(2) = x(2) -d x_dtmin_Sp(3) = x(3) -d endif -d if (dt.GT.dtmax_Sp) then -d dtmax_Sp = dt -d x_dtmax_Sp(1) = x(1) -d x_dtmax_Sp(2) = x(2) -d x_dtmax_Sp(3) = x(3) -d endif -d endif - - -c zerfallen? - - if (useDecay_) call Decay_Test(*555) - - -c Bahnberechnung abgebrochen? - - if (destiny.NE.code_ok) goto 555 - - -c verarbeite alle 'imonitor' Schritte die Koordinaten fuer GRAPHICS und DEBUG: - - if (GRAPHICS_.or.Debug_) then - zaehler = zaehler + 1 - if (zaehler.EQ.iMonitor) then - if (GRAPHICS_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - zaehler = 0 - endif - endif - - if (.NOT.reachedEndOfMap) goto 5008 ! naechster Integrationsschritt - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c zwischen Spiegel und Koordinatenwechsel-Ebene y=xChangeKoord: (feldfrei) - -9 Gebiet = upToChKoord - Steps = Steps + 1 - - if (x(2).LT.xChangeKoord) then - ! gegebenenfalls flag fuer Graphikausgabe des Punktes setzen - flag = .true. - else - flag = .false. - endif - - dt = (xChangeKoord - x(2)) / v(2) - t = t + dt - x(1) = x(1) + v(1)*dt - x(2) = xChangeKoord - x(3) = x(3) + v(3)*dt - - help4 = x(1)-xSpiegel - radiusQuad = help4*help4 + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_Rohr) then - help1 = v(1)*v(1)+v(3)*v(3) - help2 = help4*v(1)+x(3)*v(3) - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_Rohr))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) ! den Ort berechnen, an dem - x(2) = x(2) + dt*v(2) ! das Teilchen auf das Rohr - x(3) = x(3) + dt*v(3) ! aufschlaegt - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - destiny = code_wand - goto 555 - endif - if (useDecay_) call Decay_Test(*555) - if (Graphics_.AND.flag) call Save_Graphics_Koord - if (Debug_) call Output_Debug - - -c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -c falls Graphikausgabe verlangt ist: Gib jetzt die Trajektorie im 'horizontalen' -c Teil der Kammer aus und resette nKoord: - - if (Graphics_) then - - call plot_horizontal - if (schnitt_p.eq.1) call schnitt ! Schnittebene - - ! die letzten Koordinaten fuer Plot der Trajektorie im 2. Kammerteil - ! uebernehmen (in neues KoordinatenSystem transformiert): - - k = nKoord - - if (idealMirror) then - nKoord = 7 - else - if (nKoord.LT.nKoordSave) then - ! => ein 'turn over' fand statt waehrend das Teilchen in der - ! Spiegelmappe war => x(999) -> x(1), x(1000) -> x(2) - nKoord = nKoord + (999-nKoordSave) - else - nKoord = nKoord - nKoordSave + 1 - endif - nKoord = nKoord-2 - endif - - do i = nKoord, 1, -1 - xKoord_(i) = yKoord(k) - yKoord_(i) = xSpiegel - xKoord(k) - zKoord_(i) = zKoord(k) - k = k - 1 - if (k.EQ.0) then - k = 998 - endif - enddo - do i = 1, nKoord - xKoord(i) = xKoord_(i) - yKoord(i) = yKoord_(i) - zKoord(i) = zKoord_(i) - enddo - endif - - -c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -c - Vollziehe Koordinatenwechsel: neuer Ursprung in der Spiegelaufhaengung, -c x-Richtung in bisherige y-Richtung (also wiederum entlang Strahlachse), -c y-Richtung in bisheriger negativer x-Richtung. z-Richtung bleibt gleich. - - help1 = x(2) - x(2) = xSpiegel - x(1) - x(1) = help1 - help1 = v(1) - v(1) = v(2) - v(2) = - help1 - - if (Debug_) then - write (lun(1),*) 'KOORDINATENWECHSEL:' - call Output_Debug - endif - - -c Beruecksichtige gegebenenfalls die Flugzeit in 'delta_L1', welches 'vor dem -c Triggerdetektor' eingeschoben werden kann: - - dt = Delta_L1 / v(1) - x(1) = x(1)+v(1)*dt - x(2) = x(2)+v(2)*dt - x(3) = x(3)+v(3)*dt - t = t + dt - - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: - - if (lense2) then ! ~~~~~~~~~~~~~~ ******* ~~~~~~~~~~~~~~~ - -c Bei 'lense2' wird fuer das Feld der Linse 2 und das Feld der TD-Folie eine -c gemeinsame Mappe verwendet. Hierbei ist allerdings der Triggerwinkel auf 0 -c Grad festgelegt. Da es in Zukunft in der Praxis wohl kaum noch vorkommen wird, -c dass der Triggerdetektor verdreht wird, sollte diese Einschraenkung jedoch -c keine grossen Auswirkungen haben. -c Ist der Triggerdetektor nicht im Strahl, so wird der Anteil der Triggerfolie -c gleich Null gesetzt. - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c zwischen KOORDINATENWECHSEL und Beginn der L2andFo-Mappe: (feldfrei) - -10 Gebiet = upToL2andFoMap - Steps = Steps + 1 - - dt = (xEnterMap_L2andFo - x(1)) / v(1) - t = t + dt - x(1) = xEnterMap_L2andFo - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_Rohr) then - help1 = v(2)*v(2)+v(3)*v(3) - help2 = x(2)*v(2)+x(3)*v(3) - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_Rohr))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) ! den Ort berechnen, an dem - x(2) = x(2) + dt*v(2) ! das Teilchen auf das Rohr - x(3) = x(3) + dt*v(3) ! aufschlaegt - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - destiny = code_wand - goto 555 - endif - - if (useDecay_) call Decay_Test(*555) - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - - if (radiusQuad.GT.radiusQuad_L2) then ! Teilchen fliegt an L2 vorbei - destiny = code_vorbei - goto 555 - endif - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c innerhalb der gemeinsamen Mappe von Linse 2 und dem Feld vor der Trigger- -c Detektor-Folie: - -11 Gebiet = upToExL2 ! Gebietsnummer fuer L2 setzen - -c Die Anweisungen dieses Abschnitts verlaufen analog zu denen -c von Linse 1. -> Fuer Kommentare siehe dort! - - if (Beschl_Faktor.EQ.0. .OR. (U_L2.EQ.0. AND. U_F.EQ.0.)) then -c WRITE(*,*) 'HALLOHALLO!' -d dtmax_L2andFo = 0. -d dtmin_L2andFo = 0. - dt = (xEndLense_L2 - x(1)) / v(1) ! Zeit bis zum Linsenende - x(1) = xEndLense_L2 - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - t = t + dt - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_L2) then - destiny = code_wand - radiusQuad_ = radiusQuad_L2 - goto 5111 - endif - if (TriggerInBeam) then - Gebiet = upToEnTD ! Gebietsnummer fuer upToTD setzen - ! Zeit bis zum Mappenende (falls TD im Strahl: bis Triggerfolie) - dt = (xLeaveMap_L2andFo - xEndLense_L2) / v(1) - x(1) = xLeaveMap_L2andFo - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - t = t + dt - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_Rohr) then - destiny = code_wand - radiusQuad_ = radiusQuad_Rohr - endif - endif - goto 5111 - endif - - dt = .5/v(1) - zaehler = 0 - reachedEndOfMap = .false. - - -c die Integrationsroutine will x bereits relativ zum Mappenanfang geliefert -c bekommen: - -5011 x(1) = x(1) - xEnterMap_L2andFo - call INTEGRATIONSSTEP_RUNGE_KUTTA_L2(dt) - x(1) = x(1) + xEnterMap_L2andFo - -d if (NTP_steps) then -d if (dt.LT.dtmin_L2andFo) then -d dtmin_L2andFo = dt -d x_dtmin_L2andFo(1) = x(1) -d x_dtmin_L2andFo(2) = x(2) -d x_dtmin_L2andFo(3) = x(3) -d endif -d if (dt.GT.dtmax_L2andFo) then -d dtmax_L2andFo = dt -d x_dtmax_L2andFo(1) = x(1) -d x_dtmax_L2andFo(2) = x(2) -d x_dtmax_L2andFo(3) = x(3) -d endif -d endif - -5111 Steps = Steps + 1 - - if (destiny.EQ.code_dtSmall) then ! n_dtsmall>maxBelowDtSmall - goto 555 - elseif (destiny.EQ.code_wand) then ! aufgeschlagen - radiusQuad = x(2)*x(2) + x(3)*x(3) ! -> den Ort berechnen, an - help1 = v(2)*v(2)+v(3)*v(3) ! dem das Teilchen auf- - help2 = x(2)*v(2)+x(3)*v(3) ! schlaegt - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_))-help2)/help1 - t = t + dt - x(1) = x(1) + dt*v(1) - x(2) = x(2) + dt*v(2) - x(3) = x(3) + dt*v(3) - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - goto 555 - elseif (useDecay_) then ! zerfallen? - call Decay_Test(*555) - endif - - if (Gebiet.EQ.upToExL2) then ! ----> noch innerhalb von Linse 2 - - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_L2) then - destiny = code_wand - radiusQuad_ = radiusQuad_L2 - goto 5111 - endif - - if (x(1).LT.xEnterMap_L2andFo) then - if (v(1).LT.0) then ! reflektiert - destiny = code_reflektiert - goto 555 - else ! darf nicht sein! - write(*,*) - write(*,*)' L2: x(1).LT.xEnterMap .AND. v(1).GE.0. -> STOP' - write(*,*) - call exit - endif - elseif (x(1).GT.xEndLense_L2) then ! Verlasse L2 - Gebiet = upToEnTD - endif - - else ! ----> zw. Linse 2 und TD-Folie: - -c if (x(1).EQ.xLeaveMap_L2andFo) then ! Verlasse Mappe - if (reachedEndOfMap) then ! Verlasse Mappe - -c WRITE(*,*) 'HALLO: x(1).EQ.xLeaveMap_L2andFo !!' - ! ==================================================== - ! muss in Integrationsroutine richtig abgestimmt sein! - ! ==================================================== - - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - if (TriggerInBeam) then - ! rechne in Triggerkoordinaten um (Folie == x=0) - x(1) = 0 - goto 112 - else - goto bis_L3_Mappe - endif - endif - - if (radiusQuad.GT.radiusQuad_Rohr) then - destiny = code_wand - radiusQuad_ = radiusQuad_Rohr - goto 5111 - endif - - endif - - if (Steps.GE.MaxStep) then ! Teilchen verloren - destiny = code_lost - goto 555 - endif - - if (GRAPHICS_.or.Debug_) then - zaehler = zaehler + 1 - if (zaehler.EQ.iMonitor) then - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - zaehler = 0 - endif - endif - - goto 5011 ! naechster Integrationsschritt in gleicher Feldmappe - - endif ! if (lense2) then.... ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: - - if (.NOT.TriggerInBeam) goto bis_L3_Mappe - - -c zwischen Koordinatenwechselebene und Triggerfolie: (feldfrei) -12 Gebiet = upToEnTD - -c Die Anweisungen dieses Abschnitts verlaufen in weiten Teilen parallel zu denen -c von Linse 1. -> Fuer Kommentare zu diesen Bereichen siehe dort! - - if (Beschl_Faktor_FO.EQ.0. .OR. gridInFrontOfFoil) then - ! => keine Integration in der Folienmappe - Steps = Steps + 1 - help1 = v(2)/v(1) ! Steigung der Bahn in der x-y-Ebene -d dtmin_FO = 0. -d dtmax_FO = 0. - -c - berechne Schnittpunkt der Trajektorie mit Ebene der Triggerfolie bzw. bei -c 'GridInFrontOfFoil' mit Ebene des Gitters vor der Triggerfolie: -c Folienebene : y'= (x_intersectTD - x') / Tan_alfaTD -c Trajektorie : y'= y + v(2)/v(1)*(x'-x) = y + help1*(x'-x) -c => Schnittpunkt: x'= (x_intersectTD/Tan_alfaTD - y + help1*x)/(help1 + 1/Tan_alfaTD) -c = (x_intersectTD + Tan_alfaTD*(help1*x-y))/(1+help1*Tan_alfaTD) -c (erste Gleichung hat Probleme bei Tan_alfaTD = 0!) - - if (atand(help1).EQ.alfaTD-90) then ! ueberpruefen<<<<<<<<<<<<<<<<<< - ! Teilchen fliegt parallel zur Folie => fliegt an TD vorbei - destiny = code_vorbei - goto 555 - else ! help2 == neues x(1) - if (Tan_alfaTD.EQ.0) then - dt = (x_intersectTD-x(1)) / v(1) - x(1) = x_intersectTD - else - help2 = (x_intersectTD+Tan_alfaTD* - + (help1*xChangeKoord-x(2)))/(1+help1*Tan_alfaTD) - if (help2.LT.xChangeKoord) then - ! Teilchen fliegt 'steiler' als Folienebene - ! -> kein Schnittpunkt mit dt.gt.0 => fliegt an TD vorbei - destiny = code_vorbei - goto 555 - else ! Bahntangente kreuzt Folienebene - dt = (help2-x(1)) / v(1) - x(1) = help2 - endif - endif - endif - -c -> Teilchenort in Folienebene bzw. bei 'GridInFrontOfFoil' in Ebene des -c geerdeten Gitters vor der Triggerfolie: - - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - t = t + dt - - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_Rohr) then - help1 = v(2)*v(2)+v(3)*v(3) - help2 = x(2)*v(2)+x(3)*v(3) - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_Rohr))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) ! den Ort berechnen, an dem - x(2) = x(2) + dt*v(2) ! das Teilchen auf das Rohr - x(3) = x(3) + dt*v(3) ! aufschlaegt - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - destiny = code_wand - goto 555 - endif - - if (useDecay_) call Decay_Test(*555) - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - - -c Koordinatentransformation vom Kammersystem in das System des Triggerdetektors: -c (Ursprung in Folienmitte, x-Achse senkrecht zur Folie, y-Achse parallel zur -c Folie. Wenn der TD nicht verdreht ist, verlaufen die Achsen parallel zu -c denen des Kammersystems): - - if (alfaTD.NE.0) then - x(2) = (xTD-x(1))*Sin_alfaTD + x(2)*Cos_alfaTD - help1= v(1) ! zur Zwischenspeicherung - v(1) = help1*Cos_alfaTD + v(2)*Sin_alfaTD - v(2) = -help1*Sin_alfaTD + v(2)*Cos_alfaTD - endif - - if (.NOT.GridInFrontOfFoil) then - x(1) = 0 - else - ! -> berechne Schnittpunkt der Trajektorie mit Folienebene unter - ! der Annahme einer idealen Potentialrampe: - - if (aFoil.NE.0.) then - help1 = v(1)*v(1) + 2.*aFoil*(d_Grid_Folie) - if (help1.LT.0) then ! Reflektion noch vor Folie - dt = -2*v(1)/aFoil - t = t + dt - x(1) = - d_Grid_Folie - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - v(1) = -v(1) - destiny = code_reflektiert - goto 555 - endif - dt = (sqrt(help1) - v(1))/aFoil - ! (ergibt sich aus x=v*t+1/2*a*t**2 mit richtiger V.Z.-Wahl ('+')) - v(1) = v(1) + aFoil*dt - else - dt = d_Grid_Folie / v(1) - endif - - t = t + dt - x(1) = 0 ! im Triggersystem - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - - endif ! if (GridInFrontOfFoil) ... - - goto 112 - -c............................................................................... - else ! (if Beschl_Faktor_FO.EQ.0 .OR. GridInFrontOfFoil) then ... - - ! => Integration in der Folienmappe: - ! alte Version: ab xChangeKoord wurde integriert, wobei das EFeld im - ! Bereich vor der Mappe als 0 zurueckgegeben wurde. - ! Ab Version 1.2.9: Bis Schnittpunkt der Trajektorie mit Beginn der - ! Potentialmappe wird extrapoliert, dann erst integriert: - - -c Einschub ab Version 1.2.9: *************************************************** - - Steps = Steps + 1 - help1 = v(2)/v(1) ! Steigung der Bahn in der x-y-Ebene - -c - berechne Schnittpunkt der Trajektorie mit Beginn der Potentialmappe: -c Mappenebene : y'= (x_intersectTDMap - x') / Tan_alfaTD -c Trajektorie : y'= y + v(2)/v(1)*(x'-x) = y + help1*(x'-x) -c => Schnittpunkt: x'= (x_intersectTDMap/Tan_alfaTD - y + help1*x)/(help1 + 1/Tan_alfaTD) -c = (x_intersectTDMap + Tan_alfaTD*(help1*x-y))/(1+help1*Tan_alfaTD) -c (erste Gleichung hat Probleme bei Tan_alfaTD = 0!) - - if (atand(help1).EQ.alfaTD-90) then ! ueberpruefen<<<<<<<<<<<<<<<<<< - ! Teilchen fliegt parallel zur Mappe => fliegt an TD vorbei - destiny = code_vorbei - goto 555 - - ! stimmt so u.U. noch nicht ganz. Kommt aber eigentlich eh nie vor! - ! (stimmt bis jetzt wohl nur fuer positive alpha(TD) - - else - if (Tan_alfaTD.EQ.0) then - dt = (x_intersectTDMap-x(1)) / v(1) - x(1) = x_intersectTDMap - else - ! help2 == neues x(1): - help2 = (x_intersectTDMap+Tan_alfaTD* - + (help1*xChangeKoord-x(2)))/(1+help1*Tan_alfaTD) - ! folgendes herauskommentiert, da es teilweise passierte, dass - ! der Mappenanfang ueber xChangekoord hinausreichte und die - ! Trajektorien dann faelschlicherweise abgebrochen worden sind. - -c if (help2.LT.xChangeKoord) then -c ! Teilchen fliegt 'steiler' als Mappenebene -c ! -> kein Schnittpunkt mit dt.gt.0 => fliegt an TD vorbei -c destiny = code_vorbei -c goto 555 -c else ! Bahntangente kreuzt Mappenebene - dt = (help2-x(1)) / v(1) - x(1) = help2 -c endif - endif - endif - -c -> Teilchenort in Mappenebene: - - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - t = t + dt - - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_Rohr) then - help1 = v(2)*v(2)+v(3)*v(3) - help2 = x(2)*v(2)+x(3)*v(3) - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_Rohr))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) ! den Ort berechnen, an dem - x(2) = x(2) + dt*v(2) ! das Teilchen auf das Rohr - x(3) = x(3) + dt*v(3) ! aufschlaegt - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - destiny = code_wand - goto 555 - endif - - if (useDecay_) call Decay_Test(*555) - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - -c Ende des Einschubes ab Version 1.2.9: **************************************** -c => Jetzt erfolgt Start in die Folienmappe: - - reachedEndOfMap = .false. ! Folienebene wurde noch nicht erreicht - dt = .5/v(1) ! 1. Testschritt 0.5 mm in x-Richtung - zaehler = 0 - - -c Rechne in Folienmappen-Koordinaten um: - -5012 if (alfaTD.NE.0) then - help1= x(1)-xTD - x(1) = help1*Cos_alfaTD + x(2)*Sin_alfaTD + length1 - x(2) = -help1*Sin_alfaTD + x(2)*Cos_alfaTD - help1= v(1) - v(1) = help1*Cos_alfaTD + v(2)*Sin_alfaTd - v(2) = -help1*Sin_alfaTD + v(2)*Cos_alfaTd - else - x(1) = x(1) - length2 - endif - - -c mache Integrationssschritt: - - call INTEGRATIONSSTEP_RUNGE_KUTTA_FO(dt) - -d if (NTP_steps) then -d if (dt.LT.dtmin_FO) then -d dtmin_FO = dt -d x_dtmin_FO(1) = x(1) -d x_dtmin_FO(2) = x(2) -d x_dtmin_FO(3) = x(3) -d endif -d if (dt.GT.dtmax_FO) then -d dtmax_FO = dt -d x_dtmax_FO(1) = x(1) -d x_dtmax_FO(2) = x(2) -d x_dtmax_FO(3) = x(3) -d endif -d endif - - -c Rechne in Kammerkoordinaten zurueck: - - if (alfaTD.NE.0) then - help1= x(1)-length1 - x(1) = help1*Cos_alfaTD - x(2)*Sin_alfaTD + xTD - x(2) = help1*Sin_alfaTD + x(2)*Cos_alfaTD - help1= v(1) - v(1) = help1*Cos_alfaTD - v(2)*Sin_alfaTD - v(2) = help1*Sin_alfaTD + v(2)*Cos_alfaTD - else - x(1) = x(1) + length2 - endif - - Steps = Steps + 1 ! neuer Ort, Zeit und Geschwindigkeit sind festgelegt - -c do some tests: - - if (destiny.EQ.code_dtSmall) then ! n_dtSmall>maxBelowDtSmall - goto 555 - endif - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_Rohr) then ! aufgeschlagen - help1 = v(2)*v(2)+v(3)*v(3) ! -> den Ort berechnen, an - help2 = x(2)*v(2)+x(3)*v(3) - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_Rohr))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) - x(2) = x(2) + dt*v(2) - x(3) = x(3) + dt*v(3) - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - destiny = code_wand - goto 555 - elseif (useDecay_) then ! zerfallen? - call Decay_Test(*555) - endif - - if (destiny.EQ.code_reflektiert) then ! reflektiert - goto 555 -c elseif (destiny.NE.code_ok) then ! voruebergehend fuer Testzwecke -c write(*,*) -c write(*,*)'FO-1: ''destiny.NE.code_ok'' where it should -> STOP' -c write(*,*)' destiny = ',destiny,': ',code_text(destiny) -c write(*,*) -c STOP - elseif (Steps.GE.MaxStep) then ! Teilchen verloren - destiny = code_lost - goto 555 - endif - if (reachedEndOfMap) then ! Folienebene erreicht - ! rechne in Triggerkoordinaten um (Folie == x=0) - if (alfaTD.NE.0) then - x(2) = (xTD-x(1))*Sin_alfaTD + x(2)*Cos_alfaTD - help1= v(1) ! zur Zwischenspeicherung - v(1) = help1*Cos_alfaTD + v(2)*Sin_alfaTD - v(2) = -help1*Sin_alfaTD + v(2)*Cos_alfaTD - endif - x(1) = 0 - goto 112 - endif - -c verarbeite alle 'imonitor' Schritte die Koordinaten fuer GRAPHICS und DEBUG: - - if (GRAPHICS_.or.Debug_) then - zaehler = zaehler + 1 - if (zaehler.EQ.iMonitor) then - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - zaehler = 0 - endif - endif - - goto 5012 ! naechster Integrationsschritt in FELD VOR FOLIE - -c............................................................................... - endif ! (if Beschl_Faktor_FO.EQ.0) then ... - -c Einsprunglabel fuer Starts auf der Triggerfolie mit Startwinkelangaben -c im Kammersystem => transformiere Geschwindigkeitsvektor in das Triggersystem: - -111 if (alfaTD.NE.0) then - help1= v(1) ! zur Zwischenspeicherung - v(1) = help1*Cos_alfaTD + v(2)*Sin_alfaTD - v(2) = -help1*Sin_alfaTD + v(2)*Cos_alfaTD - endif - - -c - pruefe, ob das Projektil die Folie trifft: - -112 radiusQuad = x(2)*x(2) + x(3)*x(3) - If (radiusQuad.GT.radiusQuad_Folie) then - ! zurueckrechnen in das Kammersystem: - if (alfaTD.NE.0) then - help1= x(1) - x(1) = (help1-d_Folie_Achse)*Cos_alfaTD - - + x(2)*Sin_alfaTD + xTD - x(2) = (help1-d_Folie_Achse)*Sin_alfaTD + - + x(2)*Cos_alfaTD - help1= v(1) - v(1) = help1*Cos_alfaTD - v(2)*Sin_alfaTD - v(2) = help1*Sin_alfaTD + v(2)*Cos_alfaTD - else - x(1) = x(1) + xTD - d_Folie_Achse - endif - - destiny = code_vorbei - goto 555 - endif - - -c So verlangt, schreibe die aktuellen Trajektoriengroessen in das 'FoilFile': -c (hier ist sichergestellt, dass die Folie getroffen worden ist, Wechsel- -c wirkungen mit der Folie wurden aber noch nicht beruecksichtigt). -c HIER WERDEN 'X' UND 'V' IM TRIGGERSYSTEM ABGESPEICHERT! - - if (createFoilFile) then - ! falls die Flugzeit bis zur Triggerfolie verschmiert in das - ! NTupel aufgenommen werden soll: - if (smearS1Fo) then - call Gauss_Verteilung(sigmaS1Fo,help4) - S1FoOnly = t + help4 - endif - if (NTP_stop) then - Ekin=(v(1)*v(1)+v(2)*v(2)+v(3)*v(3))*Energie_Faktor - endif - call HFNT(NTP_write) - NTPalreadyWritten = .true. - endif - - -c - Zeitpunkt bei Erreichen der Folie sichern: - -113 S1Fo = t - if (createNTP.AND.Fo_triggered) fill_NTP = .true. - if (statNeeded(Nr_S1Fo)) call fill_statMem(S1Fo,Nr_S1Fo) - - - -c - Speichern der Koordinaten fuer die Statistiken: - - if (statNeeded(Nr_y_Fo)) then - call fill_statMem( x(2),Nr_y_Fo) - endif - if (statNeeded(Nr_z_Fo)) then - call fill_statMem( x(3),Nr_z_Fo) - endif - if (statNeeded(Nr_r_Fo)) then - radius = SQRT(x(2)*x(2) + x(3)*x(3)) - call fill_statMem(radius,Nr_r_Fo) - endif - - -c - speichere Auftreffort des Projektils fuer die Berechnung der Folienelektronen: - - if (generate_FE) then - x0FE(1) = x(1) - x0FE(2) = x(2) - x0FE(3) = x(3) - endif - - -c - falls nur bis zur Folie gerechnet werden soll, beende hier die Integration: - - if (upToTDFoilOnly) then - ! zurueckrechnen in das Kammersystem: - if (alfaTD.NE.0) then - help1= x(1) - x(1) = (help1-d_Folie_Achse)*Cos_alfaTD - - + x(2)*Sin_alfaTD + xTD - x(2) = (help1-d_Folie_Achse)*Sin_alfaTD + - + x(2)*Cos_alfaTD - help1= v(1) - v(1) = help1*Cos_alfaTD - v(2)*Sin_alfaTD - v(2) = help1*Sin_alfaTD + v(2)*Cos_alfaTD - else - x(1) = x(1) + xTD - d_Folie_Achse - endif - if (generate_FE) Gebiet = UpToExTD - goto 555 - endif - - -c - pruefe, ob das Projektil auf das Stuetzgitter aufschlaegt: - - if (testOnWireHit .AND. ran(seed).GT.TransTDFoil) then - destiny = code_Stuetzgitter - ! zurueckrechnen in das Kammersystem: - if (alfaTD.NE.0) then - help1= x(1) - x(1) = (help1-d_Folie_Achse)*Cos_alfaTD - - + x(2)*Sin_alfaTD + xTD - x(2) = (help1-d_Folie_Achse)*Sin_alfaTD + - + x(2)*Cos_alfaTD - help1= v(1) - v(1) = help1*Cos_alfaTD - v(2)*Sin_alfaTD - v(2) = help1*Sin_alfaTD + v(2)*Cos_alfaTD - else - x(1) = x(1) + xTD - d_Folie_Achse - endif - goto 555 - endif - - -c - Energieverlust und Winkelaufstreuung: - - if (log_E_Verlust .OR. log_Aufstreu) then - if (Debug_) then - Steps = Steps + 1 - call Output_Debug - endif - v_square = v(1)*v(1) + v(2)*v(2) + v(3)*v(3) - v_Betrag = SQRT(v_square) - Ekin = v_square * Energie_Faktor - endif - -c -- Energieverlust (vorerst nur Gaussverteilt): - - if (log_E_Verlust_defined.OR.log_Meyer_Gauss) then - ! Berechne Bahnwinkel relativ zur Folienebene fuer effektive Folien- - ! dicke: - alfa = atand(SQRT(v(2)*v(2)+v(3)*v(3))/v(1)) - endif - - if (log_E_Verlust) then - if (calculate_each) then - call CALC_ELOSS_ICRU(Ekin,q,m,Thickness,E_Verlust) - else - E_Verlust = mean_E_Verlust - endif - if (log_E_Verlust_defined) E_Verlust = E_Verlust / cosd(alfa) - if (debug_) write (lunLOG,*) ' mittlerer Energieverlust: ',E_Verlust - - ! Now we have the mean energy loss. We still have to modify it - ! according to the distribution of energy losses, i.e. - ! E_Verlust -> E_Verlust + delta_E_Verlust: - - delta_E_Verlust = 0. - if (log_E_Straggling_sigma) then -400 call Gauss_Verteilung(sigmaE,delta_E_Verlust) - if (debug_) write (lunLOG,*) ' sigmaE,delta_E_Verlust: ',sigmaE,delta_E_Verlust - if (E_Verlust+delta_E_Verlust.LT.0.) goto 400 - elseif (log_E_Straggling_equal) then -410 delta_E_Verlust = lowerE + (upperE - lowerE)*ran(seed) - if (E_Verlust+delta_E_Verlust.LT.0) goto 410 - elseif (log_E_Straggling_Lindhard) then - ! Streuung in Abhaengigkeit von mittlerer Energie in Folie: - call E_Straggling_Lindhard(Ekin-0.5*E_Verlust,m,sigmaE) -420 call Gauss_Verteilung(sigmaE,delta_E_Verlust) - if (debug_) write (lunLOG,*) ' sigmaE,delta_E_Verlust: ',sigmaE,delta_E_Verlust - if (E_Verlust+delta_E_Verlust.LT.0.) goto 420 - elseif (log_E_Straggling_Yang) then - ! Streuung in Abhaengigkeit von mittlerer Energie in Folie! - call E_Straggling_Yang(Ekin-0.5*E_Verlust,m,sigmaE) -430 call Gauss_Verteilung(sigmaE,delta_E_Verlust) - if (debug_) write (lunLOG,*) ' sigmaE,delta_E_Verlust: ',sigmaE,delta_E_Verlust - if (E_Verlust+delta_E_Verlust.LT.0.) goto 430 - endif - - if (E_Verlust+delta_E_Verlust.GE.Ekin) then - destiny = code_stopped_in_foil - goto 555 - endif - E_Verlust = E_Verlust + delta_E_Verlust - - ! help1 == Reduzierungsfaktor fuer Geschw.Betrag - help1 = sqrt( (Ekin - E_Verlust)/Ekin ) - v(1) = help1 * v(1) - v(2) = help1 * v(2) - v(3) = help1 * v(3) - v_Betrag = help1 * v_Betrag - if (debug_) write (lunLOG,*) ' Energieverlust: ',E_Verlust - endif - -c -- Winkelaufstreuung (vorerst nur Gaussverteilt): - - if (log_aufstreu) then - if (log_Meyer_F_Function) then - call throwMeyerAngle(thetaAufstreu) - else - if (log_Meyer_Gauss) then - if (log_E_Verlust) Ekin = Ekin - .5 * E_Verlust ! mittlere Energie - effRedThick = Meyer_Faktor1 * Thickness / cosd(alfa) - call g_Functions(g1,g2,effRedThick) - sigmaAufstreu = Meyer_Faktor2 / Ekin * (g1 + Meyer_Faktor3*g2) - if (debug_) then - write (lunLOG,*) ' effekt. red. Dicke: ',effRedThick - write (lunLOG,*) ' Sigma(Streuwinkel): ',sigmaAufstreu - endif - endif - - call Gauss_Verteilung_theta(sigmaAufstreu,thetaAufstreu) - endif - - st0 = sind(thetaAufstreu) - ct0 = cosd(thetaAufstreu) - phiAufstreu = 360.*ran(seed) - - v_xy = SQRT(v(1)*v(1) + v(2)*v(2)) ! v_xy stets groesser 0 - ! wegen v(1)>0 - - help1 = v(1) - help2 = v(2) - help3 = v_Betrag*st0*cosd(phiAufstreu)/v_xy - help4 = st0*sind(phiAufstreu) - - v(1) = ct0*help1 - help3*help2 - help4*help1*v(3)/v_xy - v(2) = ct0*help2 + help3*help1 - help4*help2*v(3)/v_xy - v(3) = ct0*v(3) + help4*v_xy - if (debug_) write (lunLOG,*) ' Aufstreuung: theta, phi =', - + thetaAufstreu,phiAufstreu - endif - - if (Debug_ .AND. (log_E_Verlust .OR. log_Aufstreu)) then - call Output_Debug - endif - - -c - Neutralisierung in der Folie? - - if (log_neutralize) then - if (neutral_fract(q_).EQ.-1.0) then - v_square = v(1)*v(1) + v(2)*v(2) + v(3)*v(3) - Ekin = v_square * Energie_Faktor - call chargeStateYields(Ekin,m,YieldPlus,YieldNeutral) - YieldNeutral = 100. * YieldNeutral - else - YieldNeutral = neutral_fract(q_) - endif - if (100.*ran(seed).LE.YieldNeutral) then - q = 0. - qInt = 0 - if (debug_) then - write (lunLOG,*) ' Teilchen wurde neutralisiert' - endif - nNeutral = nNeutral + 1 - else - nCharged = nCharged + 1 - endif - endif - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c im TriggerDetektor: (homogene Felder) - - -13 Gebiet = upToExTD - Steps = Steps + 1 - -c der Weg des Projektils innerhalb der Triggerkammer: - - call TRIGGER(m,q,t,x,v,Debug_,graphics_,n_return) - - -c Koordinatentransformation vom System des Triggerdetektors in das Kammersystem: -c ('d_Achse_Ground' == Abstand zwischen TD-Achse und 'Ground'-Gitter) - - if (alfaTD.NE.0) then - help1= x(1) - x(1) = (help1-d_Folie_Achse)*Cos_alfaTD - - + x(2)*Sin_alfaTD + xTD - x(2) = (help1-d_Folie_Achse)*Sin_alfaTD + - + x(2)*Cos_alfaTD - help1= v(1) - v(1) = help1*Cos_alfaTD - v(2)*Sin_alfaTD - v(2) = help1*Sin_alfaTD + v(2)*Cos_alfaTD - else - x(1) = x(1) + xTD - d_Folie_Achse - endif - - -c Was ist im TD mit dem Teilchen passiert? - - if (n_return.NE.0) then ! -->> das Projektil kam nicht bei GROUND an - if (n_return.GT.100 .AND. n_return.LE.120) then ! -> abgebrochen - statTD(1,n_return-100) = statTD(1,n_return-100)+1 ! Grund notieren - destiny = code_lostInTD ! im TD verloren - elseif (n_return.GT.0..AND.n_return.LE.75) then ! -> pfosten getroffen! - pfostenHit(n_return,1) = pfostenHit(n_return,1)+1 - destiny = code_wand - elseif (n_return.EQ.-5) then ! -> im TD auf Gitterstab - statTD(1,17) = statTD(1,17)+1 ! - destiny = code_grid - elseif (n_return.EQ.-9) then ! -> NICHT im MCP3 registriert - statTD(1,18) = statTD(1,18)+1 ! - destiny = code_notRegInM3 - elseif (n_return.EQ.-10) then ! -> im MCP3 registriert - statTD(1,16) = statTD(1,16)+1 ! '16' zaehlt MCP3-Treffer - destiny = code_wand - endif - goto 555 ! naechstes Projektil - else ! -->> das Projektil kam bei GROUND an - statTD(1,15) = statTD(1,15)+1 ! '15' zaehlt GROUND-Treffer - endif - - if (useDecay_) call Decay_Test(*555) - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c zwischen KOORDINATENWECHSEL BZW. GROUND-GITTER und Beginn der L3-Mappe: -c (feldfrei) - -14 Gebiet = upToL3Map - Steps = Steps + 1 - - dt = (xEnterMap_L3 - x(1)) / V(1) - t = t + dt - x(1) = xEnterMap_L3 - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_Rohr) then - help1 = v(2)*v(2)+v(3)*v(3) - help2 = x(2)*v(2)+x(3)*v(3) - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_Rohr))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) ! den Ort berechnen, an dem - x(2) = x(2) + dt*v(2) ! das Teilchen auf das Rohr - x(3) = x(3) + dt*v(3) ! aufschlaegt - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - destiny = code_wand - goto 555 - endif - - if (useDecay_) call Decay_Test(*555) - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - - if (radiusQuad.GT.radiusQuad_L3) then ! Teilchen fliegt an L3 vorbei - destiny = code_vorbei - goto 555 - endif - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c innerhalb L3: (inhom. Felder -> Integrationen) - - -15 Gebiet = upToExL3 ! Gebietsnummer fuer L3 setzen - -c Die Anweisungen dieses Abschnitts verlaufen analog zu denen -c von Linse 1. -> Fuer Kommentare siehe dort! - - if (Beschl_Faktor_L3.EQ.0. .OR. q.EQ.0) then ! q=0 -> in Folie neutralisiert -d dtmax_L3 = 0. -d dtmin_L3 = 0. - dt = (xLeaveMap_L3 - x(1)) / v(1) ! Zeit bis zum Mappenende - x(1) = xLeaveMap_L3 - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - t = t + dt - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_L3) destiny = code_wand - goto 5115 - endif - - dt = .5/v(1) - zaehler = 0 - -5015 call INTEGRATIONSSTEP_RUNGE_KUTTA_L3(dt) -d if (NTP_steps) then -d if (dt.LT.dtmin_L3) then -d dtmin_L3 = dt -d x_dtmin_L3(1) = x(1) -d x_dtmin_L3(2) = x(2) -d x_dtmin_L3(3) = x(3) -d endif -d if (dt.GT.dtmax_L3) then -d dtmax_L3 = dt -d x_dtmax_L3(1) = x(1) -d x_dtmax_L3(2) = x(2) -d x_dtmax_L3(3) = x(3) -d endif -d endif - -5115 Steps = Steps + 1 - - if (destiny.EQ.code_dtSmall) then ! n_dtsmall>maxBelowDtSmall - goto 555 - elseif (destiny.EQ.code_wand) then ! aufgeschlagen - radiusQuad = x(2)*x(2) + x(3)*x(3) ! -> den Ort berechnen, an - help1 = v(2)*v(2)+v(3)*v(3) ! dem das Teilchen auf- - help2 = x(2)*v(2)+x(3)*v(3) ! schlaegt - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_L3))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) - x(2) = x(2) + dt*v(2) - x(3) = x(3) + dt*v(3) - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - goto 555 -c elseif (destiny.NE.code_ok) then ! voruebergehend fuer Testzwecke -c write(*,*) -c write(*,*)'L3-1: ''destiny.NE.code_ok'' where it should -> STOP' -c write(*,*)' destiny = ',destiny,': ',code_text(destiny) -c write(*,*) -c STOP - elseif (useDecay_) then ! zerfallen? - call Decay_Test(*555) - endif - - if (x(1).LT.xEnterMap_L3) then - if (v(1).LT.0) then ! reflektiert? - destiny = code_reflektiert - goto 555 - else ! darf nicht sein! - write(*,*) - write(*,*)' L3: x(1).LT.xEnterMap .AND. v(1).GE.0. -> STOP' - write(*,*) - STOP - endif - elseif (Steps.GE.MaxStep) then ! Teilchen verloren - destiny = code_lost - goto 555 - elseif (x(1).GE.xLeaveMap_L3) then ! Verlasse L3 - dt = (xLeaveMap_L3 - x(1))/v(1) ! rechne zurueck auf exaktes - t = t + dt ! Mappenende - x(1) = xLeaveMap_L3 - x(2) = x(2) + dt*v(2) - x(3) = x(3) + dt*v(3) - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - goto bis_MCP2_Mappe -c elseif (destiny.NE.code_ok) then ! voruebergehend fuer Testzwecke -c write(*,*) -c write(*,*)'L3-2: ''destiny.NE.code_ok'' where it should -> STOP' -c write(*,*)' destiny = ',destiny,': ',code_text(destiny) -c write(*,*) -c STOP - endif - - if (GRAPHICS_.or.Debug_) then - zaehler = zaehler + 1 - if (zaehler.EQ.iMonitor) then - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - zaehler = 0 - endif - endif - - goto 5015 ! naechster Integrationsschritt in gleicher Feldmappe - - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c zwischen L3-Mappe und MCP2-Mappe (feldfrei) - - -16 Gebiet = upToM2Map - - if (x(1).EQ.xEnterMap_M2) goto MCP2_Mappe - Steps = Steps + 1 - - dt = (xEnterMap_M2 - x(1)) / v(1) - - t = t + dt - x(1) = xEnterMap_M2 - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_Rohr) then - help1 = v(2)*v(2)+v(3)*v(3) - help2 = x(2)*v(2)+x(3)*v(3) - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_Rohr))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) ! den Ort berechnen, an dem - x(2) = x(2) + dt*v(2) ! das Teilchen auf das Rohr - x(3) = x(3) + dt*v(3) ! aufschlaegt - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - destiny = code_wand - goto 555 - endif - if (useDecay_) call Decay_Test(*555) - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -c vor MCP2: (inhom. Felder -> Integrationen) - -17 Gebiet = upToMCP2 - -c Beruecksichtige gegebenenfalls die Flugzeit in 'delta_L2', welches 'vor dem -c MCP2' eingeschoben werden kann. Addiert wird vorerst nur die Flugzeit in -c dieser zusaetzlichen Flugstrecke. Korrekterweise muessten alle nachfolgenden -c Positionen um 'delta_L2' verschoben werden. Dies zu implementieren ist -c allerdings momentan aus Zeitgruenden nicht moeglich. - - dt = Delta_L2 / v(1) - t = t + dt - - -c Die Anweisungen dieses Abschnitts verlaufen analog zu denen -c von Linse 1. -> Fuer Kommentare siehe dort! - - if (Beschl_Faktor_M2.EQ.0. .OR. q.EQ.0) then ! q=0 -> in Folie neutralisiert -d dtmax_M2 = 0. -d dtmin_M2 = 0. - if (xBlende.GT.x(1)) then - dt = (xBlende - x(1)) / v(1) ! Zeit bis zur Blende - x(1) = xBlende - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - t = t + dt - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_Rohr) then - destiny = code_wand - elseif (radiusQuad.GE.radiusQuad_Blende) then - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - destiny = code_hitBlende - goto 555 - endif - endif - dt = (xMCP2 - x(1)) / v(1) ! Zeit bis MCP2 - x(1) = xMCP2 - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - t = t + dt - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GT.radiusQuad_Rohr) destiny = code_wand - reachedEndOfMap = .true. - goto 5117 - endif - - dt = .5/v(1) - - reachedEndOfMap = .false. - zaehler = 0 - if (xBlende.GT.0) check_Blende = .true. - -5017 call INTEGRATIONSSTEP_RUNGE_KUTTA_M2(dt) -d if (NTP_steps) then -d if (dt.LT.dtmin_M2) then -d dtmin_M2 = dt -d x_dtmin_M2(1) = x(1) -d x_dtmin_M2(2) = x(2) -d x_dtmin_M2(3) = x(3) -d endif -d if (dt.GT.dtmax_M2) then -d dtmax_M2 = dt -d x_dtmax_M2(1) = x(1) -d x_dtmax_M2(2) = x(2) -d x_dtmax_M2(3) = x(3) -d endif -d endif - -5117 Steps = Steps + 1 - - if (destiny.EQ.code_dtSmall) then ! n_dtsmall>maxBelowDtSmall - goto 555 - elseif (check_Blende.AND.x(1).GE.xBlende) then - dt = (xBlende - x(1)) / v(1) ! zurueck zur Blende ... - x(1) = xBlende - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - t = t + dt - radiusQuad = x(2)*x(2) + x(3)*x(3) - if (radiusQuad.GE.radiusQuad_Blende) then - destiny = code_hitBlende - goto 555 - endif - dt = -dt ! ... wieder zum aktuellen Ort - x(1) = xBlende + v(1)*dt - x(2) = x(2) + v(2)*dt - x(3) = x(3) + v(3)*dt - t = t + dt - check_Blende = .false. - elseif (destiny.EQ.code_wand) then - radiusQuad = x(2)*x(2) + x(3)*x(3) ! -> den Ort berechnen, an - help1 = v(2)*v(2)+v(3)*v(3) ! dem das Teilchen auf- - help2 = x(2)*v(2)+x(3)*v(3) ! schlaegt - dt = (SQRT(help2*help2-help1*(radiusQuad-radiusQuad_Rohr))-help2) - + /help1 - t = t + dt - x(1) = x(1) + dt*v(1) - x(2) = x(2) + dt*v(2) - x(3) = x(3) + dt*v(3) - if (useDecay_) call Decay_Test(*555) ! vor Aufschlag zerfallen? - goto 555 - elseif (useDecay_) then ! zerfallen? - call Decay_Test(*555) - endif - - if (destiny.EQ.code_reflektiert) then ! reflektiert - goto 555 - elseif (reachedEndOfMap) then ! MCP2-Ebene erreicht -c if (destiny.NE.code_ok) then ! voruebergehend fuer Testzwecke -c write(*,*) -c write(*,*)'M2 ''destiny.NE.code_ok'' where it should -> STOP' -c write(*,*)' destiny = ',destiny,': ',code_text(destiny) -c write(*,*) -c STOP -c endif - if (createNTP.AND.xM2_triggered) fill_NTP = .true. - S1xM2 = t - if (statNeeded(Nr_S1xM2))call fill_statMem(S1xM2,Nr_S1xM2) - radiusQuad = x(2)*x(2) + x(3)*x(3) - radius = SQRT(radiusQuad) - if (statNeeded(Nr_y_xM2)) call fill_statMem( x(2),Nr_y_xM2) - if (statNeeded(Nr_z_xM2)) call fill_statMem( x(3),Nr_z_xM2) - if (statNeeded(Nr_r_xM2)) call fill_statMem(radius,Nr_r_xM2) - if (radiusQuad.LE.radiusQuad_MCP2active) then - S1M2 = t ! Zeiten werden sowohl fuer Statistiken - FoM2 = t - S1Fo ! als auch fuer NTupel benoetigt - if (statNeeded(Nr_S1M2)) call fill_statMem(S1M2,Nr_S1M2) - if (statNeeded(Nr_FoM2)) call fill_statMem(FoM2,Nr_FoM2) - if (createNTP.AND.M2_triggered) fill_NTP = .true. - if (statNeeded(Nr_y_M2)) call fill_statMem( x(2),Nr_y_M2) - if (statNeeded(Nr_z_M2)) call fill_statMem( x(3),Nr_z_M2) - if (statNeeded(Nr_r_M2)) call fill_statMem(radius,Nr_r_M2) - else ! am MCP2 vorbei - if (radiusQuad.LE.radiusQuad_MCP2) then - destiny = code_hitMCP2inactive - else - destiny = code_vorbei - if (Graphics_) then ! Damit diese Trajektorie 40mm ueber die - nKoord = nKoord + 1 ! MCP2-Ebene hinausgezeichnet wird - dt = 40./v(1) - t = t + dt - xKoord(nKoord) = x(1)+40. - yKoord(nKoord) = x(2)+v(2)*dt - zKoord(nKoord) = x(3)+v(3)*dt - goto 556 - endif - endif - endif - - goto 555 - elseif (Steps.GE.MaxStep) then ! Teilchen verloren - destiny = code_lost - goto 555 - endif - - if (GRAPHICS_.or.Debug_) then - zaehler = zaehler + 1 - if (zaehler.EQ.iMonitor) then - if (Graphics_) call Save_Graphics_Koord - if (Debug_) call Output_Debug - zaehler = 0 - endif - endif - - goto 5017 ! naechster Integrationsschritt im Feld vor MCP2 - - -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -c HIER IST DER PROGRAMMKODE FUER DIE TRAJEKTORIENBERECHNUNG -c DER PROJEKTILE BEENDET! -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz - -555 if (Graphics_) call Save_Graphics_Koord -556 if (Debug_) call Output_Debug - - -c Gib Trajektorie in Graphikfenster aus: - - if (Graphics_) then - if (Gebiet.LE.upToChKoord) then ! Bahnberechnung wurde vor - call plot_horizontal ! Koordinatenwechsel abgebrochen - if (schnitt_p.eq.1) call schnitt - else - call plot_vertikal - if (schnitt_p.eq.2) call schnitt - endif - nKoord = 0 - endif - - -c Pruefe, ob Teilchen reflektiert wurde: - - if ((Gebiet.EQ.upToExL1 .OR. Gebiet.EQ.upToEnTD .OR. - + Gebiet.EQ.upToExL3 .OR. Gebiet.EQ.upToMCP2) .AND. - + v(1).LE.0.) then - destiny = code_reflektiert - endif - - -c Zaehle mit, bei wie vielen Teilchen trotz dtMaxStep abgebrochen werden: - - if (destiny.EQ.code_lostInTD) then - lostInTD_counter = lostInTD_counter + 1 - elseif (destiny.EQ.code_lost) then - lost_counter = lost_counter + 1 - endif - - -c bei DEBUG: Ausgabe des Teilchenschicksals und des aktuellen Gebiets: - - if (debug_) then - indx = index(code_text(destiny),':') - if (indx.EQ.0) then - write(lun(1),*) 'destiny : ',code_text(destiny) - else - write(lun(1),*) 'destiny : ',code_text(destiny)(1:indx-1) - endif - indx = index(Gebiet_text(Gebiet),':') - if (indx.EQ.0) then - write(lun(1),*) 'Gebiet : ',Gebiet_text(Gebiet) - else - write(lun(1),*) 'Gebiet : ',Gebiet_text(Gebiet)(1:indx-1) - endif - endif - - -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -c HIER STARTEN DIE FOLIENELEKTRONEN -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz - - if (generate_FE) then ! ~~~ 1: if ~~~~~~~~~~~~ - if (Gebiet.GE.UpToExTD) then ! ~~~ 2: if ~~~~~~~~~~~~ - -c sekundaerelektronen - nFE = int(4.*ran(seed))+2 ! Anzahl wuerfeln: [2,5] - tFE_min = 0. ! tFE_min: kuerzeste FE-Flugzeit: - ! bekam noch keinen Wert zugewiesen - -c - die Laufzeiten der Folienelektronen: -c -c---------------------------------------- -c -c-TP-10/2000 reset of end positions of electrons -c - do k = 1, 3 - xFE_MCP(k) = 0. - yFE_MCP(k) = 0. - zFE_MCP(k) = 0. - enddo -c -c---------------------------------------- -c - - do 450, k = 1, nFE - - xFE(1) = x0FE(1) - xFE(2) = x0FE(2) - xFE(3) = x0FE(3) - - E0FE = 0.003*ran(seed) ! Start-Energie wuerfeln: [0,3) eV - v_Betrag = sqrt(2.*E0FE/511.015)*c ! Startgeschwindigkeit - call Lambert_Verteilung(1.,ct0,st0) ! Startwinkel wuerfeln - f0 = 360.*ran(seed) - cf0 = cosd(f0) - sf0 = sind(f0) - vFE(1) = v_Betrag * ct0 ! Geschwindigkeitskomponenten - vFE(2) = v_Betrag * st0*cf0 - vFE(3) = v_Betrag * st0*sf0 - - tFE = 0. - - nKoord = 0 - start_nr(2) = start_nr(2) + 1 ! (2): FE - call TRIGGER(511.015,-1.,tFE,xFE,vFE,DEBUG_FE.AND.Debug_, - + plot_FE,n_return) - if (plot_FE) call plot_vertikal - - if (n_return.NE.-10) then -C - das FE kam nicht am MCP3 an -> - if (n_return.GT.100 .AND. n_return.LE.120) then ! -> abgebrochen - statTD(2,n_return-100) = statTD(2,n_return-100)+1 ! Grund notieren - elseif (n_return.GT.0 .AND. n_return.LE.75) then ! -> pfosten getroffen! - pfostenHit(n_return,2) = pfostenHit(n_return,2)+1 - elseif (n_return.EQ.0) then ! -> GROUND getroffen - statTD(2,15) = statTD(2,15)+1 ! '15' zaehlt GROUND-Treffer - elseif (n_return.EQ.-5) then ! -> im TD auf Gitterstab - statTD(2,17) = statTD(2,17)+1 - elseif (n_return.EQ.-9) then ! -> NICHT im MCP3 registriert - statTD(2,18) = statTD(2,18)+1 - endif - tFE_(k) = -1 ! -1: FE kam nicht bei MCP3 an -c -c--------------------------------------- -c -c-TP-10/2000 -c - xFE_MCP(k) = -100. - yFE_MCP(k) = -100. - zFE_MCP(k) = -100. -c -c--------------------------------------- -c - goto 450 ! naechstes FE - - endif - -c - das FE kam beim MCP3 an -> - - statTD(2,16) = statTD(2,16)+1 ! '16' zaehlt MCP3-Treffer - tFE_(k)=int(1000.*tFE) ! tFE in ps. (braucht als Integer - ! weniger Speicherplatz) -c -c--------------------------------------- -c -c-TP-10/2000 -c - xFE_MCP(k) = xFE(1) - yFE_MCP(k) = xFE(2) - zFE_MCP(k) = xFE(3) -c -c--------------------------------------- -c - - - -c fuer die Statistik: die Flugzeiten saemtlicher das MCP3 erreichender FE abspeichern: - - if (statNeeded(Nr_t_FE)) call fill_statMem(tFE,Nr_t_FE) - - -c kuerzeste Elektronenflugzeit fuer das aktuelle Projektilteilchen notieren: - - if (tFE_min.EQ.0. .OR. tFE.LT.tFE_min) tFE_min = tFE - - -450 continue ! -> naechstes Folienelektron - - -c die Flugzeiten der nicht gestartenen Folienelektronen (nFE+1 bis 5) auf 0. setzen: - - do while (nFE.LT.5) - nFE = nFE + 1 - tFE_(nFE) = 0. - enddo - - -c Jetzt sind die Folienelektronen durchgelaufen. - -c Fuelle Statistiken fuer die 'gemessenen' Teilchenflugzeiten (mit Beruecksichti- -c gung der Flugzeiten der Folienelektronen). M3M2 aber nur, wenn MCP2 auch -c getroffen wurde: - - if (tFE_min.NE.0.) then - S1M3 = S1Fo + tFE_min ! +, da Stop verzoegert - if (statNeeded(Nr_S1M3)) then - call fill_statMem(S1M3,Nr_S1M3) - endif - if (destiny.EQ.code_ok) then - M3M2 = FoM2 - tFE_min ! -, da Start verzoegert - if (statNeeded(Nr_M3M2)) call fill_statMem(M3M2,Nr_M3M2) - endif - endif - - else ! ~~~ 2: else ~~~~~~~~~~ - - do k= 1, 5 - tFE_(k) = 0. ! nicht gestartet - enddo - - endif ! ~~~ 2: endif ~~~~~~~~~ - endif ! ~~~ 1: endif~~~~~~~~~~ - -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -c ES FOLGEN DATENAUSGABE, SPRUNG IN NEUE SCHLEIFE UND PROGRAMMENDE -czzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz - -c trage das NTupel ein: - -c So verlangt, schreibe die aktuellen Trajektoriengroessen in das NTupel: -c (falls bei 'createFoilFile' 'NTPalreadyWritten' nicht gesetzt ist schied -c dieses Teilchen schon vor der Triggerfolie aus. Ist es dagegen gesetzt wurden -c die Trajektoriendaten mit dem Erreichen der Triggerfolie abgespeichert um sie -c in den im Triggersystem gueltigen Werten zu haben): - - if (fill_NTP .OR. createFoilFile) then - if (NTPalreadyWritten) then - NTPalreadyWritten = .false. - else - if (NTP_stop) then - Ekin=(v(1)*v(1)+v(2)*v(2)+v(3)*v(3))*Energie_Faktor - endif - if (smearS1Fo .AND. .NOT.use_MUTRACK) then - if (s1fo.NE.0) then - call Gauss_Verteilung(sigmaS1Fo,help4) - S1FoOnly = S1Fo + help4 - else - S1FoOnly = 0. - endif - endif - FoM2Only = FoM2 - call HFNT(NTP_write) - endif - endif - - -c Nimm das Schicksal des Teilchens in den zugehoerigen Statistikspeicher auf: - - if (destiny.GT.0) destiny = destiny + (Gebiet-1)*highest_code_Nr - statDestiny(destiny) = statDestiny(destiny) + 1 - - if (destiny.EQ.code_ok) okStepsCounter = okStepsCounter + steps - - -c -> das naechste Projektil kann kommen -100 continue - - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Jetzt sind alle Projektile dieser Schleife abgearbeitet! - -c Mittlere Anzahl an Integrationsschritten fuer Trajektorien mit destiny = -c 'code_ok' ausgeben: - - if (statDestiny(code_ok).NE.0) then - write(*,'(6x,A,F7.2)')'Mittlere Anzahl an Integrationsschritten bis zum Ziel: ', - + real(okStepsCounter)/real(statDestiny(code_ok)) - endif - -c das Summary ausgeben und die Werte in die Tabellen schreiben: -c Falls nur ein Teilchenstart pro Schleife erfolgt, werte die Statistiken -c erst nach der letzten Schleife aus: - - NotLastLoop = .NOT.(SchleifenNr.EQ.SchleifenZahl) - flag_ok = .NOT.(OneStartPerLoop.AND.NotLastLoop) - - if (flag_ok) then - call eval_statistics - if (n_outWhere.GT.0 .OR. smallLogFile) call Summary - if (createTabellen .or. createPhysTab) call output_tabellen - endif - - -c das PostScript-file erstellen: - -c Wird pro Schleife nur ein Teilchen gestartet ('OneStartPerLoop'; d.h. kein -c oder genau ein 'Zufallsstart'), so trage alle Trajektorien in die gleiche -c Graphik ein. Das Postskript braucht dann also erst bei der letzten Schleife -c erstellt zu werden: - - if (GRAPHICS .AND. flag_ok) then - call schnitt_plot ! Ausgabe der Graphik der Schnittebene - - if (n_postSkript.LE.0) then - goto 620 - elseif (n_postSkript.EQ.1) then - if (n_outWhere.LT.2) then - write(*,*)'.....................................'// - + '.........................................' - write(*,'(2X,A18,I3,A,I3)')'Schleife ', - + SchleifenNr,' von ',SchleifenZahl - endif - write(*,1003)'(P) Ps-file erstellen', - + '(R) Restliche ps-files erstellen' - write(*,1003)'(N) ps-file Nicht erstellen', - + '(K) Keine ps-files mehr erstellen' - write(*,1003)'(G) Graphikausgabe beenden', - + '(A) programm Abbrechen' -1003 format(T6,A,T40,A) - - helpChar = 'n' -600 write(*,1004)' [RETURN] = (N) -> ' -1004 format($,x,A) - read(*,'(A)') helpChar - - do i = 1,7 ! bis zu sechs blanks werden akzeptiert - ant = helpChar(i:i) - if (ant.NE.' ') goto 610 - enddo - ant = 'N' - -610 write(*,*)'==========================='// - + '=====================================================' - - call str$upcase(ant,ant) - if (ant.EQ.'N') then - goto 620 - elseif (ant.EQ.'R') then - n_postSkript = 2 - elseif (ant.EQ.'K') then - n_postSkript = 0 - goto 620 - elseif (ant.EQ.'G') then - call HPLEND - GRAPHICS = .false. - goto 200 - elseif (ant.EQ.'A') then - call HPLEND - call TERMINATE_OUTPUT - STOP - elseif (ant.NE.'P') then - goto 600 - endif - endif - - write (helpChar(1:7),'(''_'',I6)') SchleifenNr - if (filename.NE.' ') then - call MAKE_PS(filename//helpChar) - else - call MAKE_PS('MUTRACK'//helpChar) - endif - - -620 continue - - CALL IZPICT ('CHAM_1','S') ! LOESCHEN DER BILDER IM PAWC-COMMON-BLOCK - CALL IZPICT ('CHAM_2','S') - CALL IZPICT ('HISTO','S') - CALL IZPICT ('TEXT','S') - - call iclrwk (1,flag_ok) ! CLEAREN DER WORKSTATIONS - call iclrwk (3,flag_ok) - call iclrwk (4,flag_ok) - call iclrwk (5,flag_ok) - - CALL HRESET (50,' ') ! RESETTEN DES HISTOGRAMMS - - endif - -c -> das gleiche von vorne mit neuen Settings (d.h. neue Schleife) - -200 continue -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Jetzt sind alle Schleifen abgearbeitet -> fertigmachen zum Programmende: - -c - HIGZ-Graphikbibliothek schliessen: - - if (Graphics) call HPLEND - -c - HBOOK-Datei schliessen: - - if (.NOT.fromScratch) then - if (use_ACCEL) then - call HREND('ACCEL') - elseif (Use_MUTRACK) then - call HREND('MUread') - endif - close (lunRead) - endif - - call TERMINATE_OUTPUT - - - END - - -C=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE Lambert_Verteilung(n_Lambert,cos_theta,sin_theta) -c ============================================================ - - IMPLICIT NONE - - real cos_theta,sin_theta - - real n_Lambert ! Ordnung der Lambert-Verteilung - real randomVar - integer seed - common /seed/ seed - - randomVar = ran(seed) - - if (n_Lambert.EQ.0.) then - cos_theta = (1.-randomVar) - sin_theta = sqrt(1.-cos_theta*cos_theta) - elseif (n_Lambert.EQ.1.) then - cos_theta = sqrt(1.-randomVar) - sin_theta = sqrt(randomVar) - else - cos_theta = (1.-randomVar)**(1./(n_Lambert + 1)) - sin_theta = sqrt(1.-cos_theta*cos_theta) - endif - - - END - - -c=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE Gauss_Verteilung(sigma,wert) -c ======================================= - - IMPLICIT NONE - - real sigma ! Breite der Gaussverteilung - real wert ! gewuerfelte Returnvariable - real radius,phi - - integer seed - common /seed/ seed - - real zwoPi - parameter (zwoPi = 2.*3.1415927) - -c Da die eindimensionale Gaussfunktion nicht integrierbar ist, wird erst -c ein Punkt in der Ebene mit der entsprechenden zweidimensionalen Gaussfunktion -c gewuerfelt. Von diesem Punkt wird dann die x-Komponente zurueckgegeben, die -c eindimensional Gaussverteilt ist: - - radius = sigma*Sqrt(-2.*log(1.-ran(seed))) - phi = zwoPi * ran(seed) - wert = radius * cos(phi) - - - END - - -c=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE Gauss_Verteilung_theta(sigma,theta) -c ============================================== - - IMPLICIT NONE - - real sigma,theta - real radius,phi,ratio - - integer i, seed - common /seed/ seed - -c Man beachte, dass hier Winkel gewuerfelt werden! D.h., dass die Variable -c 'radius' einen Radius in einer 2dimensionalen 'Winkel'-Ebene darstellt. -c Es wird angenommen, dass sigma in degree angegeben wird (daher die sind()- -c Funktion in der Zuweisung fuer 'ratio' anstelle der sin()-Fkt.). - - i = 1 - -1 radius = sigma*Sqrt(-2.*log(1.-ran(seed))) - phi = 360.*ran(seed) - theta = abs(radius * cosd(phi)) - ! nur theta zwischen 0 und 90 deg sollen eine Chance haben: - if (theta.GT.90) then - i = i + 1 - if (i.LE.10000) then - goto 1 - else - write(*,*) - write(*,*) 'SUBROUTINE Gauss_Verteilung_theta:' - write(*,*) ' Nach 10000 Versuchen noch keinen Winkel < 90 degree gewuerfelt.' - write(*,*) ' Vorgegebenes Sigma der Winkelverteilung: ',sigma - write(*,*) - STOP - endif - endif - -c Zitat aus TP's 'TESTSEED.FOR', aus welchem diese Routine abgeschrieben -c ist: -c -c Now we habe a GAUSSIAN, but we need for multiple scattering -c GAUSSIAN*SIN(x) =: g(x). This is not integrateable analytically, but -c we can choose the VON NEUMANN REJECTION to get what we want. -c As auxiliary function we choose the GAUSSIAN =: f(x), because it -c satisfies g(x) <= f(x) for all x. -c We must build the ratio g(x)/f(x) = sin(x) and compare it to -c another random number: - - ratio = sind(theta) - if (ran(seed).GT.ratio) goto 1 ! Verteilung zurechtbiegen - - - END - - -c=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE G_Functions(G1,G2,tau) -c ================================= - -c Diese Routine gibt in Abhaengigkeit von der reduzierten Dicke 'tau' -c Funktionswerte fuer g1 und g2 zurueck. g1 und g2 sind dabei die von -c Meyer angegebenen tabellierten Funktionen fuer die Berechnung von Halbwerts- -c breiten von Streuwinkelverteilungen. (L.Meyer, phys.stat.sol. (b) 44, 253 -c (1971)) - - IMPLICIT NONE - - real tau,g1,g2 - real tau_(26),g1_(26),g2_(26) - real help - - integer i - - DATA tau_ /0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, - + 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, - + 10.0, 12.0, 14.0, 16.0, 18.0, 20.0 / - - DATA g1_ /0.050,0.115,0.183,0.245,0.305,0.363,0.419,0.473,0.525,0.575, - + 0.689,0.799,0.905,1.010,1.100,1.190,1.370,1.540,1.700,1.850, - + 1.990,2.270,2.540,2.800,3.050,3.290 / - DATA g2_ / 0.00,1.25,0.91,0.79,0.73,0.69,0.65,0.63,0.61,0.59, - + 0.56,0.53,0.50,0.47,0.45,0.43,0.40,0.37,0.34,0.32, - + 0.30,0.26,0.22,0.18,0.15,0.13 / - - if (tau.LT.tau_(1)) then - write(*,*) - write(*,*)'SUBROUTINE G_Functions:' - write(*,*)' Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:' - write(*,*)' aktuelles tau ist kleiner als kleinster Tabellenwert:' - write(*,*)' tau = ',tau - write(*,*)' tau_(1) = ',tau_(1) - write(*,*) - STOP - endif - - i = 1 - -10 i = i + 1 - if (i.EQ.27) then - write(*,*) - write(*,*)'SUBROUTINE G_Functions:' - write(*,*)' Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:' - write(*,*)' aktuelles tau ist groesser als groesster Tabellenwert:' - write(*,*)' tau = ',tau - write(*,*)' tau_(26) = ',tau_(26) - write(*,*) - STOP - elseif (tau.gt.tau_(i)) then - goto 10 - endif - - -c lineare Interpolation zwischen Tabellenwerten: - - help = (tau-tau_(i-1))/(tau_(i)-tau_(i-1)) - - g1 = g1_(i-1) + help*(g1_(i)-g1_(i-1)) - g2 = g2_(i-1) + help*(g2_(i)-g2_(i-1)) - - - END - - -c=============================================================================== - - options /extend_source - - subroutine Get_F_Function_Meyer(tau,Ekin) -c ========================================= - - implicit none - - real tau - real Ekin - - real thetaSchlange,thetaSchlangeMax - real theta,thetaMax,thetaStep - real f1,f2,F - - -c------------------------------------ -c - Parameter: - - real Z1, Z2 ! die atomaren Nummern von Projektil und Target -c real a0 ! Bohrscher Radius in cm - real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der - ! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6) - ! bei Streichung von Z1 (vgl. Referenz, S. 268) - - real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a' - ! und dem ebenfalls bei Meyer angegebenem - ! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben) - real eSquare ! elektrische Ladung zum Quadrat in keV*cm - - real Pi ! die Kreiszahl - -c parameter (a0 = 5.29E-9) - parameter (Z1 = 1, Z2 = 6, ScreeningPar = 2.5764E-9) - parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10) - parameter (Pi = 3.141592654) - - real Meyer_Faktor3 - real Meyer_Faktor4 - real zzz ! 'Hilfsparameter' - real Meyer_Faktor5 - - parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer)) - parameter (Meyer_faktor4 = screeningPar / (2.*Z1*Z2*eSquare) * Pi/180.) - parameter (zzz = screeningPar / (2.*Z1*Z2*eSquare)) - parameter (Meyer_faktor5 = zzz*zzz / (8*Pi*Pi)) - -c------------------------------------ - - integer nBin,nBinMax - parameter (nBinMax=201) - real value(0:nBinMax) /0.,nBinMax*0./ - real area(nBinMax) / nBinMax*0./ - real integ(0:nBinMax) /0.,nBinMax*0./ - common /MeyerTable/ value,area,integ,thetaStep,nBin - - integer i - real rhelp - - integer HB_memsize - parameter(HB_memsize=500000) - real memory(HB_memsize) - COMMON /PAWC/ memory - - -c nur noch fuer Testzwecke: - - real fValues(203) - real fValuesFolded(203) - - integer idh - parameter (idh = 50) - - INCLUDE 'mutrack$sourcedirectory:COM_DIRS.INC' - character filename*20 ! Name der Ausgabe-Dateien - COMMON /filename/ filename - -c------------------------------------------------------------------------------- - -c Festlegen des maximalen Theta-Wertes sowie der Schrittweite: - - if (tau.LT.0.2) then - write(*,*) 'Subroutine ''Get_F_Function_Meyer'':' - write(*,*) 'Effektive Dicke ist kleiner als 0.2 => kann ich nicht ... => STOP' - call exit - elseif (tau.LE.2.) then - ! => Tabelle A - thetaSchlangeMax = 4.0 - elseif (tau.LE.8.) then - ! => Tabelle B - thetaSchlangeMax = 7.0 - elseif (tau.LE.20.) then - ! => Tabelle C - thetaSchlangeMax = 20.0 - else - write(*,*) 'Subroutine ''Get_F_Function_Meyer'':' - write(*,*) 'Effektive Dicke ist groesser als 20 => kann ich nicht ... => STOP' - call exit - endif - - thetaMax = thetaSchlangeMax / Meyer_Faktor4 / Ekin - if (thetaMax.GT.50) then - thetaStep = .5 - elseif (thetaMax.GT.25) then - thetaStep = .25 - elseif (thetaMax.GT.12.5) then - thetaStep = .125 - else - thetaStep = .0625 - endif - - -c Tabelle der F-Werte erstellen: - - nBin = 0 - do theta = thetaStep, thetaMax, thetaStep - - ! Berechne aus theta das 'reduzierte' thetaSchlange (dabei gleich - ! noch von degree bei theta in Radiant bei thetaSchlange umrechnen): - - thetaSchlange = Meyer_faktor4 * Ekin * theta - - ! Auslesen der Tabellenwerte fuer die f-Funktionen: - - call F_Functions_Meyer(tau,thetaSchlange,f1,f2) - if (thetaSchlange.EQ.-1) then - ! wir sind jenseits von thetaSchlangeMax - goto 10 - endif - - ! Berechnen der Streuintensitaet: - F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2) - - nBin = nBin + 1 - if (nBin.GT.nBinMax) then - write(*,*) 'nBin > nBinMax => EXIT' - call exit - endif - value(nBin) = sind(theta)*F - - fValues(nBin+1) = F ! fuer Testzwecke - fValuesFolded(nBin+1) = sind(theta)*F ! fuer Testzwecke - - enddo - - -c Berechnen der Flaecheninhalte der einzelnen Kanaele sowie der Integrale: - -10 do i = 1, nBin - area(i) = (value(i)+value(i-1))/2. * thetaStep - integ(i) = integ(i-1) + area(i) - enddo - - -c Normiere totale Flaeche auf 1: - - rHelp = integ(nBin) - do i = 1, nBin - value(i) = value(i) / rHelp - area(i) = area(i) / rHelp - integ(i) = integ(i) / rHelp - enddo - - -c vorerst noch: gib Tabelle in Datei und Histogrammfile aus: - - ! Berechne die Werte fuer theta=0: - - call F_Functions_Meyer(tau,0.,f1,f2) - F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2) - fValues(1) = F - fValuesFolded(1) = 0. - - ! Gib die Werte in das Tabellenfile aus: - -c theta = 0. -c open (10,file=outDir//':'//filename//'.TAB',status='NEW') -c do i = 1, nBin+1 -c write(10,*) theta, fValues(i), fValuesFolded(i) -c theta = theta + thetaStep -c enddo -c close (10) - - - ! Buchen und Fuellen der Histogramme: - - call HBOOK1(idh,'F',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.) - call HPAK(idh,fValues) - call HRPUT(idh,outDir//':'//filename//'.RZ','N') - call HDELET(idh) - - call HBOOK1(idh+1,'F*sin([q])',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.) - call HPAK(idh+1,fValuesFolded) - call HRPUT(idh+1,outDir//':'//filename//'.RZ','U') - call HDELET(idh+1) - - - END - - -c=============================================================================== - - options /extend_source - - subroutine throwMeyerAngle (theta) -c ================================== - - implicit none - - real lowerbound,y1,y2,f,root,radiant,fraction - integer bin,nBin - integer nBinMax - parameter (nBinMax=201) - - real theta,thetaStep - real value(0:nBinMax) /0.,nBinMax*0./ - real area(nBinMax) / nBinMax*0./ - real integ(0:nBinMax) /0.,nBinMax*0./ - common /MeyerTable/ value,area,integ,thetaStep,nBin - - real rhelp - - real random - integer seed - common /seed/ seed - - -c bin: Nummer des Bins, innerhalb dessen das Integral den Wert von -c random erreicht oder ueberschreitet: - - random = ran(seed) - - bin = 1 - do while (random.GT.integ(bin)) - bin = bin + 1 - if (bin.GT.nBin) then - write(*,*) 'error 1' - call exit - endif - enddo - - fraction = (random-integ(bin-1)) / (integ(bin)-integ(bin-1)) - y1 = value(bin-1) - y2 = value(bin) - f = thetaStep / (y2-y1) - rHelp = y1*f - - radiant = rHelp*rHelp + fraction*thetaStep*(y1+y2)*f - root = SQRT(radiant) - lowerBound = real(bin-1)*thetaStep - if (f.GT.0) then - theta = lowerBound - rHelp + root - else - theta = lowerBound - rHelp - root - endif - - - END - - -c=============================================================================== - - options /extend_source - - subroutine F_Functions_Meyer(tau,thetaSchlange,f1,f2) -c ===================================================== - - implicit none - -c Diese Routine gibt in Abhaengigkeit von 'thetaSchlange' und 'tau' -c Funktionswerte fuer f1 und f2 zurueck. f1 und f2 entsprechen dabei den -c bei Meyer angegebenen Funktion gleichen Namens. Die in dieser Routine -c verwendeten Tabellen sind eben dieser Referenz entnommen: -c L.Meyer, phys.stat.sol. (b) 44, 253 (1971) - - real tau,thetaSchlange - real f1, f2, f1_(2), f2_(2) - - integer column_,column,row - - integer iColumn - real weightCol, weightRow - -c------------------------------------------------------------------------------- - -c die Tabellendaten der Referenz (Tabellen 2 und 3): - - integer nColumn - parameter (nColumn = 25) - real tau_(nColumn) / - + 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0, - + 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 10., 12., 14., 16., 18., 20. / - - integer nRowA - parameter (nRowA = 25) - real thetaSchlangeA(nRowA) / - + .00, .05, .10, .15, .20, .25, .30, .35, .40, .45, .50, .60, - + .70, .80, .90, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0, 3.5, 4.0 / - - integer nRowB - parameter (nRowB = 24) - real thetaSchlangeB(nRowB) / - + 0.0, 0.2, 0.4, 0.5, 0.6, 0.8, 1.0, 1.2, 1.4, 1.5, 1.6, 1.8, - + 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0 / - - integer nRowC - parameter (nRowC = 24) - real thetaSchlangeC(nRowC) / - + 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, - + 7.0, 8.0, 9.0, 10., 11., 12., 13., 14., 15., 16., 18., 20. / - - - real f1_A(9,nRowA) - + /1.69E+2,4.55E+1,2.11E+1,1.25E+1,8.48E+0,6.21E+0,4.80E+0,3.86E+0,3.20E+0, - + 9.82E+1,3.72E+1,1.97E+1,1.20E+1,8.27E+0,6.11E+0,4.74E+0,3.83E+0,3.17E+0, - + 3.96E+1,2.58E+1,1.65E+1,1.09E+1,7.73E+0,5.82E+0,4.58E+0,3.72E+0,3.10E+0, - + 1.76E+1,1.58E+1,1.27E+1,9.26E+0,6.93E+0,5.38E+0,4.31E+0,3.55E+0,2.99E+0, - + 8.62E+0,1.01E+1,9.45E+0,7.58E+0,6.02E+0,4.85E+0,3.98E+0,3.33E+0,2.84E+0, - + 4.65E+0,6.55E+0,6.91E+0,6.06E+0,5.11E+0,4.28E+0,3.62E+0,3.08E+0,2.66E+0, - + 2.74E+0,4.45E+0,5.03E+0,4.78E+0,4.27E+0,3.72E+0,3.23E+0,2.82E+0,2.47E+0, - + 1.77E+0,3.02E+0,3.71E+0,3.76E+0,3.53E+0,3.20E+0,2.86E+0,2.55E+0,2.27E+0, - + 1.22E+0,2.19E+0,2.78E+0,2.96E+0,2.91E+0,2.73E+0,2.51E+0,2.28E+0,2.07E+0, - + 8.82E-1,1.59E+0,2.12E+0,2.35E+0,2.39E+0,2.32E+0,2.19E+0,2.03E+0,1.87E+0, - + 6.55E-1,1.20E+0,1.64E+0,1.88E+0,1.97E+0,1.96E+0,1.90E+0,1.79E+0,1.68E+0, - + 3.80E-1,7.15E-1,1.01E+0,1.22E+0,1.35E+0,1.40E+0,1.41E+0,1.39E+0,1.34E+0, - + 2.26E-1,4.45E-1,6.44E-1,8.08E-1,9.28E-1,1.01E+0,1.05E+0,1.06E+0,1.05E+0, - + 1.39E-1,2.80E-1,4.21E-1,5.45E-1,6.46E-1,7.22E-1,7.75E-1,8.07E-1,8.21E-1, - + 8.22E-2,1.76E-1,2.78E-1,3.71E-1,4.53E-1,5.21E-1,5.74E-1,6.12E-1,6.37E-1, - + 5.04E-2,1.11E-1,1.86E-1,2.57E-1,3.22E-1,3.79E-1,4.27E-1,4.65E-1,4.94E-1, - + 2.51E-2,5.60E-2,9.24E-2,1.31E-1,1.69E-1,2.02E-1,2.40E-1,2.71E-1,2.97E-1, - + 1.52E-2,3.20E-2,5.08E-2,7.23E-2,9.51E-2,1.18E-1,1.41E-1,1.63E-1,1.83E-1, - + 1.03E-2,2.05E-2,3.22E-2,4.55E-2,6.01E-2,7.53E-2,9.02E-2,1.05E-1,1.19E-1, - + 8.80E-3,1.48E-2,2.25E-2,3.13E-2,4.01E-2,5.03E-2,6.01E-2,7.01E-2,8.01E-2, - + 6.10E-3,1.15E-2,1.71E-2,2.28E-2,2.89E-2,3.52E-2,4.18E-2,4.86E-2,5.55E-2, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,1.71E-2,1.98E-2,2.28E-2,2.58E-2, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.90E-3,1.02E-2,1.16E-2,1.31E-2, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,4.90E-3,5.70E-3,6.40E-3,7.20E-3, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.90E-3,3.40E-3,3.90E-3,4.30E-3/ - - real f1_B(9,nRowB) - + /2.71E+0,1.92E+0,1.46E+0,1.16E+0,9.52E-1,8.03E-1,6.90E-1,5.32E-1,4.28E-1, - + 2.45E+0,1.79E+0,1.39E+0,1.12E+0,9.23E-1,7.82E-1,6.75E-1,5.23E-1,4.23E-1, - + 1.87E+0,1.48E+0,1.20E+0,9.96E-1,8.42E-1,7.24E-1,6.32E-1,4.98E-1,4.07E-1, - + 1.56E+0,1.30E+0,1.09E+0,9.19E-1,7.89E-1,6.86E-1,6.03E-1,4.80E-1,3.95E-1, - + 1.28E+0,1.11E+0,9.62E-1,8.33E-1,7.27E-1,6.40E-1,5.69E-1,4.59E-1,3.81E-1, - + 8.23E-1,7.90E-1,7.29E-1,6.64E-1,6.01E-1,5.44E-1,4.94E-1,4.12E-1,3.49E-1, - + 5.14E-1,5.36E-1,5.29E-1,5.07E-1,4.78E-1,4.47E-1,4.16E-1,3.60E-1,3.13E-1, - + 3.19E-1,3.58E-1,3.76E-1,3.78E-1,3.70E-1,3.57E-1,3.45E-1,3.08E-1,2.76E-1, - + 2.02E-1,2.40E-1,2.64E-1,2.77E-1,2.82E-1,2.80E-1,2.65E-1,2.59E-1,2.39E-1, - + 1.67E-1,1.96E-1,2.20E-1,2.36E-1,2.44E-1,2.47E-1,2.45E-1,2.35E-1,2.21E-1, - + 1.33E-1,1.61E-1,1.85E-1,2.02E-1,2.12E-1,2.18E-1,2.18E-1,2.14E-1,2.03E-1, - + 8.99E-2,1.12E-1,1.32E-1,1.48E-1,1.59E-1,1.67E-1,1.68E-1,1.75E-1,1.72E-1, - + 6.24E-2,7.94E-2,9.50E-2,1.09E-1,1.20E-1,1.29E-1,1.35E-1,1.42E-1,1.43E-1, - + 4.55E-2,5.74E-2,6.98E-2,8.11E-2,9.09E-2,9.92E-2,1.06E-1,1.15E-1,1.19E-1, - + 3.35E-2,4.22E-2,5.19E-2,6.11E-2,6.95E-2,7.69E-2,8.33E-2,9.28E-2,9.85E-2, - + 2.50E-2,3.16E-2,3.92E-2,4.66E-2,5.35E-2,6.00E-2,6.57E-2,7.49E-2,8.13E-2, - + 1.90E-2,2.40E-2,2.99E-2,3.58E-2,4.16E-2,4.70E-2,5.20E-2,6.05E-2,6.70E-2, - + 1.47E-2,1.86E-2,2.32E-2,2.79E-2,3.25E-2,3.70E-2,4.12E-2,4.89E-2,5.51E-2, - + 8.10E-3,1.04E-2,1.30E-2,1.57E-2,1.84E-2,2.12E-2,2.40E-2,2.93E-2,3.42E-2, - + 4.80E-3,6.20E-3,7.70E-3,9.30E-3,1.09E-2,1.26E-2,1.44E-2,1.79E-2,2.14E-2, - + 2.80E-3,3.80E-3,4.70E-3,5.70E-3,6.70E-3,7.50E-3,8.90E-3,1.13E-2,1.36E-2, - + 1.70E-3,2.30E-3,2.90E-3,3.60E-3,4.20E-3,4.90E-3,5.60E-3,7.20E-3,8.80E-3, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.00E-3,2.80E-3,3.50E-3, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.80E-4,1.20E-3,1.60E-3/ - - real f1_C(7,nRowC) - + /3.65E-1,2.62E-1,2.05E-1,1.67E-1,1.41E-1,1.21E-1,1.05E-1, - + 3.33E-1,2.50E-1,1.95E-1,1.61E-1,1.36E-1,1.18E-1,1.03E-1, - + 2.75E-1,2.18E-1,1.76E-1,1.48E-1,1.27E-1,1.11E-1,9.80E-2, - + 2.04E-1,1.75E-1,1.50E-1,1.29E-1,1.13E-1,1.01E-1,9.00E-2, - + 1.41E-1,1.31E-1,1.19E-1,1.08E-1,9.71E-2,8.88E-2,8.01E-2, - + 9.32E-2,9.42E-2,9.10E-2,8.75E-2,8.00E-2,7.44E-2,6.91E-2, - + 5.98E-2,6.52E-2,6.72E-2,6.62E-2,6.40E-2,6.12E-2,5.82E-2, - + 3.83E-2,4.45E-2,4.80E-2,4.96E-2,4.98E-2,4.90E-2,4.77E-2, - + 2.46E-2,3.01E-2,3.40E-2,3.65E-2,3.79E-2,3.84E-2,3.83E-2, - + 1.59E-2,2.03E-2,2.39E-2,2.66E-2,2.85E-2,2.97E-2,3.04E-2, - + 1.04E-2,1.37E-2,1.66E-2,1.92E-2,2.12E-2,2.27E-2,2.37E-2, - + 4.39E-3,6.26E-3,8.26E-3,9.96E-3,1.15E-2,1.29E-2,1.41E-2, - + 2.06E-3,3.02E-3,4.24E-3,5.28E-3,6.32E-3,7.32E-3,8.26E-3, - + 1.21E-3,1.69E-3,2.24E-3,2.85E-3,3.50E-3,4.16E-3,4.82E-3, - + 8.50E-4,1.10E-3,1.38E-3,1.65E-3,2.03E-3,2.45E-3,2.88E-3, - + 5.90E-4,7.40E-4,8.50E-4,9.90E-4,1.23E-3,1.49E-3,1.71E-3, - + 3.90E-4,4.60E-4,5.20E-4,6.30E-4,7.65E-4,9.65E-4,1.12E-3, - + 2.40E-4,2.70E-4,3.10E-4,3.98E-4,4.97E-4,6.03E-4,7.18E-4, - + 1.50E-4,1.70E-4,2.15E-4,2.70E-4,3.35E-4,4.35E-4,5.00E-4, - + 1.00E-4,1.20E-4,1.46E-4,1.90E-4,2.40E-4,2.88E-4,3.43E-4, - + 0.00 ,0.00 ,1.04E-4,1.41E-4,1.80E-4,2.10E-4,2.50E-4, - + 0.00 ,0.00 ,8.20E-5,1.06E-4,1.38E-4,1.58E-4,1.85E-4, - + 0.00 ,0.00 ,5.40E-5,7.00E-5,8.60E-5,1.03E-4,1.20E-4, - + 0.00 ,0.00 ,4.20E-5,5.40E-5,6.50E-5,7.70E-5,8.80E-5/ - - real f2_A(9,nRowA) - + / 3.52E+3, 3.27E+2, 9.08E+1, 3.85E+1, 2.00E+1, 1.18E+1, 7.55E+0, 5.16E+0, 3.71E+0, - + 2.58E+2, 1.63E+2, 7.30E+1, 3.42E+1, 1.85E+1, 1.11E+1, 7.18E+0, 4.96E+0, 3.59E+0, - + -1.12E+2, 4.84E+0, 3.56E+1, 2.34E+1, 1.45E+1, 9.33E+0, 6.37E+0, 4.51E+0, 3.32E+0, - + -5.60E+1,-1.12E+1, 9.87E+0, 1.24E+1, 9.59E+0, 7.01E+0, 5.16E+0, 3.83E+0, 2.91E+0, - + -2.13E+1,-1.22E+1,-2.23E+0, 3.88E+0, 5.15E+0, 4.65E+0, 3.87E+0, 3.12E+0, 2.45E+0, - + -8.25E+0,-9.58E+0,-5.59E+0,-1.40E+0, 1.76E+0, 2.71E+0, 2.71E+0, 2.35E+0, 1.95E+0, - + -3.22E+0,-6.12E+0,-5.28E+0,-2.87E+0,-1.92E-1, 1.32E+0, 1.69E+0, 1.74E+0, 1.48E+0, - + -1.11E+0,-3.40E+0,-4.12E+0,-3.08E+0,-6.30E-1, 3.60E-1, 9.20E-1, 1.03E+0, 1.04E+0, - + -2.27E-1,-2.00E+0,-2.93E+0,-2.69E+0,-1.48E+0,-3.14E-1, 2.69E-1, 5.28E-1, 6.09E-1, - + 1.54E-1,-1.09E+0,-2.10E+0,-2.15E+0,-1.47E+0,-6.77E-1,-1.80E-1, 1.08E-1, 2.70E-1, - + 3.28E-1,-6.30E-1,-1.50E+0,-1.68E+0,-1.34E+0,-8.43E-1,-4.60E-1,-1.85E-1,-4.67E-3, - + 3.32E-1,-2.06E-1,-7.32E-1,-9.90E-1,-9.42E-1,-8.20E-1,-6.06E-1,-4.51E-1,-3.01E-1, - + 2.72E-1,-3.34E-2,-3.49E-1,-5.65E-1,-6.03E-1,-5.79E-1,-5.05E-1,-4.31E-1,-3.45E-1, - + 2.02E-1, 2.80E-2,-1.54E-1,-3.00E-1,-3.59E-1,-3.76E-1,-4.60E-1,-3.40E-1,-3.08E-1, - + 1.38E-1, 4.84E-2,-5.56E-2,-1.44E-1,-2.04E-1,-2.39E-1,-2.54E-1,-2.49E-1,-2.48E-1, - + 9.47E-2, 4.86E-2,-1.08E-2,-6.44E-2,-1.02E-1,-1.34E-1,-1.62E-1,-1.79E-1,-1.87E-1, - + 5.33E-2, 3.71E-2, 1.85E-2, 1.63E-3,-1.69E-2,-3.69E-2,-5.66E-2,-7.78E-2,-9.33E-2, - + 3.38E-2, 2.40E-2, 1.62E-2, 9.90E-3, 3.76E-3,-4.93E-3,-1.66E-2,-3.05E-2,-4.22E-2, - + 2.12E-2, 1.56E-2, 1.05E-2, 7.80E-3, 7.92E-3, 6.30E-3, 3.20E-4,-8.50E-3,-1.66E-2, - + 1.40E-2, 9.20E-3, 5.30E-3, 4.70E-3, 6.31E-3, 8.40E-3, 5.30E-3, 8.80E-4,-3.30E-3, - + 9.20E-3, 4.70E-3, 1.70E-3, 2.60E-3, 4.49E-3, 6.60E-3, 6.00E-3, 4.70E-3, 2.80E-3, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 / - - real f2_B(9,nRowB) - + / 2.75E+0, 1.94E+0, 9.13E-1, 6.06E-1, 4.26E-1, 3.14E-1, 2.40E-1, 1.51E-1, 1.03E-1, - + 1.94E+0, 1.16E+0, 7.56E-1, 5.26E-1, 3.81E-1, 2.87E-1, 2.23E-1, 1.43E-1, 9.78E-2, - + 5.85E-1, 5.04E-1, 4.10E-1, 3.30E-1, 2.69E-1, 2.17E-1, 1.78E-1, 1.22E-1, 8.71E-2, - + 7.83E-2, 2.00E-1, 2.35E-1, 2.19E-1, 1.97E-1, 1.73E-1, 1.48E-1, 1.08E-1, 7.93E-2, - + -1.82E-1, 1.56E-2, 1.04E-1, 1.36E-1, 1.38E-1, 1.31E-1, 1.19E-1, 9.46E-2, 7.19E-2, - + -2.71E-1,-1.66E-1,-7.29E-2,-4.74E-3, 3.60E-2, 5.50E-2, 6.28E-2, 5.98E-2, 5.09E-2, - + -1.87E-1,-1.58E-1,-1.09E-1,-5.80E-2,-2.03E-2, 2.48E-3, 1.99E-2, 3.36E-2, 3.27E-2, - + -1.01E-1,-1.05E-1,-8.95E-2,-6.63E-2,-3.93E-2,-2.38E-2,-9.22E-3, 8.47E-3, 1.52E-2, - + -5.19E-2,-6.47E-2,-6.51E-2,-5.62E-2,-4.51E-2,-3.49E-2,-2.45E-2,-8.19E-3, 2.05E-3, - + -3.68E-2,-4.89E-2,-5.36E-2,-5.06E-2,-4.27E-2,-3.65E-2,-2.80E-2,-1.33E-2,-3.47E-3, - + -2.33E-2,-3.69E-2,-4.41E-2,-4.38E-2,-3.97E-2,-3.50E-2,-2.88E-2,-1.60E-2,-6.68E-3, - + -8.76E-3,-2.07E-2,-2.90E-2,-3.17E-2,-3.09E-2,-2.92E-2,-2.63E-2,-1.79E-2,-1.03E-2, - + -1.20E-3,-1.11E-2,-1.90E-2,-2.20E-2,-2.32E-2,-2.24E-2,-2.10E-2,-1.66E-2,-1.11E-2, - + 1.72E-3,-4.82E-3,-1.02E-2,-1.42E-2,-1.65E-2,-1.66E-2,-1.60E-2,-1.39E-2,-1.09E-2, - + 2.68E-3,-1.18E-3,-5.19E-3,-8.30E-5,-1.01E-2,-1.14E-2,-1.16E-2,-1.16E-2,-9.99E-3, - + 2.81E-3, 8.21E-4,-1.96E-3,-3.99E-3,-5.89E-3,-7.13E-3,-8.15E-3,-9.05E-3,-8.60E-3, - + 2.61E-3, 1.35E-3,-2.99E-4,-1.79E-3,-3.12E-3,-4.44E-3,-5.61E-3,-7.01E-3,-7.27E-3, - + 2.06E-3, 1.45E-3, 4.64E-4,-5.97E-4,-1.71E-3,-2.79E-3,-3.84E-3,-5.29E-3,-5.90E-3, - + 1.07E-3, 9.39E-4, 8.22E-4, 3.58E-4,-1.15E-4,-6.60E-4,-1.18E-3,-2.15E-3,-2.88E-3, - + 4.97E-4, 5.46E-4, 6.15E-4, 5.56E-4, 3.14E-4, 9.80E-5,-1.30E-4,-5.98E-4,-1.07E-4, - + 1.85E-4, 3.11E-4, 4.25E-4, 4.08E-4, 3.63E-4, 3.04E-4, 2.24E-4, 2.80E-5,-2.10E-4, - + 4.80E-5, 1.48E-4, 2.44E-4, 2.80E-4, 3.01E-4, 3.11E-4, 3.13E-4, 2.40E-4, 1.10E-4, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 1.39E-4, 1.80E-4, 1.80E-4, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 4.38E-5, 7.30E-5, 8.40E-5/ - - real f2_C(7,nRowC) - + / 7.36E-2, 4.21E-2, 2.69E-2, 1.83E-2, 1.34E-2, 1.01E-2, 7.88E-3, - + 5.79E-2, 3.61E-2, 2.34E-2, 1.64E-2, 1.21E-2, 9.26E-3, 7.28E-3, - + 2.94E-2, 2.17E-2, 1.60E-2, 1.23E-2, 9.49E-3, 7.45E-3, 5.95E-3, - + 2.30E-3, 7.07E-3, 7.76E-3, 7.02E-3, 6.13E-3, 5.17E-3, 4.34E-3, - + -7.50E-3,-2.00E-3, 9.93E-4, 2.36E-3, 2.82E-3, 2.86E-3, 2.72E-3, - + -8.27E-3,-5.37E-3,-2.58E-3,-7.96E-4, 3.75E-4, 9.71E-4, 1.28E-3, - + -5.79E-3,-5.12E-3,-3.86E-3,-2.46E-3,-1.20E-3,-3.74E-4, 1.74E-4, - + -3.26E-3,-3.43E-3,-3.26E-3,-2.68E-3,-1.84E-3,-1.12E-3,-4.54E-4, - + -1.46E-3,-1.49E-3,-2.20E-3,-2.18E-3,-1.85E-3,-1.40E-3,-8.15E-4, - + -4.29E-4,-9.44E-4,-1.29E-3,-1.50E-3,-1.51E-3,-1.36E-3,-9.57E-4, - + -3.30E-5,-3.66E-4,-6.78E-4,-9.38E-4,-1.09E-3,-1.09E-3,-9.56E-4, - + 1.50E-4, 3.10E-5,-1.38E-4,-3.06E-4,-4.67E-4,-5.48E-4,-6.08E-4, - + 1.00E-4, 8.50E-5, 2.30E-5,-6.60E-5,-1.58E-4,-2.40E-4,-3.05E-4, - + 5.40E-5, 6.50E-5, 4.90E-5, 1.20E-5,-3.60E-5,-8.90E-5,-1.31E-4, - + 2.90E-5, 4.30E-5, 4.40E-5, 2.90E-5, 5.10E-6,-2.20E-5,-4.80E-5, - + 1.40E-5, 2.40E-5, 2.80E-5, 2.60E-5, 1.90E-5, 7.50E-6,-1.10E-5, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 / - - -c=============================================================================== - -c Bestimme, welche Reihen der Tabellen fuer Interpolation benoetigt werden: - - if (tau.LT.tau_(1)) then - write(*,*) 'tau is less than the lowest tabulated value:' - write(*,*) 'tau = ',tau - write(*,*) 'minimum = ',tau_(1) - call exit - elseif (tau.GT.tau_(nColumn)) then - write(*,*) 'tau is greater than the highest tabulated value:' - write(*,*) 'tau = ',tau - write(*,*) 'maximum = ',tau_(nColumn) - call exit - endif - - column_ = 2 - do while (tau.GT.tau_(column_)) - column_ = column_ + 1 - enddo - ! Das Gewicht der Reihe zu groesserem Tau: - weightCol = (tau-tau_(column_-1)) / (tau_(column_)-tau_(column_-1)) - - -c Besorge fuer gegebenes 'thetaSchlange' die interpolierten f1- und f2 -Werte -c der beiden relevanten Reihen: -c iColumn = 1 => Reihe mit hoeherem Index -c iColumn = 2 => Reihe mit kleinerem Index - - - iColumn = 1 - - -5 continue - - if (column_.LE.9) then ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ! Werte aus 1. Tabelle: 0.2 <= tau <= 1.8 - - column = column_ - - if (thetaSchlange.LT.thetaSchlangeA(1)) then - write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:' - write(*,*) 'thetaSchlange = ',thetaSchlange - write(*,*) 'minimum = ',thetaSchlangeA(1) - call exit - elseif (thetaSchlange.GT.thetaSchlangeA(nRowA)) then -c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:' -c write(*,*) 'thetaSchlange = ',thetaSchlange -c write(*,*) 'maximum = ',thetaSchlangeA(nRowA) -c call exit - thetaSchlange = -1. - RETURN - endif - - row = 2 - do while (thetaSchlange.GT.thetaSchlangeA(row)) - row = row + 1 - enddo - ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange: - weightRow = (thetaSchlange-thetaSchlangeA(row-1)) / - + (thetaSchlangeA(row)-thetaSchlangeA(row-1)) - - f1_(iColumn) = (1.-weightRow) * f1_A(column,row-1) + - + weightRow * f1_A(column,row) - f2_(iColumn) = (1.-weightRow) * f2_A(column,row-1) + - + weightRow * f2_A(column,row) - - - elseif (column_.LE.18) then ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ! Werte aus 2. Tabelle: 2.0 <= tau <= 7.0 - - column = column_ - 9 - - if (thetaSchlange.LT.thetaSchlangeB(1)) then - write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:' - write(*,*) 'thetaSchlange = ',thetaSchlange - write(*,*) 'minimum = ',thetaSchlangeB(1) - call exit - elseif (thetaSchlange.GT.thetaSchlangeB(nRowB)) then -c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:' -c write(*,*) 'thetaSchlange = ',thetaSchlange -c write(*,*) 'maximum = ',thetaSchlangeB(nRowB) -c call exit - thetaSchlange = -1. - RETURN - endif - - row = 2 - do while (thetaSchlange.GT.thetaSchlangeB(row)) - row = row + 1 - enddo - ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange: - weightRow = (thetaSchlange-thetaSchlangeB(row-1)) / - + (thetaSchlangeB(row)-thetaSchlangeB(row-1)) - - f1_(iColumn) = (1.-weightRow) * f1_B(column,row-1) + - + weightRow * f1_B(column,row) - f2_(iColumn) = (1.-weightRow) * f2_B(column,row-1) + - + weightRow * f2_B(column,row) - - - else ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ! Werte aus 3. Tabelle: 8.0 <= tau <= 20. - - column = column_ - 18 - - if (thetaSchlange.LT.thetaSchlangeC(1)) then - write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:' - write(*,*) 'thetaSchlange = ',thetaSchlange - write(*,*) 'minimum = ',thetaSchlangeC(1) - call exit - elseif (thetaSchlange.GT.thetaSchlangeC(nRowC)) then -c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:' -c write(*,*) 'thetaSchlange = ',thetaSchlange -c write(*,*) 'maximum = ',thetaSchlangeC(nRowC) -c call exit - thetaSchlange = -1. - RETURN - endif - - row = 2 - do while (thetaSchlange.GT.thetaSchlangeC(row)) - row = row + 1 - enddo - ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange: - weightRow = (thetaSchlange-thetaSchlangeC(row-1)) / - + (thetaSchlangeC(row)-thetaSchlangeC(row-1)) - - f1_(iColumn) = (1.-weightRow) * f1_C(column,row-1) + - + weightRow * f1_C(column,row) - f2_(iColumn) = (1.-weightRow) * f2_C(column,row-1) + - + weightRow * f2_C(column,row) - - - endif ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - if (iColumn.EQ.1) then - column_ = column_ - 1 - iColumn = 2 - goto 5 - endif - - f1 = weightCol*f1_(1) + (1.-weightCol)*f1_(2) - f2 = weightCol*f2_(1) + (1.-weightCol)*f2_(2) - - - END - - -c=============================================================================== - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE reset_statistics -c =========================== - - IMPLICIT NONE - - integer Nr,n,k - - INCLUDE 'mutrack$sourcedirectory:COM_MUTRACK.INC' - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c der allgemeine Statistikspeicher: (*) : braucht nicht resettet zu werden -c --------------------------------- -c -c statMem(1,Nr): 1. Wert: x(1) (*) -c statMem(2,Nr): Summe_ueber_i( x(i)-x(1) ) -c statMem(3,Nr): Summe_ueber_i( (x(i)-x(1))**2. ) -c statMem(4,Nr): kleinster Wert -c statMem(5,Nr): groesster Wert -c statMem(6,Nr): Mittelwert (*) -c statMem(7,Nr): Varianz (*) -c statMem(8,Nr): Anzahl der Werte -c statMem(9,Nr): Anzahl der Werte in Prozent von 'StartsProSchleife' (*) -c ('StartsProSchleife' == n_par(0)) -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Ergebnis-Statistik-Speicher resetten: - - do Nr = 1, stat_Anzahl - statMem(2,Nr) = 0. ! Summe der Werte - statMem(3,Nr) = 0. ! Summe der Quadrate - statMem(4,Nr) = 1.e10 ! Minimalwert - statMem(5,Nr) = -1.e10 ! Maximalwert - statMem(8,Nr) = 0. ! Anzahl - enddo - -c die Scaler fuer den Returncode des TDs und die Pfostenhits sowie die -c StartZaehler resetten: - - do n = 1, 2 ! (1: Projektile, 2: FolienElektronen) - start_nr(n) = 0 - do k = 1, 18 - statTD(n,k) = 0. - enddo - do k = 1, 75 - pfostenHit(k,n) = 0. - enddo - enddo - - -c der Statistikspeicher fuer das Teilchen-Schicksal: - - do k = smallest_code_Nr, Gebiete_Anzahl*highest_code_Nr - statDestiny(k) = 0 - enddo - - - END - - -c=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE fill_statMem(wert,Nr) -c ================================ - - IMPLICIT NONE - - INCLUDE 'mutrack$sourcedirectory:COM_MUTRACK.INC' - - real wert - integer Nr - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Wird die Varianz der Verteilung einer Groesse x gemaess der Formel -c -c Var(x) = SQRT( - **2 ) , < > -> Erwartungswert -c -c mit -c = 1/n * Summe_ueber_i( x(i) ) -c = 1/n * Summe_ueber_i( x(i)**2 ) -c -c berechnet, so tritt manchmal aufgrund der beschraenkten Genauigkeit der -c numerischen Speicher das Problem auf, dass bei grossen Werten x(i) und -c kleiner Streuung der Ausdruck unter der Wurzel negativ wird, was erstens -c unphysikalisch ist und zweitens zum Programmabbruch fuehrt. -c -c Dieses Problem liesse sich vermeiden, wenn man die Groessen x(i) relativ -c zu ihrem Erwartungswert angeben wuerde, der aber erst im nachhinein bekannt -c ist. -c -c Als Naeherungsloesung verwende ich daher fuer die Berechnung der Varianz die -c x(i) relativ zu x(1), also zum ersten Wert gemessen, der gerade bei kleiner -c Streuung, bei der das numerische Problem auftritt, nahe am Erwartungswert -c liegen sollte. -c -c statMem(1,Nr): 1. Wert: x(1) -c statMem(2,Nr): Summe_ueber_i( x(i)-x(1) ) -c statMem(3,Nr): Summe_ueber_i( (x(i)-x(1))**2. ) -c statMem(4,Nr): kleinster Wert -c statMem(5,Nr): groesster Wert -c statMem(6,Nr): Mittelwert (*) -c statMem(7,Nr): Varianz (*) -c statMem(8,Nr): Anzahl der Werte -c statMem(9,Nr): Anzahl der Werte in Prozent von 'StartsProSchleife' (*) -c ('StartsProSchleife' == n_par(0)) -c -c (*): wird im SUB 'eval_statistics' berechnet. -c -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Zaehle mit: - - statMem(8,Nr) = statMem(8,Nr) + 1. - - -c Speichere den ersten Wert: - - if (statMem(8,Nr).EQ.1) statMem(1,Nr) = wert - - -c Summiere die Abweichungen vom ersten Wert: - - statMem(2,Nr) = statMem(2,Nr) + (wert-statMem(1,Nr)) - - -c Summiere die Quadratischen Abweichungen vom ersten Wert: - - statMem(3,Nr) = statMem(3,Nr) + (wert-statMem(1,Nr))**2. - - -c Speichere den kleinsten Wert (wurde noch kein Wert aufgenommen, so ist -c statMem(4,Nr) = 1.e10): - - if (statMem(4,Nr).GT.wert) statMem(4,Nr) = wert - - -c Speichere den groessten Wert (wurde noch kein Wert aufgenommen, so ist -c statMem(5,Nr) = -1.e10): - - if (statMem(5,Nr).LT.wert) statMem(5,Nr) = wert - - - END - - -c=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE eval_statistics -c ========================== - - IMPLICIT NONE - -c statMem(1,Nr): 1. Wert: x(1) -c statMem(2,Nr): Summe_ueber_i( x(i)-x(1) ) -c statMem(3,Nr): Summe_ueber_i( (x(i)-x(1))**2. ) -c statMem(4,Nr): kleinster Wert -c statMem(5,Nr): groesster Wert -c statMem(6,Nr): Mittelwert -c statMem(7,Nr): Varianz -c statMem(8,Nr): Anzahl der Werte -c statMem(9,Nr): Anzahl der Werte in Prozent von 'StartsProSchleife' -c ('StartsProSchleife' == n_par(0)) - - - INCLUDE 'mutrack$sourcedirectory:COM_MUTRACK.INC' - - real n ! Anzahl der Werte, == statMem(8,Nr) - real radiant - - integer Nr,l - - - do Nr = 1, Stat_Anzahl - if (statNeeded(Nr)) then - n = statMem(8,Nr) - if (n.ne.0.) then - - !c Berechne Mittelwert: - statMem(6,Nr) = statMem(2,Nr)/n + statMem(1,Nr) - - !c Berechne Varianz: - radiant = ( statMem(3,Nr) - (statMem(2,Nr)**2. )/n)/n - statMem(7,Nr) = sqrt(radiant) - - !c Berechne Anteil an allen gestarteten in Prozent - statMem(9,Nr) = 100.*n/real(n_par(0)) - - else - - do l = 1, 9 - statMem(l,Nr) = 0. - enddo - - endif - endif - enddo - - - END - - -c=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE SAVE_GRAPHICS_KOORD -c ============================== - - IMPLICIT NONE - - INCLUDE 'mutrack$sourcedirectory:COM_MUTRACK.INC' - INCLUDE 'mutrack$sourcedirectory:COM_WINKEL.INC' - INCLUDE 'mutrack$sourcedirectory:COM_KAMMER.INC' - -c Variablen fuer die Graphikausgabe: - - real xKoord(1000) ! Koordinatenfelder fuer die - real yKoord(1000) ! Graphikausgabe - real zKoord(1000) ! -cMBc real tKoord(1000) ! - integer nKoord ! Anzahl der Koordinaten - -cMBc COMMON /GRAPHIX/ xKoord,yKoord,zKoord,nKoord,tKoord ! fuer Graphikaufruf - COMMON /GRAPHIX/ xKoord,yKoord,zKoord,nKoord ! fuer Graphikaufruf - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nKoord = nKoord + 1 - - xKoord(nKoord) = x(1) - yKoord(nKoord) = x(2) - zKoord(nKoord) = x(3) -cMBc tKoord(nKoord) = t - - if (nKoord.EQ.1000) then - if (Gebiet.LE.upToChKoord) then ! Bahnberechnung wurde vor - call plot_horizontal ! Koordinatenwechsel abgebrochen - else - call plot_vertikal - endif - xKoord(1) = xKoord( 999) ! die letzten beiden uebernehmen, - yKoord(1) = yKoord( 999) ! damit gegebenenfalls der Richtungs- - zKoord(1) = zKoord( 999) ! pfeil gezeichnet werden kann. -cMBc tKoord(1) = tKoord( 999) - xKoord(2) = xKoord(1000) - yKoord(2) = yKoord(1000) - zKoord(2) = zKoord(1000) -cMBc tKoord(2) = tKoord(1000) - nKoord = 2 - endif - - - END - - -c=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE Output_Debug -c ======================= - - IMPLICIT NONE - - INCLUDE 'mutrack$sourcedirectory:COM_MUTRACK.INC' - INCLUDE 'mutrack$sourcedirectory:COM_WINKEL.INC' - INCLUDE 'mutrack$sourcedirectory:COM_KAMMER.INC' - - real Ekin, temp1, temp2 - - Ekin = (v(1)*v(1) + v(2)*v(2) + v(3)*v(3)) * Energie_Faktor - - if (Gebiet.EQ.1 .AND. alfaTgt.NE.0) then - if (alfaTgtVertically) then - temp1 = xGrid1*Cos_alfaTgt - x(3)*Sin_alfaTgt - temp2 = xGrid1*Sin_alfaTgt + x(3)*Cos_alfaTgt - write(lun(1),1) steps,Gebiet,t,temp1,x(2),temp2,v,Ekin - else - temp1 = xGrid1*Cos_alfaTgt - x(2)*Sin_alfaTgt - temp2 = xGrid1*Sin_alfaTgt + x(2)*Cos_alfaTgt - write(lun(1),1) steps,Gebiet,t,temp1,temp2,x(3),v,Ekin - endif - else - write(lun(1),1) steps,Gebiet,t,x,v,Ekin - endif - -1 format(X,I4,X,I2,4X,F6.1,2X,F7.2,X,F6.2,X,F6.2,2X,F6.2,X, - + F6.2,X,F6.2,2X,G13.6) - - END - - -c=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE Decay_Test(*) -c ======================== - - IMPLICIT NONE - - INCLUDE 'mutrack$sourcedirectory:COM_MUTRACK.INC' - - real dt - - if (t.GT.lifeTime) then ! Teilchen zerfallen - dt = t - lifeTime - t = lifeTime - x(1) = x(1) - dt*v(1) - x(2) = x(2) - dt*v(2) - x(3) = x(3) - dt*v(3) - destiny = code_decay - RETURN 1 - endif - - - END - - -c=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE chargeStateYields(E,masse,Yield_plus,Yield_zero) -c =========================================================== - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Die Funktion sowie die Parameter sind uebernommen aus: -c -c M.Gonin, R.Kallenbach, P.Bochsler: 'Charge exchange of hydrogen atoms -c in carbon foils at 0.4 - 120 keV', Rev.Sci.Instrum. 65 (3), March 1994 -c -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPLICIT NONE - - real E ! kinetische Energie in keV - real masse ! in keV / c**2 - - real a_zero,a_minus - real k_Fermi,k_zero,k_minus - real zwo_k_Fermi - real k_Fermi_Quad,k_zero_Quad,k_minus_Quad - real vc_minus,vc_plus,v_Bohr,v_rel - - parameter ( a_zero = 0.953, a_minus = 0.029 ) - parameter ( k_Fermi = 1.178 ) ! [v_Bohr] - parameter ( k_Fermi_Quad = k_Fermi * k_Fermi ) - parameter ( zwo_k_fermi = 2. * k_Fermi ) - parameter ( k_zero = 0.991*k_Fermi ) ! [v_Bohr] - parameter ( k_zero_Quad = k_zero * k_zero ) - parameter ( k_minus = 0.989*k_Fermi ) ! [v_Bohr] - parameter ( k_minus_Quad = k_minus * k_minus ) - parameter ( vc_minus = 0.284, vc_plus = 0.193 ) ! [v_Bohr] - parameter ( v_Bohr = 7.2974E-3 ) ! [c] - - real Q_zero,Q_minus,D - real Yield_minus,Yield_zero,Yield_plus - - real help1,help2,help3 - - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (E.LT.0) then - write(*,*) - write(*,*) 'error in subroutine ''chargeStateYields'':' - write(*,*) 'E = ',E,' < 0!' - write(*,*) '-> STOP' - write(*,*) - STOP - endif - - -c Energie in Geschwindigkeit umrechnen (in Einheiten von v_Bohr): - -c - klassisch: - - v_rel = SQRT(2.*E/masse) / v_Bohr - -c - relativistisch: - -c help1 = 1. + E/masse -c v_rel = SQRT(1. - 1./(help1*help1)) / v_Bohr - - -c Die geladenen Anteile berechnen (vgl. obige Referenz): - - help1 = v_rel*v_rel - help2 = zwo_k_Fermi*v_rel - Q_zero = 1. + (k_zero_Quad - k_Fermi_Quad - help1) / help2 - Q_minus = 1. + (k_minus_Quad - k_Fermi_Quad - help1) / help2 - - - help1 = a_zero * Q_zero - help2 = a_minus * Q_minus - help3 = (1.-Q_zero)*(1.-Q_minus) - D = help1*(help2 + (1.-Q_minus)) + help3 - - Yield_minus = help1*help2 / D - Yield_plus = help3 / D - - Yield_minus = Yield_minus * exp(-vc_minus/v_rel) - Yield_plus = Yield_plus * exp(-vc_plus /v_rel) - - Yield_zero = 1. - (Yield_minus + Yield_plus) - -c write(6,*) 'E vrel Neutral Plus Minus' -c write(6,*) E, v_rel, yield_zero, yield_plus, yield_minus - - END - - -c=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE test_wireHit(distToWire,WireRadiusQuad,v_x,v_y,WireHit) -c ================================================================== - -c Diese Routine ueberprueft, ob bei gegebenem Abstandsvektor 'distToWire' -c zwischen Teilchen und Draht und gegebener Geschwindigkeit v eines Teilchens -c bei geradliniger Bewegung und Drahtradius 'WireRadius' ein Schnittpunkt -c von Teilchenbahn und Drahtumfang existiert, ob also der Draht getroffen wird. -c Dafuer genuegt es zu pruefen, ob der Radiant der 'Mitternachtsformel' fuer die -c entsprechende quadratische Gleichung groesser oder gleich Null ist: - - IMPLICIT NONE - - real DistToWire(2),WireRadiusQuad,v_x,v_y - logical WireHit - - real steigung, help, radiant - -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (abs(v_x).GT.abs(v_y)) then - steigung = v_y/v_x - help = distToWire(2) - distToWire(1) * steigung - radiant = (1+steigung*steigung)*WireRadiusQuad - help*help - else - steigung = v_x/v_y - help = distToWire(1) - distToWire(2) * steigung - radiant = (1+steigung*steigung)*WireRadiusQuad - help*help - endif - - if (radiant.ge.0) then - wireHit = .true. - else - wireHit = .false. - endif - - - END - - -c=============================================================================== diff --git a/geant4/LEMuSR/MEYER/testmeyer.cc b/geant4/LEMuSR/MEYER/testmeyer.cc deleted file mode 100644 index 822201d..0000000 --- a/geant4/LEMuSR/MEYER/testmeyer.cc +++ /dev/null @@ -1,195 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include"meyer.h" - -void GFunctions(double*,double*, const double tau); - - - - meyer GET; - -int main() -{ - - - // DECLARATION OF MEYER's PARAMETERS - - /* Meyer's p255: "We consider a beam of initially parallel particles - with mass m1 and atomic number Z1 which penetrates a material - layer of thickness t with N atoms per unit volume of mass m2 and - atomic number Z2. We assume that each scattering centre will be - effective according to the scattering cross section - dsigma/dÅ‹=¶a²f(Å‹)/ŋ² within a spherical volume of radius r0 - */ - - - double a, a0, N; // screnqing parameter a - double Z1, Z2, D; // charges numbers Z - double epsilon, b; // reduced energy epsilon - double mass1, mass2; // masses of incident & target particles - double v; // velocity of incident particle - double eta, theta; // eta = epsilon*sin(theta/2), (theta, scatt. angle) - // cross section variable by Lindhard, Nielsen and Scharff - double eSquare = 1.44E-10; // squared electric charge of electron in keV*cm - - double tau,thetaSchlange, thick; - double Energy; - - std::cout<< "thickness? in µm/cm²" << std::endl; - std::cin>>thick; - thick=thick*1.0e-6/2;// density= 2g/cm³, - // we want the conversion of thick in centimeter! - - std::cout<<"Enter energy in keV: "; - std::cin>>Energy; - - - - // meyer's functions - double g1,g2; - double f1,f2; - - - - // EXPRESSION OF MEYER's PARAMETERS - - // The screening parameter - // (Z1 = 1, Z2 = 6, ScreeningPar = 2.5764E-9) - Z1 = 1; Z2 = 6; - a0=0.529e-8;//unit centimeter - D= exp(2/3*log(Z1))+exp(2/3*log(Z2)); - a=0.885*a0/sqrt(D);//the screening parameter - - // The reduced energy - mass1=1/9; - mass2=12; - // b= 2*Z1*Z2*eSquare*(mass1+mass2)/(mass1*mass2*v*v); - //b= Z1*Z2 * e²[keV*cm] * (m1+m2)/m2 * 1/Energy[keV] - b= Z1*Z2*eSquare*(mass1+mass2)/(mass2*Energy); - epsilon = a/b; - std::cout<<"\n€: "<>thetaSchlange; - - - GET.GFunctions(&g1,&g2,tau); - - std::cout<< "g1("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:w$MB_sy5{c|IPG-F<`ld9Ot0!2>}u+l66Q&L?3hmRyg;y4vXF`e%$hD^lXg+~hC5%qtO;fuVPD4EsPUFk@qF!JAp+MjTiXj?F3?`?J6a#* zUu5@9_Uam}TBhqe#039IWSLK6=n;;@BaoX!kx8ZgU(a493jIjs=Qx6Ix3nswS1z8-^ZbR?49cTlM@fgf+-;lq}B%mIH0~Z7)fC6=YClAKh z95Z8X00QYS^}u(1PBQ83(^F4 zh3R2a$L0SK&437tk+5ga! z0c*1VkRhO3_djGP8N|Qz&=}c&#YH1gU{(Lm7+4G*tSbL0LnA=6|0To!ONNDR=iho% zvK3fBk->kh;DEk^FA>BF4!#5+fn_%Ivj_(WuC^rj?;@T;wIWlQsN%3V@Sm^4r?k~z F{{?qoZIJ)~ diff --git a/geant4/LEMuSR/MEYER/testmeyer2.eps b/geant4/LEMuSR/MEYER/testmeyer2.eps deleted file mode 100644 index f0b9510..0000000 --- a/geant4/LEMuSR/MEYER/testmeyer2.eps +++ /dev/null @@ -1,703 +0,0 @@ -%!PS-Adobe-2.0 -%%Title: testmeyer2.eps -%%Creator: gnuplot 3.7 patchlevel 3 -%%CreationDate: Mon Apr 11 15:40:40 2005 -%%DocumentFonts: (atend) -%%BoundingBox: 50 50 554 770 -%%Orientation: Landscape -%%Pages: (atend) -%%EndComments -/gnudict 256 dict def -gnudict begin -/Color true def -/Solid false def -/gnulinewidth 5.000 def -/userlinewidth gnulinewidth def -/vshift -46 def -/dl {10 mul} def -/hpt_ 31.5 def -/vpt_ 31.5 def -/hpt hpt_ def -/vpt vpt_ def -/M {moveto} bind def -/L {lineto} bind def -/R {rmoveto} bind def -/V {rlineto} bind def -/vpt2 vpt 2 mul def -/hpt2 hpt 2 mul def -/Lshow { currentpoint stroke M - 0 vshift R show } def -/Rshow { currentpoint stroke M - dup stringwidth pop neg vshift R show } def -/Cshow { currentpoint stroke M - dup stringwidth pop -2 div vshift R show } def -/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def - /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def -/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } - {pop pop pop Solid {pop []} if 0 setdash} ifelse } def -/BL { stroke userlinewidth 2 mul setlinewidth } def -/AL { stroke userlinewidth 2 div setlinewidth } def -/UL { dup gnulinewidth mul /userlinewidth exch def - dup 1 lt {pop 1} if 10 mul /udl exch def } def -/PL { stroke userlinewidth setlinewidth } def -/LTb { BL [] 0 0 0 DL } def -/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def -/LT0 { PL [] 1 0 0 DL } def -/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def -/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def -/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def -/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def -/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def -/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def -/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def -/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def -/Pnt { stroke [] 0 setdash - gsave 1 setlinecap M 0 0 V stroke grestore } def -/Dia { stroke [] 0 setdash 2 copy vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke - Pnt } def -/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V - currentpoint stroke M - hpt neg vpt neg R hpt2 0 V stroke - } def -/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke - Pnt } def -/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M - hpt2 vpt2 neg V currentpoint stroke M - hpt2 neg 0 R hpt2 vpt2 V stroke } def -/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke - Pnt } def -/Star { 2 copy Pls Crs } def -/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath fill } def -/TriUF { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath fill } def -/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke - Pnt } def -/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath fill} def -/DiaF { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath fill } def -/Pent { stroke [] 0 setdash 2 copy gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore Pnt } def -/PentF { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath fill grestore } def -/Circle { stroke [] 0 setdash 2 copy - hpt 0 360 arc stroke Pnt } def -/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def -/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def -/C1 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - vpt 0 360 arc closepath } bind def -/C2 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C3 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C4 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C5 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc - 2 copy moveto - 2 copy vpt 180 270 arc closepath fill - vpt 0 360 arc } bind def -/C6 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C7 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 270 arc closepath fill - vpt 0 360 arc closepath } bind def -/C8 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C9 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 270 450 arc closepath fill - vpt 0 360 arc closepath } bind def -/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill - 2 copy moveto - 2 copy vpt 90 180 arc closepath fill - vpt 0 360 arc closepath } bind def -/C11 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 180 arc closepath fill - 2 copy moveto - 2 copy vpt 270 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C12 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C13 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 0 90 arc closepath fill - 2 copy moveto - 2 copy vpt 180 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/C14 { BL [] 0 setdash 2 copy moveto - 2 copy vpt 90 360 arc closepath fill - vpt 0 360 arc } bind def -/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill - vpt 0 360 arc closepath } bind def -/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto - neg 0 rlineto closepath } bind def -/Square { dup Rec } bind def -/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def -/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def -/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def -/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def -/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def -/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def -/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill - exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def -/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def -/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill - 2 copy vpt Square fill - Bsquare } bind def -/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def -/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def -/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill - Bsquare } bind def -/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill - Bsquare } bind def -/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def -/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy vpt Square fill Bsquare } bind def -/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill - 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def -/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def -/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def -/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def -/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def -/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def -/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def -/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def -/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def -/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def -/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def -/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def -/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def -/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def -/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def -/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def -/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def -/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def -/DiaE { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V closepath stroke } def -/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V closepath stroke } def -/TriUE { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V closepath stroke } def -/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V closepath stroke } def -/PentE { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - closepath stroke grestore } def -/CircE { stroke [] 0 setdash - hpt 0 360 arc stroke } def -/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def -/DiaW { stroke [] 0 setdash vpt add M - hpt neg vpt neg V hpt vpt neg V - hpt vpt V hpt neg vpt V Opaque stroke } def -/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M - 0 vpt2 neg V hpt2 0 V 0 vpt2 V - hpt2 neg 0 V Opaque stroke } def -/TriUW { stroke [] 0 setdash vpt 1.12 mul add M - hpt neg vpt -1.62 mul V - hpt 2 mul 0 V - hpt neg vpt 1.62 mul V Opaque stroke } def -/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M - hpt neg vpt 1.62 mul V - hpt 2 mul 0 V - hpt neg vpt -1.62 mul V Opaque stroke } def -/PentW { stroke [] 0 setdash gsave - translate 0 hpt M 4 {72 rotate 0 hpt L} repeat - Opaque stroke grestore } def -/CircW { stroke [] 0 setdash - hpt 0 360 arc Opaque stroke } def -/BoxFill { gsave Rec 1 setgray fill grestore } def -/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont -dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall -currentdict end definefont pop -end -%%EndProlog -%%Page: 1 1 -gnudict begin -gsave -50 50 translate -0.100 0.100 scale -90 rotate -0 -5040 translate -0 setgray -newpath -(Helvetica) findfont 140 scalefont setfont -1.000 UL -LTb -1.000 UL -LTa -490 280 M -6472 0 V -1.000 UL -LTb -490 280 M -63 0 V -6409 0 R --63 0 V -406 280 M -(-5) Rshow -1.000 UL -LTa -490 1045 M -6472 0 V -1.000 UL -LTb -490 1045 M -63 0 V -6409 0 R --63 0 V --6493 0 R -( 0) Rshow -1.000 UL -LTa -490 1811 M -6472 0 V -1.000 UL -LTb -490 1811 M -63 0 V -6409 0 R --63 0 V --6493 0 R -( 5) Rshow -1.000 UL -LTa -490 2576 M -6472 0 V -1.000 UL -LTb -490 2576 M -63 0 V -6409 0 R --63 0 V --6493 0 R -( 10) Rshow -1.000 UL -LTa -490 3341 M -6472 0 V -1.000 UL -LTb -490 3341 M -63 0 V -6409 0 R --63 0 V --6493 0 R -( 15) Rshow -1.000 UL -LTa -490 4107 M -6472 0 V -1.000 UL -LTb -490 4107 M -63 0 V -6409 0 R --63 0 V --6493 0 R -( 20) Rshow -1.000 UL -LTa -490 4872 M -6472 0 V -1.000 UL -LTb -490 4872 M -63 0 V -6409 0 R --63 0 V --6493 0 R -( 25) Rshow -1.000 UL -LTa -490 280 M -0 4592 V -1.000 UL -LTb -490 280 M -0 63 V -0 4529 R -0 -63 V -490 140 M -( 0) Cshow -1.000 UL -LTa -1299 280 M -0 4592 V -1.000 UL -LTb -1299 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 1) Cshow -1.000 UL -LTa -2108 280 M -0 4592 V -1.000 UL -LTb -2108 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 2) Cshow -1.000 UL -LTa -2917 280 M -0 4592 V -1.000 UL -LTb -2917 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 3) Cshow -1.000 UL -LTa -3726 280 M -0 4592 V -1.000 UL -LTb -3726 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 4) Cshow -1.000 UL -LTa -4535 280 M -0 4249 V -0 280 R -0 63 V -1.000 UL -LTb -4535 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 5) Cshow -1.000 UL -LTa -5344 280 M -0 4249 V -0 280 R -0 63 V -1.000 UL -LTb -5344 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 6) Cshow -1.000 UL -LTa -6153 280 M -0 4249 V -0 280 R -0 63 V -1.000 UL -LTb -6153 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 7) Cshow -1.000 UL -LTa -6962 280 M -0 4592 V -1.000 UL -LTb -6962 280 M -0 63 V -0 4529 R -0 -63 V -0 -4669 R -( 8) Cshow -1.000 UL -LTb -490 280 M -6472 0 V -0 4592 V --6472 0 V -490 280 L -1.000 UP -1.000 UL -LT0 -6311 4739 M -('testmeyer.out' us 1:3) Rshow -541 1045 Pls -591 1624 Pls -642 2186 Pls -692 2715 Pls -743 3186 Pls -793 3596 Pls -844 3932 Pls -895 4180 Pls -945 4352 Pls -996 4445 Pls -1046 4475 Pls -1097 4447 Pls -1147 4374 Pls -1198 4268 Pls -1248 4126 Pls -1299 3965 Pls -1350 3804 Pls -1400 3635 Pls -1451 3436 Pls -1501 3255 Pls -1552 3090 Pls -1602 2908 Pls -1653 2740 Pls -1704 2590 Pls -1754 2431 Pls -1805 2286 Pls -1855 2166 Pls -1906 2043 Pls -1956 1929 Pls -2007 1836 Pls -2057 1743 Pls -2108 1657 Pls -2159 1595 Pls -2209 1533 Pls -2260 1472 Pls -2310 1412 Pls -2361 1355 Pls -2411 1303 Pls -2462 1271 Pls -2513 1241 Pls -2563 1211 Pls -2614 1184 Pls -2664 1158 Pls -2715 1135 Pls -2765 1119 Pls -2816 1104 Pls -2866 1090 Pls -2917 1077 Pls -2968 1066 Pls -3018 1056 Pls -3069 1047 Pls -3119 1040 Pls -3170 1034 Pls -3220 1028 Pls -3271 1023 Pls -3322 1020 Pls -3372 1016 Pls -3423 1013 Pls -3473 1011 Pls -3524 1009 Pls -3574 1008 Pls -3625 1007 Pls -3675 1006 Pls -3726 1005 Pls -3777 1004 Pls -3827 1003 Pls -3878 1003 Pls -3928 1003 Pls -3979 1003 Pls -4029 1004 Pls -4080 1005 Pls -4131 1006 Pls -4181 1007 Pls -4232 1009 Pls -4282 1010 Pls -4333 1012 Pls -4383 1014 Pls -4434 1016 Pls -4484 1017 Pls -4535 1019 Pls -4586 1020 Pls -4636 1021 Pls -4687 1023 Pls -4737 1024 Pls -4788 1026 Pls -4838 1027 Pls -4889 1029 Pls -4940 1030 Pls -4990 1032 Pls -5041 1033 Pls -5091 1035 Pls -5142 1036 Pls -5192 1037 Pls -5243 1039 Pls -5293 1040 Pls -5344 1041 Pls -5395 1042 Pls -5445 1042 Pls -5496 1043 Pls -5546 1044 Pls -5597 1045 Pls -5647 1046 Pls -5698 1046 Pls -5749 1047 Pls -5799 1047 Pls -5850 1048 Pls -5900 1048 Pls -5951 1049 Pls -6001 1049 Pls -6052 1049 Pls -6102 1050 Pls -6153 1050 Pls -6204 1050 Pls -6254 1050 Pls -6305 1051 Pls -6355 1051 Pls -6406 1051 Pls -6456 1051 Pls -6507 1051 Pls -6558 1051 Pls -6608 1051 Pls -6659 1051 Pls -6709 1050 Pls -6594 4739 Pls -1.000 UL -LT1 -6311 4599 M -(sin\(x\)*exp\(-x*x/1.\)*56) Rshow -6395 4599 M -399 0 V -490 1045 M -65 688 V -66 656 V -65 597 V -65 512 V -66 410 V -65 295 V -66 179 V -65 63 V -65 -42 V -66 -132 V -65 -206 V -65 -259 V -66 -294 V -65 -310 V -66 -310 V -65 -298 V -65 -275 V -66 -247 V -65 -216 V -65 -182 V -66 -151 V -65 -122 V -66 -96 V -65 -74 V -65 -55 V -66 -41 V -65 -30 V -65 -20 V -66 -14 V -65 -10 V -66 -6 V -65 -4 V -65 -2 V -66 -2 V -65 -1 V -65 0 V -66 0 V -65 -1 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -66 0 V -65 0 V -65 0 V -66 0 V -65 0 V -stroke -grestore -end -showpage -%%Trailer -%%DocumentFonts: Helvetica -%%Pages: 1 diff --git a/geant4/LEMuSR/MEYER/testmeyer2.pdf b/geant4/LEMuSR/MEYER/testmeyer2.pdf deleted file mode 100644 index c24fb2e2705a6b9725713a3c370598a7a987eebd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7728 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 GApZqKksc8M diff --git a/geant4/LEMuSR/MEYER/tkm.out b/geant4/LEMuSR/MEYER/tkm.out deleted file mode 100644 index 4165daf..0000000 --- a/geant4/LEMuSR/MEYER/tkm.out +++ /dev/null @@ -1,168 +0,0 @@ -0.125 1 0 -0.25 0.99446 0.11462 -0.375 0.98892 0.227963 -0.5 0.98338 0.340027 -0.625 0.97784 0.450813 -0.75 0.97009 0.559046 -0.875 0.954263 0.659905 -1 0.938436 0.757112 -1.125 0.922609 0.850668 -1.25 0.906782 0.940572 -1.375 0.888828 1.02437 -1.5 0.86805 1.10045 -1.625 0.847094 1.17149 -1.75 0.821486 1.23072 -1.875 0.795879 1.28405 -2 0.769708 1.3305 -2.125 0.743225 1.37033 -2.25 0.716743 1.40406 -2.375 0.690261 1.43169 -2.5 0.663779 1.4532 -2.625 0.636879 1.46765 -2.75 0.609912 1.47574 -2.875 0.582944 1.4776 -3 0.555976 1.47325 -3.125 0.529194 1.46319 -3.25 0.50473 1.45364 -3.375 0.480266 1.43846 -3.5 0.455803 1.41763 -3.625 0.431339 1.39117 -3.75 0.408111 1.3632 -3.875 0.387928 1.34041 -4 0.367745 1.31296 -4.125 0.347561 1.28086 -4.25 0.327378 1.24412 -4.375 0.308453 1.20766 -4.5 0.29077 1.17184 -4.625 0.27339 1.13321 -4.75 0.258448 1.10097 -4.875 0.243505 1.06529 -5 0.230337 1.03414 -5.125 0.217864 1.00316 -5.25 0.205391 0.969306 -5.375 0.192919 0.932588 -5.5 0.180446 0.893002 -5.625 0.171018 0.865965 -5.75 0.161808 0.837893 -5.875 0.152598 0.807704 -6 0.143389 0.7754 -6.125 0.134521 0.742867 -6.25 0.127624 0.71941 -6.375 0.120728 0.694369 -6.5 0.113832 0.667745 -6.625 0.106935 0.639537 -6.75 0.100686 0.613696 -6.875 0.0955769 0.593493 -7 0.0904673 0.572119 -7.125 0.0853578 0.549572 -7.25 0.0802482 0.525853 -7.375 0.0758915 0.505983 -7.5 0.0720861 0.488852 -7.625 0.0682807 0.47085 -7.75 0.0644753 0.451975 -7.875 0.0606698 0.432229 -8 0.0576442 0.417255 -8.125 0.0548232 0.403094 -8.25 0.0520023 0.388287 -8.375 0.0491813 0.372835 -8.5 0.046365 0.356773 -8.625 0.0442261 0.345356 -8.75 0.0420871 0.33345 -8.875 0.0399482 0.321055 -9 0.0378092 0.308171 -9.125 0.0358519 0.2963 -9.25 0.0345323 0.289324 -9.375 0.0332127 0.282047 -9.5 0.0318931 0.274469 -9.625 0.0305735 0.266588 -9.75 0.0292539 0.258407 -9.875 0.0279343 0.249925 -10 0.0266147 0.241141 -10.125 0.0252951 0.232057 -10.25 0.0239756 0.222672 -10.375 0.022656 0.212986 -10.5 0.0213364 0.203 -10.625 0.0201776 0.194263 -10.75 0.01948 0.189754 -10.875 0.0187824 0.185086 -11 0.0180849 0.180259 -11.125 0.0173873 0.175274 -11.25 0.0166897 0.17013 -11.375 0.0159921 0.164827 -11.5 0.0152945 0.159366 -11.625 0.0145969 0.153746 -11.75 0.0138993 0.147968 -11.875 0.0132018 0.142032 -12 0.0125042 0.135938 -12.125 0.0118979 0.130688 -12.25 0.0115092 0.127716 -12.375 0.0111205 0.124656 -12.5 0.0107319 0.121507 -12.625 0.0103432 0.118271 -12.75 0.00995451 0.114946 -12.875 0.00956583 0.111534 -13 0.00917716 0.108034 -13.125 0.00878848 0.104445 -13.25 0.00839981 0.100769 -13.375 0.00801114 0.0970055 -13.5 0.00762246 0.093154 -13.625 0.0072864 0.0898638 -13.75 0.00705598 0.0878127 -13.875 0.00682557 0.0857095 -14 0.00659516 0.0835544 -14.125 0.00636474 0.0813473 -14.25 0.00613433 0.0790882 -14.375 0.00590392 0.0767773 -14.5 0.0056735 0.0744145 -14.625 0.00544309 0.0719999 -14.75 0.00521268 0.0695336 -14.875 0.00498226 0.0670155 -15 0.00475185 0.0644458 -15.125 0.00453543 0.0620157 -15.25 0.0043429 0.0598664 -15.375 0.00415037 0.0576741 -15.5 0.00395783 0.0554386 -15.625 0.0037653 0.0531601 -15.75 0.00357277 0.0508385 -15.875 0.00338024 0.048474 -16 0.00318771 0.0460665 -16.125 0.00299517 0.0436161 -16.25 0.00280264 0.0411229 -16.375 0.00261011 0.0385868 -16.5 0.00241758 0.0360079 -16.625 0.00222505 0.0333863 -16.75 0.00203251 0.0307219 -16.875 0.00183998 0.0280149 -17 0.00164745 0.0252652 -17.125 0.00145492 0.022473 -17.25 0.00126239 0.0196382 -17.375 0.00106985 0.0167609 -17.5 0.000877323 0.0138411 -17.625 0.000684791 0.0108789 -17.75 0.000492259 0.00787437 -17.875 0.000299727 0.00482747 -18 0.000107195 0.00173827 -18.125 0 0 -18.25 0 0 -18.375 0 0 -18.5 0 0 -18.625 0 0 -18.75 0 0 -18.875 0 0 -19 0 0 -19.125 0 0 -19.25 0 0 -19.375 0 0 -19.5 0 0 -19.625 0 0 -19.75 0 0 -19.875 0 0 -20 0 0 -20.125 0 0 -20.25 0 0 -20.375 0 0 -20.5 0 0 -20.625 0 0 -20.75 0 0 -20.875 0 0 -21 0 0 diff --git a/geant4/LEMuSR/MEYER/txt.for b/geant4/LEMuSR/MEYER/txt.for deleted file mode 100644 index 2f741fe..0000000 --- a/geant4/LEMuSR/MEYER/txt.for +++ /dev/null @@ -1,1156 +0,0 @@ -c 462 ------------------------------------------------------------------------------- -c Konstanten und Variable fuer Berechnung der Winkelaufstreuung in Triggerfolie -c mittels Meyer-Formel (L.Meyer, phys.stat.sol. (b) 44, 253 (1971)): - - real g1, g2 ! Tabellierte Funktionen der Referenz - real effRedThick ! effektive reduzierte Dicke ('tau' der Referenz) - - -c - Parameter: - - real Z1, Z2 ! die atomaren Nummern von Projektil und Target - real a0 ! Bohrscher Radius in cm - real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der - ! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6) - ! bei Streichung von Z1 (vgl. Referenz, S. 268) - - real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a' - ! und dem ebenfalls bei Meyer angegebenem - ! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben) - real eSquare ! elektrische Ladung zum Quadrat in keV*cm - real HWHM2sigma ! Umrechnungsfaktor von (halber!) Halbwertsbreite - ! nach Sigma der Gaussfunktion - - real Na ! die Avogadrokonstante - real mMolC ! molare Masse von C in ug - real Pi ! die Kreiszahl - - parameter (Z1 = 1, Z2 = 6, a0 = 5.29E-9, ScreeningPar = 2.5764E-9) - parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10, HWHM2sigma = 1./1.17741) - parameter (Na = 6.022e23, mMolC = 12.011e6, Pi = 3.141592654) - - -c - Bei der Berechnung von Sigma auftretende Vorfaktoren. -c (Meyer_faktor 1 wird benoetigt fuer Berechnung der reduzierten Dicke aus der -c 'ug/cm2'-Angabe der Foliendicke. Meyer_faktor2 und Meyer_faktor3 werden -c direkt fuer die Berechnung von sigma aus den beiden tabellierten Funktionen -c g1 und g2 verwendet): - - real Meyer_Faktor1, Meyer_Faktor2, Meyer_Faktor3 - - parameter (Meyer_faktor1 = Pi*screeningPar*screeningPar * Na/mMolC) - ! Na/mMolC = 1/m(C-Atom) - parameter (Meyer_faktor2 = (2*Z1*Z2 * eSquare)/ScreeningPar * 180./Pi - + * HWHM2sigma) - parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer)) - - -c------------------------------------------------------------------------------- -c Kommentar zur Berechnung der Winkelaufstreuung nach Meyer: -c -c Als Bedingung fuer die Gueltigkeit der Rechnung wird verlangt, dass -c -c (1) die Anzahl n der Stoesse >> 20*(a/r0)^(4/3) sein muss. Fuer Protonen auf -c Graphit ist laut Referenz a/r0 gleich 0.26 (mit Dichte von 3.5 g/ccm habe -c ich einen Wert von 0.29 abgeschaetzt). Fuer Myonen hat man den selben -c Wert zu nehmen. Damit ergibt sich die Forderung, dass n >> 3.5 sein muss. -c -c (2) unabhaengig von (1) n >> 5 sein muss, was (1) also mit einschliesst. -c -c Mit n = Pi*r0*r0*Teilchen/Flaeche ergibt sich fuer eine Foliendicke von -c 3 ug/cm^2 als Abschaetzung fuer n ein Wert von 37. (r0 ueber r0 = 0.5 N^(1/3) -c und 3.5 g/ccm zu 8.9e-9 cm abgeschaetzt). D.h., dass die Bedingungen in -c unserem Fall gut erfuellt sind. -c In dem Paper wird eine Formel fuer Halbwertsbreiten angegeben. Ich habe nicht -c kontrolliert, in wie weit die Form der Verteilung tatsaechlich einer Gauss- -c verteilung entspricht. Zumindest im Bereich der Vorwaertsstreuung sollte -c die in diesem Programm verwendete Gaussverteilung aber eine sehr gute -c Naeherung abgeben. Abweichungen bei groesseren Winkeln koennten jedoch u. U. -c die absolute Streuintensitaet in Vorwaertsrichtung verfaelschen. - - - - - -c (...) - - -c 1071 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Falls 'fromScratch': -c Die in den ab hier beginnenden Startparameter-Schleifen gesetzten Werte -c werden gegebenenfalls weiter unten durch zufallsverteilte Offsets modi- -c fiziert. (-> 'Zufallschleife': 'do 100 randomloop_ = 1, n_par(0)) -c Andernfalls: -c Wurden waehrend ACCEL oder 'foilfile' fuer die Startparameter Zufalls- -c verteilungen verwendet, so werden die entsprechenden Groessen aus dem -c betreffenden NTupel eingelesen. -c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -c Startparameter: -c --------------- - - do 200 E0_ = par(1,ener),par(2,ener),par(3,ener) ! E0 - if (.NOT.random_E0) then - E0 = E0_ - v0_Betrag = sqrt(E0/Energie_Faktor) - endif - - if (E0InterFromFile) then - lowerE0 = E0Low(nInt(E0_)) - upperE0 = E0Low(nint(E0_+1)) - endif - - -c falls Energieverlustberechnung aus ICRU-Tabelle verlangt ist und mittlerer -c Energieverlust nicht fuer jedes Teilchen extra berechnet werden soll (sinnvoll -c wenn alle Teilchen gleiche Startenergie haben oder Streuung der Startenergien -c klein ist, so dass die Streuung des mittleren Energieverlustes vernachlaessigt -c werden kann): - - if (log_E_Verlust_ICRU .AND. .NOT.calculate_each) then - if (random_E0_equal) then - Ekin = E0_ + (upperE0+lowerE0)/2. - else - Ekin = E0_ - endif - if (Gebiet0.EQ.target .OR. Gebiet0.EQ.upToGrid1) then - Ekin = Ekin + q*(U_Tgt - U_F) - elseif (Gebiet0.EQ.upToGrid2) then - Ekin = Ekin + q*(U_G1 - U_F) - endif - call CALC_ELOSS_ICRU(Ekin,q,m,Thickness,mean_E_Verlust) - endif - - if (log_Meyer_F_Function) then - if (random_E0_equal) then - Ekin = E0_ + (upperE0+lowerE0)/2. - else - Ekin = E0_ - endif - if (Gebiet0.EQ.target .OR. Gebiet0.EQ.upToGrid1) then - Ekin = Ekin + q*(U_Tgt - U_F) - elseif (Gebiet0.EQ.upToGrid2) then - Ekin = Ekin + q*(U_G1 - U_F) - endif - effRedThick = Meyer_Faktor1 * Thickness - call Get_F_Function_Meyer(effRedThick,Ekin) - endif - - do 200 theta0_ = par(1,thetAng),par(2,thetAng),par(3,thetAng) ! theta0 - if (.NOT.random_angle) then - theta0 = theta0_ - Cos_theta0 = cosd(theta0) - Sin_theta0 = sind(theta0) - endif - do 200 phi0_ = par(1,phiAng),par(2,phiAng),par(3,phiAng) ! phi0 - if (.NOT.random_angle) then - phi0 = phi0_ - Cos_phi0 = cosd(phi0) - Sin_phi0 = sind(phi0) - endif - - do 200 y0_ = par(1,yPos),par(2,yPos),par(3,yPos) ! y0 - if (.NOT.random_pos) then - x0(2) = y0_ - endif - - do 200 z0_ = par(1,zPos),par(2,zPos),par(3,zPos) ! z0 - if (.NOT.random_pos) then - x0(3) = z0_ - endif - -c die folgenden parWert(n) werden u.U. in der 'Zufallsschleife' weiter unten -c abgeaendert. Hier werden sie in jedem Fall fuer Tabellenausgaben, Debug- -c angelegenheiten u.s.w. erst einmal mit den aktuellen Werten der -c entsprechenden Schleifen gefuellt: - - parWert(ener) = E0_ - parWert(thetAng) = theta0_ - parWert(phiAng) = phi0_ - parWert(yPos) = y0_ - parWert(zPos) = z0_ - - -c falls fruehere Simulation fortgefuehrt wird: -c Berechne diejenige Eventnummer in NTP_read, ab welcher die relevanten -c Simulationsparameter von ACCEL bzw. des 'FoilFiles' mit den gegenwaertigen -c MUTRACK-(Schleifen)-Parametern uebereinstimmen: - - if (.NOT.fromScratch) eventNr = firstEventNr() - - - - - - -c (...) - - - - - -c 3106 -c Einsprunglabel fuer Starts auf der Triggerfolie mit Startwinkelangaben -c im Kammersystem => transformiere Geschwindigkeitsvektor in das Triggersystem: - -111 if (alfaTD.NE.0) then - help1= v(1) ! zur Zwischenspeicherung - v(1) = help1*Cos_alfaTD + v(2)*Sin_alfaTD - v(2) = -help1*Sin_alfaTD + v(2)*Cos_alfaTD - endif - - -c - pruefe, ob das Projektil die Folie trifft: - -112 radiusQuad = x(2)*x(2) + x(3)*x(3) - If (radiusQuad.GT.radiusQuad_Folie) then - ! zurueckrechnen in das Kammersystem: - if (alfaTD.NE.0) then - help1= x(1) - x(1) = (help1-d_Folie_Achse)*Cos_alfaTD - - + x(2)*Sin_alfaTD + xTD - x(2) = (help1-d_Folie_Achse)*Sin_alfaTD + - + x(2)*Cos_alfaTD - help1= v(1) - v(1) = help1*Cos_alfaTD - v(2)*Sin_alfaTD - v(2) = help1*Sin_alfaTD + v(2)*Cos_alfaTD - else - x(1) = x(1) + xTD - d_Folie_Achse - endif - - destiny = code_vorbei - goto 555 - endif - - -c So verlangt, schreibe die aktuellen Trajektoriengroessen in das 'FoilFile': -c (hier ist sichergestellt, dass die Folie getroffen worden ist, Wechsel- -c wirkungen mit der Folie wurden aber noch nicht beruecksichtigt). -c HIER WERDEN 'X' UND 'V' IM TRIGGERSYSTEM ABGESPEICHERT! - - if (createFoilFile) then - ! falls die Flugzeit bis zur Triggerfolie verschmiert in das - ! NTupel aufgenommen werden soll: - if (smearS1Fo) then - call Gauss_Verteilung(sigmaS1Fo,help4) - S1FoOnly = t + help4 - endif - if (NTP_stop) then - Ekin=(v(1)*v(1)+v(2)*v(2)+v(3)*v(3))*Energie_Faktor - endif - call HFNT(NTP_write) - NTPalreadyWritten = .true. - endif - - -c - Zeitpunkt bei Erreichen der Folie sichern: - -113 S1Fo = t - if (createNTP.AND.Fo_triggered) fill_NTP = .true. - if (statNeeded(Nr_S1Fo)) call fill_statMem(S1Fo,Nr_S1Fo) - - - -c - Speichern der Koordinaten fuer die Statistiken: - - if (statNeeded(Nr_y_Fo)) then - call fill_statMem( x(2),Nr_y_Fo) - endif - if (statNeeded(Nr_z_Fo)) then - call fill_statMem( x(3),Nr_z_Fo) - endif - if (statNeeded(Nr_r_Fo)) then - radius = SQRT(x(2)*x(2) + x(3)*x(3)) - call fill_statMem(radius,Nr_r_Fo) - endif - - -c - speichere Auftreffort des Projektils fuer die Berechnung der Folienelektronen: - - if (generate_FE) then - x0FE(1) = x(1) - x0FE(2) = x(2) - x0FE(3) = x(3) - endif - - -c - falls nur bis zur Folie gerechnet werden soll, beende hier die Integration: - - if (upToTDFoilOnly) then - ! zurueckrechnen in das Kammersystem: - if (alfaTD.NE.0) then - help1= x(1) - x(1) = (help1-d_Folie_Achse)*Cos_alfaTD - - + x(2)*Sin_alfaTD + xTD - x(2) = (help1-d_Folie_Achse)*Sin_alfaTD + - + x(2)*Cos_alfaTD - help1= v(1) - v(1) = help1*Cos_alfaTD - v(2)*Sin_alfaTD - v(2) = help1*Sin_alfaTD + v(2)*Cos_alfaTD - else - x(1) = x(1) + xTD - d_Folie_Achse - endif - if (generate_FE) Gebiet = UpToExTD - goto 555 - endif - - -c - pruefe, ob das Projektil auf das Stuetzgitter aufschlaegt: - - if (testOnWireHit .AND. ran(seed).GT.TransTDFoil) then - destiny = code_Stuetzgitter - ! zurueckrechnen in das Kammersystem: - if (alfaTD.NE.0) then - help1= x(1) - x(1) = (help1-d_Folie_Achse)*Cos_alfaTD - - + x(2)*Sin_alfaTD + xTD - x(2) = (help1-d_Folie_Achse)*Sin_alfaTD + - + x(2)*Cos_alfaTD - help1= v(1) - v(1) = help1*Cos_alfaTD - v(2)*Sin_alfaTD - v(2) = help1*Sin_alfaTD + v(2)*Cos_alfaTD - else - x(1) = x(1) + xTD - d_Folie_Achse - endif - goto 555 - endif - - -c - Energieverlust und Winkelaufstreuung: - - if (log_E_Verlust .OR. log_Aufstreu) then - if (Debug_) then - Steps = Steps + 1 - call Output_Debug - endif - v_square = v(1)*v(1) + v(2)*v(2) + v(3)*v(3) - v_Betrag = SQRT(v_square) - Ekin = v_square * Energie_Faktor - endif - -c -- Energieverlust (vorerst nur Gaussverteilt): - - if (log_E_Verlust_defined.OR.log_Meyer_Gauss) then - ! Berechne Bahnwinkel relativ zur Folienebene fuer effektive Folien- - ! dicke: - alfa = atand(SQRT(v(2)*v(2)+v(3)*v(3))/v(1)) - endif - - if (log_E_Verlust) then - if (calculate_each) then - call CALC_ELOSS_ICRU(Ekin,q,m,Thickness,E_Verlust) - else - E_Verlust = mean_E_Verlust - endif - if (log_E_Verlust_defined) E_Verlust = E_Verlust / cosd(alfa) - if (debug_) write (lunLOG,*) ' mittlerer Energieverlust: ',E_Verlust - - ! Now we have the mean energy loss. We still have to modify it - ! according to the distribution of energy losses, i.e. - ! E_Verlust -> E_Verlust + delta_E_Verlust: - - delta_E_Verlust = 0. - if (log_E_Straggling_sigma) then -400 call Gauss_Verteilung(sigmaE,delta_E_Verlust) - if (debug_) write (lunLOG,*) ' sigmaE,delta_E_Verlust: ',sigmaE,delta_E_Verlust - if (E_Verlust+delta_E_Verlust.LT.0.) goto 400 - elseif (log_E_Straggling_equal) then -410 delta_E_Verlust = lowerE + (upperE - lowerE)*ran(seed) - if (E_Verlust+delta_E_Verlust.LT.0) goto 410 - elseif (log_E_Straggling_Lindhard) then - ! Streuung in Abhaengigkeit von mittlerer Energie in Folie: - call E_Straggling_Lindhard(Ekin-0.5*E_Verlust,m,sigmaE) -420 call Gauss_Verteilung(sigmaE,delta_E_Verlust) - if (debug_) write (lunLOG,*) ' sigmaE,delta_E_Verlust: ',sigmaE,delta_E_Verlust - if (E_Verlust+delta_E_Verlust.LT.0.) goto 420 - elseif (log_E_Straggling_Yang) then - ! Streuung in Abhaengigkeit von mittlerer Energie in Folie! - call E_Straggling_Yang(Ekin-0.5*E_Verlust,m,sigmaE) -430 call Gauss_Verteilung(sigmaE,delta_E_Verlust) - if (debug_) write (lunLOG,*) ' sigmaE,delta_E_Verlust: ',sigmaE,delta_E_Verlust - if (E_Verlust+delta_E_Verlust.LT.0.) goto 430 - endif - - if (E_Verlust+delta_E_Verlust.GE.Ekin) then - destiny = code_stopped_in_foil - goto 555 - endif - E_Verlust = E_Verlust + delta_E_Verlust - - ! help1 == Reduzierungsfaktor fuer Geschw.Betrag - help1 = sqrt( (Ekin - E_Verlust)/Ekin ) - v(1) = help1 * v(1) - v(2) = help1 * v(2) - v(3) = help1 * v(3) - v_Betrag = help1 * v_Betrag - if (debug_) write (lunLOG,*) ' Energieverlust: ',E_Verlust - endif - -c -- Winkelaufstreuung (vorerst nur Gaussverteilt): - - if (log_aufstreu) then - if (log_Meyer_F_Function) then - call throwMeyerAngle(thetaAufstreu) - else - if (log_Meyer_Gauss) then - if (log_E_Verlust) Ekin = Ekin - .5 * E_Verlust ! mittlere Energie - effRedThick = Meyer_Faktor1 * Thickness / cosd(alfa) - call g_Functions(g1,g2,effRedThick) - sigmaAufstreu = Meyer_Faktor2 / Ekin * (g1 + Meyer_Faktor3*g2) - if (debug_) then - write (lunLOG,*) ' effekt. red. Dicke: ',effRedThick - write (lunLOG,*) ' Sigma(Streuwinkel): ',sigmaAufstreu - endif - endif - - call Gauss_Verteilung_theta(sigmaAufstreu,thetaAufstreu) - endif - - st0 = sind(thetaAufstreu) - ct0 = cosd(thetaAufstreu) - phiAufstreu = 360.*ran(seed) - - v_xy = SQRT(v(1)*v(1) + v(2)*v(2)) ! v_xy stets groesser 0 - ! wegen v(1)>0 - - help1 = v(1) - help2 = v(2) - help3 = v_Betrag*st0*cosd(phiAufstreu)/v_xy - help4 = st0*sind(phiAufstreu) - - v(1) = ct0*help1 - help3*help2 - help4*help1*v(3)/v_xy - v(2) = ct0*help2 + help3*help1 - help4*help2*v(3)/v_xy - v(3) = ct0*v(3) + help4*v_xy - if (debug_) write (lunLOG,*) ' Aufstreuung: theta, phi =', - + thetaAufstreu,phiAufstreu - endif - - if (Debug_ .AND. (log_E_Verlust .OR. log_Aufstreu)) then - call Output_Debug - endif - - -c - Neutralisierung in der Folie? - - if (log_neutralize) then - if (neutral_fract(q_).EQ.-1.0) then - v_square = v(1)*v(1) + v(2)*v(2) + v(3)*v(3) - Ekin = v_square * Energie_Faktor - call chargeStateYields(Ekin,m,YieldPlus,YieldNeutral) - YieldNeutral = 100. * YieldNeutral - else - YieldNeutral = neutral_fract(q_) - endif - if (100.*ran(seed).LE.YieldNeutral) then - q = 0. - qInt = 0 - if (debug_) then - write (lunLOG,*) ' Teilchen wurde neutralisiert' - endif - nNeutral = nNeutral + 1 - else - nCharged = nCharged + 1 - endif - endif - -c::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: - - -c (...) -c4300 -c=============================================================================== - - - OPTIONS /EXTEND_SOURCE - - SUBROUTINE G_Functions(G1,G2,tau) -c ================================= - -c Diese Routine gibt in Abhaengigkeit von der reduzierten Dicke 'tau' -c Funktionswerte fuer g1 und g2 zurueck. g1 und g2 sind dabei die von -c Meyer angegebenen tabellierten Funktionen fuer die Berechnung von Halbwerts- -c breiten von Streuwinkelverteilungen. (L.Meyer, phys.stat.sol. (b) 44, 253 -c (1971)) - - IMPLICIT NONE - - real tau,g1,g2 - real tau_(26),g1_(26),g2_(26) - real help - - integer i - - DATA tau_ /0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, - + 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, - + 10.0, 12.0, 14.0, 16.0, 18.0, 20.0 / - - DATA g1_ /0.050,0.115,0.183,0.245,0.305,0.363,0.419,0.473,0.525,0.575, - + 0.689,0.799,0.905,1.010,1.100,1.190,1.370,1.540,1.700,1.850, - + 1.990,2.270,2.540,2.800,3.050,3.290 / - DATA g2_ / 0.00,1.25,0.91,0.79,0.73,0.69,0.65,0.63,0.61,0.59, - + 0.56,0.53,0.50,0.47,0.45,0.43,0.40,0.37,0.34,0.32, - + 0.30,0.26,0.22,0.18,0.15,0.13 / - - if (tau.LT.tau_(1)) then - write(*,*) - write(*,*)'SUBROUTINE G_Functions:' - write(*,*)' Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:' - write(*,*)' aktuelles tau ist kleiner als kleinster Tabellenwert:' - write(*,*)' tau = ',tau - write(*,*)' tau_(1) = ',tau_(1) - write(*,*) - STOP - endif - - i = 1 - -10 i = i + 1 - if (i.EQ.27) then - write(*,*) - write(*,*)'SUBROUTINE G_Functions:' - write(*,*)' Fehler bei Berechnung der g-Funktionen fuer Winkelaufstreuung:' - write(*,*)' aktuelles tau ist groesser als groesster Tabellenwert:' - write(*,*)' tau = ',tau - write(*,*)' tau_(26) = ',tau_(26) - write(*,*) - STOP - elseif (tau.gt.tau_(i)) then - goto 10 - endif - - -c lineare Interpolation zwischen Tabellenwerten: - - help = (tau-tau_(i-1))/(tau_(i)-tau_(i-1)) - - g1 = g1_(i-1) + help*(g1_(i)-g1_(i-1)) - g2 = g2_(i-1) + help*(g2_(i)-g2_(i-1)) - - - END - - -c=============================================================================== - - options /extend_source - - subroutine Get_F_Function_Meyer(tau,Ekin) -c ========================================= - - implicit none - - real tau - real Ekin - - real thetaSchlange,thetaSchlangeMax - real theta,thetaMax,thetaStep - real f1,f2,F - - -c------------------------------------ -c - Parameter: - - real Z1, Z2 ! die atomaren Nummern von Projektil und Target -c real a0 ! Bohrscher Radius in cm - real screeningPar ! Screeningparameter 'a' in cm fuer Teilchen der - ! Kernladungszahl Z1=1 in Kohlenstoff (Z2 = 6) - ! bei Streichung von Z1 (vgl. Referenz, S. 268) - - real r0Meyer ! r0(C) berechnet aus dem screeningParameter 'a' - ! und dem ebenfalls bei Meyer angegebenem - ! Verhaeltnis a/r0=0.26 (vgl. Referenz, S. 263 oben) - real eSquare ! elektrische Ladung zum Quadrat in keV*cm - - real Pi ! die Kreiszahl - -c parameter (a0 = 5.29E-9) - parameter (Z1 = 1, Z2 = 6, ScreeningPar = 2.5764E-9) - parameter (r0Meyer = 9.909E-9, eSquare = 1.44E-10) - parameter (Pi = 3.141592654) - - real Meyer_Faktor3 - real Meyer_Faktor4 - real zzz ! 'Hilfsparameter' - real Meyer_Faktor5 - - parameter (Meyer_faktor3 = (screeningPar/r0Meyer) * (screeningPar/r0Meyer)) - parameter (Meyer_faktor4 = screeningPar / (2.*Z1*Z2*eSquare) * Pi/180.) - parameter (zzz = screeningPar / (2.*Z1*Z2*eSquare)) - parameter (Meyer_faktor5 = zzz*zzz / (8*Pi*Pi)) - -c------------------------------------ - - integer nBin,nBinMax - parameter (nBinMax=201) - real value(0:nBinMax) /0.,nBinMax*0./ - real area(nBinMax) / nBinMax*0./ - real integ(0:nBinMax) /0.,nBinMax*0./ - common /MeyerTable/ value,area,integ,thetaStep,nBin - - integer i - real rhelp - - integer HB_memsize - parameter(HB_memsize=500000) - real memory(HB_memsize) - COMMON /PAWC/ memory - - -c nur noch fuer Testzwecke: - - real fValues(203) - real fValuesFolded(203) - - integer idh - parameter (idh = 50) - - INCLUDE 'mutrack$sourcedirectory:COM_DIRS.INC' - character filename*20 ! Name der Ausgabe-Dateien - COMMON /filename/ filename - -c------------------------------------------------------------------------------- - -c Festlegen des maximalen Theta-Wertes sowie der Schrittweite: - - if (tau.LT.0.2) then - write(*,*) 'Subroutine ''Get_F_Function_Meyer'':' - write(*,*) 'Effektive Dicke ist kleiner als 0.2 => kann ich nicht ... => STOP' - call exit - elseif (tau.LE.2.) then - ! => Tabelle A - thetaSchlangeMax = 4.0 - elseif (tau.LE.8.) then - ! => Tabelle B - thetaSchlangeMax = 7.0 - elseif (tau.LE.20.) then - ! => Tabelle C - thetaSchlangeMax = 20.0 - else - write(*,*) 'Subroutine ''Get_F_Function_Meyer'':' - write(*,*) 'Effektive Dicke ist groesser als 20 => kann ich nicht ... => STOP' - call exit - endif - - thetaMax = thetaSchlangeMax / Meyer_Faktor4 / Ekin - if (thetaMax.GT.50) then - thetaStep = .5 - elseif (thetaMax.GT.25) then - thetaStep = .25 - elseif (thetaMax.GT.12.5) then - thetaStep = .125 - else - thetaStep = .0625 - endif - - -c Tabelle der F-Werte erstellen: - - nBin = 0 - do theta = thetaStep, thetaMax, thetaStep - - ! Berechne aus theta das 'reduzierte' thetaSchlange (dabei gleich - ! noch von degree bei theta in Radiant bei thetaSchlange umrechnen): - - thetaSchlange = Meyer_faktor4 * Ekin * theta - - ! Auslesen der Tabellenwerte fuer die f-Funktionen: - - call F_Functions_Meyer(tau,thetaSchlange,f1,f2) - if (thetaSchlange.EQ.-1) then - ! wir sind jenseits von thetaSchlangeMax - goto 10 - endif - - ! Berechnen der Streuintensitaet: - F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2) - - nBin = nBin + 1 - if (nBin.GT.nBinMax) then - write(*,*) 'nBin > nBinMax => EXIT' - call exit - endif - value(nBin) = sind(theta)*F - - fValues(nBin+1) = F ! fuer Testzwecke - fValuesFolded(nBin+1) = sind(theta)*F ! fuer Testzwecke - - enddo - - -c Berechnen der Flaecheninhalte der einzelnen Kanaele sowie der Integrale: - -10 do i = 1, nBin - area(i) = (value(i)+value(i-1))/2. * thetaStep - integ(i) = integ(i-1) + area(i) - enddo - - -c Normiere totale Flaeche auf 1: - - rHelp = integ(nBin) - do i = 1, nBin - value(i) = value(i) / rHelp - area(i) = area(i) / rHelp - integ(i) = integ(i) / rHelp - enddo - - -c vorerst noch: gib Tabelle in Datei und Histogrammfile aus: - - ! Berechne die Werte fuer theta=0: - - call F_Functions_Meyer(tau,0.,f1,f2) - F = Meyer_faktor5 * Ekin*Ekin * (f1 - Meyer_faktor3*f2) - fValues(1) = F - fValuesFolded(1) = 0. - - ! Gib die Werte in das Tabellenfile aus: - -c theta = 0. -c open (10,file=outDir//':'//filename//'.TAB',status='NEW') -c do i = 1, nBin+1 -c write(10,*) theta, fValues(i), fValuesFolded(i) -c theta = theta + thetaStep -c enddo -c close (10) - - - ! Buchen und Fuellen der Histogramme: - - call HBOOK1(idh,'F',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.) - call HPAK(idh,fValues) - call HRPUT(idh,outDir//':'//filename//'.RZ','N') - call HDELET(idh) - - call HBOOK1(idh+1,'F*sin([q])',nBin+1,-0.5*thetaStep,(real(nBin)+0.5)*thetaStep,0.) - call HPAK(idh+1,fValuesFolded) - call HRPUT(idh+1,outDir//':'//filename//'.RZ','U') - call HDELET(idh+1) - - - END - - -c=============================================================================== - - options /extend_source - - subroutine throwMeyerAngle (theta) -c ================================== - - implicit none - - real lowerbound,y1,y2,f,root,radiant,fraction - integer bin,nBin - integer nBinMax - parameter (nBinMax=201) - - real theta,thetaStep - real value(0:nBinMax) /0.,nBinMax*0./ - real area(nBinMax) / nBinMax*0./ - real integ(0:nBinMax) /0.,nBinMax*0./ - common /MeyerTable/ value,area,integ,thetaStep,nBin - - real rhelp - - real random - integer seed - common /seed/ seed - - -c bin: Nummer des Bins, innerhalb dessen das Integral den Wert von -c random erreicht oder ueberschreitet: - - random = ran(seed) - - bin = 1 - do while (random.GT.integ(bin)) - bin = bin + 1 - if (bin.GT.nBin) then - write(*,*) 'error 1' - call exit - endif - enddo - - fraction = (random-integ(bin-1)) / (integ(bin)-integ(bin-1)) - y1 = value(bin-1) - y2 = value(bin) - f = thetaStep / (y2-y1) - rHelp = y1*f - - radiant = rHelp*rHelp + fraction*thetaStep*(y1+y2)*f - root = SQRT(radiant) - lowerBound = real(bin-1)*thetaStep - if (f.GT.0) then - theta = lowerBound - rHelp + root - else - theta = lowerBound - rHelp - root - endif - - - END - - -c=============================================================================== - - options /extend_source - - subroutine F_Functions_Meyer(tau,thetaSchlange,f1,f2) -c ===================================================== - - implicit none - -c Diese Routine gibt in Abhaengigkeit von 'thetaSchlange' und 'tau' -c Funktionswerte fuer f1 und f2 zurueck. f1 und f2 entsprechen dabei den -c bei Meyer angegebenen Funktion gleichen Namens. Die in dieser Routine -c verwendeten Tabellen sind eben dieser Referenz entnommen: -c L.Meyer, phys.stat.sol. (b) 44, 253 (1971) - - real tau,thetaSchlange - real f1, f2, f1_(2), f2_(2) - - integer column_,column,row - - integer iColumn - real weightCol, weightRow - -c------------------------------------------------------------------------------- - -c die Tabellendaten der Referenz (Tabellen 2 und 3): - - integer nColumn - parameter (nColumn = 25) - real tau_(nColumn) / - + 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0, - + 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 10., 12., 14., 16., 18., 20. / - - integer nRowA - parameter (nRowA = 25) - real thetaSchlangeA(nRowA) / - + .00, .05, .10, .15, .20, .25, .30, .35, .40, .45, .50, .60, - + .70, .80, .90, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.5, 3.0, 3.5, 4.0 / - - integer nRowB - parameter (nRowB = 24) - real thetaSchlangeB(nRowB) / - + 0.0, 0.2, 0.4, 0.5, 0.6, 0.8, 1.0, 1.2, 1.4, 1.5, 1.6, 1.8, - + 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0 / - - integer nRowC - parameter (nRowC = 24) - real thetaSchlangeC(nRowC) / - + 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, - + 7.0, 8.0, 9.0, 10., 11., 12., 13., 14., 15., 16., 18., 20. / - - - real f1_A(9,nRowA) - + /1.69E+2,4.55E+1,2.11E+1,1.25E+1,8.48E+0,6.21E+0,4.80E+0,3.86E+0,3.20E+0, - + 9.82E+1,3.72E+1,1.97E+1,1.20E+1,8.27E+0,6.11E+0,4.74E+0,3.83E+0,3.17E+0, - + 3.96E+1,2.58E+1,1.65E+1,1.09E+1,7.73E+0,5.82E+0,4.58E+0,3.72E+0,3.10E+0, - + 1.76E+1,1.58E+1,1.27E+1,9.26E+0,6.93E+0,5.38E+0,4.31E+0,3.55E+0,2.99E+0, - + 8.62E+0,1.01E+1,9.45E+0,7.58E+0,6.02E+0,4.85E+0,3.98E+0,3.33E+0,2.84E+0, - + 4.65E+0,6.55E+0,6.91E+0,6.06E+0,5.11E+0,4.28E+0,3.62E+0,3.08E+0,2.66E+0, - + 2.74E+0,4.45E+0,5.03E+0,4.78E+0,4.27E+0,3.72E+0,3.23E+0,2.82E+0,2.47E+0, - + 1.77E+0,3.02E+0,3.71E+0,3.76E+0,3.53E+0,3.20E+0,2.86E+0,2.55E+0,2.27E+0, - + 1.22E+0,2.19E+0,2.78E+0,2.96E+0,2.91E+0,2.73E+0,2.51E+0,2.28E+0,2.07E+0, - + 8.82E-1,1.59E+0,2.12E+0,2.35E+0,2.39E+0,2.32E+0,2.19E+0,2.03E+0,1.87E+0, - + 6.55E-1,1.20E+0,1.64E+0,1.88E+0,1.97E+0,1.96E+0,1.90E+0,1.79E+0,1.68E+0, - + 3.80E-1,7.15E-1,1.01E+0,1.22E+0,1.35E+0,1.40E+0,1.41E+0,1.39E+0,1.34E+0, - + 2.26E-1,4.45E-1,6.44E-1,8.08E-1,9.28E-1,1.01E+0,1.05E+0,1.06E+0,1.05E+0, - + 1.39E-1,2.80E-1,4.21E-1,5.45E-1,6.46E-1,7.22E-1,7.75E-1,8.07E-1,8.21E-1, - + 8.22E-2,1.76E-1,2.78E-1,3.71E-1,4.53E-1,5.21E-1,5.74E-1,6.12E-1,6.37E-1, - + 5.04E-2,1.11E-1,1.86E-1,2.57E-1,3.22E-1,3.79E-1,4.27E-1,4.65E-1,4.94E-1, - + 2.51E-2,5.60E-2,9.24E-2,1.31E-1,1.69E-1,2.02E-1,2.40E-1,2.71E-1,2.97E-1, - + 1.52E-2,3.20E-2,5.08E-2,7.23E-2,9.51E-2,1.18E-1,1.41E-1,1.63E-1,1.83E-1, - + 1.03E-2,2.05E-2,3.22E-2,4.55E-2,6.01E-2,7.53E-2,9.02E-2,1.05E-1,1.19E-1, - + 8.80E-3,1.48E-2,2.25E-2,3.13E-2,4.01E-2,5.03E-2,6.01E-2,7.01E-2,8.01E-2, - + 6.10E-3,1.15E-2,1.71E-2,2.28E-2,2.89E-2,3.52E-2,4.18E-2,4.86E-2,5.55E-2, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,1.71E-2,1.98E-2,2.28E-2,2.58E-2, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.90E-3,1.02E-2,1.16E-2,1.31E-2, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,4.90E-3,5.70E-3,6.40E-3,7.20E-3, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.90E-3,3.40E-3,3.90E-3,4.30E-3/ - - real f1_B(9,nRowB) - + /2.71E+0,1.92E+0,1.46E+0,1.16E+0,9.52E-1,8.03E-1,6.90E-1,5.32E-1,4.28E-1, - + 2.45E+0,1.79E+0,1.39E+0,1.12E+0,9.23E-1,7.82E-1,6.75E-1,5.23E-1,4.23E-1, - + 1.87E+0,1.48E+0,1.20E+0,9.96E-1,8.42E-1,7.24E-1,6.32E-1,4.98E-1,4.07E-1, - + 1.56E+0,1.30E+0,1.09E+0,9.19E-1,7.89E-1,6.86E-1,6.03E-1,4.80E-1,3.95E-1, - + 1.28E+0,1.11E+0,9.62E-1,8.33E-1,7.27E-1,6.40E-1,5.69E-1,4.59E-1,3.81E-1, - + 8.23E-1,7.90E-1,7.29E-1,6.64E-1,6.01E-1,5.44E-1,4.94E-1,4.12E-1,3.49E-1, - + 5.14E-1,5.36E-1,5.29E-1,5.07E-1,4.78E-1,4.47E-1,4.16E-1,3.60E-1,3.13E-1, - + 3.19E-1,3.58E-1,3.76E-1,3.78E-1,3.70E-1,3.57E-1,3.45E-1,3.08E-1,2.76E-1, - + 2.02E-1,2.40E-1,2.64E-1,2.77E-1,2.82E-1,2.80E-1,2.65E-1,2.59E-1,2.39E-1, - + 1.67E-1,1.96E-1,2.20E-1,2.36E-1,2.44E-1,2.47E-1,2.45E-1,2.35E-1,2.21E-1, - + 1.33E-1,1.61E-1,1.85E-1,2.02E-1,2.12E-1,2.18E-1,2.18E-1,2.14E-1,2.03E-1, - + 8.99E-2,1.12E-1,1.32E-1,1.48E-1,1.59E-1,1.67E-1,1.68E-1,1.75E-1,1.72E-1, - + 6.24E-2,7.94E-2,9.50E-2,1.09E-1,1.20E-1,1.29E-1,1.35E-1,1.42E-1,1.43E-1, - + 4.55E-2,5.74E-2,6.98E-2,8.11E-2,9.09E-2,9.92E-2,1.06E-1,1.15E-1,1.19E-1, - + 3.35E-2,4.22E-2,5.19E-2,6.11E-2,6.95E-2,7.69E-2,8.33E-2,9.28E-2,9.85E-2, - + 2.50E-2,3.16E-2,3.92E-2,4.66E-2,5.35E-2,6.00E-2,6.57E-2,7.49E-2,8.13E-2, - + 1.90E-2,2.40E-2,2.99E-2,3.58E-2,4.16E-2,4.70E-2,5.20E-2,6.05E-2,6.70E-2, - + 1.47E-2,1.86E-2,2.32E-2,2.79E-2,3.25E-2,3.70E-2,4.12E-2,4.89E-2,5.51E-2, - + 8.10E-3,1.04E-2,1.30E-2,1.57E-2,1.84E-2,2.12E-2,2.40E-2,2.93E-2,3.42E-2, - + 4.80E-3,6.20E-3,7.70E-3,9.30E-3,1.09E-2,1.26E-2,1.44E-2,1.79E-2,2.14E-2, - + 2.80E-3,3.80E-3,4.70E-3,5.70E-3,6.70E-3,7.50E-3,8.90E-3,1.13E-2,1.36E-2, - + 1.70E-3,2.30E-3,2.90E-3,3.60E-3,4.20E-3,4.90E-3,5.60E-3,7.20E-3,8.80E-3, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,2.00E-3,2.80E-3,3.50E-3, - + 0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,0.00 ,8.80E-4,1.20E-3,1.60E-3/ - - real f1_C(7,nRowC) - + /3.65E-1,2.62E-1,2.05E-1,1.67E-1,1.41E-1,1.21E-1,1.05E-1, - + 3.33E-1,2.50E-1,1.95E-1,1.61E-1,1.36E-1,1.18E-1,1.03E-1, - + 2.75E-1,2.18E-1,1.76E-1,1.48E-1,1.27E-1,1.11E-1,9.80E-2, - + 2.04E-1,1.75E-1,1.50E-1,1.29E-1,1.13E-1,1.01E-1,9.00E-2, - + 1.41E-1,1.31E-1,1.19E-1,1.08E-1,9.71E-2,8.88E-2,8.01E-2, - + 9.32E-2,9.42E-2,9.10E-2,8.75E-2,8.00E-2,7.44E-2,6.91E-2, - + 5.98E-2,6.52E-2,6.72E-2,6.62E-2,6.40E-2,6.12E-2,5.82E-2, - + 3.83E-2,4.45E-2,4.80E-2,4.96E-2,4.98E-2,4.90E-2,4.77E-2, - + 2.46E-2,3.01E-2,3.40E-2,3.65E-2,3.79E-2,3.84E-2,3.83E-2, - + 1.59E-2,2.03E-2,2.39E-2,2.66E-2,2.85E-2,2.97E-2,3.04E-2, - + 1.04E-2,1.37E-2,1.66E-2,1.92E-2,2.12E-2,2.27E-2,2.37E-2, - + 4.39E-3,6.26E-3,8.26E-3,9.96E-3,1.15E-2,1.29E-2,1.41E-2, - + 2.06E-3,3.02E-3,4.24E-3,5.28E-3,6.32E-3,7.32E-3,8.26E-3, - + 1.21E-3,1.69E-3,2.24E-3,2.85E-3,3.50E-3,4.16E-3,4.82E-3, - + 8.50E-4,1.10E-3,1.38E-3,1.65E-3,2.03E-3,2.45E-3,2.88E-3, - + 5.90E-4,7.40E-4,8.50E-4,9.90E-4,1.23E-3,1.49E-3,1.71E-3, - + 3.90E-4,4.60E-4,5.20E-4,6.30E-4,7.65E-4,9.65E-4,1.12E-3, - + 2.40E-4,2.70E-4,3.10E-4,3.98E-4,4.97E-4,6.03E-4,7.18E-4, - + 1.50E-4,1.70E-4,2.15E-4,2.70E-4,3.35E-4,4.35E-4,5.00E-4, - + 1.00E-4,1.20E-4,1.46E-4,1.90E-4,2.40E-4,2.88E-4,3.43E-4, - + 0.00 ,0.00 ,1.04E-4,1.41E-4,1.80E-4,2.10E-4,2.50E-4, - + 0.00 ,0.00 ,8.20E-5,1.06E-4,1.38E-4,1.58E-4,1.85E-4, - + 0.00 ,0.00 ,5.40E-5,7.00E-5,8.60E-5,1.03E-4,1.20E-4, - + 0.00 ,0.00 ,4.20E-5,5.40E-5,6.50E-5,7.70E-5,8.80E-5/ - - real f2_A(9,nRowA) - + / 3.52E+3, 3.27E+2, 9.08E+1, 3.85E+1, 2.00E+1, 1.18E+1, 7.55E+0, 5.16E+0, 3.71E+0, - + 2.58E+2, 1.63E+2, 7.30E+1, 3.42E+1, 1.85E+1, 1.11E+1, 7.18E+0, 4.96E+0, 3.59E+0, - + -1.12E+2, 4.84E+0, 3.56E+1, 2.34E+1, 1.45E+1, 9.33E+0, 6.37E+0, 4.51E+0, 3.32E+0, - + -5.60E+1,-1.12E+1, 9.87E+0, 1.24E+1, 9.59E+0, 7.01E+0, 5.16E+0, 3.83E+0, 2.91E+0, - + -2.13E+1,-1.22E+1,-2.23E+0, 3.88E+0, 5.15E+0, 4.65E+0, 3.87E+0, 3.12E+0, 2.45E+0, - + -8.25E+0,-9.58E+0,-5.59E+0,-1.40E+0, 1.76E+0, 2.71E+0, 2.71E+0, 2.35E+0, 1.95E+0, - + -3.22E+0,-6.12E+0,-5.28E+0,-2.87E+0,-1.92E-1, 1.32E+0, 1.69E+0, 1.74E+0, 1.48E+0, - + -1.11E+0,-3.40E+0,-4.12E+0,-3.08E+0,-6.30E-1, 3.60E-1, 9.20E-1, 1.03E+0, 1.04E+0, - + -2.27E-1,-2.00E+0,-2.93E+0,-2.69E+0,-1.48E+0,-3.14E-1, 2.69E-1, 5.28E-1, 6.09E-1, - + 1.54E-1,-1.09E+0,-2.10E+0,-2.15E+0,-1.47E+0,-6.77E-1,-1.80E-1, 1.08E-1, 2.70E-1, - + 3.28E-1,-6.30E-1,-1.50E+0,-1.68E+0,-1.34E+0,-8.43E-1,-4.60E-1,-1.85E-1,-4.67E-3, - + 3.32E-1,-2.06E-1,-7.32E-1,-9.90E-1,-9.42E-1,-8.20E-1,-6.06E-1,-4.51E-1,-3.01E-1, - + 2.72E-1,-3.34E-2,-3.49E-1,-5.65E-1,-6.03E-1,-5.79E-1,-5.05E-1,-4.31E-1,-3.45E-1, - + 2.02E-1, 2.80E-2,-1.54E-1,-3.00E-1,-3.59E-1,-3.76E-1,-4.60E-1,-3.40E-1,-3.08E-1, - + 1.38E-1, 4.84E-2,-5.56E-2,-1.44E-1,-2.04E-1,-2.39E-1,-2.54E-1,-2.49E-1,-2.48E-1, - + 9.47E-2, 4.86E-2,-1.08E-2,-6.44E-2,-1.02E-1,-1.34E-1,-1.62E-1,-1.79E-1,-1.87E-1, - + 5.33E-2, 3.71E-2, 1.85E-2, 1.63E-3,-1.69E-2,-3.69E-2,-5.66E-2,-7.78E-2,-9.33E-2, - + 3.38E-2, 2.40E-2, 1.62E-2, 9.90E-3, 3.76E-3,-4.93E-3,-1.66E-2,-3.05E-2,-4.22E-2, - + 2.12E-2, 1.56E-2, 1.05E-2, 7.80E-3, 7.92E-3, 6.30E-3, 3.20E-4,-8.50E-3,-1.66E-2, - + 1.40E-2, 9.20E-3, 5.30E-3, 4.70E-3, 6.31E-3, 8.40E-3, 5.30E-3, 8.80E-4,-3.30E-3, - + 9.20E-3, 4.70E-3, 1.70E-3, 2.60E-3, 4.49E-3, 6.60E-3, 6.00E-3, 4.70E-3, 2.80E-3, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 / - - real f2_B(9,nRowB) - + / 2.75E+0, 1.94E+0, 9.13E-1, 6.06E-1, 4.26E-1, 3.14E-1, 2.40E-1, 1.51E-1, 1.03E-1, - + 1.94E+0, 1.16E+0, 7.56E-1, 5.26E-1, 3.81E-1, 2.87E-1, 2.23E-1, 1.43E-1, 9.78E-2, - + 5.85E-1, 5.04E-1, 4.10E-1, 3.30E-1, 2.69E-1, 2.17E-1, 1.78E-1, 1.22E-1, 8.71E-2, - + 7.83E-2, 2.00E-1, 2.35E-1, 2.19E-1, 1.97E-1, 1.73E-1, 1.48E-1, 1.08E-1, 7.93E-2, - + -1.82E-1, 1.56E-2, 1.04E-1, 1.36E-1, 1.38E-1, 1.31E-1, 1.19E-1, 9.46E-2, 7.19E-2, - + -2.71E-1,-1.66E-1,-7.29E-2,-4.74E-3, 3.60E-2, 5.50E-2, 6.28E-2, 5.98E-2, 5.09E-2, - + -1.87E-1,-1.58E-1,-1.09E-1,-5.80E-2,-2.03E-2, 2.48E-3, 1.99E-2, 3.36E-2, 3.27E-2, - + -1.01E-1,-1.05E-1,-8.95E-2,-6.63E-2,-3.93E-2,-2.38E-2,-9.22E-3, 8.47E-3, 1.52E-2, - + -5.19E-2,-6.47E-2,-6.51E-2,-5.62E-2,-4.51E-2,-3.49E-2,-2.45E-2,-8.19E-3, 2.05E-3, - + -3.68E-2,-4.89E-2,-5.36E-2,-5.06E-2,-4.27E-2,-3.65E-2,-2.80E-2,-1.33E-2,-3.47E-3, - + -2.33E-2,-3.69E-2,-4.41E-2,-4.38E-2,-3.97E-2,-3.50E-2,-2.88E-2,-1.60E-2,-6.68E-3, - + -8.76E-3,-2.07E-2,-2.90E-2,-3.17E-2,-3.09E-2,-2.92E-2,-2.63E-2,-1.79E-2,-1.03E-2, - + -1.20E-3,-1.11E-2,-1.90E-2,-2.20E-2,-2.32E-2,-2.24E-2,-2.10E-2,-1.66E-2,-1.11E-2, - + 1.72E-3,-4.82E-3,-1.02E-2,-1.42E-2,-1.65E-2,-1.66E-2,-1.60E-2,-1.39E-2,-1.09E-2, - + 2.68E-3,-1.18E-3,-5.19E-3,-8.30E-5,-1.01E-2,-1.14E-2,-1.16E-2,-1.16E-2,-9.99E-3, - + 2.81E-3, 8.21E-4,-1.96E-3,-3.99E-3,-5.89E-3,-7.13E-3,-8.15E-3,-9.05E-3,-8.60E-3, - + 2.61E-3, 1.35E-3,-2.99E-4,-1.79E-3,-3.12E-3,-4.44E-3,-5.61E-3,-7.01E-3,-7.27E-3, - + 2.06E-3, 1.45E-3, 4.64E-4,-5.97E-4,-1.71E-3,-2.79E-3,-3.84E-3,-5.29E-3,-5.90E-3, - + 1.07E-3, 9.39E-4, 8.22E-4, 3.58E-4,-1.15E-4,-6.60E-4,-1.18E-3,-2.15E-3,-2.88E-3, - + 4.97E-4, 5.46E-4, 6.15E-4, 5.56E-4, 3.14E-4, 9.80E-5,-1.30E-4,-5.98E-4,-1.07E-4, - + 1.85E-4, 3.11E-4, 4.25E-4, 4.08E-4, 3.63E-4, 3.04E-4, 2.24E-4, 2.80E-5,-2.10E-4, - + 4.80E-5, 1.48E-4, 2.44E-4, 2.80E-4, 3.01E-4, 3.11E-4, 3.13E-4, 2.40E-4, 1.10E-4, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 1.39E-4, 1.80E-4, 1.80E-4, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 4.38E-5, 7.30E-5, 8.40E-5/ - - real f2_C(7,nRowC) - + / 7.36E-2, 4.21E-2, 2.69E-2, 1.83E-2, 1.34E-2, 1.01E-2, 7.88E-3, - + 5.79E-2, 3.61E-2, 2.34E-2, 1.64E-2, 1.21E-2, 9.26E-3, 7.28E-3, - + 2.94E-2, 2.17E-2, 1.60E-2, 1.23E-2, 9.49E-3, 7.45E-3, 5.95E-3, - + 2.30E-3, 7.07E-3, 7.76E-3, 7.02E-3, 6.13E-3, 5.17E-3, 4.34E-3, - + -7.50E-3,-2.00E-3, 9.93E-4, 2.36E-3, 2.82E-3, 2.86E-3, 2.72E-3, - + -8.27E-3,-5.37E-3,-2.58E-3,-7.96E-4, 3.75E-4, 9.71E-4, 1.28E-3, - + -5.79E-3,-5.12E-3,-3.86E-3,-2.46E-3,-1.20E-3,-3.74E-4, 1.74E-4, - + -3.26E-3,-3.43E-3,-3.26E-3,-2.68E-3,-1.84E-3,-1.12E-3,-4.54E-4, - + -1.46E-3,-1.49E-3,-2.20E-3,-2.18E-3,-1.85E-3,-1.40E-3,-8.15E-4, - + -4.29E-4,-9.44E-4,-1.29E-3,-1.50E-3,-1.51E-3,-1.36E-3,-9.57E-4, - + -3.30E-5,-3.66E-4,-6.78E-4,-9.38E-4,-1.09E-3,-1.09E-3,-9.56E-4, - + 1.50E-4, 3.10E-5,-1.38E-4,-3.06E-4,-4.67E-4,-5.48E-4,-6.08E-4, - + 1.00E-4, 8.50E-5, 2.30E-5,-6.60E-5,-1.58E-4,-2.40E-4,-3.05E-4, - + 5.40E-5, 6.50E-5, 4.90E-5, 1.20E-5,-3.60E-5,-8.90E-5,-1.31E-4, - + 2.90E-5, 4.30E-5, 4.40E-5, 2.90E-5, 5.10E-6,-2.20E-5,-4.80E-5, - + 1.40E-5, 2.40E-5, 2.80E-5, 2.60E-5, 1.90E-5, 7.50E-6,-1.10E-5, - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , - + 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 , 0.00 / - - -c=============================================================================== - -c Bestimme, welche Reihen der Tabellen fuer Interpolation benoetigt werden: - - if (tau.LT.tau_(1)) then - write(*,*) 'tau is less than the lowest tabulated value:' - write(*,*) 'tau = ',tau - write(*,*) 'minimum = ',tau_(1) - call exit - elseif (tau.GT.tau_(nColumn)) then - write(*,*) 'tau is greater than the highest tabulated value:' - write(*,*) 'tau = ',tau - write(*,*) 'maximum = ',tau_(nColumn) - call exit - endif - - column_ = 2 - do while (tau.GT.tau_(column_)) - column_ = column_ + 1 - enddo - ! Das Gewicht der Reihe zu groesserem Tau: - weightCol = (tau-tau_(column_-1)) / (tau_(column_)-tau_(column_-1)) - - -c Besorge fuer gegebenes 'thetaSchlange' die interpolierten f1- und f2 -Werte -c der beiden relevanten Reihen: -c iColumn = 1 => Reihe mit hoeherem Index -c iColumn = 2 => Reihe mit kleinerem Index - - - iColumn = 1 - - -5 continue - - if (column_.LE.9) then ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ! Werte aus 1. Tabelle: 0.2 <= tau <= 1.8 - - column = column_ - - if (thetaSchlange.LT.thetaSchlangeA(1)) then - write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:' - write(*,*) 'thetaSchlange = ',thetaSchlange - write(*,*) 'minimum = ',thetaSchlangeA(1) - call exit - elseif (thetaSchlange.GT.thetaSchlangeA(nRowA)) then -c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:' -c write(*,*) 'thetaSchlange = ',thetaSchlange -c write(*,*) 'maximum = ',thetaSchlangeA(nRowA) -c call exit - thetaSchlange = -1. - RETURN - endif - - row = 2 - do while (thetaSchlange.GT.thetaSchlangeA(row)) - row = row + 1 - enddo - ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange: - weightRow = (thetaSchlange-thetaSchlangeA(row-1)) / - + (thetaSchlangeA(row)-thetaSchlangeA(row-1)) - - f1_(iColumn) = (1.-weightRow) * f1_A(column,row-1) + - + weightRow * f1_A(column,row) - f2_(iColumn) = (1.-weightRow) * f2_A(column,row-1) + - + weightRow * f2_A(column,row) - - - elseif (column_.LE.18) then ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ! Werte aus 2. Tabelle: 2.0 <= tau <= 7.0 - - column = column_ - 9 - - if (thetaSchlange.LT.thetaSchlangeB(1)) then - write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:' - write(*,*) 'thetaSchlange = ',thetaSchlange - write(*,*) 'minimum = ',thetaSchlangeB(1) - call exit - elseif (thetaSchlange.GT.thetaSchlangeB(nRowB)) then -c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:' -c write(*,*) 'thetaSchlange = ',thetaSchlange -c write(*,*) 'maximum = ',thetaSchlangeB(nRowB) -c call exit - thetaSchlange = -1. - RETURN - endif - - row = 2 - do while (thetaSchlange.GT.thetaSchlangeB(row)) - row = row + 1 - enddo - ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange: - weightRow = (thetaSchlange-thetaSchlangeB(row-1)) / - + (thetaSchlangeB(row)-thetaSchlangeB(row-1)) - - f1_(iColumn) = (1.-weightRow) * f1_B(column,row-1) + - + weightRow * f1_B(column,row) - f2_(iColumn) = (1.-weightRow) * f2_B(column,row-1) + - + weightRow * f2_B(column,row) - - - else ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ! Werte aus 3. Tabelle: 8.0 <= tau <= 20. - - column = column_ - 18 - - if (thetaSchlange.LT.thetaSchlangeC(1)) then - write(*,*) 'thetaSchlange is less than the lowest tabulated value in table 1:' - write(*,*) 'thetaSchlange = ',thetaSchlange - write(*,*) 'minimum = ',thetaSchlangeC(1) - call exit - elseif (thetaSchlange.GT.thetaSchlangeC(nRowC)) then -c write(*,*) 'thetaSchlange is greater than the highest tabulated value in table 1:' -c write(*,*) 'thetaSchlange = ',thetaSchlange -c write(*,*) 'maximum = ',thetaSchlangeC(nRowC) -c call exit - thetaSchlange = -1. - RETURN - endif - - row = 2 - do while (thetaSchlange.GT.thetaSchlangeC(row)) - row = row + 1 - enddo - ! Gewicht des Tabellenwertes zu groesseren ThetaSchlange: - weightRow = (thetaSchlange-thetaSchlangeC(row-1)) / - + (thetaSchlangeC(row)-thetaSchlangeC(row-1)) - - f1_(iColumn) = (1.-weightRow) * f1_C(column,row-1) + - + weightRow * f1_C(column,row) - f2_(iColumn) = (1.-weightRow) * f2_C(column,row-1) + - + weightRow * f2_C(column,row) - - - endif ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - if (iColumn.EQ.1) then - column_ = column_ - 1 - iColumn = 2 - goto 5 - endif - - f1 = weightCol*f1_(1) + (1.-weightCol)*f1_(2) - f2 = weightCol*f2_(1) + (1.-weightCol)*f2_(2) - - - END - - -c=============================================================================== -