4Misc_Start 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 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*@@??HWWDashSettings#  !CommandHNormal@ Marlett<HHHH$$HistoryHNormal@ Times New Roman<HHHH$$4History4History4History4History4History4HistoryProcedure 8Normal@ Arial<HHHH$$4Procedure 4Procedure 4Procedure 4Procedure 4Procedure 4Procedure homeYQdZxC:Documents and Settings:Ian:Desktop:NewWeb:Files:C:Documents and Settings:Ian:Desktop:NewWeb:FilesIan\Desktop\NewWebFiles;xz`3E(9wXx wwklwwB_ 4Misc_End tXOPState_Start@ Data Browser  PSurface Plotterr Help Files\4XOPState_End :J"=nf'&RValue-??iiH2`@>_@po3'^@n1tW _@ Y`@8x 0^@\qvU\@ˢ[@q[@&Zk]@%4\@7[`PIZ@O0Y@-SY@j[@C[VZ@_ Y@ŧ|KX@)X@C[SY@>gZ@bX@W@'X@m ZY@a!{Z@PM.Y@ G'mX@ΝeX@eYY@[@=+Z@e(Y@rI#Z@yn@P[@b]@>uw\@x0\@ޣ?_\@"P1]@FOjG`@p7 _@ s?_@ng_@vws`@.ysim2t?$ix&?w/?Q?w/?ˡE?M?V-?K7A?Q?tV?(\?q= ףp?RQ?5^I ?x&1?!rh?Gz?$C?(\?x&1?Gz?L7A`?}?5^I?:v?&1?Gz?On??MbX?I +?MbX9?kt?K7A`?S?Mb?Gz?q= ףp?/$? ףp= ?NbX9?|?5^?d;O?tV?/$?T㥛 ?X9v?X9v?A`"?ʡE?p= ף?On??^I +?{Gz?`"?K7A`??I +?i|?5?Cl??|?5^?(\?-?K7?Q?'1Z?Q?B`"?V-?|?5^?Cl?(\?'1Z?~jt?-? rh?{Gz?ʡE?zG?@5^I ?K7?(\?E?p= ף?K7A?%C?w/?x&?B`"?M?v?jt?S㥛?Fx?Cl?7A`?S?"~j?(\?Fx?Q?|?5^?zG?v?^I +?Cl?/$?-?V-?/$?X9v?1Zd?A`"?S?A`"?.*sim0t?$iD@D@333333D@LD@gfffffD@D@D@33333D@D@gffffD@E@E@333333E@LE@gfffffE@E@E@33333E@E@gffffE@F@F@333333F@LF@gfffffF@F@F@33333F@F@gffffF@G@G@333333G@LG@gfffffG@G@G@33333G@G@gffffG@H@H@333333H@LH@gfffffH@H@H@33333H@H@gffffH@I@I@333333I@LI@gfffffI@I@I@33333I@I@gffffI@J@J@333333J@LJ@gfffffJ@J@J@33333J@J@gffffJ@K@K@333333K@LK@gfffffK@K@K@33333K@K@gffffK@L@L@333333L@LL@gfffffL@L@L@33333L@L@gffffL@M@M@333333M@LM@gfffffM@M@M@33333M@M@gffffM@N@N@333333N@LN@gfffffN@N@N@33333N@N@gffffN@O@O@333333O@LO@gfffffO@O@.exp1t?iiF(}[?[)aQC?\?@!q?-?2??.TW?d4?N?CA?\9A?JG?f1?i՟?V7}?쐲?;kaR?&wyi?^8Xz?S $[?-9u[n?3/ѽ?m)?0s?eaAz)?ٻ9? W?|u3V?7A ?Z?H?;q9?oz?7,DG?rF?l?YJ?h?/Hߨg?U@p)?tozS? ?uM;?C? lT? c?F(J ?<#? QB?ѣu셭?+?{|?"ck?ˍ?U ,??;Lg?oB܃?m2?/$*?4c-ǥ?4da?e;$?jʃv?,!??m-m?q|(.?/`k=?ج?l-?T?<;?qb?7WֳM?l2ld6?%F?;0?Z,?:|Z?u(v>? .x6??^u%?}P|?V?D[?*Ohx?kS?*8|u?qv?}??38?ߣ)?,3dm?DVѶ?Rkc;?K19?{'fO;?(X?`W?,ڽ?0ӸkK?k?vGk)?"ye??le?ip ?߉֬E? D?mF?9-Bp?TԴ!?g?bR?MQS?T 9S?.oexp_origt?iiPh@`-j@@bei@g@f@g@Yh@i@gk@!l@ m@őo@er@`v@y@!{@|z@mw@t@`(p@ cl@`h@ff@ e@Cd@@e@ ih@HG1?*g?F?dpӷ`??m:?n?rXϳР?~?Fs?Zf>_5?'ye?ǾYm?rF?fj?m!?Ag^N?{?DA? }+?s?c(?4Q?*{?|RD?$? ?pi?|??h]re?ġm?Ϯ?$?C?cxa?_:?{u[?dWc|?x uƜ?$#a? d??t'?.<4?tQ?zm?A? !q? ? ѧ?vM?w4 ?l]p? ?psn,8?N?8d?\Tz?@S0?&vs?pdk}?.??zk?h?dz?(sꝏ ?8{ 0?k>?ĵ9M??כ!? ?|J?pSh??F?yW?O%rI?0?/b?(3?3e?Xi?\9k?>./?(RGZ?$)? ?xwiF?Ա?j?PUS?)?@v5?';?C"/?~!y??rx ?ШcăP?Dʖ?L?_ !?8cte?7?|$?KYS,?wD2:m?d{\?8h6?LaS+?]'i?@ 8?(?LAw ?X?X9ʒ?HT?x?%((?dY[ n?Ȇ?yb;?/+?pW#? N?n݉ay?D8??O Y?p?l8z>?zP C?8zi?dOT?StxҲ?TG.?@??<?C=?CuCKCC# CN%Cg,C5C@CNC_~C=zCwC5sCGhoCJkCgC dC|i`C\C YCgUCQC|0NCʞJCGCCC@CNB@BioCBGFBZIB!LBZ5PBNSBWB=\B`BkeB[jBoBtBۍzB4B_?B5gBB BBv&BݗB氛BKBBҧB"B sBB'B.BVBBBB'#BnB?BiOBYBѓBZBi9BC&C1CLP CzC9CC;C}CC_"C%CbW)Ch,Cy0C4C7CX{;C:?Cfit_P3_RValueZp \?KK-C2C[8C>C{ECGLCLSC}ZCaC0iC|pCwCsUCHCrԆCzICC ݐC C~C{C8CݚCȠCCxCC7C7CC pCCC@CۤCC2C'CzqCuC>5C{CCCC]CcCipC HCACvCN_mCVcCYC4eOCDCH:C/C$$C C8CCBCBBeBgBQ0BVFfit_P2_RValue29/?iaiXB͋B{EBB?BN…BHBӂBcBB}BYzBwBtBGrBoBmB٘jBY hBݳeBScB`B^B~\BQZB32XB VBTBM%RB@*{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{@;@=@<@sim61?ii????sim62?iiQ?Q?]sim63?ii#~j@ @^I +@Awsim64?ii/$55@l4@/$55@l4@nsim65?ii(\µ?(\µ?(\µ?(\µ?asim66?ii?@A@@@@@sim67?ii????sim68?iiQ?Q?Esim69?iiZd@|?5^? @Isim70?ii(\7@MbX8@MbX8@(\7@msim71?ii(\µ?(\µ?(\µ?(\µ?asim72?iiB@B@A@C@sim73?ii????sim74?iiQ?Q?½sim75?ii#~j@Zd@|?5^?^I +@Hsim76?iivz;@R:@R:@vz;@msim77?ii(\µ?(\µ?(\µ?(\µ?Wsim78?iiE@C@D@D@sim79?ii????sim80?iiQ?Q?_sim81?ii#~j@ @^I +@Osim82?iiw/>@Gz=@w/>@Gz=@lsim83?ii(\µ?(\µ?(\µ?(\µ?.Veg1t?iiL7A`%?'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?d/W_sigma?iir2?L?A?.OVeg2t?iifffff?zG?֣p= 7? ?nʡ?n@?̌?~jt?T㥛0?|?5?tf?$?Gz?/?@5^I?֣p= W?(\?Zd;?䥛 `?Mb?x&q?Zd? rhq?أp= ?w/?K?Ex?X9v?p= ? r?~jtS?d;O?6^I "?^I ?rh?ʡ%?Q+?"~ ?ˡE?E?S㥛D?ʡE??x&?^I ?On?䥛 ?|?5^j?V-??m?:v/? +?uV?X9Ȧ?q= ף?䥛 ?Q?ʡE?*\h? ףp=j?&C ?Cl[?Zd;O?/$?/$?䥛 ? +?x?mB?S㥛?Zd;O]?rh|?Cl?Gzn?6^I ?Q?Cl+?On2? ף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?iiK7A?l?v/? +?I +?(1z?Hz'?~?5^?(1J?cX9?@5^I?NbX9?Veg6t?iifffff?uV?Q?)\?Q?bX9?/$?(\•?k?T㥛?= ףp?= ףp?Zd;/?> ף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?ii/$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?iiQ? 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?iiCl?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?iiI +'?&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?.Veg16t?iiV-]?㥛 ?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?iiA`"?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?iin@?{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?iiMb?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?iiMbX?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?.Veg26t?iiL7A`? + ?|?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?.dVeg27t?ii 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?iiأ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?.DVeg29t?iiy&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?iixI?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?ii^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?iiQ~?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=?.Veg37t?ii2Z?+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?.ʸVeg38t?iiZd;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?.Veg40t?iiK7A?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?.^uVeg42t?iiQ?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?ii%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;?4\ii-matrix12؈ ????iCB1BRB CȀBB_BBZBBJB'B 8B8tBBcB[BpBBB`CgBB?BCVF7diff_p2_rvalue29/?ii`>x6?^T~?h?8?"?G???A?JA?0??o???F??c?? G>6>mT>siw>c >=>=>.>>a>ѳ ?{$?e&?o4?%(C?R?.;a?!`p?.?.?|I?I?ߚ??x"?s??0? ?ۓ??=?9??@b@? @i@ @B@q@ߚ @S$@3(@,@1@b5@(9@-/=@@@w@`@}@@Q@@L@/@]`@@q@!@@@v@T]@W/@j@@/f@@b@E@dճ@^@߰@ Y@r˭@8@n@Y@ s@yԥ@5@ᘢ@O@b@Ν@7@1@'@ڨ@S8@Ք@fy@*@p@nˏ@@@Ҍ@@zIQ@F @ Packages l3X4y sbcu27s l3X4yN > 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`@`@`@ 6| Platform=WindowsNT, IGORVersion=3.100 MoveWindow/C 5.25,280.25,584.25,468.5 Simulation_summary() dummy_graph() comparison() r_value() P2_RValue_Graph() P1_RValue_Graph() MoveWindow/P 245.25,56,749.25,501.5 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=5.74/Y=50.00 fit_P1_RValue, 12.4401913875598091, "- sigma" Tag/N=text2/F=0/X=6.89/Y=50.00 fit_P1_RValue, 13.5885167464114853, "+ sigma" Cursor A fit_P1_RValue 12.4402;Cursor B fit_P1_RValue 13.5885 EndMacro Window P2_RValue_Graph() : Graph PauseUpdate; Silent 1 // building window... Display /W=(470.25,179.75,680.25,310.25) P2_RValue,fit_P2_RValue ModifyGraph mode(P2_RValue)=3 ModifyGraph marker(P2_RValue)=19 ModifyGraph lSize(fit_P2_RValue)=2 ModifyGraph rgb(fit_P2_RValue)=(0,0,0) Label left "Parameter two R-value" Label bottom "Parameter two" Textbox/N=text0/F=0/A=MC/X=3.00/Y=40.00 "\\JCmin. value@ \\{p2_min}\rsigma = \\{p2_sigma}" Tag/N=text1/F=0/X=-3.60/Y=50.00 fit_P2_RValue, 3.1020408163265305, "- sigma" Tag/N=text2/F=0/X=-2.70/Y=50.00 fit_P2_RValue, 3.99999999999999964, "+ sigma" Cursor A fit_P2_RValue 3.10204;Cursor B fit_P2_RValue 4.89796 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 20 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 // 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 2;Cursor B exp1 113 Button Restart,pos={69,30},size={55,17},proc=Vegas,title="Restart" SetVariable Browse,pos={129,7},size={110,18},proc=Select_current_sim,title="Get sim." SetVariable Browse,limits={1,Inf,1},value= sim_num Button start,pos={69,51},size={55,17},proc=batch_start,title="Run" Button reset,pos={69,8},size={55,17},proc=reset,title="Reset" EndMacro Window dummy_graph() : Graph PauseUpdate; Silent 1 // building window... Display /W=(4.5,42.5,400.5,249.5) expt_bin1 as "dummy" EndMacro Window Simulation_summary() : Panel PauseUpdate; Silent 1 // building window... NewPanel /W=(0,43.25,641.25,484.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 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 N=Ne1-1 do N+=1 R+=(sim1[N]-exp1[N])^2/exp1[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] 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={69,30},size={55,17},proc=Vegas,title="Restart" SetVariable Browse,pos={129,7},size={110,18},proc=Select_current_sim,title="Get sim." SetVariable Browse,limits={1,Inf,1},value= sim_num Button start,pos={69,51},size={55,17},proc=batch_start,title="Run" Button reset,pos={69,8},size={55,17},proc=reset,title="Reset" 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 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