4Misc_Start k7ROGI'XX  Rt=T'winspoolHP LaserJet 4200 PCL6Ne02:Ne00:HP LaserJet 4200 PCL640 PS2 3dXXLetter.HP LaserJet 4200 PCL62xeKTQWKKR8Xt2CJGYrEh ۸P?ш~}tss/|=ޑ} ٶ힚\@U4 M u^L}6-&Eqy~ok7e*d 2sM2 w\"_/\# p7j$=ӐOG%>dggp!ŜAǟ!ZwN-nk鍖yϥOR0k$#'B2+MV& wŨǥ'IژW (U]y8q;1\v\\zrF Л֥ j ROGI'XXp>><4!*8 WINSPOOLHP LaserJet 4MLPT1:HP LaserJet 4M@g XXLetter 8 1/2 x 11 in@MSUDNHP LaserJet 4M;d ROGI'XXp>><4!*8 WINSPOOLHP LaserJet 4MLPT1:HP LaserJet 4M@g XXLetter 8 1/2 x 11 in@MSUDNHP LaserJet 4M;d ROGI'XXp>><4!*8 WINSPOOLHP LaserJet 4MLPT1:HP LaserJet 4M@g XXLetter 8 1/2 x 11 in@MSUDNHP LaserJet 4M;d oSummary_Layout_2D;ROGI'XX tREP/winspoolHP LaserJet 4V/4MV PostScripthp4mvHP LaserJet 4V/4MV PostScriptG 4dXA4PRIV'''' oSummary_Layout_2D_2;ROGI'XX tREP/winspoolHP LaserJet 4V/4MV PostScripthp4mvHP LaserJet 4V/4MV PostScriptG 4dXA4PRIV'''' oRValues_contour_2D_layout;ROGI'XX tREP/winspoolHP LaserJet 4V/4MV PostScripthp4mvHP LaserJet 4V/4MV PostScriptG 4dXA4PRIV'''' oRValues_3D_layout;ROGI'XX tREP/winspoolHP LaserJet 4V/4MV PostScripthp4mvHP LaserJet 4V/4MV PostScriptG 4dXA4PRIV'''' oLayout0;ROGI'XX tREP/winspoolHP LaserJet 4V/4MV PostScripthp4mvHP LaserJet 4V/4MV PostScriptG 4dXA4PRIV'''' osummary_layout_3D;ROGI'XX tREP/winspoolHP LaserJet 4V/4MV PostScripthp4mvHP LaserJet 4V/4MV PostScriptG 4dXA4PRIV'''' oSummary_layout_3D_2;ROGI'XX tREP/winspoolHP LaserJet 4V/4MV PostScripthp4mvHP LaserJet 4V/4MV PostScriptG 4dXA4PRIV'''' oSummary_layout_3D_1;ROGI'XX tREP/winspoolHP LaserJet 4V/4MV PostScripthp4mvHP LaserJet 4V/4MV PostScriptG 4dXA4PRIV'''' ROGI'XXp>><4!*8 WINSPOOLHP LaserJet 4MLPT1:HP LaserJet 4M@g XXLetter 8 1/2 x 11 in@MSUDNHP LaserJet 4M;d  ROGI'XXp>><4!*8 WINSPOOLHP LaserJet 4MLPT1:HP LaserJet 4M@g XXLetter 8 1/2 x 11 in@MSUDNHP LaserJet 4M;d ^Graph*@@??WDashSettings#  !CommandHNormal@ Times New Roman<HHHH$$HistoryHNormal@ Times New Roman<HHHH$$4History4History4History4History4History4HistoryProcedure Normal@ Arial<HHHH$$4Procedure 4Procedure 4Procedure 4Procedure 4Procedure 4Procedure |homeH@dZxC:ims103:Course:MEIS:rhack:test4:C:ims103:Course:MEIS:rhack:test4\Course\MEIS\rhacktest4*VXP `3E(9wXr# wwklwwB_vtemppathB:dWuQ:TmCheck:check:check2_100:Q:TmCheck:check:check2_100TmCheck\checkcheck2_100est4*VXP `3E(9wXr# wwklwwB_  4Misc_End tXOPState_Start@ Data Browserrse\MEIS\rhack\sSurface Plottereck2_100:est4:4XOPState_End RK[;`<˚f'& ףpm?VM?I?ʡ??na?ʡE?Cl[?)\?ʡE?xF?(\?X9F?A`?K7i?Gz?:v?0$?Q?X9Ȯ?t?"F?2Z?0$?K7?Clo?}?5^Q?Mb8?'1"?i|? ?Dl? b?> ףp?Cl?|?5n?-?= ףp?w/?Gz?C ?Mb?K7Y?أp= w?K7A?Cl?n?8A`P?~jt3?> ףp-?S㥛?ʡ?NbX9?NbX9?(\R?/d?%C?Q?R?h|??sh|?[d;O?n:?(\_?V-?|?5?43333c?m?&C??n?(\?Clw?K7?d;O?:vO??~jt? ףp=?/$A?:v?x&?L7A`u?V-?|?5^?S?d;O?F?Q1?I +g?S㥛?Q?M?ףp= ?Mb?V-?|?5??np?Vm?RValue-??z z ҳ=o2@u@MЀ@.@]J1 5~@Ȥ L @} ԁ@ wŀ@(\el@tf"/~@@݁@j݀@Z@vSsw~@Fn@Vgq[@W!@#cV>@o&@]`rM@,֦K@#@@@ @'@@@`2(@`@s @@<@@@@`@Q>@@z@ۑ@@@ @p@@@oU@~m@?@@[@@c3@+@R6@l@@@`A@`Ӈ@̇@@Lx@ɇ@lL@8@‰@@̋@FɌ@ @,@ ;@ȩ@7@ >i@Bő@Y"@F@6@g@``@@ J@/Y@ v@`]@S@Ms@`H"@"@^N *expt_bin1t?$Ҽ7Cs;CqJC&dCCC]C7C?CC:C~ Df*DEDVDXD/QDED.3DwD]D0D CCCCD%2D!D8D2SD?iD+vD`DD݅D}D%DDkrD|D~DDg}DSzDpzD{D(yDwDquDuDvmD_DWDODED>1Dd/Dp.DA1D#|?DkHDPD'aD:pDm}D DD*ЋD5ݎD DnȈD솋DtDzDk{DuDjDaD^YDQD`3LDʧDD Z?D>De>Db;DL>D`cBDDDND8XDd^D0JfDhmDdqwD؁D@NDADID*DDT5DMD8DDRPD|ɒDQD{DDlD3GAA.sim_fitt?%Z z SG}?8׃ ?&;?_ew;]?s?X"j|?^ny?&j?&?5>;h"?xQV4?.ܭםF?Zz X?+k?U*}?@?I?JF?97?V>;?)_N?oQ?*L ?\N82?/?rA?S?}d?&lu?_?w뻘?L ?#7=O?XR??7V?V+0E?ꛕ?!?n2?`*W)C?,T?He? v? 鲆?(dU?g|?j2u?[/?fwc??j4 ?Jk ?*[sg?~m*?H;?ϾSK?:]3-[?az.k?#{?˄ ?v?Iϸ?kb|?m3?.v`exp_fitt?%Z z ]? ?d"?~[ 4?{P?hDZ?kv?C?癙?M`q?}N? ?{V?^dy9?# U?p?ɨ&?9\s\?E9q?? ?/pG? 8?MO/?R J?H{d?a?w:l?Nen?̂S?r]'?C/? =J'?`\>9?+(wS?v$1m?찇?ŎW?Wr?M?~?J拼H?V ??ɦ"?AX:?pq?UT?Hz?30C?ty&1?sH?l% `?Db.Ew?SW?scQX?:0lF?,+7"?hE?B?ƾG?čEM-?nNZD?8z|Z?L0$q?nm?(p?܁#ɳ?'~CC|CZCC&C}_CCC CACyCCCC"CZCCC C:CrCVfit_P3_RValueZp \?11|l>)|>`> >=>>? ?g???IW ? ?n ? ?/?.n?l??+??Da???R??0?~??,????;?;??c??3?z?6????!?Y??~ ?t! ? ??#?/N?b?a?M>8>">>!>>>K>>9>~T>C>>F> >I>]>E>>>=>(`z>0zj>NI>c8>u'>>>x4=&==8b==<fit_P2_RValueZp \?C <C <]AhA]sAC}A;AAAAgYA֛A'3A1nAAAWA!AAA?iAAA\AfARAxAeAQAxA~AcA'ADAKAǫAAeAA A(A2AAA6AIA@*{Ew@DIf@: X@e^uK U@dǜY@Af[@@@l[@^dc@t~kk@<(w@E@T"jhu@q'N`@+Q@NSjeT@#}\@ f^@jxPBeX@3]@(|f@x'ht@@<~JQs@Jgݟ\@w1"vP@ڱV@my`!a@)Ca@0uR@#pb@"ko@ΫJ8x@ߩnmk@@lX@Q@^l`@隸f@}d@V "rW@R*!BKQ@ ~!a@,A3o@P8kXw@gh@2eW@H hU@ǜwnc@wʷh@? d@b`y2Y@|_R@V+`@6$n@"v@Ɔ$h@xۄY@CUY@nIf@Jj@3Хf@Hq]@ʊOV@رlsa@Fn@ΣI0{1?2&N?i5?u?eV?U~\n?8? S%?)9P?")|? ~c?P5/6?K`|!?uЁ?rc>?bT?cL?@η?ˮ?Q ?;?ts? ;4??7,B?1m=?Q$?"a?5 J?5?OWb?B9?aTM+?c_.G?xN?c/j>vu?4^?ӫސL`'?tvG GVK?C%i2?[ tya?Ư.@?o?zQ?1"2?m?܉hmz?R|dzu?ŏB3?:Dn b@HDgb@.{rfactorgoodt?z z Nt/eR@6}١S@hS@*.8S@]WPS@7׃hS@eQ.рS@ S@EJS@-S@y:S@S?dɿ^?vj?k8н ??? @VY@+(bu@w?If?h͖)?Z/y@uK@!!@Of#@6@#@a\U @*e @Y@W؊;?뷽W?ŸӅ? "?5T?л?6G?w/,?NQw&?ћV$+ ?}4?V^?UehC?ep?vA7?A?X5B?E ?~?[s? +?{?c1#4?5?)2J3?x?~X? N???`/\?y?7DPj?݆2?<S2?* "?re?ej?Zl?oz?o|?EMꦢ?Zh?yeF?j&%p? 4$?u֍V??@t++m?a7渿?9?5dW?LS??8Bp?2Hg?LMg?ef?bfIr?5_T?1fJ:^?Oh]_?-??iB͙?nB"b?e) o ?#g?K[R?i]@8/Wĥ]@Ssim3?*Z z ?@+sim4?*Z z ,@@Q@sim5?*Z z ףp= <@(\e@Psim6?*Z z ?@Osim7?*Z z ??sim8?*Z z Q?sim9?*Z z @sim10?*Z z {Gz?{Gz?sim11?*Z z Q?Q?^Usim12?*Z z @@Usim13?*Z z ??sim14?*Z z Q?-Msim15?*Z z #~j@^I +@@sim16?*Z z )\(?)\(?sim17?*Z z Q?Q?DUsim18?*Z z @@oUsim19?*Z z @@sim20?*Z z Q?b&sim21?*Z z Zd@|?5^?:!sim22?*Z z 333333@333333@sim23?*Z z {Gz?{Gz?8Tsim24?*Z z @ @Tsim25?*Z z ??sim26?*Z z Q?sim27?*Z z @JTsim28?*Z z @@,sim29?*Z z (\µ?(\µ?2Ssim30?*Z z $@"@Ssim31?*Z z ??sim32?*Z z Q?`%sim33?*Z z Zd@|?5^?nYsim34?*Z z K7@K7@+sim35?*Z z (\µ?(\µ?Ssim36?*Z z *@(@&@,@Ssim37?*Z z ????^sim38?*Z z Q?Q?={sim39?*Z z #~j@Zd@|?5^?^I +@isim40?*Z z J +V!@ ףp=@ ףp=@J +V!@*sim41?*Z z (\µ?(\µ?(\µ?(\µ?Rsim42?*Z z 2@.@1@0@Rsim43?*Z z ????bsim44?*Z z Q?Q?{sim45?*Z z #~j@ @^I +@bsim46?*Z z S㥛'@ ףp= &@S㥛'@ ףp= &@*sim47?*Z z (\µ?(\µ?(\µ?(\µ?Qsim48?*Z z 3@6@5@4@}Rsim49?*Z z ????fsim50?*Z z Q?Q?sim51?*Z z Zd@|?5^? @msim52?*Z z (\O,@T㥛-@T㥛-@(\O,@)sim53?*Z z (\µ?(\µ?(\µ?(\µ?Psim54?*Z z 9@8@7@:@Qsim55?*Z z ????`sim56?*Z z Q?Q??ysim57?*Z z #~j@Zd@|?5^?^I +@sim58?*Z z m2@ ףp=J1@ ףp=J1@m2@(sim59?*Z z (\µ?(\µ?(\µ?(\µ?Osim60?*Z z >@;@=@<@Psim61?*Z z ????dsim62?*Z z Q?Q?ysim63?*Z z #~j@ @^I +@0sim64?*Z z /$55@l4@/$55@l4@(sim65?*Z z (\µ?(\µ?(\µ?(\µ?Osim66?*Z z ?@A@@@@@Psim67?*Z z ????^sim68?*Z z Q?Q?sim69?*Z z Zd@|?5^? @Fsim70?*Z z (\7@MbX8@MbX8@(\7@'sim71?*Z z (\µ?(\µ?(\µ?(\µ?sim72?*Z z B@B@A@C@Osim73?*Z z ????bsim74?*Z z Q?Q?Awsim75?*Z z #~j@Zd@|?5^?^I +@]sim76?*Z z vz;@R:@R:@vz;@'sim77?*Z z (\µ?(\µ?(\µ?(\µ?sim78?*Z z E@C@D@D@}Osim79?*Z z ????fsim80?*Z z Q?Q?wsim81?*Z z #~j@ @^I +@ssim82?*Z z w/>@Gz=@w/>@Gz=@&sim83?*Z z (\µ?(\µ?(\µ?(\µ?.pVeg1t?z z L7A`%?'1J?t??ʡES?`"ۙ?Zd;o?̼?9v?xi?Pn3?o?/$?K?(1*?\( ?~j?@5^I?e;OG?/݄?S+?(\b?h|?u?\(\?.阮?x)?Dl ?-?I +g? ףp=J??ʡE?{G?x??V-G? ףp=R? ףp=2?V-?(\­?Qn?Gz>?h|??T㥛?K7?K?S?1Z?K7a?x&1?,v?K7a?h|??I +?x&1?n?v?C ?X9v?Cl?"~*?{?A`r??p= ?-?|?5?Dl?Pn?x&?/$?GzD?@5^IL?-?A`Ђ?x&?/?#~j??x&?F?n?-?أp= ?M?i|??Gzd?ʡU?T㥛p?x&?x&1?~jt?QE?uV?C?-V?(\"?(1?|G?cX9?cX98?$?t?l?S?K7A?^I ?Mb@?nX?d? ףp=j?Fh?Zd;_?U?FP?Zd;O?ǫW_sigma?z z 85!? U?AR$E?.t`comparedsimt?z z u,@RC@ @e'>@ @Ęd|@M]["t@:>{@aS$9q@]*6/@aG@߄ @,@T`x@|P@Em%Q?@ZDH@@>@ADkx@7ف@Y;@h@vHZ@j8U@dq&@hڔ@d@@}@hb.b@_U6@u &@,{@m8^O@̮P @}"O@5@YC@@?@ĕ@O6@)s@@hP@ONmC@7" @V@|h@^l"8@]?@g@;@Ki2@>j@ٯ@rHq@}IXO"@ ˬo=@p@]@XojLJA@^o@1c @GQ1gt@Z:M@GK@7b@~p@IM0@GZ@0 8@(@KWJ@ZM>@#H>R@2k @[~@D|<@wvZ@[t@Y';@}},@c{c@ @N½`-@Gd[@0b[O@yq9@-e@_\@˻U+5@v3@0@0@ ]b@\+@Vd]@5@HTs?@J_@Fw@x@s:@ce&p@`o2@$kV@2M@~u0@@-@r~Eʬ@tq@{ t@Lc&[vO@)W!@fUm@k@@D@ ףp5?zG!?:v?i|?e?M?B`"?$?fffff&?X9v.?|?5^:?MR?"?v?K7A ?fffff?~jt?S?(\o?l1?MbX)?^I +?V?B`"{?+ٞ?S[?Q?&1?X9v.?ʡ?ʡ?(\??E? ?{G*?Clg?,?Mr?jt$?x&?Zd?J +? +i?#~j?V-o?+??X9Ȗ?!rhM?F?Q?x&1?S㥛T?`"?Ƌ?43333? rh?rh?ˡEM?Q?V-?x&?v?NbX9 ?43333 ?%C?jt??!rh?v?.Veg5t?z z K7A?l?v/? +?I +?(1z?Hz'?~?5^?(1J?cX9?@5^I?NbX9? ףp?rh?Gz?&1 ?Zd;Om?x? rh!?[d;O?:v?Q?&1?أp= ?V-?&1?33333?x&1?S?`"۹?-阮?!rh?Cl3?)\?X9N?PnS?0? rh?Q? ףp=j?@5^I?T㥛?m?43333?"~J?n0?jtD?^I [?Q;?zG?Q?-罹?p= ף?*? +y?T㥛?n?= ףp?V-"?S+?v/?l1?lR?x&1?Gz$?$?S[?n0?X96?ffffff?|?5^?l2?#~j?Qx?+'? +?Gz?K7A`?Q5?n?d;O?v_??Pn3?Q-?+?.Veg8t?z z /$f?6^I r?X9v?ʡE3?V-=?䥛 P?̡E?t&?@5^I,?43333?"~:?-?J +?L7A`5?+?fffff?x&18?|?5^z?)\8?Zd;O?(\?l??"~j ףpm?QnS?-G?S㥛?Sc?x&1?J +6?,η?cX9?%C?-g?l? rh?e;OW?$?fffff?x&1H?fffff?`"ۉ?+?V-?p= ? ?Gz?tVv?1Z,?&1?J +? ףp=? z?Cl_?8A`H?/$6??43333?$3?-W?E$?Pn?(\?zG?X9v?A`?Cl?/$?Mb? +?w/M?e;Og?Q?w/?V? ףp=?w/?jt?v/?Mb? ?S?Hz7?Gz?Zd;?|?5^?A`?Cl?X9v?Q?`"Y??MbXi?&1??jt?ʡ?)\h?#~j?:vo?:v? ףp}?X9v?Gz?Gz?cX9H?> ףp? rh?#~j?Hzw?m?n?K?x&1?p= ׃?lQ?rh|?E?K7?M?Zd?̡E?%C?(\??ʡE?S㥛?Zd;?t?x&1h?X9v?Su?:v?fffff?Cl?(\?p= ף?{GJ?n?䥛 ?5^I ?"n?MbXQ?:v7? ףp="?K7A?> ףp?x?v?K7A?"?Zd;??~jT?vZ?uVn?Hz?Mb?M?Q?mR?-'?uV>?ʡ?L7A`?"~?Dly?> ףp-?1Z?}?~jt?^I ;?(\? rh?|?5^?$?V-?!rh-? ףp=J?rhl?cX9?K? Zdk? ףp=?q= ף?A`? ? ?Clw?K7?d;O?:vO??~jt? ףp=?/$A?:v?x&?L7A`u?V-?|?5^?S?d;O?F?Q1?I +g?S㥛?Q?M?ףp= ?Mb?V-?|?5??np?Vm?.Veg11t?z z Q? rh?xf? r?X9?uVn?n?tf?NbX9?Cl{?K7)? ? +?MbX?w/?$?jt?QE?/$?&1?`"۹?m?6^I ?X9v?zG?MbX?n@?Gzt?K7 ?(\b?~jtS?Q??rh|W?n?ET?QS?(\-?/$?ƣ?,f?"~:?Q?l?'1?I +?ҝ?(\z?V-=?1Z?Zd;?jt?-?fffff?-?ʡE?-臨?"~?e;O?A`B?ʡEF?-?lB?Zd;?l?/$&?A`B?9v?"~?33333?c?K7?|?E? +y?n?I +?Dl?+پ?\(?I +?Q?,?(\…?Gz?|?5^?@5^I\?䥛 P?ˡEm?K7A?Mb?~jt?QE?uV?C?-V? "?{G??%C?v:?1Z?/$?l?S?Mb?~jt? rhA?nZ?ףp= g?$k?MbXi?Q`?+V?"~R?oQ?.'Veg12t?z z Cl?zG?-罹?On?Q>?^I  ?S?X9v?Ed?rh?S㥛?K7?ʡ?V?X9?SK?`"I?vJ?T㥛?Q?/?Fx?$?(\U?v/]?Gz? ףp=?@5^I?Zd;O?Q?̌?`"9?5^I ?$K?n?v2?p= +?~j??vz?Gz?Pn3?Q-?+?.Veg13t?z z I +'?&1:?|?5?n@?㥛 ? rh?NbX9?R?(\?bX9?'1?\(?vo?y&1?x&1?K7?Y?S?Q?w/m?p= #?v/?l?Mb?R?B`"??Q^?gffff?sh|?Zd?5^I R?rh|?%C;?Gz?X9?S?S?B`"?jtP?M?|?5?(\?a"ۡ?rh?#~jl?(\U?~j4?6^I ?^( ףpm?VM?I?ʡ??na?ʡE?Cl[?)\?ʡE?xF?(\?X9F?A`?K7i?Gz?:v?0$?Q?X9Ȯ?t?"F?2Z?0$?K7?Clo?}?5^Q?Mb8?'1"?i|? ?Dl? b?> ףp?Cl?|?5n?-?= ףp?w/?Gz?C ?Mb?K7Y?أp= w?K7A?Cl?n?8A`P?~jt3?> ףp-?S㥛?ʡ?NbX9?NbX9?(\R?/d?%C?Q?R?h|??sh|?[d;O?n:?(\_?V-?|?5?43333c?m?&C??n?(\?Clw?K7?d;O?:vO??~jt? ףp=?/$A?:v?x&?L7A`u?V-?|?5^?S?d;O?F?Q1?I +g?S㥛?Q?M?ףp= ?Mb?V-?|?5??np?Vm?.YVeg16t?z z V-]?㥛 ?E?Zd;O?QK?+?i|??6^I 2?̜?@5^I ?I +?&1?v ?S? ףp=:?;?F(?n?PnC?> ףpM?A`?%C ?V-R?:v?F?R?l?{G?/?Gz?X9?,Η?J +.?\(t?Hz?-W?K7Q?x&)?Zd;?ҝ?la?K7?A`?x?Q?^I ?Q?&1l?(\%?@5^I|?l?S?6^I 2?NbX9?On?h|??n*?ҭ?E?p= ף0?Se?J +F?K7?nʑ?S?'1?> ףp?ףp= ?d;O?jt?B`"?M? ףp=?43333?Vm?x?1Z?x?ƫ?`"۩?/$?v? ףp= ?{Gz?@5^I?~j?jtX?CL?MbXi?ƫ?h|??nʡ?lB?^I ?bX9?SS?n ?K7?Dl?X9Ȇ?/$6?l?i|??A`?S?K7A?^I ?@?䥛 X?c?jth?xf?|?5^?T? rP?:vO?. Veg17t?z z A`"?QH?.$U?Mb?q= ף?/d?I +?L7A`u?a"?> ףp]?%C ?9v?S?S?K7?? b?_I ?Kg?gffff?43333? rh?㥛 P?I +?jt?8A`?|?5^?Mbx?Gzn?(\2?8A` ?Cl?K71?V-g?Gz?w/5?x)?,?;O?~jt?Mb8? ?Dl?:v?x?Cl?Gzt?B`"K?2Z?Dl9?&C+?~j?Pn?%C?/$??On?Hz? rh?9v?tF?L7A`%?/ݔ? rh?mr?V-?/$?MbP?A`Т?V-?rh?bX98?gffff?Kw?Q?ʡE?Zd?rh?~j?n ?m?MbX9?V-? rh?S?QN?d;O'?/$1?Ra?0$?rh,?S?Pns?E$?Mb?$?uV^?On2?V-?jt?"~Z?Dl?K7A?/$?(\u?+?n ? *?@?xI?p= K?rh|G?\(?r= ף@?OnR?|GJ?x?"~:?S?x?"~?:v_?}?5^?-'?QK? rhQ?/T?5^I b?Mbp?jt?MbX?Pn#?p= ׳?e;OW?~j?(\?%C?"^?kt?"~J?9v?fffff?tV^?ʡE? ףp?v?䥛 ?Cl?/?Mb8?n?T㥛Ġ?Cl?V-?/?Q?K7A?PnC??*\X?v?l?M? ?Mbh??5^I?V-o?+??X9Ȗ?!rhM?F?Q?x&1?S㥛T?`"?Ƌ?43333? rh?rh?ˡEM?Q?V-?x&?v?NbX9 ?43333 ?%C?jt??!rh?v?.ϢVeg20t?z z n@?{GJ?n??Dl?K7A?cX9h?V-R?Dl ?M2?&1?!rh ?㥛 ?F?I +?V-O?A`Ђ?sh|??S?{G?5^I "?K?Hz?nʡ?$C?Zd?S#?a"?v?}?5^?@5^I?q= ף?F ?w/-?v??Gz?m?5^I B?J +?jt?Q?/$n?p= ףP?;O6?Hz?e;O?8A`?(\5?Fh?S[?/$?Dl)?V-"?v?x/=?t?J +?d;O?mR?Zd;?|?5^?"??Mb?&C?-?ʡ5?^I [?V-?1Z?x&?x&?Q? ףp=? r?(\?B`" ?+'?w/M?!rh}?zG?'1Z?#~j ?E?x?C?:v?J +v? +?d;O?:vO??~jt? ףp=?/$A?:v?x&?h|?u? rh? r?S?ʡ?Mb?n1?֣p= g?p= ד??:v?Q?V-?!rh?|?5??np?Vm?.}Veg21t?z z Mb?y&1L?)\?V-?I +?Dl)?F? ףp=?Pn3?ClG?@?6^I "?I +?x?K7?uVn?..?S㥛?S?Dl?/?SC?fffff?~jt?GzT? ?%C? rh?S?Ex?.$u?On?Y?33333?"&?fffffV?$K?r= ף ?V?Pn?RY?333333?Mb?jt?zG?= ףp?/݌? Z?n?Q(?v?Mb?`"ۙ?6^I r?K7AP?C\?(\¥?FH?\(l?%C+?p= ד?oʡ? r8?`")?HzG?w/m? r?Q%?K7i?)\H?,?Mb?rh?K?FX?R?Cl?uV?S?M?zG?Q?tV?lq??&1?zGQ?ףp= G?ʡe?Mb?Zd;?Zd?V-=?Mb?أp= ?x&Q?v/?L7A`?J +?p= ׃?(\2?\(?ˡE}?n ?B`"{?Mb?x?;?#~jT?bX9`?/$f?~jd?[?}?5^Q?~jL?K?.Veg22t?z z MbX?Cl? ?S㥛$?p= ?jt?K7?Dl9?x&?Cl?Q?0?Ss?Su?x&a?Cl ?B`"k??jt?d;O7?Cl;?!rh?ʡ?i|?u?-?/ݤ?~j?)\?!rhM?\(?+ٮ?J +6?&1\?"~?fffff?E4?i|?%? rh?-臨?Cl?5^I 2?V- ?V-?rh?ʡ?`"ۉ? j?K79?䥛 ?jt?sh|?Zd;?? ףp=Z?ףp= 7??Q.?Q~?Hz'?|?5N?V- ?Et?T㥛Ā??:v?L7A`?㥛 0?E(?V-?1Z?I +?MbXI?zGQ?tV?oq?&1?:v?(\?أp= ?|?5??|?5?)\(?ʡE?x&1?^I ?.F?䥛 ?{G*?w/]?6^I ?n*?2Z?8A`p?K7!?~jt?uV?Y?+.?Dl? ףp ?Hz?d;Ow?C?`"y?-F?`"?l?zG?X9V?Dl9?sh|?i|?e?U?S[?S?|?5^?l?/$?jtd?)\?~j?S㥛?jt?~jt?MbX?ףp= ?? ףp="?/$?NbX9D? ףpM? 2?'1?Q?ҝ?ˡE?x?S?tv?K?L7A`?oʁ?}?5^? r?%C?(\? rhQ?> ףp ?Pn?v?(\r?&1l?h|?e?Q5?> ףp?-?/$a?ˡE?x? Zd+?Ƌ?-?l?ףp= ? ?㥛 ?d;O7?B`"k?5^I ?VM?8A`?Q?On?X9? ?p?p= ?S㥛?ʡEM?/$?Gz?Pn?|?5^9?x?Q?vo?n ?M?V- ?(\?q= ף?}?5^)?"^?#~j?S?&1?+?x&1?0$?t?,w?Qh?/d?.cVeg26t?z z L7A`? + ?|?5^z?Hz?v?S{?R?Clg?(\?S{?-?M?-?i|?e?Zd;?(\?I +.?< ףp?W9vn?Mb?T㥛 ?|?5^z?/$?|?5?x&1?x?NbX9?Cl'?Q?v/?|?5^?(\?㥛 ?rh|?(\-?L7A`U?tVF?/$?Gz?^I ?~jtS?|?5.? ?ףp= ?h|??fffff?zG?fffffF?o??Cl?$?v?Zd?!rh?F?Cl+?A`?RA?K71?^I ?i|??+پ?ʡE?B`"? + ?@5^I?X9Ȗ?r= ף?t?Zd?-?$~j??أp= G?Vm?/$v?jtx?!rh}?Zd;O}?uV~?uV?q= ף?-f?{G?2Z? +I?">?|?5^?R?^I  ?ףp= ?E8?5^I ?Mb?B`"K?Q?/$?l?V-}?B`"+?jt?(\u?(\?lr?Zd;?A`?Zd;7?QP?S㥛\?5^I b?p= ף`?HzW?ʡM?q= ףH?HzG?.Veg27t?z z rh?cX9?cX9?F8?rh?`"Y?l?y&1l?sh|_?zG?/$a?1Z?/?%C??ʡE?> ףp? +?h|??~jt?a"?Zd;ߏ?"rh=?-?~jt#?xV?#~j?Gz$?rh?)\h?'1?w/?bX9?SS?d;O'? ?Q?!rhM?S?q= ף?T㥛?K7A`e?Cl??"~"?Zd;7?lA?S㥛D?q= ף@?Zd;O5?)?Cl#?A`"?.}Veg28t?z z أp= W?Pn?l?}?5^i?Pn?M?ʡE?n:?rh|?C?|?5^?X9f?|G?Mb?Mbp?(\?ltt?p= ף?B`"?Gz.?Gz?5^I ?Cl?x?K? +Y?䥛 ?,?Cl?%C?ʡEm?t?%C?Cl?n?ˡE ?!rh? ףpm?n? +?~jtc?V-?+?Q?S?;O?K7a?K7??C?zG!?S%?Gz4?ʡE?ˡE]?Hz?E?MbX?/$A?M?8A`?㥛 ?SU?ƻ?MB?d;O?|?5?/$V?Q ?gffff?uV?V]?K7A ?w/?K7i?&1?ʡE?\(?GzW?Zd;ߟ?n?p= ?Q?jt$?/$?+?K7?\(?|G?Mb?.Veg29t?z z y&1 ?0?Zd;O?K7?v?nJ?e;O?/$?j|??S?V-?~jtc?zG?}?ףp= ?d;O?'1z?M?S㥛?Gz??֣p= ?(\"?Qk?|?5?^I  ?`"9?2Z?S㥛$?K7?@5^I?*\?$~j|?gffffn?jt??h|??t?V-Z?أp= ?S㥛?-燐?rh|?jtp?y&1T?)\8?֣p= ?rh?2Z?Q?p= ?ˡE-?#~j ףp?"~j?K7I?&1\?/$?!rhM? rh? ?t?(\?+?ʡE?n?x1?RQ?">?"?zG?p= ף?$CK?x&1(?.? +?w/?m?Hzo?l*?M?ffffff?jt?'1Z?43333S?x&!?Q ? +9? +?*Χ?x&?*\H? rh?~jts?nJ?lb?{G?:v?K7A?zG?Gz?K?n?䥛 ?S?x?Zd;O-?7A`P?{GZ?uV^?Pnc?Pnc?-f?|?5^?(\?ףp= W?> ףp?'1z?RA?K79?-W?"~?m?+َ?q= ף0?`"?x&1?mB?䥛 ?F?x?0$u?l"?Cl?!rhm?|?5^?nj?Hz?Q?3?NbX9L? rX?!rh]?$[?MR?jtH?\(D?~jtC?.}$Veg32t?z z xI?Dl?/݄?x&1H?bX9?"~J?fffff?n`?Et?zGa?^I  ?jt?K7A?(\?On?p= [?A`"[?xF?Dl)?+N?kt?Hzg?/$a?R?B`"? r?أp= ?V-R?On?:v?Gz?I +?㥛 ?h|??8A`?V-/?Hz?x?x?Zd;W? +!?= ףp?Gz?~jt?"?"v?L7A`M? rh ?V-??E$?}?5^?> ףp?F?Q?@5^I?v? ?2Z?t?Dl)?Pn?~jtS?/$&?أp= 7?/$V?K7a?d;O7?@5^I?^I ?/$E?ʡE?tf?~jt?q= ףP?"?v/?A`в?L7A`? ףpM?Gz>?Q?T㥛?֣p= ?&1\?Pn?Zd?E?F?Zd;O ?y&1?Gz.? +I?K? +?㥛 ?bX98?'1?bX9?-?V-M?$?'1:?(\?t?ʡEM?S?|?5?/$?/T?Mb?E?/$a?Gz?Gz~?p= ?QN?(\•?(\?X9?q= ף?-?T㥛 ?n?> ףp ?Mb? ?Zd;?.Veg34t?z z ^I ? rh?&1?FԸ?Cl'? r?&1?a"9?vj?> ףp}?2Z?q= ף?Cl;?d;O'?p= c?v ? ףp=j?/$f?y&1?/$6?HzG?|?5^?S?> ףp}?|?5?l?X9Ȗ?أp= W?Zd;ߟ?S㥛T?zG!?A`B?/$?/$~?NbX9?Q? ףp?Q{?֣p= ?Mb8?/t?|?5^?cX9?ʡ??;O?Zd;?(\?Q?(\¥?M?. Veg35t?z z Q~?DlI?jtX? ?Cl?zGA?!rh-?6^I ?uV?|?5^?$~j?+Η?MbX ?p= ף?v?tV.?s?|?5~?R?p= ףp?$?Q?1Z?n ?Zd;?X9v?ʡ?Mb?ʡE?Zd?SE?CL?p= ד?/$f?&1?̼?S㥛?V-j?J +&?C?p= ף?,?a"a?PnC?(\%?bX9?Gz?PnC?~jt?]?Q?"~Z?C\?@?KG?Zd;?#?l!?x&Q?t?= ףp?33333?fffff?R?S?+َ?|?5^:? rh?S㥛T?K?L7A`?*\?n ?Zd;Om?V-?fffff?\(? +?-?K7?jtH??$3?|G?e;O?䥛 ?J +??jtd?-?أp= ?(\??$?Pn?a"y?n0??x&1?`"?(\O?R?L7A`?5^I 2?ʡEK?h|?5?33333?S㥛?Gzt?bX9@?v?S?Cl?l?kt?(\Z? ?n*?S㥛?̡E}?"~?I +?Qu?Zdk?;O?= ףpM?NbX9d?m?-g?q= ף`?zG??Zd;O=?.yVeg37t?z z 2Z?+N? ףp=J?K7A`??Hz?Pn?)\?"?R?L7A`?V-?J +?S?(\?V-z?T㥛@?+?t?I +?fffff?bX9?t?n?~?5^?:v?n ? ףp= ?rh?J +V?B`";?I +w?= ףp?7A`?7A`?Dl)?Zd;?Gz?/$?QM?-?Gz?t?x&?̌?p= ףh?T㥛8?I +?C?Hz?RA?th|?"n?nB?8A`@?n?Y9v.?jtH?x&?@5^IL?lA?I +?/ݴ?2Z?NbX9?(\?8A`? + ?B`"?k?Cl?xf?Q?Zd;O=?/$v?8A`?S?'1?i|???x&?2Z?|?5^Z?ʡE?Cl{?B`"+?X9?l?J +F?y&1?kt?C?jtX?}?5^ ?̼?Qx?mB?֣p= ?K7?S?a"9?Cl?rhl?uV?NbX9T?x? ?`"?ʡE.?X96?F8?4?Dl)?;O?p= ף?K?.QVeg38t?z z Zd;O?Gz?U㥛Ġ?B`"?K7A ?Q?R?QK?VM?MB?X96?Gz?~jt?Q+?fffff?-?+G?w/?!rh?'1J? r? rhq? ףpM?m?xV?ʡE?33333?Gz~?kt4?> ףp?T㥛İ?Qx?3? +?_I k?On?q= ףp?\(?w/-?nj?zG?V-?Zd?1Z?n?On?ʡ?x?n?K?.hVeg40t?z z K7A?6^I ?gffff&?x&1?n?m?X9v?333333?nQ?xI?Gz?> ףp?S?x&a?x9?V-]?X9V?= ףp-?nz?A`"?Q? ?x&1?L7A`%?V-]?-?Zd;Om? rh?\?-?ʡ?[d;O?jt?x&q?x?+ٶ?~jt?`?^I ?Q??Mz?&1\?\(?OnJ?"N?VM?&1D?p= ;?,7?I +7?.ZVeg42t?z z Q?L7A`?|?5^?(\?bX9(?E?@5^Il?Cl'??m?Gz?/4?R?~jt3?S?S㥓?#~j?Gz?Q;?V]?v?~jt?K7??.F?o!?y&1?X9v?A`?I +?8A`?Zd;?sh|?A`к?Q?Cl#?(\? r?zG?lA?"?x?+?䥛 ?q= ף?䥛 X?MbX!?~jt?sh|?q= ף@? ?Zd;O?ʡE?{G?Hz?"~ ?Mb?Q??Zd{?!rh?X9F??5^IL?ʡu?zG?(\?ʡ%?Onb?Q(?Q?K7A`?.$e?^I ?X9&?(1Z?Pns?-w?\(|?x&1?ʡ?"~?/$?K7I?jt?tVn?㥛 ?V-?v ?vV>?p= ד?Cl ?1Z?K7AP?T㥛?(\?&1l?/$6? ?~j?_I ?q= ף0?|?5?Ra?S㥛?~jD?-淪?On?'1?Cl'?7A`0?%C3?x.?$#?,?o?n?.ŚVeg43t?z z %C?Gz?V-o?ʡE?x&1h?p= C?rh|?|?5^?jtx?zG?x&1(?&1 ףp=?-W? r?A`?C ?1Z?Q?-w?)\?~jtC?q= ף? rh?(\??/$?gffff?x&?i|?%?|?5^*?NbX94?ClK?#~jl?v?= ףp?Ss?uV?y&1?p= ׳?jt?@5^I?GzD?v?QN?Gz?^I ?Su?Cl+?h|??jt?䥛 p?+?T㥛?Sa?e;O?p= c? ףp?|?5>?X9?R?x&y?X9ȶ?Zd;߯?l?X9vV?)\?䥛 ?B`"?vr?i|?U?~jt3?F?x&1?/$q?I +?Hz?ˡE}?0$?E$?~jt?n?rh?$? +i?x&q?(1:?|?5?t6?x&?2Z?(\?Gz?T㥛Ġ?V-?R1?uV?X9v?ʡE?Q?Mb?$C?Sk?"~?(\…?Gz?E?V-?"?K7A?~j?K7A?8A`?&1?Gz?MbX?x&Q?ʡ?(\u?ˡE-?Mb?Zd;O?V-b?x&1?X9?x&1?@5^IL? r?sh|o? ףp=?[?#~j?NbX9?F8?/$f??5^I?R?t?Zd;?C?Vm?+N?(\??Cl;? Packages l3Xk sbcu27s l3XkN > Asim0x?%Ɗ>N@N@333333N@LN@ffffffN@N@N@33333N@N@fffffN@O@O@333333O@LO@ffffffO@O@O@33333O@O@fffffO@P@ P@P@fffff&P@333333P@@P@LP@YP@ffffffP@33333sP@P@̌P@P@fffffP@33333P@P@P@P@fffffP@33333P@Q@ Q@Q@fffff&Q@333333Q@@Q@LQ@YQ@ffffffQ@33333sQ@Q@̌Q@Q@fffffQ@33333Q@Q@Q@Q@fffffQ@33333Q@R@ R@R@fffff&R@333333R@@R@LR@YR@ffffffR@33333sR@R@̌R@R@fffffR@33333R@R@R@R@fffffR@33333R@S@ S@S@fffff&S@333333S@@S@LS@YS@ffffffS@33333sS@S@̌S@S@fffffS@33333S@S@S@S@fffffS@33333S@T@ T@T@fffff&T@333333T@@T@LT@YT@ffffffT@33333sT@T@̌T@T@fffffT@33333T@T@T@T@fffffT@33333T@U@ U@U@fffff&U@333333U@@U@LU@YU@ffffffU@33333sU@U@̌U@U@fffffU@33333U@U@U@U@fffffU@33333U@V@ V@V@fffff&V@333333V@@V@LV@YV@ffffffV@33333sV@V@̌V@V@fffffV@33333V@V@V@V@fffffV@33333V@W@ W@W@fffff&W@333333W@@W@LW@YW@ffffffW@33333sW@W@̌W@W@fffffW@33333W@W@W@W@fffffW@33333W@X@ X@X@fffff&X@333333X@@X@LX@YX@ffffffX@33333sX@X@̌X@X@fffffX@33333X@X@X@X@fffffX@33333X@Y@ Y@Y@fffff&Y@333333Y@@Y@LY@YY@ffffffY@33333sY@Y@̌Y@Y@fffffY@33333Y@Y@Y@Y@fffffY@33333Y@Z@ Z@Z@fffff&Z@333333Z@@Z@LZ@YZ@ffffffZ@33333sZ@Z@̌Z@Z@fffffZ@33333Z@Z@Z@Z@fffffZ@33333Z@[@ [@[@fffff&[@333333[@@[@L[@Y[@ffffff[@33333s[@[@̌[@[@fffff[@33333[@[@[@[@fffff[@33333[@\@ \@\@fffff&\@333333\@@\@L\@Y\@ffffff\@33333s\@\@̌\@\@fffff\@33333\@\@\@\@fffff\@33333\@]@ ]@]@fffff&]@333333]@@]@L]@Y]@ffffff]@33333s]@]@̌]@]@fffff]@33333]@]@]@]@fffff]@33333]@^@ ^@^@fffff&^@333333^@@^@L^@Y^@ffffff^@33333s^@^@̌^@^@fffff^@33333^@^@^@^@fffff^@33333^@_@ _@_@fffff&_@333333_@@_@L_@Y_@ffffff_@33333s_@_@̌_@_@fffff_@33333_@_@_@_@fffff_@33333_@`@fffff`@ `@33333`@`@ `@fffff&`@,`@333333`@9`@@`@fffffF`@L`@33333S`@Y`@``@ffffff`@l`@33333s`@y`@`@fffff`@̌`@33333`@`@`@fffff`@̬`@33333`@`@`@fffff`@`@33333`@`@`@ E | Platform=WindowsNT, IGORVersion=3.100 NewPath/Z temppath "Q:TmCheck:check:check2_100:" MoveWindow/P 27,92,531,537.5 Simulation_summary() dummy_graph() P1_RValue_Graph() weeble() MoveWindow/C 5.25,280.25,584.25,470.75 Compared() r_value() comparison() RFactorCont() Window RFactorCont() : Graph PauseUpdate; Silent 1 // building window... Display /W=(74.25,243.5,559.5,504.5)/R rfactor vs sim0 as "R-factor Contributions" AppendToGraph/R rfactorgood vs sim0 AppendToGraph sim1 vs sim0 AppendToGraph exp1 vs sim0 ModifyGraph gFont="Times New Roman",gfSize=12 ModifyGraph mode(rfactor)=7,mode(exp1)=4 ModifyGraph marker(sim1)=19,marker(exp1)=19 ModifyGraph lSize(sim1)=2 ModifyGraph lStyle(rfactorgood)=3 ModifyGraph rgb(rfactor)=(43520,43520,43520),rgb(rfactorgood)=(0,0,0),rgb(sim1)=(0,0,0) ModifyGraph rgb(exp1)=(0,0,0) ModifyGraph msize(exp1)=3 ModifyGraph mrkThick(sim1)=2 ModifyGraph hbFill(rfactor)=2 ModifyGraph usePlusRGB(rfactor)=1 ModifyGraph useNegRGB(rfactor)=1 ModifyGraph plusRGB(rfactor)=(56576,56576,56576) ModifyGraph negRGB(rfactor)=(56576,56576,56576) ModifyGraph highTrip(right)=100 ModifyGraph lowTrip(right)=0.001 ModifyGraph notation(right)=1 Label right "R-factor Contribution (%)" Label bottom "Scattering Angle (Degrees)" Label left "Yield (Layers)" SetAxis right 0,25 SetAxis bottom 42.2,62.6 Legend/J/N=text0/F=0/A=MC/X=13.75/Y=-18.56 "\\s(rfactor) R-factor Contribution of Original Solution" AppendText "\\s(rfactorgood) R-factor Contribution of Revised Solution" Legend/J/N=text1/F=0/A=MC/X=17.96/Y=49.24 "\\s(sim1) Simulation Scattering Curve\r\\s(exp1) Experimental Scattering Curve" EndMacro Window comparison() : Graph PauseUpdate; Silent 1 // building window... Display /W=(0,37.25,459.75,237.5) sim1 vs sim0 as "Comparison of experiment and simulation" AppendToGraph exp1 vs sim0 ModifyGraph mode(exp1)=4 ModifyGraph marker(exp1)=19 ModifyGraph lSize(sim1)=2 ModifyGraph rgb(exp1)=(0,0,0) ModifyGraph nticks(bottom)=10 Label left "scattering yield [layers]" Label bottom "scattering angle [degrees]" Legend/J/N=text0/F=0/A=MC/X=35.00/Y=-48.00 "\\JL\\Z09\\s(sim1) simulation \\s(exp1) experiment" Cursor A exp1 11;Cursor B exp1 113 Button Restart,pos={12,249},size={55,17},proc=Vegas,title="Restart" SetVariable Browse,pos={467,248},size={110,18},proc=Select_current_sim,title="Get sim." SetVariable Browse,limits={1,Inf,1},value= sim_num SetVariable ByEye,pos={72,196},size={148,18},title="Best By Eye Fit" SetVariable ByEye,limits={1,Inf,1},value= best_fit Button start,pos={134,249},size={55,17},proc=batch_start,title="Run" Button reset,pos={72,249},size={55,17},proc=reset,title="Reset" EndMacro Window r_value() : Graph PauseUpdate; Silent 1 // building window... Display /W=(201.75,250.25,459.75,370.25) RValue as "progress chart" ModifyGraph zero(bottom)=1 ModifyGraph nticks(bottom)=10 ModifyGraph minor(bottom)=1 Label left "R-value" Label bottom "number of files" Textbox/N=text0/F=0/A=MC/X=-6.27/Y=39.39 "min. R-value = \\{Rv}" Cursor A RValue 15 ShowInfo ControlBar 17 Button button0,pos={5,1},size={91,16},proc=save_rvalue,title="save R-value" Button button1,pos={122,1},size={90,16},proc=load_Rvalue,title="load R-value" Button button2,pos={244,1},size={52,16},proc=revert_Rvalue,title="revert" EndMacro Window Compared() : Graph PauseUpdate; Silent 1 // building window... Display /W=(280.5,86.75,759,298.25) comparedsim vs sim0 as "What R-factor is comparing" AppendToGraph comparedexp vs sim0 ModifyGraph mode(comparedexp)=3 ModifyGraph marker(comparedexp)=19 ModifyGraph lSize(comparedsim)=2 ModifyGraph rgb(comparedexp)=(0,0,0) ModifyGraph highTrip(left)=100000 SetAxis bottom 42.2,62.6 EndMacro Window weeble() : Graph PauseUpdate; Silent 1 // building window... Display /W=(423,376.25,817.5,584.75) sim1 vs sim0 AppendToGraph exp1 vs sim0 ModifyGraph mode(exp1)=4 ModifyGraph marker(exp1)=19 ModifyGraph lSize=2 ModifyGraph rgb(exp1)=(0,0,0) Label left "Yield (Layers)" Label bottom "Scattering Angle (Degrees)" SetAxis left 0.066343391441979,1.68764916816667 SetAxis bottom 48.1322505800464,67.2041763341067 Textbox/N=text0/F=0/A=MC/X=6.96/Y=-20.77 "<100>/<111> summed data (2x2)\rSim #45" EndMacro Window P1_RValue_Graph() : Graph PauseUpdate; Silent 1 // building window... Display /W=(470.25,37.25,680.25,167.75) P1_RValue,fit_P1_RValue ModifyGraph mode(P1_RValue)=3 ModifyGraph marker(P1_RValue)=19 ModifyGraph lSize(fit_P1_RValue)=2 ModifyGraph rgb(fit_P1_RValue)=(0,0,0) Label left "Parameter one R-value" Label bottom "Parameter one" Textbox/N=text0/F=0/A=MC/X=3.00/Y=40.00 "\\JCmin. value@ \\{p1_min}\rsigma = \\{p1_sigma}" Tag/N=text1/F=0/X=-6.70/Y=50.00 fit_P1_RValue, 0, "- sigma" Tag/N=text2/F=0/X=-5.70/Y=50.00 fit_P1_RValue, 1, "+ sigma" Cursor A fit_P1_RValue -5.05263;Cursor B fit_P1_RValue 5.05263 EndMacro Window dummy_graph() : Graph PauseUpdate; Silent 1 // building window... Display /W=(8.25,140.75,404.25,347.75) expt_bin1 as "dummy" EndMacro Window Simulation_summary() : Panel PauseUpdate; Silent 1 // building window... NewPanel /W=(123.75,85.25,765,526.25) as "Simulation analysis" SetDrawLayer UserBack SetDrawEnv fsize= 14,fstyle= 1 DrawText 33,31,"This program produces R-values from Vegas simulations" SetDrawEnv fstyle= 1 DrawText 30,80,"1." SetDrawEnv fstyle= 1 DrawText 30,110,"2. " SetDrawEnv fstyle= 1 DrawText 30,140,"3. " SetDrawEnv fstyle= 1 DrawText 30,170,"4. " SetDrawEnv fstyle= 1 DrawText 30,200,"5. " SetDrawEnv fstyle= 1 DrawText 30,230,"6. " SetDrawEnv fstyle= 1 DrawText 30,260,"7." SetDrawEnv fstyle= 1 DrawText 30,290,"8." SetDrawEnv fstyle= 1 DrawText 30,320,"9." SetDrawEnv fstyle= 1 DrawText 25,350,"10." SetDrawEnv fstyle= 1 DrawText 25,380,"11." SetDrawEnv fstyle= 1 DrawText 25,410,"12." SetDrawEnv fstyle= 1 DrawText 315,410,"13." SetVariable setvar0,pos={100,66},size={288,18},title="Experimental data; " SetVariable setvar0,frame=0,limits={-Inf,Inf,1},value= expdata SetVariable setvar1,pos={102,95},size={474,18},title="Simulation folder; " SetVariable setvar1,frame=0,limits={-Inf,Inf,1},value= simfolder Button button0,pos={470,307},size={91,53},proc=run,title="Run" CheckBox check0l,pos={50,123},size={185,20},proc=multi,title="Multiple simulation files",value=1 CheckBox check1,pos={50,306},size={147,20},proc=printbest,title="Print best result?",value=0 CheckBox check2,pos={50,243},size={147,20},proc=smoothset,title="Smooth simulation",value=1 CheckBox check3,pos={50,273},size={147,20},proc=spikeset,title="De-spike simulation",value=0 CheckBox check4,pos={50,212},size={147,20},proc=skewset,title="Skew data",value=1 CheckBox check4_1,pos={50,152},size={135,20},proc=element_1set,title="Use first element",value=0 CheckBox check4_2,pos={185,152},size={147,20},proc=element_2set,title="Use second element",value=1 CheckBox calibflag,pos={50,182},size={122,20},proc=calibset,title="Use calibration",value=0 SetVariable setvar4,pos={50,333},size={225,18},title="Multi parameter number 1 ;" SetVariable setvar4,limits={1,100,1},value= K11 SetVariable setvar5,pos={50,363},size={225,18},title="Multi parameter number 2 ;" SetVariable setvar5,limits={1,100,1},value= K12 SetVariable setvar6,pos={50,393},size={225,18},title="Multi parameter number 3 ;" SetVariable setvar6,limits={1,100,1},value= K13 Button find_expt,pos={45,61},size={50,20},proc=find_expt,title="find" Button find_sim,pos={46,94},size={50,20},proc=find_sim,title="find" SetVariable setcalib,pos={175,182},size={215,18},proc=SetCalibration,title="Value: counts per layer ;" SetVariable setcalib,limits={-Inf,Inf,1},value= calibration SetVariable set_calib_range,pos={399,182},size={94,18},title="% range" SetVariable set_calib_range,limits={-Inf,Inf,1},value= calibration_range SetVariable setvar7,pos={199,273},size={207,18},title="set spike tolerance level" SetVariable setvar7,limits={0,2,0.05},value= spikelevel SetVariable setvar8,pos={199,244},size={127,18},title="set amount " SetVariable setvar8,limits={3,Inf,2},value= smooth_amount SetVariable setvar2,pos={337,393},size={238,18},title="Parameter polynomial fit order" SetVariable setvar2,limits={3,9,2},value= poly_amount EndMacro Ɇ |version 2 - 6/3/96 - expt and sim matched to average between 60 and 135 degrees |version 3 - 12/3/96 - low angle intensity fall-off corrected for |version 4 - 15/3/96 - new exptl. data |version 5 - 18/3/96 - overall curvature messed about with |version 6 - 19/3/96 - smoothing added to simulation |version 7 - 19/3/96 - IGOR pro |version 8 - 21/3/96 - batch processing and smooth curve correction for each file |version 9 - 8/9/96 - working towards all singing, all dancing versuion |version 10 - 12/1/97 - ??? |version 11 - 15/1/97 - Contours added |version 12 - 21/1/97 - R-value error fixed |version 59 - 28/1/98 - files loaded by name (for Dave Spence, York) |version 60 - 11/2/98 - oops! test Xsq expression was being used (only minor effect) |version 61 - 19/3/98 - Rvalue parameter fit now uses 5th order polygon |version 62 - 20/3/98 - Rvalue scaling error fixed (sim_avg) |version 63 - 20/3/98 - first attempt at including absolute calibration |version 68 - 23/3/98 - refined |version 70 - 25/3/98 - 2D output changed |version 71 - 1/6/98 - matching section removed |version 72 - 3/7/98 - calibration bug in batch_end fixed |version 73 - 3/8/98 - modified for the new element specific output from vegas |version 74 - 5/8/98 - check included for matching file length between data and simulation |version 75 - 27/8/98 - bug fix in 2D layout macro ("error cursor not on top graph") - not true!!!!! |version 76 - 10/9/98 - order of parameters changed to match the order in Vegas |version 77 - 24/9/98 - moved from mac to pc platform |version 78 - 23/10/98 - fixed (hopefully) "error cursor not on top graph" |version 79 - 9/12/98 - contour axes corrected + few minor mods |version 80 - 23/3/99 - "error cursor not on top graph" fixed for 3D simulations (still don't understand it) |version 81 - 23/3/99 - de-spiking option included |version 82 - 23/3/99 - smoothing of simulation can be user-defined |version 83 - 14/4/99 - 3D summary prinout changed |version 84 - 15/4/99 - 3D contours tweaked |version 85 - 21/4/99 - improved de-spiking |version 86 - 22/4/99 - few minor changes |version 87 - 30/4/99 - changed contour levels to auto |version 88 - 19/5/99 - moved skew and calib into subroutines |version 89 - 20/5/99 - STILL found things to change! |version 90 - 2/6/99 - Element specific options introduced. |version 91 - 4/6/99 - Bugs introduced in versions 88 onwards fixed! |version 92 - 7/6/99 - Minor bugs fixed. |version 93 - 8/6/99 - Control buttons moved to LHS of comparison graph. |version 94 - 10/6/99 - Very subtle bug destroyed! |version 95 - 22/7/99 - Modified to accept just one multimodel parameter. #pragma rtglobals=0 //sod this silly new global parameter stuff!! macro set_variables() K11=5; K12=5; K13=5 string/G S_filename string/G tempath string/G rawdata="no_filename" string/G expdata="no_filename" string/G simdata="no_filename" string/G simfolder="no_foldername" string/G str1 variable/G E_angle1=45 //start angle for expt. data variable/G E_angle2=E_angle1+24 //end angle for expt. data variable/G S_angle1, S_angle2 //start and end angles for simul. variable/G delta_angle=0.5 //angle step for simul. variable/G Rv, index, sim_num variable/G printflag=0 variable/G multiflag=1 variable/G element_1flag, element_2flag=1 variable/G smoothflag=1, smooth_amount=3 variable/G spikeflag=0, spikedetect=0 variable/G spikelevel=0.5 variable/G calibflag=0 variable/G skewflag=1 variable/G Ne1, Ne2, N_over=0 variable/G calib_angle, offset, expand //original calibration angle, calculated offset, calculated expansion variable/G exp_avg, sim_avg, Ang_avg=1 //average y-value of expt. data and sim data variable/G P1_sigma, P2_sigma, P3_sigma variable/G p1_min, P2_min, P3_min variable/G avg_y, scale, calibration, calibration_range //scale is the emperical calibration variable/G poly_amount=3 variable/G best_fit Make/D/O/N=100 sim0, sim1, sim2, sim3, sim4, sim5, sim_smooth, sim_fit Make/D/O/N=100 exp1, expt0, expt1, expt_bin0, expt_bin1, exp_orig, exp_fit Make/D/O/N=100 RValue, Rvalue0, Rvalue2, Rvalue_orig, W_coef KillWaves/A/Z/F DoWindow/B Contour_12 DoWindow/B Contour_23 DoWindow/B Contour_31 DoWindow/B Comparison DoWindow/B R_Value DoWindow/B Exp_Show DoWindow/B Simulation_summary DoWindow/F Match_Data tidy_now() end Menu "Tidy" "-" "tidy_now/0" end Macro batch_set_up() silent 1; pauseupdate variable M string pathname, filename if (k12==0) k12=1 endif if (k13==0) k13=1 endif pathname="temppath" filename=indexedfile($pathname, 0, "????") Loadwave/Q/G/D/O/W/P=temppath/N=sim/L={0,0,0,0,6} filename duplicate/O sim1 exp1, exp_fit, sim_fit, sim_smooth dowindow/k comparison2 dowindow/k comparison dowindow/k comparison2_1 dowindow/k comparison_1 execute "comparison()" if (numpnts(expt_bin1)!=numpnts(sim1)) tidy_now() beep abort "the data and simulation files are not the same length" endif if ((element_1flag==0) %& (element_2flag==0)) beep abort "you have to select a least one element!" endif if ((element_1flag==1) %& (element_2flag==1)) sim1=sim1+sim2 //using both elements endif if ((element_1flag==0) %& (element_2flag==1)) sim1=sim2 //using second element only endif exp1=expt_bin1 duplicate/O exp1, exp_orig Ne1=2 Ne2=numpnts(exp1)-3 if (spikeflag>0) spike() endif if (smoothflag>0) Smooth smooth_amount, sim1 endif WaveStats/Q/R=[Ne1, Ne2] exp1 exp_avg=V_avg WaveStats/Q/R=[Ne1, Ne2] sim1 Sim_Avg=V_avg exp1*=Sim_avg/exp_avg WaveStats/Q/R=[Ne1, Ne2] sim0 Ang_Avg=V_avg Legend/K/N=text0 Legend/J/N=text0/F=0/A=MC/X=18.13/Y=-43.81 "\\JL\\Z09\\s(sim1) simulation \\s(exp1) experiment" if (calibflag>0) AppendText "scaling factor = \\{scale/calibration}, calibration range = \\{calibration_range}%" endif cursor/C=(0,0,65000)/P A, exp1, Ne1 cursor/C=(0,65000,0)/P B, exp1, Ne2 N_over=ne2-ne1+1 if (skewflag>0) skew() endif if (calibflag>0) calib() endif DoWindow/B simulation_summary DoWindow/B match_data DoWindow/F R_Value DoWindow/F Comparison KillWaves/A/Z/F end macro batch_start(ctrlName) : ButtonControl String ctrlName, filename, pathname, str1 pauseupdate silent 1 spikedetect=0 Ne1=pcsr(A) Ne2=pcsr(B) N_over=Ne2-Ne1+1 WaveStats/Q/R=[Ne1, Ne2] sim0 Ang_Avg=V_avg DoWindow/K R_Value DoWindow/K Comparison R_Value2() comparison2() DoWindow/B contour12 DoWindow/B contour23 DoWindow/B contour13 print "Started on "+date()+" at "+time() batchprocess() end Function Calc_RValue_is() variable N Rv=0 do Rv+=((sim1[N+Ne1]-exp1[N+Ne1])/exp1[N+Ne1])^2 N+=1 while (N_over>(N-1)) RValue[index]=sqrt(Rv)*100/N_over end Function Calc_RValue_Xsq() variable N, R duplicate/O sim0, rfactor duplicate/O sim0, comparedsim duplicate/O sim0, comparedexp N=Ne1-1 do N+=1 rfactor[N]=(sim1[N]-exp1[N])^2/exp1[N]/(sin(sim0[N]/57.3/2)^4) R+=Rfactor[N] while (N0) spike() endif if (smoothflag>0) Smooth smooth_amount, sim1 endif sprintf sim_name, "Veg" +"%g" index duplicate/O sim1 $sim_name //creates wave from modified simulation WaveStats/Q/R=[Ne1, Ne2] sim1 sim_avg=v_avg WaveStats/Q/R=[Ne1, Ne2] exp_orig exp_avg=v_avg scale=exp_avg/sim_avg //scale is the emperical calibration exp1=exp_orig/scale //scales experimental data - simulation is left unchanged if (skewflag>0) skew() endif if (calibflag>0) calib() endif Calc_RValue_Xsq() index+=1 doupdate while (index<(filenum+1)) simdata=S_Filename Execute "batch_end()" End Macro batch_end() print "Finished on "+date()+" at "+time() if (spikeflag>0) print "% of spikes detected per file= ", (spikedetect/index/(Ne2-Ne1)*100) endif tidy_now() silent 1 variable N pauseupdate wavestats/Q RValue sim_num=V_minloc //sim_num points to simulation with lowest R Value String sim_name sprintf sim_name, "Veg"+"%g" sim_num sim1=$sim_name WaveStats/Q/R=[Ne1, Ne2] sim1 sim_avg=v_avg WaveStats/Q/R=[NE1,Ne2] exp_orig exp_avg=v_avg scale=exp_avg/sim_avg //scale is the emperical calibration exp1=exp_orig/scale //scales experimental data - simulation is left unchanged DoWindow/F Comparison if (skewflag>0) skew() endif if (calibflag>0) calib() endif DoWindow/F R_Value // if ((K13>=2) %& (K12>=2)) // contour_3D() // RValue_Graphs_3D() // endif // if ((K13==1) %& (K12>=2)) // contour_2D() // RValue_Graphs_2D() // endif // if ((K13==1) %& (K12==1)) // RValue_Graphs_1D() // endif Rv=RValue[sim_num-1] index=sim_num Calc_RValue_Xsq() DoWindow/F RFactorCont execute "RFactorCont()" if (printflag==1) printout() endif tidy_now() end Macro single() silent 1 pauseupdate string pathname, filename pathname="temppath" Loadwave/Q/G/D/O/W/P=temppath/N=sim/L={0,0,0,0,6} filename duplicate/O sim1 exp1, exp_fit, sim_fit exp1=expt_bin1 duplicate/O exp1, exp_orig Ne1=2 Ne2=numpnts(exp1)-3 WaveStats/Q/R=[Ne1, Ne2] exp1 exp_avg=V_avg WaveStats/Q/R=[Ne1, Ne2] sim1 Sim_Avg=V_avg exp1*=Sim_avg/exp_avg WaveStats/Q/R=[Ne1, Ne2] sim0 Ang_Avg=V_avg cursor/C=(0,0,65000)/P A, exp1, Ne1 cursor/C=(0,65000,0)/P B, exp1, Ne2 N_over=ne2-ne1+1 DoWindow/B simulation_summary DoWindow/B match_data DoWindow/F R_Value DoWindow/F comparison KillWaves/A/Z/F if ((element_1flag==0) %& (element_2flag==0)) beep abort "you have to select a least one element!" endif if ((element_1flag==1) %& (element_2flag==1)) sim1=sim1+sim2 //using both elements endif if ((element_1flag==0) %& (element_2flag==1)) sim1=sim2 //using second element only endif if (smoothflag>0) Smooth smooth_amount, sim1 endif WaveStats/Q/R=[Ne1, Ne2] sim1 exp1=exp1*V_Avg/exp_avg //scales experimental data - simulation is left unchanged if (skewflag>0) skew() endif if (calibflag>0) calib() endif Calc_RValue_Xsq() doupdate PRINT "the rvalue is", Rv end Macro Printout() silent 1 Summary_Layout_3D() printlayout Summary_Layout_3D DoWindow /K Summary_Layout_3D Return Window r_value() : Graph PauseUpdate; Silent 1 Display /W=(202,250,460,370) RValue as "progress chart" ModifyGraph zero(bottom)=1 ModifyGraph nticks(bottom)=10 ModifyGraph minor(bottom)=1 Label left "R-value" Label bottom "number of files" Wavestats/Q RValue Textbox/N=text0/F=0/A=MC/X=-6.27/Y=39.39 "min. R-value = \\{Rv}" ShowInfo ControlBar 17 Button button0,pos={5,1},size={91,16},proc=save_rvalue,title="save R-value" Button button1,pos={122,1},size={90,16},proc=load_Rvalue,title="load R-value" Button button2,pos={244,1},size={52,16},proc=revert_Rvalue,title="revert" EndMacro Window comparison() : Graph PauseUpdate; Silent 1 Display /W=(0,30,460,230) sim1 vs sim0 as "Comparison of experiment and simulation" Append exp1 vs sim0 ModifyGraph mode(exp1)=4 ModifyGraph marker(exp1)=19 ModifyGraph lSize(sim1)=2 ModifyGraph rgb(exp1)=(0,0,0) ModifyGraph nticks(bottom)=10 Label left "scattering yield [layers]" Label bottom "scattering angle [degrees]" Legend/J/N=text0/F=0/A=MC/X=35/Y=-48 "\\JL\\Z09\\s(sim1) simulation \\s(exp1) experiment" if (calibflag>0) AppendText "scaling factor = \\{scale/calibration}, calibration range = \\{calibration_range}%" endif cursor/C=(0,0,65000)/P A, exp1, Ne1 cursor/C=(0,65000,0)/P B, exp1, Ne2 Button Restart,pos={12,249},size={55,17},proc=Vegas,title="Restart" SetVariable Browse,pos={467,248},size={110,18},proc=Select_current_sim,title="Get sim." SetVariable Browse,limits={1,Inf,1},value= sim_num SetVariable ByEye,pos={72,196},size={148,18},title="Best By Eye Fit" SetVariable ByEye,limits={1,Inf,1},value= best_fit Button start,pos={134,249},size={55,17},proc=batch_start,title="Run" Button reset,pos={72,249},size={55,17},proc=reset,title="Reset" EndMacro Window RFactorCont() : Graph setAxis bottom sim0[ne1],sim0[ne2] wavestats/Q/R=(ne1,ne2) rfactorgood setAxis right 0,25 execute "Compared()" EndMacro Window Compared() : Graph setAxis bottom sim0[ne1],sim0[ne2] EndMacro Function reset(ctrlName) : ButtonControl String ctrlName execute "batch_end()" End Window Simulation_summary() : Panel PauseUpdate; Silent 1 // building window... NewPanel /W=(0,42.8,640.2,483.2) as "Simulation analysis" SetDrawLayer UserBack SetDrawEnv fsize= 14,fstyle= 1 DrawText 33,31,"This program produces R-values from Vegas simulations" SetDrawEnv fstyle= 1 DrawText 30,80,"1." SetDrawEnv fstyle= 1 DrawText 30,110,"2. " SetDrawEnv fstyle= 1 DrawText 30,140,"3. " SetDrawEnv fstyle= 1 DrawText 30,170,"4. " SetDrawEnv fstyle= 1 DrawText 30,200,"5. " SetDrawEnv fstyle= 1 DrawText 30,230,"6. " SetDrawEnv fstyle= 1 DrawText 30,260,"7." SetDrawEnv fstyle= 1 DrawText 30,290,"8." SetDrawEnv fstyle= 1 DrawText 30,320,"9." SetDrawEnv fstyle= 1 DrawText 25,350,"10." SetDrawEnv fstyle= 1 DrawText 25,380,"11." SetDrawEnv fstyle= 1 DrawText 25,410,"12." SetDrawEnv fstyle= 1 DrawText 315,410,"13." SetVariable setvar0,pos={100,66},size={288,18},title="Experimental data; " SetVariable setvar0,frame=0,limits={-Inf,Inf,1},value= expdata SetVariable setvar1,pos={102,95},size={474,18},title="Simulation folder; " SetVariable setvar1,frame=0,limits={-Inf,Inf,1},value= simfolder Button button0,pos={470,307},size={91,53},proc=run,title="Run" CheckBox check0l,pos={50,123},size={185,20},proc=multi,title="Multiple simulation files",value=1 CheckBox check1,pos={50,306},size={147,20},proc=printbest,title="Print best result?",value=0 CheckBox check2,pos={50,243},size={147,20},proc=smoothset,title="Smooth simulation",value=1 CheckBox check3,pos={50,273},size={147,20},proc=spikeset,title="De-spike simulation",value=1 CheckBox check4,pos={50,212},size={147,20},proc=skewset,title="Skew data",value=1 CheckBox check4_1,pos={50,152},size={135,20},proc=element_1set,title="Use first element",value=0 CheckBox check4_2,pos={185,152},size={147,20},proc=element_2set,title="Use second element",value=1 CheckBox calibflag,pos={50,182},size={122,20},proc=calibset,title="Use calibration",value=0 SetVariable setvar4,pos={50,333},size={225,18},title="Multi parameter number 1 ;" SetVariable setvar4,limits={1,100,1},value= K11 SetVariable setvar5,pos={50,363},size={225,18},title="Multi parameter number 2 ;" SetVariable setvar5,limits={1,100,1},value= K12 SetVariable setvar6,pos={50,393},size={225,18},title="Multi parameter number 3 ;" SetVariable setvar6,limits={1,100,1},value= K13 Button find_expt,pos={45,61},size={50,20},proc=find_expt,title="find" Button find_sim,pos={46,94},size={50,20},proc=find_sim,title="find" SetVariable setcalib,pos={175,182},size={215,18},proc=SetCalibration,title="Value: counts per layer ;" SetVariable setcalib,limits={-Inf,Inf,1},value= calibration SetVariable set_calib_range,pos={399,182},size={94,18},title="% range" SetVariable set_calib_range,limits={-Inf,Inf,1},value= calibration_range SetVariable setvar7,pos={199,273},size={207,18},title="set spike tolerance level" SetVariable setvar7,limits={0,2,0.05},value= spikelevel SetVariable setvar8,pos={199,244},size={127,18},title="set amount " SetVariable setvar8,limits={3,Inf,2},value= smooth_amount SetVariable setvar2,pos={337,393},size={238,18},title="Parameter polynomial fit order" SetVariable setvar2,limits={3,9,2},value= poly_amount EndMacro Macro element_2set(ctrlName, flag) : checkboxControl String ctrlName variable flag element_2flag=flag EndMacro Macro element_1set(ctrlName, flag) : checkboxControl String ctrlName variable flag element_1flag=flag EndMacro macro find_expt(ctrlName) : ButtonControl String ctrlName loadwave /G/O/A/Q/N=expt_bin expdata=S_filename exp_show() End macro find_sim(ctrlName) : ButtonControl String ctrlName newpath/O temppath pathinfo temppath simfolder=S_path End Macro multi(ctrlName, flag) : checkboxControl String ctrlName variable flag multiflag=flag EndMacro Macro printbest(ctrlName, flag) : checkboxControl String ctrlName variable flag printflag=flag EndMacro Macro smoothset(ctrlName, flag) : checkboxControl String ctrlName variable flag smoothflag=flag EndMacro Macro spikeset(ctrlName, flag) : checkboxControl String ctrlName variable flag spikeflag=flag EndMacro Macro calibset(ctrlName, flag) : checkboxControl String ctrlName variable flag calibflag=flag EndMacro Macro skewset(ctrlName, flag) : checkboxControl String ctrlName variable flag skewflag=flag EndMacro Macro run(ctrlName) : ButtonControl String ctrlName DoWindow/B Simulation_summary DoWindow/B Match_data if (multiflag==1) batch_set_up() else single() endif EndMacro Function ButtonRestart(ctrlName) : ButtonControl String ctrlName dowindow/f Match_data End //________________________________________________________________ // START OF CONTOUR STUFF //________________________________________________________________ //K11 is number of values of multi-model paramter 1 //K12 is number of values of multi-model paramter 2 //K13 is number of values of multi-model paramter 3 macro test() K16=trunc(k19/K11/k12) K15=trunc((k19-K16*K11*K12)/K11) K14=k19-K15*K11-K16*K12*K11 print k19 print k14 print k15 print k16 end function contour_2D() variable N, M wavestats/q rvalue V_minloc-=1 K14=trunc(V_minloc/K12) K15=V_minloc-K14*K12 Make/N=(K12, K11)/O matrix12 N=0 M=0 do | picks K11 and K12 do matrix12[N] [M]=rvalue[(N+M*K12)] N+=1 while (N0) skew() endif if (calibflag>0) calib() endif index=sim_num Calc_Rvalue_Xsq() DoWindow/F RFactorCont Execute "RFactorCont()" End Macro Vegas(ctrlName) : ButtonControl String ctrlName DoWindow/K exp_show DoWindow/F Simulation_summary End Window comparison2() : Graph PauseUpdate; Silent 1 Display /W=(0,30,680,320) sim1 vs sim0 as "Comparison of experiment and simulation" Append exp1 vs sim0 ModifyGraph mode(exp1)=4 ModifyGraph marker(exp1)=19 ModifyGraph lSize(sim1)=2 ModifyGraph rgb(exp1)=(0,0,0) ModifyGraph nticks(bottom)=10 ModifyGraph lblMargin(bottom)=3 ModifyGraph lblLatPos(bottom)=-1 Textbox/N=text0/S=3/A=MC/X=32.14/Y=-44.25 "simulation number = \\{index}" cursor/C=(0,0,65000)/P A, exp1, Ne1 cursor/C=(0,65000,0)/P B, exp1, Ne2 EndMacro Window R_Value2() : Graph PauseUpdate; Silent 1 Display /W=(170,330,510,480) RValue as "progress chart" ModifyGraph zero(bottom)=1 ModifyGraph nticks(bottom)=10 ModifyGraph minor(bottom)=1 SetAxis/A/E=1 bottom EndMacro function tidy_now() PauseUpdate; Silent 1 dowindow/k comparison2 dowindow/k r_value2 dowindow/k comparison dowindow/k r_value dowindow/k comparison2_1 dowindow/k r_value2_1 dowindow/k comparison_1 dowindow/k r_value_1 dowindow/k Graph0 dowindow/k Graph1 dowindow/k table0 dowindow/k table1 wavestats/Q RValue execute "r_value()" cursor/p A, RValue, (sim_num-1) execute "comparison()" end function chi_square_precision_3D() variable N, sigma execute "CurveFit/Q/L=(numpnts(p3_rvalue)*10) poly poly_amount, P3_RValue /D " wavestats/Q fit_p3_rvalue p3_min=V_minloc Duplicate/O fit_p3_rvalue diff_p3_rvalue Differentiate diff_p3_rvalue Differentiate diff_p3_rvalue sigma=(abs(2/ diff_p3_rvalue[9+10*trunc(V_minloc)]))^0.5 p3_sigma=sigma dowindow/F P3_Rvalue_graph cursor A, fit_p3_rvalue, V_minloc-sigma cursor B, fit_p3_rvalue, V_minloc+sigma Textbox/N=text0/F=0/A=MC/X=10/Y=40 "\\JCmin. value@ \\{p3_min}\rsigma = \\{p3_sigma}" Tag/N=text1/F=0/X=(xcsr(A)-6.7)/Y=50 fit_P3_RValue, xcsr(A), "- sigma" Tag/N=text2/F=0/X=(xcsr(B)-6.7)/Y=50 fit_P3_RValue, xcsr(B), "+ sigma" execute "CurveFit/Q/L=(numpnts(p1_rvalue)*10) poly poly_amount, P1_RValue /D " wavestats/Q fit_p1_rvalue p1_min=V_minloc Duplicate/O fit_p1_rvalue diff_p1_rvalue Differentiate diff_p1_rvalue Differentiate diff_p1_rvalue sigma=(abs(2/ diff_p1_rvalue[9+10*trunc(V_minloc)]))^0.5 p1_sigma=sigma dowindow/F P1_Rvalue_graph cursor A, fit_p1_rvalue, V_minloc-sigma cursor B, fit_p1_rvalue, V_minloc+sigma Textbox/N=text0/F=0/A=MC/X=3/Y=40 "\\JCmin. value@ \\{p1_min}\rsigma = \\{p1_sigma}" Tag/N=text1/F=0/X=(xcsr(A)-6.7)/Y=50 fit_P1_RValue, xcsr(A), "- sigma" Tag/N=text2/F=0/X=(xcsr(B)-6.7)/Y=50 fit_P1_RValue, xcsr(B), "+ sigma" execute "CurveFit/Q/L=(numpnts(p2_rvalue)*10) poly poly_amount, P2_RValue /D " wavestats/Q fit_p2_rvalue p2_min=V_minloc Duplicate/O fit_p2_rvalue diff_p2_rvalue Differentiate diff_p2_rvalue Differentiate diff_p2_rvalue sigma=(abs(2/ diff_p2_rvalue[9+10*trunc(V_minloc)]))^0.5 p2_sigma=sigma dowindow/F P2_Rvalue_graph cursor A, fit_p2_rvalue, V_minloc-sigma cursor B, fit_p2_rvalue, V_minloc+sigma Textbox/N=text0/F=0/A=MC/X=10/Y=40 "\\JCmin. value@ \\{p2_min}\rsigma = \\{p2_sigma}" Tag/N=text1/F=0/X=(xcsr(A)-6.7)/Y=50 fit_P2_RValue, xcsr(A), "- sigma" Tag/N=text2/F=0/X=(xcsr(B)-6.7)/Y=50 fit_P2_RValue, xcsr(B), "+ sigma" end function chi_square_precision_2D() variable N, sigma execute "CurveFit/Q/L=(numpnts(p2_rvalue)*10) poly poly_amount, P2_RValue /D " wavestats/Q fit_p2_rvalue p2_min=V_minloc Duplicate/O fit_p2_rvalue diff_p2_rvalue Differentiate diff_p2_rvalue Differentiate diff_p2_rvalue sigma=(abs(2/ diff_p2_rvalue[9+10*trunc(V_minloc)]))^0.5 p2_sigma=sigma dowindow/F P2_Rvalue_graph cursor A, fit_p2_rvalue, V_minloc-sigma cursor B, fit_p2_rvalue, V_minloc+sigma Textbox/N=text0/F=0/A=MC/X=3/Y=40 "\\JCmin. value@ \\{p2_min}\rsigma = \\{p2_sigma}" Tag/N=text1/F=0/X=(xcsr(A)-6.7)/Y=50 fit_P2_RValue, xcsr(A), "- sigma" Tag/N=text2/F=0/X=(xcsr(B)-6.7)/Y=50 fit_P2_RValue, xcsr(B), "+ sigma" execute "CurveFit/Q/L=(numpnts(p1_rvalue)*10) poly poly_amount, P1_RValue /D " wavestats/Q fit_p1_rvalue p1_min=V_minloc Duplicate/O fit_p1_rvalue diff_p1_rvalue Differentiate diff_p1_rvalue Differentiate diff_p1_rvalue sigma=(abs(2/ diff_p1_rvalue[9+10*trunc(V_minloc)]))^0.5 p1_sigma=sigma dowindow/F P1_Rvalue_graph cursor A, fit_p1_rvalue, V_minloc-sigma cursor B, fit_p1_rvalue, V_minloc+sigma Textbox/N=text0/F=0/A=MC/X=3/Y=40 "\\JCmin. value@ \\{p1_min}\rsigma = \\{p1_sigma}" Tag/N=text1/F=0/X=(xcsr(A)-6.7)/Y=50 fit_P1_RValue, xcsr(A), "- sigma" Tag/N=text2/F=0/X=(xcsr(B)-6.7)/Y=50 fit_P1_RValue, xcsr(B), "+ sigma" end function chi_square_precision_1D() variable sigma p1_rvalue=rvalue execute "CurveFit/Q/L=(numpnts(p1_rvalue)*10) poly poly_amount, P1_RValue /D " wavestats/Q fit_p1_rvalue p1_min=V_minloc Duplicate/O fit_p1_rvalue diff_p1_rvalue Differentiate diff_p1_rvalue Differentiate diff_p1_rvalue sigma=(abs(2/ diff_p1_rvalue[9+10*trunc(V_minloc)]))^0.5 p1_sigma=sigma dowindow/F P1_Rvalue_graph cursor A, fit_p1_rvalue, V_minloc-sigma cursor B, fit_p1_rvalue, V_minloc+sigma Textbox/N=text0/F=0/A=MC/X=3/Y=40 "\\JCmin. value@ \\{p1_min}\rsigma = \\{p1_sigma}" Tag/N=text1/F=0/X=(xcsr(A)-6.7)/Y=50 fit_P1_RValue, xcsr(A), "- sigma" Tag/N=text2/F=0/X=(xcsr(B)-6.7)/Y=50 fit_P1_RValue, xcsr(B), "+ sigma" end Function save_rvalue(ctrlName) : ButtonControl String ctrlName Save/G RValue as "RValue" End Function load_Rvalue(ctrlName) : ButtonControl String ctrlName ctrlName = S_Filename Duplicate/O RValue Rvalue_orig loadwave /G/O/A/Q/N=Rvalue Rvalue+=Rvalue0 Rvalue/=2 S_Filename = ctrlName execute "batch_end()" End Function revert_Rvalue(ctrlName) : ButtonControl String ctrlName Rvalue=Rvalue_orig execute "batch_end()" End Function calc_rvalue(ctrlName) : ButtonControl String ctrlName Ne1=pcsr(A) Ne2=pcsr(B) N_over=Ne2-Ne1+1 Calc_RValue_Xsq() execute "print rvalue(index)" End Function SetCalibration(ctrlName,varNum,varStr,varName) : SetVariableControl String ctrlName Variable varNum String varStr String varName End Window dummy_graph() : Graph PauseUpdate; Silent 1 Display /W=(5,42,400,250) expt_bin1 as "dummy" EndMacro Window Summary_layout_3D() : Layout PauseUpdate; Silent 1 // building window... Layout/C=1/W=(4.8,42.2,573.6,445.4) Contour_12(601.8,226.2,768.6,369.6)/O=1,comparison(72.6,72.6,414.6,216)/O=1 Append r_value(72.6,226.2,415.8,369.6)/O=1,P1_RValue_Graph(425.4,72.6,592.2,216)/O=1 Append P2_RValue_Graph(425.4,226.2,592.2,369.6)/O=1,P3_RValue_Graph(425.4,378.6,592.2,522)/O=1 Append Contour_31(601.8,72.6,768.6,216)/O=1,Contour_23(601.8,378.6,768.6,522)/O=1 Textbox/N=text0/F=0/A=LB/X=0.60/Y=0.8 "\\Z12Printed on "+ date() + "@" + time() AppendText "simulation file; "+simdata+".\{sim_num}" AppendText "exptl. data file; "+expdata sprintf str1 "The R-value is %g", RValue[k8-1] AppendText str1 sprintf str1 "For %g data points", (ne2-ne1) //sprintf str1 "The R-value-2 is %g", ((RValue[k8-1]-1)/avg_y*1e3) AppendText str1 sprintf str1 "from \{hcsr(A)} to \{hcsr(B)} degrees" AppendText str1 if (calibflag>0) AppendText "Using absolute calibration" else AppendText "Not using absolute calibration" endif if (spikeflag>0) sprintf str1 "percentage of spikes in file=\{spikedetect/index/(Ne2-Ne1)*100}" AppendText str1 sprintf str1 "spike tolerance range=\{spikelevel}" AppendText str1 else AppendText "Simulation not de-spiked" endif if (smoothflag>0) sprintf str1 "Simulation smoothed, value = \{smooth_amount}" AppendText str1 else AppendText "Simulation not smoothed" endif if (skewflag>0) sprintf str1 "Simulation skewed" AppendText str1 else AppendText "Simulation not skewed" endif EndMacro Function spike() variable M=0 do sim_smooth=sim1 smooth 15, sim_smooth if (sim1[M+1]>(sim_smooth[M]+spikelevel)) // checks for a greater than 'spikelevel' increase.... sim1[M+1]=sim_smooth[M+1] // between adjacent points spikedetect+=1 endif M+=1 while ((M+1)(1+calibration_range/100))) |sets the upper limit to the range of calibration allowed exp1=exp1*scale/(calibration*(1+calibration_range/100)) endif if (scale/calibration<(1-calibration_range/100))) |sets the lower limit to the range of calibration allowed exp1=exp1*scale/(calibration*(1-calibration_range/100)) endif end Function skew() CurveFit/Q poly 3, exp1 (xcsr(A),xcsr(B)) /X=sim0 /D=exp_fit exp_fit= W_coef[0]+ W_coef[1]*sim0+ W_coef[2]*(sim0^2) CurveFit/Q poly 3, sim1 (xcsr(A),xcsr(B)) /X=sim0 /D=sim_fit sim_fit= W_coef[0]+ W_coef[1]*sim0+ W_coef[2]*(sim0^2) exp1*=sim_fit/exp_fit end Window exp_show() : Graph PauseUpdate; Silent 1 Display /W=(0,40,640,480) expt_bin1 vs expt_bin0 as "Experimental data" ModifyGraph mode=4 ModifyGraph marker=19 ModifyGraph lStyle=1 ModifyGraph nticks(bottom)=10 Label left "scattering yield corrected for sin\\S4\\M\\F'Symbol'(q/2)" Label bottom "scattering angle [degrees]" Textbox/N=text0/F=0/S=2/A=MC/X=-7.93/Y=47.96 "Data from file - " + expdata Button exp_OK,pos={523,209},size={70,20},proc=Vegas,title="Continue" EndMacro