From 265301b7bea9c326b28e1260e9851cec90f32685 Mon Sep 17 00:00:00 2001 From: Unknown <unknown> Date: Wed, 2 Oct 2013 10:00:25 +0000 Subject: [PATCH] --- .../DetectorConfiguration/Riken_65mm.detector | 24 +- Inputs/DetectorConfiguration/plastic.detector | 10 +- Inputs/EventGenerator/10He.reaction | 6 +- NPAnalysis/10He_Riken/Analysis | Bin 68586 -> 68906 bytes .../10He_Riken/include/ObjectManager.hh | 6 +- NPAnalysis/10He_Riken/src/Analysis.cc | 304 +++++++++--------- NPDocumentation/NPTool_UserGuide.tex | 32 +- NPLib/MUST2/Must2Array.cxx | 54 ++-- NPLib/MUST2/Must2Array.h | 7 +- NPLib/MUST2/TMust2Physics.cxx | 65 ++-- NPSimulation/include/Plastic.hh | 9 +- .../src/EventGeneratorTransfertToResonance.cc | 1 - NPSimulation/src/Plastic.cc | 97 ++++-- 13 files changed, 347 insertions(+), 268 deletions(-) diff --git a/Inputs/DetectorConfiguration/Riken_65mm.detector b/Inputs/DetectorConfiguration/Riken_65mm.detector index df5fdda00..f186361fa 100644 --- a/Inputs/DetectorConfiguration/Riken_65mm.detector +++ b/Inputs/DetectorConfiguration/Riken_65mm.detector @@ -75,10 +75,10 @@ VIS= all %%%%%%% Telescope 5 %%%%%%% M2Telescope -X1_Y1= -50.23 -50.23 325 -X1_Y128= 50.23 -50.23 325 -X128_Y1= -50.23 50.23 325 -X128_Y128= 50.23 50.23 325 +X1_Y1= -50.23 -50.23 350 +X1_Y128= 50.23 -50.23 350 +X128_Y1= -50.23 50.23 350 +X128_Y128= 50.23 50.23 350 SI= 1 SILI= 0 CSI= 1 @@ -150,17 +150,19 @@ ScintillatorPlastic Plastic THETA= 0 PHI= 0 - R= 293 - Thickness= 25 - Radius= 12 + R= 303 + Thickness= 20 + Radius= 20 + Scintillator= BC452_10 LeadThickness= 0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Plastic THETA= 0 PHI= 0 - R= 310 - Thickness= 10 - Radius= 12 - LeadThickness= 6 + R= 328 + Thickness= 30 + Radius= 20 + Scintillator= BC452_10 + LeadThickness= 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Inputs/DetectorConfiguration/plastic.detector b/Inputs/DetectorConfiguration/plastic.detector index 138a7f665..71fd2e95b 100644 --- a/Inputs/DetectorConfiguration/plastic.detector +++ b/Inputs/DetectorConfiguration/plastic.detector @@ -1,5 +1,3 @@ -%Fichier de configuration manip E225 - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ScintillatorPlastic %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -9,6 +7,7 @@ Plastic R= 150 Thickness= 20 Radius= 50 + Scintillator= BC400 LeadThickness= 0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Plastic @@ -17,5 +16,12 @@ Plastic R= 175 Thickness= 20 Radius= 50 + Scintillator= BC452_5 LeadThickness= 0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Avaible material: +% BC400 +% BC452_2 : BC400 with 2% Pb +% BC452_5 : BC400 with 5% Pb +% BC452_10 : BC400 with 10% Pb diff --git a/Inputs/EventGenerator/10He.reaction b/Inputs/EventGenerator/10He.reaction index 10e185ec5..2c1407b0f 100644 --- a/Inputs/EventGenerator/10He.reaction +++ b/Inputs/EventGenerator/10He.reaction @@ -7,7 +7,7 @@ TransfertToResonance Target= 2H Light= 3He Heavy= 10He - ExcitationEnergy= 6.0 + ExcitationEnergy= 2.0 BeamEnergy= 550 BeamEnergySpread= 0 SigmaThetaX= 0.6921330164 @@ -17,8 +17,8 @@ TransfertToResonance ResonanceWidth= 0 ResonanceDecayZ= 2 ResonanceDecayA= 8 - CrossSectionPath= 11Li(d,3He)10He.txt - ShootLight= 0 + CrossSectionPath= 11Li(d,3He)10He.txt + ShootLight= 1 ShootHeavy= 1 ShootDecayProduct= 0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/NPAnalysis/10He_Riken/Analysis b/NPAnalysis/10He_Riken/Analysis index 7d4b35aeea6e51b3639acffb5195a836aa186db5..9eee02e64c11973ad2d0006f1e3116d822c645f8 100755 GIT binary patch literal 68906 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 CkRW0J literal 68586 zcmd444O~>!)<1sG866FkjEc-^EHyMGh8IOsLuFKaB|$UOMubsN-h!df^a(>s#OYdD z*^6C!x3Zg+m6a8~WLj2aW>#9<v;wulo0XZx@B7_n@0mTr;B#+}_y75i9@hD;wf5R; z?Y;KPIdf*_X6M)uVPRp0dbKiI8$|Z)7Fz=7l7E<z1jBCFjA-K`qpQ&dEXoqfp@Tyd zKp`u5796c915Q{3IgYb{c~C~%Jj9D-ahzOZ7(7_sh%n`Xmt?h_#E}exQQ)&)%3Fa% zJ%wX{)yAV126<4<I(Uo%9)-GjqyY0!vb1kJ*}LyFjNP5BHXaYcJ`W|o3Ua77dnx;u z=jG14JTJR%UT#5YSxiY`Oq^L3u8G)2j-MpT(odG@jDxl#aj<PDPwM$f!;K&OF}QPb z`ID`>z1ZgGE>CzXARB|jj-x$}nd>@tyJKnjBEu-ZEj9B@+IXtQUTzpGjmX8>Lv1v+ zXwwZ(weQf|mhz?L8H*8CKB)cng{|yMCPki|X0Mru`r9wFrY(YEL~?BVGh+v!6D?6j zxox-+S>CNx!s_xR<!P-glRJdnYuR~M`O?*P`-*n0X0|)4+;Y_n`Z5m3cpO*ZfI0C> z$KMPbjPhz6*Wlo5s!5D%L8sxkPU0D$szGxlZw}~O9EB2-6lv!?Es@v*S}M<PkhBc+ zCL9YSCRvE%W*oN=;8kf7V+m*#j-?VSQjL>kIJ}Z^JLunV+==5Z9Czcm7sq`#9>l@d zDw7z0my~2Rjz@4jisK0!PvSs28%R;(860bIsFxg03L4Mh?0Fn7;#iO4B^)o~P_I|y z$!nl*;CNHww?J!fY{Ib_#}*uK<Jg8{JB}SV-o?S!P8=WNsKxOSj$JrD#=+Na9D8tl zieoR1&v2;M7wQBwx$^hB9{oP?*7%Q7e=oo5?yZq4!-r?yRDH$p{H@(zIkWuHYwEv0 zlG*e`$&ihMqaMFw;vGr1&foXNpwAA!^6}h@U-cgCcvaT0i*7%wdqq{;(yR7#Y`v&( z;lk;=+TK%e%h0B0zW%6o=ojxFc<93S9{pxz-mEVcOzp7ip?0|^=jBJt8uRh86B9P) z?k{fbJb9?slO>Nldu#0<*SyocVuA6__L5b7|J9|BJ2$HM&yg3eHD0{?tWU$%tqyze zq6-spU!3z&+{`b&U%PVF%c}}fmM(&CiQVoyJNkpD+uuKM=BF_wFMQDNxdU;VURp8l zgSLY|sN3~u{TFv8_KkLaGWNQI`wIT}y+_u)O;g`qwP&#X>|ZB$9NIQ@a{7;tzIycU z-78+dK4R7fvsbx|^!d9cJ$&28Hx*ijzuEWgYZn%;e{b*gQ@XxaH2T+r&)-^mS<I6q zzkK2TqG$f`XAUQiseR?~pBERj`{bogDJL5{c+xhd-D&%+?Q1c;?)@<8t08|cSa$K8 zt2*}TbGY)OpMF~0&G_Znh4+2%%wyi&aX&sd>*fAW3`>fN-5;NuHe_kLhi<!K@yH`@ zz5a9Y^R~xlr#w66K+Wq1?p$EKbV{ddzj))j!yo_H(H=4N(>=e<+jrnd&yr!zPmbh0 z`^nvz;m2}1M1K9ylly+#lUtS6*kRzkXE;8~xiLTP$&!9`?k^rccYn&5r(Swxa?Y$T z#=JkK_U>CRNLgk3u*;mA?_Y3z?a9W3SGO11|2WpJ@Y3Rk24{Y9_q^1(FJC%i^z^1% z*B`C;<*JS`56^n}nM1$3zUgL<&)@K~<G#4zNpso_-}8R`)!+S^kkzQAlQ^|=l9R8_ zpb_B;nRDhdwm|$FCsX;NzO9`?rv9^M1meSO193O33F^i2FJVGeFXA&XO{y31z@YlN zi3Q5kpnP4By`Dk-4hZsZbx?grgYf05a!@;t)FAl_LG@1vYQHu?@#X~ie>BLSWn7@- zi}CCUvj0X<JYNUdTNb3hHAtQlRA0X!|F#D8m)89v{^x__^+EPCg4(~GW`OZ@4QjuM zLH4qO+OIe$-j9RY=Xg*&+k)ab8Du{>2&*-OO-}z7@kG9eTLt-B7F7SwLG^tWl&@=o z;%OaJ{|iAlKB#;|ki1(^yx#@+vp=Z5KZE+?#-Mn{1o>YUls~aS?SFfay;p+DCk4qL z2=e#mAbU3l;m3pYzYMa!{w%||^f!x*&2q8P!Ps&k#{3C$KTEu(n_>J9utUnf#0D_! zXN!${63TbOUh*KTZ5i;HMi*maSIk+zSZs8I^7b7JV_2ib7AbMtURbk#_uC)c1$)?b zRvVk~Orw+Gy}&Sz!=8z|7`dp=3jZ#a<-b9DbpF9&V=mGDCD4ztTE+gGIIE{&Z2jJ^ z|K8b{<7`%+{|5ATZ^oV+ug=C9#_}k`s6S${b(i+W!f-kC*=@A9x(D`wsINQfCGG@A z&Ov*eFXiJ=aP<(YZ4fZye-<<i_Eh}c&c&Xjjn#%`5aqj}eT>0Y8@rYIzW}dBecV@e zhW#;69IW-nX5grkW_wXS7!4VL_Er5g>^#Gmq1As3{&h$E7s>j1Af6!>tF2tx9|C&e zQHu@DAp9AK`J{I%zuex@FzV3$^q>AsLi;DfU)3Ln(7ur<&tbv#co6>AY4wM7!angw zi>;58rvZPCd{O@X0LSdGXP5S`LjOOe`P&ir1+<s)FZCS5csk7Q-xp|)GRV;_qW&?L zV($n0s(o|LgneAsK`h#H6~=QB`a{)!FWP4g@{jF6{|BT0PHOo!8vad1|6U^Htua2n zfqfJc`t#vW9OTNsI`nTi{8#qFFn+SNcoKlupgxrk^=OZS=)VtTKDp6<i#7ct&`;6Y ziw&Lfwu%RR2gfF3JgN9sA^t|>3%W)4_Y4xVO<SvNlEi;UJ(1h|<==zjy<1ytcR|j4 zx*z$JjQmEJqP!i{BkN<#FJgSGg*`PM>X0ufn!mpx{@8CUw$ad~y?E%)M1CMlVK1&5 z+Dpslm(hNsfY(TQA^K}O`bXt!gWWLlFdmdYy-?pE^bgc=S$wqVA^88amao0we~Ol$ z<B^Z`TK*;iTeR`x0zQWPRQXbb{-1{U(xg9cA^+=-`}=nm>K}#vQ~iH6PU?YGdt3|s zu3CQ_ft@pvpHrkgw(}Ikr}R&>GK>|#@lyVGjL-F`&zC>&r>7SGl4#5ih;I<>VmyvP z|JP{#ok0H=qrKn8I>&r|5&85b{8Que2*(rR^T_(1L;VZ1@!-Jx_$B;R?R_5luNC4! zF=1~m>^`>DpFi7?Pu-C(YW}N);%4Yil=^$%UvF)^4oCSiv^S=GVefkcI#!$S6Vbkr zss8>QjD|X<<@=);4>Pp*UqyTOL3x-%zI8N~!vBZhKhi+hp99B+Y3srD;7>=qD!z+@ z@~I8-$*#{|cEi}O^~ZClZ@F9#nBQeEGzay8E$Tbi1LFtzbqEtA<=M#RB$=;v<2>UL z49s=t4^{s|DA=gw=Z6?5jZ)6?Ud~@vT5SihZnM8{Li>G-@zzJy7lnBHX!%?Qe<y44 zUWf7674yq>sqaO9e1P_co5J4<5dUt>kJB&?Sl>S|@V09C{14PW0rQ*6#|2p5E${gI ze-I2UKz}=>y?c;vbz1-YfW$kd<;zRZdlmkv@o*N};}Gmmm*v}_{J*sP+l2gFqUGn4 z$p0j5K70x76@~Ut{{0i<Wf1aT&3|tp5$2%23DW*dtv@2rAKB>dt*Bq=JJ26*Vm>T~ zKHI~<eXrq##ctg4GF+o?a7}d2&Mon{i-+fBmXx?lj3Q4?u{$%{m6chL<<2u)uG#s8 z1+EfLX0gZRGF(&BJ$atgtaOjVk(HBK?D7<6=6Xs}vz+Of_~V>8aZLKm)C^ZftSiIe za;7J-$oT#l6K2kFXL$;4bj~qxx~Dj|VD@l_Gi^*3IN5n=H>3xsX6HH6Zh)lV#yNtf zdy4W}u2!!T9`tjijY*F;z5S1hNq-&j8I#?`CAozK!*kqObKzz#-A>9#_Y@Xq&UQN- zW;{dl@(Qy8LrQTtZxBtKTi{_6qqQfdPLOBg-HJB~Z7zC%Rwrf_WEbYgqZ-jVK8CP` zdJ{56#f>oAD&67A&CbSu`ZFfo)9(f}YhiI}Hkv=%=}aieo$rPN5H^$LmYL>Z%@JUY zK8`HToF$#)X?(T<MVaa}qu4Eyh7tLLODin#lw=j>7OBX_Wuj|&LzQOJa^{ufW|jCN zoh-a%r06Bl-$`g`Mi8%p9pmFTrkIgvoNJnKrUrB3$7Rkoc|Jp^E?c&kj~Aa(=uuAO z=T7w3fflCc2qVWgOqjuDC#gPa-t>+H*Em;kX2EQ?D~m~^(!wmKqHESGahV=yqQVR@ z>}0!T=ivl*q@^R{<ah;~oZ|L~29uhp6DAfGs#J2s5=<!d6qRCp&USlJ3ovjoj-CCH zx*T!ov7*&=#r`So5>IjAJhRaT&_ZfKGXv=*bY`MEGs}ZvAv<(T{P?u7Ns1X4Khd34 zh#HGavpf^sd6}Nv8<6I?S!jKct^wMPBxixUc=o)pnKLsAGjiOX%;DptVt^i6T;y{A zGtPlZvxgTJ%*vfzT8xSc3r6JTxt*q$(r{skN<87GBi7H4gVD^q(oBy#wIJ7%o0(^d zRGP3ZT^&B8m*nP(Ng!CJ2K>0v5>H%8rYBQ&jKG2U?}!~YDLo@@XmN4oJQbGCb0m#) zdotX4?vkv+BKP>h;(RzJf)CK@2QAaz6n9Z!Nv@~4PFw<XFf<WcVZnr1sRfwe&7OlU z`f+GML1|uQak@iucw}ZtQD$+r#!17HfbLTqOe&7J42>ybfHm2M=#Ferp=x$VQbse8 zzl_hN;f008*|`Pi3{emUhmRfQOzRsL6C0Bd6DQlV#FL$M*<}DR{g6!Qp14?-3rkhu zjjqB{kE?K&Irhxu1dE240!#X378SV*vgIl>KD`9hW9BIl792^gi8HZ)x!ta8cUG}G z-(BEI!@}lg7Zhf@T{AOF+#-F`OZsOO=A(_=&N*|;iUPF#Mld_HU?ts?0DnTRWX_2w z6_46-vs{=|u?Xjz3#k+9nRFmA3oCIk``eXOmgy>Xixv>kBxIo-s3sO--+aS}nL+^` z<rb)LTlRE(dSPCPSohG@1AHx&TTtT0P5>(wYM+^z$Ju3O3$2F9W}-REr<Y`=tA^*Y zHNXrrw-7rAcowvkaK^g}XZeDhi495twj-Xb91%xeNot59AsR0$0~?S;Yz4T(F#8_o z=zi{0%qHota%d)YJege0#c)gaB*8V&^9jsg*@jqC9SPF&S+a*hx&I%kCuZdpmZ(*` zMD`rESs~lT+-8M{R_wW)>HS>@aAs<Hf(xN@3x+_syOJ4$<nuKp!U+u1mo)!gm`WYv z$u}_M;QDu4DgpCc0Y@iVHr|zrHlF}SK8Bs>vVYHy{<$SCVaMz{rfu4YiRp#u4Bj=n ztjtw}&0JwYW?rsmp6iBKVVXH`>Y)LbT9^saee;TMF6ocO7VjjxL#1=GF2kazk8X5X zV2@!2%r_^xlH39#GpkUny|c40_{nw{u1N(q=AtJjx=Tv)-JH<nuASmo;w(8)rcS_w zfyvcXTH?kcEM^T%v}L&-10K5zm={!+8~prCROoVNV;O^BW=V<32dh9V;f_SL{TP>7 zfQ@jmV}P9DvG4Tl9K?jf>{7EvYI+GKzM{<B;#4F{+IXy?LkIYFGEOI&I@Xnrg)htF zDDk8sbHPf$I*6fO!Yd1MoDK(eSlF1jI4wIl=ftZD1WRbKb3?5=4z7r)!_}I2jk%-e z^oQn`t3WQ7B<`k9>8#UzJ*P5rPCo5HCb`mG+?pW3Q_RiH`XMDwHF|u0W)WJgStAEE zsJ}bX<IuLwL@~{pMv^8EotQdw*jQ)W6bI*z@y)7p^dFw*&cs5*CDYvF{~zm*=Q1q@ zu)p@Htldn{tddgKtlR>z1H*dc?|8A{bp4w>S5)+W^wQzTE4<NN?3!6v3U?>|x01jS z$7_k)**Tv4!V=&1&cC<sk6h;Em>Es8-Wl#ohSNO)`@t`{11K%Xy&hSLk&q~MCy65` z4ow@Cls}J`wvH5$H>Z7c^uy?w>z-$h4Sy1FLhz0L(_X2#veWy$g{ddqiHRInk1iMI zPc?G}Z<+_7@8s2n$Yw{}#G&I;CX92AADKGd2_$X?I18}pasPK3F=&cup&6THl_SAF z=6OkACf@+8umz=9SIQjm1@0ToO_ZEOo6XPuNvGNLgemC1m$qCu^4znu(RA9ABp@?= z!%nPAzAK2ove@|dl0KuSXEp7Qp~N;33#rd`pu+)UI?f!^Se1O*r^l0kn^vdTC8+)8 zX?H*wZkF;&aN28Bz518-AD9>Zd;1S<%;x6f-f8*(*Vvh{*nGu{sbAbI@!ex=)?jf7 z!%B1WveQ}AZEg&B3j@0ZwebGu+pYY3RrWOJotW2gA&mX7xux{2Wq+w#ihMDiZa-uF zt8R<CLM}dPDfZvP;|-<ZIoQ;TCUo>O@3Up*W#R4*Zw>iwhnkn^h}*a8&dL)P?ARTe zmtuc)&xKTnW1+X%*wu^eWx!n}N4#%^O!sBlX<TM}TV-5UG{1y6^%AAZ;^yFZ=fsiM zjGd64?&w!kT<9q*$jB_7?e<)a>oPN_5I4W#90)CScxpjbZZ^im(1O_<CAsFcNPx}Q zQSSJ3+_5bhnkTG{IgJgFl%HAV(%&ff&&Q;>k)BoL%DJ(n3odaBGIh8!KiA`NXNyqP zU0%71Ki$J5Xm8G)7~cjt-PI&wG-jK(%*|<|h3%kO`(L~qQwzjtcRvZ<<0=>Tn@-`j z?-DH0d@Doraqy+Ta?z(8ca3?q*wSb}<<P<vy}0@d7zOd>$O;$;7_$NQ3QlR&oWyv6 z;=hc<RiwC28c>sOyrt*LP4{2yIRBR66gwGnPD~I9>TkaBEnIBJ#RlGEG2h>j%@y1$ z4#&{!Y;}_c?^-n5Xty|CIqe3`O=7_M?v$M7ffUDGIc7}Pc;00fH(z<(5GoBY83xU+ zyeD+Zp7-~|X?B~Jz`lDGr+s*edt7W3agR%kh*Qn{r^qp<TC02smcUC(ncb(kQFuuy z?pL(9Kl$&>#r|v8fX%Av{J+|C{pI|QIr6`Fn@=_vCNy7f1YUk&BK1j5&!v_lp1Bn? z*3>|1VUy+xeb3f8llRZXg~-G)Gugd=wYAlC|EbDrmnG)So>LBfXOavN@6@G@G1rw4 z+p(Z~!c)wdPBll!JJk%CZ)?fNOR&B8tNUVgS%Xggi%U%s?u5Dcj$}(qL6W!_3w0Ux z7q-5tmweMn-1s<iqpR<Q6ZO6D$jtfwo#{r)hJbOewj`&0-1zTK|K;B5XWlpEdmW+P zap>>jSn4nLtbZ{h@Q9DPC*AzgyyZtG{tsh!fbW41F;|M|prsu~e4^N4G`k|e6ChU? z7UyM;D9+4x%Q5)BE$_n}p)TGM_)Z3V$iy4xBJ)oF3>q}(TIkJF&Q8eEQ|!G@d+zG* z?3{Mv$mO7S1o+n7Ddt36@}q;yw+sSy;Bmf9-hXY{;I)tTHrHufZyd4NZr_rVhNlSU z7$e7~4jb;mGc3l);lo|=q>|%^i8qE%nKE=(s*9(BJ!J}167Yzo!Ow16@VAv=#i75* z^S?}Fa@09#8>pBi@n9{mDYL+)O)JlGlvpJt;>+YKYL;$ggvo#YGsXGuQB@Z|jU8sR z_4)8uYc%bs(t${EPeo0C@agQ3|4e%y<Dp%AoW!u>h{(;w!?taW96lJ17t6h@$<uny z18QRwYw|}mxmn(-m2YJnkn&jAE4e5aPf**8`6$miP5ssZ`Y$0FDC6tn=jNibEyk@< z-_z?(JY(L<xI@-oKhSDxgJ<>mStlzVE<O(27SF<;BxPD$0g9Bekm6Zz8!0S?ld>LC zJWCx(3d>QX@USZ>o|(3j!vF51ct$fM+;6wfHflH%Ft1X4JiM2csd2a(b*Qaogy zLW*agN0H)L@v)@%%tab0o(<0+#WVg>Nb&6TG}34Bj6Ery<<BO?GxRy6ct$*r6wgc- zk=Ej~A*6UFzl;>mjxQj!8%8-PKI^fVv=Yy7lj7O)Wu$mUdpYSceD;B~2R`0U+7q8S zC&gzNR+Hjc@5e~d=4(iM<FhBEm*E+D()IYP1Zf|`*g#rk7#m6Z;xiGXF?hC{^m2Tr zgfteP4I*{mGgzc?c=nw%9-jjz#f-9#G!f6RllH@Bb4dH+GajT#hH->+0G`n&9f)V! zN#95RlU{-TC*_ATkQZ$SqyI^Vp#Mp)ME{c}qyI^VqW?*Uq5nyTqyI@$(Ep@P^grnc z^groH^grn+^gn4T`k!<(zL%itoAin!mU`4|T)SvXc$r~T-*vL7si|_8$66nQ%&dRO zia!QyO}Tc*mZro;WNK57WBAK5O+A>wIXrEsL$RhF%;X%(8fpbL5Lpg~M?;Ok7Gh+M z(XdWn8?l{uwZP%T(ZtIIjvz)47!BnDM-rn&jfNtDqllA<X9(PtcocD(z;@y^;$(rl z6Hg(I6*!uB2C-e>KEw>DAwu9-;v!;0-~?hclhM%lCm21Fh|7uV1Rg}Zgt%7VWa8z- zH3Fv)uOwb4@F?Qd#H$4!OT317xxi_}>xjz*&LG}ETqN)m;u_)^0#75}PMjw24B}ei zWP!7Z_Y%hnoI_kkY!^6>xSlvd;3DEiVnbjL@p0nDKNx=*F=k!FFYp3lelD@0R^W2t z2;v%n7ZXPjuM>C)v7LCez{`lEiI)q!oH&-aT;LVN{5Wevk-#g7lZj^t{2=it;xvI* z6Q>a;3;Y=I6yjKc*AUMjwhO$LIEOew;B~}B#D>7@iOYx^IZk?PATB4a6L=%>65?8c zYlxQ<*9g3ocqQ>VfwvQ{CSEP@PU1Dh%LT3_UPoLm@NVJ_#6<${C9WZ!A@Dxp?ZjyU z*AdqeCkuR#crS6R!1cs+#CCy?5Z4n&2;4~ANNfmvjQBWl<L`|BI5BrL4Rr#aB(@RP z3d|WTCxW;}V9sngQN-&6<_wo(CtfWuXS$qd;^hK!#><H%E*F?HUrrKnk-(e*bCQW? z2+Wx<XB2Uoz?>0t(uk7<=FFHgg*aAV&X74Xi0uM%rp(D9ju4nLW=;{YAuwmo9Ddxq zq47jh6UKq><@o-(s()4-Y)s3Tn8VL{<?sW!S5400=cMWnK>676fR~(m%Lng-NuzXV z_1U#J*${!R>FFDeKbwxX@=j?Q@Og>d`!Xx3*c?_RRGK31rrgvY@OkmK+pIJZR<YG` z?er~Gzj!xdB@}ae#gV9oBcWPZ<LS&f!@x<qcP!n>YpUI`Wx023cMDu@y8a}*xq5Q? zRf~@7#rC7>y^1R=o|t!1x?85;Q*tPgj0)=CL<^9|PjXdRy4PQb8R2!BZD_(;@2%{G z5kmewpw+`I6*ZP>!+W>jW^}hzp`^F6yVSV_W&I@{6R5Y8O;+V?EHAje@*JhCV;D*t zzOd@!s%?HN*MV2nSoJyOx4>6#rLveJ>|Z9!{(?*v{)N-N;QH)$l{#O89zNf+udMt@ z8SFRw3tJp-r84&&*xpJ}P=we=n&|YK--ObAU75H|m{6)I!drzHzp7jDhN*%*QIMVR z6*|US$w`diZjoJcL~xTN_gP_9=m^gg{}aJi=t<<};V3gy#k&hUhI%-{U&qbVlTD)P zoh$Vk{)Sy3@+1k_Q2zu1ui8?zmyW%A9Ou)Q%Z?Xba3ZGY$6sOZ?5aIg?^Jc|Uf+#{ zj#vGw!3j&=N}&YxYUgt5o&__K36zKqRGuhn-M|x_V>LaAq9<K7Pm*Ji*wa^dD@6(k zPg0~O?f_5jrOWi>b=dG$3MJvm3VM<VGm;7P3|dloqO9Eup77)*l>e;$v%3AOxR!kO z!~Rt^NexMl!)fvxC9RjVPSU-S)=Iiv(i%`EL3n#6!6+HVn~0X&E`pmTxog0cIwEMr zuVvdHgh6&}`XUx>9)wA~x;@HA@av&K!+X%q-SoK%<AauagM%_nA9*X4nOwA%${xj= z#1@p<qnsN`J()d<*H`K_T!m{2+Bf5wB0c{BVsg!RW=QT{aJ`j6N5rG}hKwf<*At=R zxkALlwpZ~a`{Pk&?qe><(V%#h;Hh|&bJtT(#-n)CrC!4#Tr2tG$&sF47!Xg9<l00$ zLPx}-__5%#e;&kjQs{VwiFlYpDxQ)4c$AqPzxd-(yqCaJ@hImWrk;#P@w`&6;dxvG z`r|2+o{vYk{{AVK+$3<ll|o0vqxdt}IEZH_t^-5IlPcojSWxkd^T(si{Pwdy9>x0x zJQa^}?j!2Scogpqsn_sNT-*BNSt33EAB5|VXSw9&fa|RkIwBs$U(UusJSTB|8#<l| zA|8%u6;HZ99%ZJN7LVect;M693)A9Jyzh^haW|Y95YI~K`9Dy^AJ1yZT?wwYQs{_y z6u*X*BAz}i#xqI86G1z2KDf>wk1}%&d{W~_@to36t|rPk2lZtCDBcAso}su0;qRX{ z((^AN_Q$hMa<_x)trR*U9>s5@F~l<sdy~-pGh4*NxmCq;y+0mhrs^kuJc?Hep2|1n zTqgBoJc>6?>NQ-Cdn^8UHb~Dq2E<b%xyMn+TPbuzJc@6Z@hrmzAap$QL_AzOR6I-k z@hCH|{>vYa;yn(Yibpwj2lZq;inmbeH9U-aM*euVOV5YEbASKTN^Z1>N9c%n6hDoP zgZ|lw^*VGscZ+zq2C8@-_Q#{lG#vHEqj;Zyr{Yo0ZK9rxNAaGOdJP{%=<)28o);io ze>`=PI|W>CrO*-aD1JE`2k{)isvkO@XGA<)!&N-b`{Pk&&eP&iJgXLua_(rOKOV)~ z4<6%g2n&d(UV8oz%=qJJl-woYdMkyFh)40)u~Nj-wZ(W|67g^^qT<=;k4KqFrJr&= zRlG#$C+7p@TsJKq#p|Hrap0b%x3Wok+)sEcP>Q)P*+fq&k4t$^(L)N=|7gZB3VVzy z=YxK=A7Ms$rj);6(A>EU@>kau=Bk|!RvXscxbCZtKojEDsz?|c_Do_R?1Tf*L3=gr zQdy?leMj1Cn2S5G|C^!DG(-QJ?&1GH_o$|eeLC)e8uhnfRag7;JHJQZd#frpqBqTY zw+964t&Cvn%JvQj*SCd_VM}x4d`kxvXs{8QS4Q+u;S%=MM*T4?WXh#0kC-lPXwfA~ zl(myufc~qB2Y!$){fI8ZPJ8-l{#nC6>-cBGerxQRR@?sRHQvg$ynIB$e~K~^$#5-a zFuiyKjPiF7X0>yL_in++=x!l14m-YT<kxn;-ru07@=KMyiA}`(>f*2ON$}or?nL-T zLp*NYn^$7Wn<`nNp)Vq+9=G$gs+W#OR&D?F(54d|s<v-Beo@uOy>P9STeJGsFr(_- zUYo0GD{D#zR4m+Sc;c&_J9*iyF5oXXY)$~}5f7dIUSf4YKMs+boxhbA1IXx|Rhu`R zxJYF@ZE>hW2gRE{s;(40z&62xz2BOIru@9&tGb6et*Ghrz~*kXi)%asO(o7djF8pN zr}8S!8-5uF5@pv38Ry8u5$K>*`V|ivohlC8(3huo;!a1k$XVU~IY^@YtGI4dJGZk$ z<)Nk~ba8Xdv8-+S>gIxUAz+?N>mIq^xdtSBzjHMR?qS$uB6P%<@mBT$s-CnR?IIGP z3U%R@y0>x#>c`a+b<t$ryQ!y?G8&|kV8X+Alv25(co%^uawXbd<r&nAH#3A4FuGr1 zOz6qXQSN;u`3*m{3)M=?u_xJYO-7e}xdWr2c^mvKKw-mv=eqs4PTzr?*}p0ob?<j> zAY)WL8KVS4X!Iwek_;GLmFCyHT@;<-*X#hzeO|$+6c*Xom7)aOTQqhN)EVW&DD15i zNGwyly-j`tTEuK@W~aB(Bl#Z*zR(KbyU`f?r`P%wH^2$i^s4Y<;E5*10;MWiPCdDS zP`m|FuOXo=FZG!$B4xtGUwE@pdUGJi%Z-wMncxd8;iclgWuupSy_Jg5S@Tly{`}7G zrK;!<c*;w~+avWFZg0b7v<`J^32TF8U&5MgXu+LbwyhT#Wa<a<y9w{=yp>AP!&>Dc zuXr;w?^q=bj@7(Vyd>paBi?E9Rz{<4&AWk+3h&6Li9fK2e)hv>JIs0J-YsScN`Cyd zscG>Sofg}12Xnu(#+=!GiZzRCIxSv^X=cAz$utu}l0}KLjy<^FI*Lnz81XesLQJ3h za;o}{r~uQ5Pc5yP8ovXq{=07i)uuF46V_^!+FrBL8O_xAjb-)s1*zpUQ(H~7VpC1z zAZ9Azx4d_DFFIHb^xyWcs^##j6n|IEz<Kj={|Z`o-?NnMUscDy&RVT8q|u96pSYhT z2Om0MG?snyUY4IXOz`SqreTR_;*kB4szgPIPVX|$cwcLmH49v{&%A?hMC+6mT6^NZ zr*@fAJ9Vd6g49~*l>G;UZ=pJ+74kZ$Q$jWK>$DKm%zQv0xS78YJT~*;?)$CfY${Po zoj0-{C7)W}%CUjtY!@mL<BWWcrn_PBvmZFhe%b2mv;yNyNp6EG$62Q8H144EPV2Pz zVkK(UpO^ajGek#m^gQ*oXtV!K?G~lha!1kHwLxkjI*Muurdp_ux`v5vE|Y5XgzBiy zv=G!$1KT(6s5rs<_dAM1d6j{!H%Fn*jpOJ-?s&}mrA4yK-bBZcYu+y{liW4nV&Nnb zON`>zg3pc~1dn*V$~Q5qJA>1-3%BoN;cA4XCU(WU5j?dxs;aXzJ;j@#^t$+Og3A>g z)eilq-?CWM!Rrg2vaEJD=TT2CyNYL(dJX5n=L+Y}Fm6=0RBhYz=SAlBm2a3<N62mJ zu2+GK0ecp77_jGN%YZG#)>pX`UA&`H<yv_MrYknYYLmRTjtkIEwN-2Q%52nVxo3VA zVm7kcGoL3LU37)BoGsc9f&2QwxrD4s!16-M9xypqfm7dAu!Tl9#(B2b*_jFvsxdmS zAZ#?DW~Ct*KY$^c>um8ZoO}-onrFi&)obbvtuS`CyeDs$7s}tGdZnj$pMj_J)SGp0 zQ%}Cxrg+awJ$iOF9og%3H&$#luDSL)*K}{@$t`$CvEoQlwKJSSS3AW8$5?EWu&t5k zb`;w`y^bm{QVz6lT;0Bfd%3Ip8qL0cdgFd);|^NFdy|WfEJLqVEVPAns=N;ynMDi3 z`37vK%4Gm-ZsQy)--5EFVnBbqA6;PSZsqyaXvhux_FE{~(%PY?p-c&Dok}09Q#xV> ztJ{Bp4O~k3%PuHx=gL|SjSc+rQoT4OEPg(OP#lYE<@zM}!E4w3)+Odr6}8{G+&mNa z4C=8jp^d3bHdNw~8TB1(RPB8<875&WkEXuIR>(B9(lpRVOikTU%wCRG*l(5mD8U!z z$*1|7r1?9g`6x66I$6HWwiNBkYjiq)-It<be(|l>`3gDvAmu5{(8K#+!s}c|$u2nQ zx00e+iGmd<M<6=ZAI`x>KNv0x!w$j{YxTl?G%xHG)1FLs!N_DQFh3_qUzUThfnVZE zW2)O|hVDFyO1;jvcp5EyeoOiMr0{tIB^R;|bLud|8!YRfFq0Y5qT3s!+pAGu{kAVy znK1b}DpPI?#?x#G>9%m^GccODO*5?Y2rBhD-{I-?B7%36+Z%=3HI&R|9nx)K@>W>~ zg-@diL%EGf9Iag=-L9kCorK%Mq=hDBYYWCt?0V_8aOdJsZqp1aO%!f_$kW&4smzdf zgxlLGSqGEKZDI05SqFtb!IzfZ-Y(r1+vh2tvyFtwaWpC27K}lf+rpi>U^HuOnqj5? zBhu|tp0*Zlf2vx0mvFn5lHVXvZVQvlXEqImgQVLsr-O34R=PcdTZo50quavdJv1rZ z7K}<TRBH=&)`QW^ZJJ@F?}&c;il<{m1Yaq)4+yu#`|86qw}naOvvRu<O~}>`?e<>j z_G-F)XfNFsCci>u%5A~;01V}}aOV#&nz>Cg^ff}b{T)y5mZvgFeiv@nQBuu1WNr(S z%xC5H2WY}jZkxGXC*7{2+wsC}VKSN~Worw@xzgm}YrRh4&ImA?xlJ?l=o+)FELOgy zfhix~nq2=l{NKRuJBK&EsfQ94h(-Ywf-wIbv{eXaAcRF*xlnN#G}pi=Sg~-af_e5x zeILA2Emk$Gd_qSlRy#!vBVbU<ZTpj<vK%WQWc!mNwezmpc{nUV^UEEkmOznT?)Y+( zz+DCIN^F+Fb3tHLPqI~P7OQhrWcT{Z;o5!!&jg8eI~oNmYQ(x64Z&-08#gx_t0o=$ zD&Jg@p-`P{@%d1lY-`!}lPK-C?W;SAJ<7Uo3oRd|<g-J|Gn9N}XnCHJUm8ljX!CNg zl?rc8(nS$HJ){6Jvd8D61p+x(qfK45f>AvweACyh!)ir0n(b1xSxBlr>a~eCX<KV; zBTSYcPt3NSj0bR&z0Nuq;eA4MirRVhMYX&na~{-~clwxg5asCLqhKzsDIFx?2*9c> zUgu%09H%ZAtD45Uw<0*mS@u#<*3*{H6dH%E8}JvlJlDVDJjPS6^B5}fmpQ^RBcbbc z?)FYP0$-6wbwQqwGb^ih?yhpyd7YxnAAkCXjbI!BLk*kVpKuluu~eZ_JUQldAIE0$ z+UtUb#sesHg)_X<J-BJ(3CDmMj=81YjpAl&qA??@r_<f)NfGo)^e^_4*wBgi_f}6o zxnr|MKKU$lm6B}nDy1aHT{Rqv(0VX}`fNosg#~s+*7$2y*7#sQn>^SWu1oOX*?`Ts zNv=g__P@A=yk{4#K%5c0fU#AjS$vUoM`T{7sGZ${+TTTEiC81ejyR@={03VxsD5Uf zy}DHNC(7p`?W?xPP|^X+R*OKIFh^9kS0!|>9|tL|HTrtSY(@Au-8?gA6|-$bl3)07 zQ`4sUi+uje)<*BDCi1ZUy%k#{ua!0!j0jt{H~mdxhnBL{81k#wRu0&Pw&VT0jb{Ah z=fe~pZyZ_ejHGq1Q>=;;Siv?~G!g*s(LniZo?*awWP)H0x(JztoC+QX{bgA`7Riy$ zhGq|hb7?^BYGU9cY`;JUP1Nu^rU$I4rZPq}2e#<gRj3vU)mU#^H+%vu^fKMK6$R;~ z^!#h`?q-F7E-v_kE_PZRhs0t@XRW_kI^*I4No6*SCs}%Z64w#cu@d}9;0wVM*u!wY zzjS|)a7_AgfWEX7{>k0VdSQm_52+aF;%6sCE9O_5JE6y+TUjGI%hMOUQ@7vCu*dd$ zo$*aVheuS8i>w-p_QouOHut3?oLwq){{~$#L$YJ^wsx4&R67r%t#d_-$&h}a@BL7o zO)lEMP4hq^L?F1CtlD~~zpZzY=WA<~AukK=sUzGC9Y**W632^s7I4JtOG@5=(X!x2 zN*P{I6W{Q=XyVz@_hBfnnz%Qc?35{*ZaQ%ITHN8lO_P?}x3^S`^Ew-wC$fyA8asm4 zhda>|3^@*gM-dqB1jxx76N8#V)&2nU1ttJ<HkEVc;juE7htOw;wt8F?dflA5F)}Mp z;MQbg7zXD#)N@8k?K_#3&WOVuCH9)QVqt{Q>26F9rBBHbMaQ^@44i3D52jZ+&j_z@ z?%VvZ@ki32m`i>o1d{tB3@HCvFZX0>W@YuIBjk|79SSU0k)D3^1SVDibG{WjAFoqf zg|7vVU5u4kv?3zD3me4XxoC;=Cs|I~Ue6469s}}@vQ$qx*6C&EPiQu@9><Jt7qO$3 zi%EEOa-=s6_sPPm($Id#L`|60e-evu#a263T5}fn&A8@tJA?|(BeKpx0yS=P{u*|8 zS~V7SB!{`YACSo_SEr8|?Jj5sCGV@po0^t5e=T45tKsP&i@uAZhtH5;JMB1+R4hCq zJMlgyndk&DT=?9#D19?FAT%zg*74?i0H&r~joQ$TsoR`igjJ729v|^K_hB4k-j85Y z1x*?KU>l>;>-+*Xu+r`mt%T$`7seYN_K(?1IA54a?{$jVn$Li9><S-W0SJnF6CQqq zCnL5w5BNMe*s>>UVL^Cu!1Uyx^2E!w>axvw7}LjLQ?^sdu4mJQ8hhBtYr7Y0SlKyu zd_X5{RjrWv>SCjs7aM8^EcNbtKS;0QNHhlyOblR!{_$}DQ>Nb%E(c%<n#!m)#LTf` z8o_muna0PwQzE=ba{mUHPuGZ608{i8#)w!)uY~}r^x+(wBA<OT&KC0ys*s(aY2M@z z0T=B+AZF%E|BF$!K6NL04j&_^xAR0^_ouwq)CBMSdpZQ6nz;t^Z{SRV7%`c2uHuT- z>1F)2ElHCzoY)h|mb~cQpqA8H#MD!J3SKb6H{te=p#Cd`2<(NbzLcY}GjxPk7|0!Y zzL$PQm_ymTj>DCV=&IHbn^stpIrYhrle3-e5?-AqE_b-yMC7>NT5+ULbt$(<ynV;5 zPW@;;$b=i5*k(Dfs}&n;(I1av3d8;3Pph!lLZ9<(Pv~;(J;6@;8BJfYwU4+Y_WQ+X z8Kv2|!q7|+tS<vuHVZ87`0uRg^l}XrI?n9)Y~tp3*qGr}wP7`3wVUc%Q#A(Fs07sV zm?B;Qn(=ERLF^}=Lina+!_!Yc-CmS~&T_w>EI$-a4fxy7Y}39Wc-9cSqi8&{thkGv zhnT(2t+aXpg5XU%oOZ_PHfNo&&G}CpU*k9ct@kJziM&A<tj3+-`ZExschY;DxXh8a zks66eSE)QzoYt~!*PwuR(nd8y@;4sEXxeEuIApa-=78JsjR3RGvtWjUq2Ul#J+l<+ zlZp2>+DvX=o`!Sk?u(fG?gK*%I=pQmZhkGHhWTuO$+%H!G~~gyx00XzVGzr=i98hX zK!Xu5>qMA7r7Kvo4_$!PKsMxYyu5>G(MsZjN@t@n$y4vqltPdA8%^gZtMjiPoy{sO zC!j(Xc0sJ0h=YlS6wLdAiJwAObv+em=UrLV#ZaN0r9pNMA%F&c{){OAm;Aw`nNElI zqH#GiSQ*+t<;yA<lY6~Rm9HR=AP>Jx>T`z^q@OSJOFLt0P-pI-f-Y}5E#{(uybEK= zep*<&-VTZ%ep5#^>BYpB?g^;0{$=QLUSPbV!N-~Npg*urAx4VGHy{R3nGXqGftoQx z@Z#E5t?syR{f3p@TbN*CDd!}D_ar}-l7X<VvPr1+Vuj4q!*E6B=g($ShRC1aQM=bE z?mRZ4ad?WRW?&fzUfu}(7R6aDB;-ISXVFWTu;$Iu7oel^UIhLy7%K0D{aQ^!Fy2xc zDQ4SP#r-Eldn*K@dpcEqi-q6ca;vt|5s^o0L~DuD3y?js349}=WV5XOe1B;dcwVQN zAS{|Mg7FiASKf;G=W8%jJc99&(l|#>RyAxd_c3u-2DdiNbyiGcPe@hvTzj}I=I<n2 zIFNBUFBd1FArGp_<}z?FrLcvajfZ<ky?p8=TdE@}Hb<$qp-l^k$^!3hh-Jcy=M=@H zB=)h=zzK{LZ2H%U6#(x%O7?TSz6z-S8E~4{|2_50`nv|!&mX@Q7JT)02vz@lsD-Hi za#h+NKRC_n=lu&=e?(yYiOPbnelH$8Y#u+7GerH*fgKb-IL+(-o_c2dk%9HUq%8RA z?+~i~`B3xKFLrodr?_sqO$_E=0|%POjfG}@dnYxjo;`esvvNcgc7j4<3^Y_)3dTS% zMB;Xq)^ouyuU}+JiaOJ!8Z+?5O-)VaYOZqP0gRx)Hn|s^=56vB^~^T02e!$>%7U*= zemfkZPi8^Q*Czg)JYSXe<pi%Vn%92~_00Oa2iD(BS@6|AFI4^CV%E^=kK()Mr6c4! z=cR)&fk&ibSCNRBqS-s-l(6}d(0pQDG2dQ4lLb6)%AFQ=la%T2Zrq8@pd5p0_jwtn z=HT5^HC$_%$Nb?&nhw0qC!qb4uz5FLNZvwK=7v}Fz0`jST&4)i-UJo@b{2bQY+HTT zj0JB%QQyZdg!bVsVx<yu`uhl7y;<&n%-mp$eXM!0EVs!)cFzg6Ypn^iTdLXp3{4qm zm$`~i-a(_`S4X)U_g{yw9k{)A;lne?mzM7>-yLvoSzJk64lj`P@`_K^5`1r4v}=Bd z{(4H|MITO<EA4ssY=qV~Up8^U68q|7yjT#oCp7sS7~wUTGrVG9xV*rBDL4!GbPnTB z#=IxbxDhmYcnDse;Ug~c43B$@Gj=%FRFQq=K3`sGhKp;<Um3kzLe|1@G$1Dtc~Q9p zCFPv52||Y9Pr8w4@8D}pG11(^29U|t5&bUKK9%>W!Wq?{A>#4Mi!R=ZQs??R4WcEt ze50;V#C3`K5&_gSeT&!A)9`=ZAL&>>0d+3gG8A7@Q*oqg{rRuK@7E)+#r9V4Z?AVY zHMOd2@^p9nV&1?|_f*ZX)3oA6YE^6t8}MiGmla#Pic7ZYuHA7#WagpeVGF)IpyGIw z=d9OxHfwpsVM|kOb!)Inu{p5dD+qkL_3(w?E3+P7ol_r<0dx(%Lk7zP-i*QgC13Lj zOYH@2cedSAXfG*pXXVbCXP;T<$+2hJ@%w|~mk{l<@VkR{e6cEc>T7pRUP);d6ie&_ z?L+a?Q}`Xs5_`M+d8%9tzIWa<kUvkAi^-P1?PxD9EyyT@YIY3H3{if*JDWfGVgeYu z+=1^bo|rq=UEor3{wjxo@80K^yGw0}@Kx`Iv+VK|{K?Aoh_8M(e}lwuI>|LMGC+nJ zQ}B0+aSi@nV`Svy7NqCm)I7l#>dEi#7A*05jRt;zsxZ&b)}b+?G|v=4-*;{})AE4v z*GMr>Neq08Ab!b_KjA2AlitZMKKB2zpfM|TxU07@Oa2NWPUV>)ep=D6iys?6e~2bW z&ly9}d7jKXd*Lj*VR!SV2<$oNm6>jLfv#r$j_SaHu7Dr$H27mSg|qR+g!y(yiv0?E z84mo=UV%qQ94Wd&oKl!)7wotcBYu?IHEte$X)(rA<`F0*Zg%E;mt&?YuHP6Rb7-FL zG(A_GnqQ--m6eQU#U)=_z`}(DHp)S6#(eiD?qD_D3{VbWzH}tcAvKgx(;>T@bDNTp z!TZd$ZSmbycmQ`bKKHf+A4Ms`XV>`MW(KE377&vk#t^?*MZ6lX3{ATyoBV4`n*6r_ zTD~}DDCO?=-xpNkM^<#nA7*SHKRbWZGs7Q!c+0~pwwxG#@~NY{#?4H-^7ijvTK(&` zbwg60+j#%KKAk`0%tL(_-FNTxgTJ}%+z9)C>#o?l@bjN*|Mlj;s2OQ*{<7|(f#o?> z?mYv_2c(Yu{m$D~)g`I&${y>-H)H+R{a5v<dIzkU_{fN_?r2u8k}LgCdO_`F7-&~j z?(RK3>(7WebI7UUY*rre|NQwAmd_t+J1Ff1`yY2c`N?oqzgM=mvM>0uANBrwX6Ukg zU#!1p*ne8iyZMKwwmcE(y!Z!4_2WHCQ&jye@t@yyMcFNx8<Gcpe>CE{<X?v>e0le4 zKR<Zi=AliaZ;tz8@8+ROzG?29+yNh6J#?Kc*AO2ue*CXd$;wX^mx^=u(WUh#&v|mt z?b5GHg8aJp_>7kx>eFv{K)hP}tGw(xyzAkw`*pc;(1C?lw_8++Z&TyTpJ%F{1iO4# za%Y*x_sIS`ck*`+J=c2IptZwyeKfr|j^ECPm%qI7_om2yjQr>P#a9N$5!E*(<M(du zl1+M^q`zJHrSr`lgWk9#x%aS-d))fZuTqBHTU7t-#^U6|4T-5qM}JPPUUAD$Q)2HN z{L$K(;~$TnJ$T0(B_lq*@bKW{6Xz#geDd2XlplA!{^`svQ|qpLVQ<f~`%d&GZ+!8F zFDj>blW%<Or>#Go?@d10&arCWfXXZ1v-QgRwe_=uPF`Mo$&uH44YQ=*-)NmQZ}20n z4_vzYz``qs+?#TuaL1CtV=n*gm6=s1279i)?VV#ec|)$be|J*rAD<ui-3tw!=It7C zMcMq(w;X!z)4{X&>U@2&>gQhlUY)t^mAS*~<0}@-Ir`WT&)eqjybC{*|5juAYb2|2 zWcJJGE6sLWaixg|Ub*4I%EMP}xLuCN<C4ZDpZK3S8$EaBNPLa77ny9@jg)vs^7yoj z2@}Q|#^vINl}j#H3qIC0{|^{nZd`t<mthakHuo5YJ+CkmKkqmjYn!vUxUjg7y`T^a zlx9{a8unTI#X6&hxlD>*Aof*f7fYvIFzw0(xt?NP$NzE!bTbx$|F6~)_EXsTt*=;# z^`@AO`EpYe-`k(ItEuS-=o6qB*ly3jqe^9<3qUtOcQNR0&??YI&<8=ou`aCvjRsv0 zngUt_Is^0==mOA4JU6!zGzoM)XbNa8Xd37d&>~P9>Rk@n9dsRNGH5O6G|)!SGSJR= zI?jft9fp8*2TcP_2F(MV23ihU2Kv~(rlto$`4r;@&=a7$LGAnDH)srKIM&%wpwXZO zpedlYfX)D21G)h82hf$E$+)=L06H3UH)sxMBk1j*;aHO&0*waE#)I*rK#M@LK^K5> zkv|UlAZVKdumgG~=x)#i&_>Wfpy9X=KMFJ&G~yuafYxFAp96XXbTMeVZ=0G{gGPdG z1a*M!1x*J%26`Q61a1cBg7yLRfQ|y~`dw2~9_TR8C7{=VJ_dRdXbtGCp!-0d20aeC z4>SsUkVeo1&~xgWn$kc$pdQeBK$nB=23-rf4|F?dBj`cUUqB7yP5XwXrmmooph=)z zLDzxCg6;%O0j&p}0&2mh#qvPypp$WvEd_KB=nP`q23SB0x{|mNc?5b0bT8-}TyP#E z2AzTZ(GXmjEdZSgx&rq3Z4MFmXxlBIeL#8THVX6`&^*w=xWrpdKInST$3SaA-vvDa z`X#6h`>~Ut-9g*qvm?o%7lKX$jRP$MT>`oSbT8;SP=0I4PSA<?ew9YhS)k$Yi{HZ% z4Z0RI1#~0mI?$b<J3;Za3*r?vKW(BBwg4%A3?D)`Kipzj5=NOF$Hq_K6SanRv<<6l z)d9mpl;dKx1~TGc*%YwufDGHpW-<?0OCUq{HIpp|tE>gtTF7!*kZp%-3S{x1!M+>> zs|d1-LdZBLdLZi_Le>?s1ufK<1X*4SvJA+kwNPIXWHVZjErTq(1sU(mGxkt1@MHA! zC6ufVGRA&!P<;6M9q~fHj};x?R&=~!_B`ebNZBSS>yUR)wrst`YD)<ZGg2e0txAoQ zPOVFe+Kh^5-Kx|R(WX^tSw!1br3;|XoXNoDLJr>N9*y(hzTlS}wt_!>Ldcdu))_K< zBD`6-HIUgL!`JLIlWmo<;9RpqwVwJY$7iA~n|fMpDu=JBu<(I6`fC9-_TaV!b(I{a zBL5-l2w8x?BP&`{HVCo{A?u-+ld>t0MMH+EqM1z(WL+S`SL`&CEr%?s1)FOjyBIQY zCo0I#?b2p|FECF(4?@-*<(ztb@KfXf*2M9UP1I$h{B2{0yc}{&)y;ez1X%%O_^PdD zvMG=iLDo~3$+qG1nDZgSG!;;e{w$X^--ge=zR>(x2RYaHP;<vl$Sf_$>LC+*1ien_ zj|CH02Fiu%D?4N(TCh0?vP8%()@|aPZ9WCEL6C)-H$9N?`TpP-MEsCNLB{zkIDX34 zL0$v-hsft(IqR*3ya;=cVB3^&zcmB0Q2oWdPG$?`#Qvv+a@-SL1zD&z;6CZ<7Ho3w z#7|6w@^b}bi6LZm#IOPV*d4MpIJfN6#`73|&T{{?20A^V<7*??*W8o609mMcg!?qg zLbVU~ZZAR>%3tp19)au<y*`|?zqrTar%!Ni((j9w&*hMBggkieVt+jd*?PzV;sD={ zqXvEXCS=obZZR(P&ugg_)>|#NiTP<C${&YLsJ=N4*`JV!3)Y~yBoax>{cEV)jRi9t zvQYkxh0FpOT=U0@Q^t}5*$=2MRJp~FeG6HrIc7CvyCDm<X@||N=*!XDnwnk%wS;SJ zknV4TI+U-&TExEa<pNIW(@DtQ#C|uFPf^(8X1CyP0%X%#kflME(Sj@wGJe)7xIR04 zS&sflf$R|Hu-#fL6a2BPMfvvs#6BPT!Le+Ite^$iLCAKsAT!YD{3LO(O*^XK^H}#o zb{EbqS<(I+)5cmd%D2b0L~wbw?=;8?T9B1NHW}9*!EM2ED<B&mLS~1I*EAy_n}Bmm zS#zJLvkyAgLuU$g7Hc|kY*5EQn>?;`Ry5b4A6+rnKZg#s<;~hV39_A#_0VN<j>&** z4`iX%=_1HJfGpG;vkbCY$U?0{YarVUS*Z5f3fXHd$m$?_0kTQDpEzfHCm}lmSy~8L z6s~3L7#pF+9Y4$89y0FZEpKRTr{%>Il%Lwd*z!O&5wd_eQTntTvYZymt%Ym`WWhc$ zmhF(;f*j8X5z9fyUV|)n4iNnV{jm9B2OOsMzM}8Jw}hyRHj;20N4rf0^^L>v<~Sv* zsVVHZwJ*N*Y@W3y%y>1-y1JF|Ss1*&ua)&cD`Q_P>;C@6ZLO^jwl?l=&GYTz@0YEu zFItRWT3f3v#$pT4*IFq3MEw1y#adxCPKxt2R_hy9<7F$QUx~kmtyXUv<JLChywJw_ zP8*{}oWI|eoC9sGcs%g;wnKK<jLkNlAF`3ZsvZBn*v`7Cz42bVA@{X6?rhKV*V>c+ zz4%*khV_nc<AF1VG@N04EzXyQQ~HMZ`*FDSpB;?D;X_{SV7$<Q=bv|=)Z3ANAMI#; zzLW8K$01dnj9WVK{OL~Q?-zf6>SSGXCcZ#n$Y&A8t_Yr=h@kY@Gx>MRnbwaw8(*9` z<f+caBb|BvZfElU5P$DF%ldGn@yuC6eml$fmpH#alG69Z-vg1>qh}kxM-JI>wz2ta zo*z1!(pBg1?~CVHH=S#|cg~Re&Nc2lm*=mYOaAxbZ$*^#j`NHMqJ}g?8DER@rRP!l z$$8dKyBG(~vsQF5PKxu7yF3>LK~-1lwywtJuB~u>+XWr*_rVLSpIu;lasfH(FSOo$ zk+I`K>wyc6ed7Fwi*{46>tgGNml(fZZ2j9M#*#~{uUulRyTtlbqVfAB>%%}c_pmNX zG(PWPeW9oEuO8N=J&lT<Jb$Jq`Ss#&`K8vqml`WCwXVC=cuJgqbSb43(fs>RwDp&0 z<K<}U2hqkm;`~R!f4JB4?IAu8Z~ZXA_&vVslL^M^1fFkCV6hVk^x~03#(XgG2K=q> zXMM51aiU-QJNg?-`}2Hle@gfCw^k+@fA+UNn`AtZg!JCVKS=(wyZ#-!(>-C<qhZD& z=KXE0@CPEJTiCfBaoWr32^(g0wXO<le^;3CC{<8kp&UE5SZjYH4Lq2t35%PDn;T(P zT;m<3-W#o~OIsVC(qKhv>zfv1RcoAL0Da!t_*gJru~>h$8oRlvZ?ahLuo_FPWc*;Y zu5D{nw*mX*HrDNJj7@FGc)YFk00sqr{^t9()~2?`alzPUv)<p{_>Ff8A8TiQxt;M` zJ2LKSZ~f>DV_kc&zi4m$zP<6SV7z;Vbwvl`yEDMPGu--ExUnjnjK=UQ84}}I8rB)Y z3#=cuGp1S}2{UfC-qOx^Ak6w_nDK6ybzhkAi8%i?jQqd1;@_uRt#AFI&G^P@#e{d< znuPN=+O*o)#(2Ap73YWAT!g<*wYC1zmhR(TA;vn+@3SR<-)N(W-)+{%+HsVl+PB)l zfp7Q+?wlEIEi(pMuQEo1-p+Of({_P10Ss{-9tGOV8f!R1<Ir6UBjM+xKws-M#^~N= z?8XIQXR*)O-^;?RcZ3-ax7^>j2YAF{>ui<3`-1z_!U+B#KYT|v0CAzD^CYd1^eo&D zp!`BfFO!s?#v*^Hr2IY&;^~skk+eImJ;~>X<47No^jS$aO1e|hf!MQAuTIiQ2$$F` zX)EkciO-QVTGBL07fbrEr2MTX>hm|GNcme+r2I`PQhqfPmNaAcW{Zt`g+A@9wx9oO zDqOb6!h|*Ytg!HM&d9sfV#88xtm<VLC?ej@#i}G;aNRh9U(rFxMmhd)EyQQj4ZH<x zWYkz}JWm1Ty%^jkG`R1;wu;{{S-AKuiw#{<$hvS_wD8?GwD)4b`*&Yac(Oz3cG+UF z^~Ny}$7mc=am>LnAIDN0_v3gP$7?v=#ql|gLpV<0XpcLVU2ycqF%ZXS98+=3!7(4l zQXKc=cpArRINrtaIgUd(PT**d_b9sH=#66_j?p-#;+TVDK8~e0?#J;oj@NL!i{o<~ zhj5(0(H@`S?}DQ@j)6Ev<CuzL4vzUamg2Y{$J01o!|^VT&v6{WaRNts{L)1i9KCT2 z#4#GjR2*|~%*U}5$Ne~-#_<}CcX51<;}DJ$INIa4KSVp?=jjI8qeqUP)XSa_lMoYY zkBf~R5Stj=&mKJy4^WKC^qBm<3CM{5i?YMC+&?Zc(6Xa%Tyx9+KT$q)Ys8ey%lBl? zG-66T#U{;BXSoF)cX5#sQ&8w}$Ka>_`g$^FOEkNnG-hULZeDiZ+-xI;2oI#>7%|!N z3SiHqo?=sSgS)td5AO&y30#mByYr}To)qPIj2Q8=<}n^Oo->J=1prZDHXjIzap$;Z z@uxLiIoT+w5KLxex!h%0?jny1&g0RWm@NGMb_pCX$($^xqms=0+$?Ap!Z7~Ch}ulc zGfSY2U!cv$Q#EQ#{yUWSQ8*`Y9!bFblK>#DQDkAt___oKE^&q4DCmuXzz(clm^#Ia z*91y02YNZs>n>#^N-qWHzhLfRy`1-W@0{~5=On(U$74JW&VAJ5e3*xcu?CYS=SLI~ zI-K7o<KUb~J<gwfFd=f@R4?lCbsY}QebnQ;_wHa^lR~KKC7;J!9Gok8&iQgNwgNRc zXT8*=Z+y+i(GCaoINzouoAa%*M?DVi3LHw0^K%CD%29}VTnm)mGMv*_*2DE-_b|K% zhI92&_1*@C(z9R=wG2nSs#3_P$Ky^-&yIP<J__{>1yjD*c6_bGq3m%z>QiOj{}Mv{ zQT09~^%(Cc=#7HjG6p7JYC(7cnD(f*8y}k34M%Xj<a;T5>%mcaMdw&;MfYI+5*N^> zs?vK?)8ktiTOY-BTu{6$Q7iRW)yX8Q?c^G>KPcl%+4~gdte1NHouu%m%zgqCFQxY- zkkaE1B1J+^$*8E#58#}AMtfWrqo7xdg5>c<J+{pe9LgSl=du22zYU0l9(9judR*s^ zKyNGy$`^HboWP;%CE@3nlGZl2CyGFc_0vCo`e_jKc83dz_+yu+R_JNf7}VouaMVkk za(_Wv>UHC@c%MZH!BnTD%mMY9@gnY(U5LFM7}RGB%t5A*Zm;np#5Mp-`BL^2)+y&L zVtyYRU!0#vTg#d`51H7kf%A=tS-Ux}nAl7x&L1W=dr$3;T8o*@oDWR7P!r?c#Ein+ zf0>xOH**}Dm@^q-#&|Wc*#R7vCN>kF<Ilw6&XpKvCKm6wi1B1%bM$iDn3%nS`>Gfp zCg$$X90w*gXLjbhiMeaU-qDB6-KE;swKmQXa^@*dT8rJKx$iVF@3deXBA-lrp1{m6 z6N`7q1kc3h`|^U=VjOK^3viqghhgPm3FTiHcD2#K%D*t<Y$FjkO}1Anqk}O9Sp2RT zXc$UQ1?4ZKv1f^MK-X#ddLFTUE|xYKKkHuvTqD~r3_I$-0qgZY0Bp$qVg1h&%NOmv zfpdPhAnRfMoR9b|f(m~H%<m6mz?7c^o&OE?g-A8p>jOo8&!8#qWDEgr7p}^8GPv%x z*D$}TAspC@x0AuITaD0g0dS;-Zvu|eFh5|?Rm1lI+co?oaCZ%_2aeWo4R9X~?*xw3 z@aMn@8vYJANyEp0lYv#dR!kP7G<-I2nudD-PtnTv2cD*3UK`HPFs~7_HGDO2j)pUV z^E6xlT%_T7z#a`R1}@X^oxlq;yb8D+7-6A*I~mUbFVgU4;9E4j2e?ARhk+LZtN#2G zc!`G3z!bJj!xsWC*KiE*3JnhdUJ0z)cQWv54Hp8h(eM)BbsAm`yg|eKVx1Zd?*iVg zVZK*gtKnaP_iDI30;|)o9k^b@Nx+R7P6Ix!;VfXIgFl{|fNdJS12{s%PXI@0nD0N@ zHM|2jTEkxf$7=Xz;3N(6)={#CF9IH=;TYgF4G#vMqT#W?Gc?R+)^aqQ2VA7#n}EwS zTn${V;Rk@1X!t4M<r>}qyi&vO0I$~Y9^f?^{uX$hhJOLxpkXWKsTvJO0dLo^1GrYh zDZqO*JQcW3!*hV^HGC6rqlT9PAJ_2xz=k$Iz5r~~@Y}!<8vYVEO2fYb+cn$?7c0>k z?gkvI;r_r$8XgCntl??Eqcl7RI8DRzfM;lUDR7R49|A7Y@J8S=4etRi*YGjmB^vIG zfxTSAe1CVPhQ|Z1*6<AAH5x7gUZ>%kfj4OQZ@@Jg{yXq?4L=85tKqkR_iC8WF4k%I z8{m2k{|?-!;r7@<9oI15$2B_n$NQzgHVr2MM`(BqaFm9#fbAMC0gl#iHE^tk9|BI& z@GHQ{8m<K%rQv$uG!6d&JVnEuu?3u=;Y)yXG#n3Hq+us;nTDqWmut8bc!`FqftPFe zVc?Y-ei3-JhTjHWqv211*J&8{#ElIa=9~I88t#lO>~;-b0$i)%0l<4TJO;Q<!_$E4 zHGDmAqlRw-KCa<az__sWtzXXr+cdldI6}j`#~P*K?||(Z=EZijhWS2etcEWIPSWrI z;A9Pt1s<j0X~1b3z8-jrhAV+*X!rr(91Zgs*CGw?04~$;7r^Bj{snl6hQo2muw28v zfmdpH1n_DNX92I#@D0H0G<+-Y1`Xc>T%+M<fVXS-ZQxoBe+Rr*!|ibiQ>Wp}f$KHQ zXKNcZJOlW+h8F-E__hs969)HFcLUor`~q-<hIax-Y4|%}yN2825{mCp@O@zJw|fFd zLyl!$*uUDm!~!y}Pq=^QXPnLbTo;4;dw#fCVea4Gv{-E!ptQ&R`c&NSQ2W18IJs8C z+^<gqR`qeeK10LYuV-tR`}G_RbHARaVeZ$9G|c_FN5kB&mua{Lc!7qwUoY1%_v?!_ z%>DWj4RgP~99Z=S_v<S)%>DXm4RgP~Mk~+#`dSThzrIex+^?_KF!$>lG|c__Mh$bn zUZY{|*SBhz`}OS_=6-#rhUcKa`F@q254D>7cF0fI%<I!utvVQw1FP#*qt#i)%RzVt zFz?qO9gMJ6QN~xm>Uuh?)j62^kWcD*vsI+=Gcdol+|=)6w8ABQ?^ae@IT)RhPcguw zez({z2EG`04RFf$7TZM<?*bmyXtD81p7OJB3t;eX78|BLftLdFx5fDkFzx*fIO?Ru z#ybJTYk<{@cMA>zm$k9ldf=S)dYQKngbGhb1mSGpI$UovfHQGDTN)(i&qJvfPhY~H zG>kv$)BYR4Z?^Ww`yH^lA430rU?KV9=^sHjQoC7A(PhA0(H_eGf*|>Qz>S)}PXnv_ zEuD>y#yVjBE<3ipqJ3(B>yKM(7XZ^=beZwUkGQ`q@l|Yi`C|RqL3lp!=Rf=V<164O z^q=aV-+&v@zo<sk*BQ594*p`X@%d2JcQbG@zF?j61>5&7^A?S$k@Y<XY(;;o{OE4p zvhm3W0jHt<1>n$L4Y0aj6JeZZybrt`{h{*dFfhNvn$MiEzHq#uSOmH9_d?)7^8QW) z?sxPCo^Zl1e;9ZO=EHK-$Nt+6TrS&_^`DPhM(fd@%HGZ9EhL}6_XOcxLHN5Md@gP| zeS`Q^{L6snAb&CKi+HyKU#g9V!MMT1pE6MGc@=OZ=5sp0cqRi!p#7D9F9NHV9VeTC zlYcP#i}8F1JO}f~1jvY!@rDZTe=P%M`(4d9SmcZSRSDcj8-EW0e+hrt|1AG&kpB6c znB<G)2LZo|`ljHV`X#^*p*+)$czuxmQQ(1Se}|M8B9WgC^Y_ncCboRh{zl+9^ry=A z<2V_G_FDrP?PuY}Z7u4<GB5CI;I3$|?Gj&%L<-mP`wAwOe9``dAUp#&7WcnKL&kh5 z2X2M&%VuYN_XG21HE4q6pAIU&CkUT!H;kD_E&K?MC|?G=M9bf$!1ci0rTkf7^`iY6 zyFzAt-vaX!HRMv>wj0*3w&wgm|E2=}OY6UTfc5dQ3U~&-M1By;G9PMy)r<BH2jR<@ z$nr(`IN-(FeE&bd{J{lf?|~rw7lFTpzM7xj2mTWC3%2p1J)$pB)-ld;ItZA*dO|Mi z%hcq=*8}5$G+#bE3%mmD7Y`ZZ-wMq4fz0vL$#^fQd;_rhtS4P<&4!mR+CK~UF)hB4 zz?;$k6CtDhe*nLL_V!5J2NU}+<i8p(`JCwGi}r2??vC-vVZ`ze0=Gf=NfLMNi4(M6 z7zq2LC$W67d<w8d8=upI<gW+e4woXIwDsgdVD+NCB;aFMFVuJ`1?G<msQ$Yf*oN`L z4xqmu0<Xq+oeIqH@D;FK(?1EUUbG((jn61*?Qs?G0xjROfcf(%EJOX9fYpomUSR%) z0eQr0fVX1&GfevP5%6)uX8~q=eGUAywm<3A3j+CK`Ch=iv7X<BbNcTJlFtLq*7|!b zFyH5-iOzVZ_XXfJ$X7C0f4ANkKU%&I1y(QCHv@Pb{8jl-1)QR-x8DWn9|xWaeWoex zPrD3pA-~mpdI#`U)NhsYkAT&S^&JSpe*oLzpB*x`PXq?uer<ib4Y)J%k!4xmY7R{K zB5!>V{#Ot_zc1d~*7|oDuzIol2f%sA7Zv}xF?eqc^Pif(M+3)c>t7A9da?ZHLAW6Z z{|5X&XfL&X%(z^YHuGf_@HvpH@%9aHz1Ds`VzE8~4?!`;e+#hMf7r4A@B(+&^5GR= zetRHmp?^)l>P6fgj!f3}cUJ+|X#2CffXgu6kVc}u*MUC(<}|_jEpf`4Y5&|HoCrJx z<45)XkRW+_5MBV>TU$?`1n#Nz$AKXIZt;QjCjy_;#@7ho)!KN^0iK5WD^2?USy1`t z1kB;+Z#7;kfES>BoKpWg;0)v+KR?I#FH6M!1oIm|r@-+!75EVPZ@Scf8h9)EgL5_Y z8-UfTGfqwf;dA<7{Gor(f{gmt0Y}20_7cAZyc6S5&3|Y1$9@<2sQfJe9;>Y%3xU;( z_1zbQ*8xvQ|ET(Eg5-6;#i*a3KchbdNy?hp-%kRs*5;FKz)9MC(Q`nc{>{MeYVp+t z$&IXHPl=~=)~uK;!{r*DF=3)>Y-)Oj%LSAYfJP73MA?O|*?EOCGxJ>H2_IKxX&JtG zC%-5UUptf?lQ<yGVNl@8%`PK~H_XR|vP<*x=c#&}<5NU6BPI?V=X5E=YSg*E7V$Wd zs6~APQcM;co;ubMKYOzIVAJp%ch+36(mi97T&~<g@f4G5>iERrV@EmD#yS$+dG0Jv zabbZgD<`vfw%ZBa1c%F2!Y?t(a#1}uGcR|(_(~%ezJ|$_?ZzWmrQ)lVT(P;i&{xJ1 z-9>q&CA2U$ac;)MN#d;E+z~^^ri;@7bH`<tO&X4RsFFmaf!qQG9I-+%J*TkPLrqam zNBG_(B@<RArQ-1@DE4PL|9NhKJU1&ITUapLSFr|i3lwlTM8$;t5~yl=5{ON8DUX{w zEZ0+#<}MyK&*Nr^#JS_sCZzMM-`q(BC2rwYzqx6}cwWtvrxwgA<XO_(t22uW@YNEg zviNoh^K=-#x{7^<z|-fIXo3-V+$@g*N8H?0JpMMKu=vKz;%vc*7o1_4S#y1?gt_Tx z!J#Et?gD;=g-}ZrycBl;Gk$JL;rK#NT5(~P8&8}G=Tb|C=M@%+m>ltQhZScQWaUhl zIS0ui?8Hje&;n$xY^WliTxEnKHa|BnFE=0gU(6Kn@g07CTuXxZ06{FG@PxAD=LcEx z3j!=9HuI*R-~^O5Spnq+%+1X!Y*rQ-qSyfjG=6}UenpwZCGM=i(D3|UadXoH3Nj0t zbCWU)W@7*r=IbUBXSs{>b9GL_OeB}i7$90a1Q%5YbCXzeGiFh4Rx@T?L4Y4|rGYR% z0LJI%2ec7zK-<J+1*&HSsb>YMI|8)h0+r(eb>rp+D96tY)CLapq$r?=`W53lU@`-m z(_v<Cb3wms_iTKPTtL&8ApM(JhzCp8O2`jl#FZ55@^~25u_Knfgj^~t2(Z(yIZHYl zT7do!A&6yfH|HnjxQjjWbvMMYXwJ=d&(3VdjVmb8i#h^OTz&vdaJ$k|b?yH6S~v{A znL5vbaXLFwEnznl=6M37aV<*van!afot=9MtNqxUEtf6AH}|z9O`L-m0&*jMoO`nF zb6g;dpBscn2H}h#oEC_a7$?78Pp=~(m|@Nh!Q8mHf%z7I;_?Gv!i|}pfVS^f;J(pQ z7&v5NbKFI)qRf)4%skzlc+509cEo0S@(W9fkUjxT)h{!@D2OE!JG20a9YP>RO>=${ z6Dc@>MC%1J6M`B4uePgeP8(UG`-@VH#OGTuR=iw0m_pp$#4l4q$e>tA1PR;OU%#h& z^fi)T9ZFQ?Asz{7X1e?I=`+J%Mq6!qd(TcKlG8NU*p6P-+8O!ltrU{A*4~@9(vxd1 z@#4TK&uDMs9AhoIIBILHi0<(4tNh9Six<55ni;#hNO$4U%5#4nVHwS;J@<I<HT#j< zX%EkwQ)|q9vD%7>sy<-gf{=QZu?9!%mM@RN436*RzX$N53CKjbO$anDx6v`i6SWH+ zT=+^PMt5doucg~w@)qeW{jC!`>rLj~*Ye+R{2FbX^&u+1aNx?o-)yzsja(W3JURzY z>)LQDaW-e@zLY;M#1`SyaG^)-T2>P#H#I$a<TbU5euisu=ftsewb6)fdQ@i9wO;5Q zxyop`h`2sho@Jt`JSuZ{?3Di=dixl_7HW+GaKDqt68ivbw|u+N!520#B(7VI2M;%e zu{Ohoa03hp6^|OCq<pPvnT)d<W<L4}YC3?M47_lYY|C#F;wIW28a@qB3-((_9^9ZZ zYwS64=Nk2E;ziydr~R|TajV)}diHWImmcAvlVCvFMT0KR4`A}uE9T3c6EC;8w2cDI zmke<Xefs)~CwHC`qR0zlKcNu3dw9GVKS(*1pzp)K#*69r=D{+)33?}pKdMU10V<ZY zr1N%PJ-L6ij8453-?+(+<@@S{&c-`%v8p{^^eVSZ4C@t@vELu|KW)53?p>K|kKxOw z)jKt#I+e}=up&|7=nW`fsd`Kw|M=yLZ7t=J`i>(0_WNx7bvnT(xSG!^>o}5I06^eT zty1fZ7)`Ts*jq$V!iNn~|DI-cGL(yzOu+o6c5Elzz2hII_jWv=nX~zL^j9`6%d!*E zkv991h?A+^lW6J&Fc&^)*$%f@Lg1j>{V|bYwDznyK4fMu;3mF{dpTUDy~6Q@YgFrS zZPC5+lIdg~!G`$zyTw)dJsvX1AL0{>ffzA8+gZ!|X)W&UKIZHSgB(g*zB<7X1EkL7 zQ^+HfD<}5;*g1aKXpCF-4C<6XtwWLPKO?|BXE$}xCP>bJJsgzhQ`fR?h4uRR^WDSr zX7cTuG(UCKfXtn<$F$e1RIx~5Puq}|W%X9x23e6@Gw@eHXL2@xq93O3kjAGDF1qiI z<XffdB<}X}XS^KWRg>bAN$;<Q)69-1g62D}c9l&B*FQvWm=}av5JYZmK;heuIlE)s zbqABc1I?o2nde)amF>pVdle*crQ4WP>PPMIGhr^vvJ&oL$Fh?Pr_n^zs`x>WJPdIj zH_J+f!2i~8=i=;6I=R}iNt!54+7n?Ae-$q^gBu^yzsWC*B4QZt<p*7Uzt3X&!eI#! zL~q_fuINZmYoVfN=P&Mum_E|%Oj~e331gX_u1zP4)08W(%mbk%EHUWNZ6Xz*)roqE z=n#TE9ur{90BAu+pQl%vG58AMFZ$@050MP9gY*LqNxt9Xsp;J<#`8aiyI*ubxVWWc zLr4lmPMuu-5XI!9cI+z&vULFN1DjsFUkaHDPa-(ZvA4VY)A)j3%<o-T)L*ah?>ZLj zVy4PYbs{0ymRzuJN&5b18s3;W-O)y{x0*#2zrt9IXSa`Et=ZjlX5lZSK<G;$AWkuh z!g0knauSK}r4|owed;S|;l$+EF|J!+9L1Az=Mk7l2!8qgE=<&<3OUonSIemd&et*m zP+yUeYXkx%`@nlH#itzwvE^6Oz(=zkK}qei8pdW|b6*WA10O|7#t$5%v?BGC^_5&( zi?bZ~N(=z*%h@lbS06?3Y=EtM=K#P!wqjCtqQe?`8H8TUPoHL>Ir&H00rzg~|HH^F zH#?LhiixCj?F<VgK6DkRN*@dYg-R@`IU)O7k?G9^>6fZ7TcDCh0Rg=CT}ydeEyl0b z?aW<7hY#!Kv${n;2g+M-Ph?un8Tc8*$Q_h?PFM|OZ67p|P;h%NQF}E-A<~gcAr-X- z_chsI7ZG$obVkq-Cb@H=f^!cZof|-@qG+c4#mu^9nbtkCgswi;K&SRdKCC*Hg?38& z>B8bE)?svS=m-b=z6zF46=j8NNc>e9K{V7onGr9+3oKP!Cm;mnZrB2ds*1Us<6LC# zeLDX3&DCMEFdI8rj}gJhDB38mfrp3_EZ(Y$=xH6y>&YjlzG(!DzWP-gCvfT4bWo+{ zci34l<VCR?a8ZQXiy&*TR0Ji%f^x_jRQYCg@8dJpe^KRfQNh-=lK@qAy*gZ=4Kg%U zkzmNGh+LvB?@3U*hDf=zw19(R`kKpd=m0dj64!c4Jzc93gqeeqog)7e>b_bh%d;ZL zKubstu^a8ZS#;P@D1paq-rprOq&UK_`9SWGubpa%+9G|*D|Sd6bvffa^-`bp_*4|) zvmI+@E$+TQJleMCE8THP+ZU3*eWl-`{DTIi3TEUX89hUk3pZY~JwGHN^xOa|VhzNq zoDY8dXnI2vSQ!FFnNFsm>qBiz#^Hu=&QB?Md4TvGD$`C5{(ejf`~Sl?j8WpJpdfU^ z?2`%P42TUxlltmcmZoc@nzdyaPGbFFr)trR!=3XkGt%+DS9D~9lnqIp1XPbpbYPPo z#hhlk#3CtDbq95@xR|ymspK+}mzC;8(3rPTLNNxUc;3tH8_!GJclLYI8fv!Lr_v=B z5?n8+^k}f8Sr0ck&@`kR2At`{+W86g_^=VvpX<uBkv#Xd!}qG<f>ILN&jvkY1K#Qr z{ZeV`M9HZf??R=76E>pO3p4-7ya6a#aps)pUZDURVz5XQi0(6^%+<P{OPi_~t&1Ee z1jaE1l_gI~rK%czO$myf3~)16DZJA(v6PY!UYwGcHd;0`TyRLcE0LavMCy^nIPf7n z>mnC~tX&WqPZ6+>XxM=u)}ELT-T2PBKLkR@=A2x+^;CL0i|>%QnS5!uZYo?akdMnJ zT|7VgR7D#|Pf{u^$%Di@$z`=S<p67|MZFT7e04UeYZr^08F~~C72nk(tEIQPlSN~I z)d|TsB|m2N*t7Dz;u~G2O@$3-%7!)XG&*U?4_;BIgG>}i$Ub<SPOA)|_81|?>vg`~ z(IBp;!Z--=yPs8vi2GC&Z_JfMdMde+VU|EPGbuc;Wvn$wmqDb;8C6ZJxs!6#<f};0 zIsrk5WLXF4C`)#wwFhEBX9{#)u~6XJ@~B94&4u^DQf=B>2bNkoXnhiSC5tAJSF$L~ z?c}%WV|&Q{dyc}KoyT;cD9h%E3D5wA0fm<juq6@;)W4K%^H}LpsliC!`n-_J$)Y^E z13sJ^xhj2C(xCsYC|zDIsTijz(w^dnS^a<F={4joFA3<`ESoyJ!<J}$Do!Z{1;%|S zp$+_4a!$+0L=kP5I?o`bK;Q+u28seQIi0gti1d=WlR9qe(^c{u&E&bZ!>~bO6Y&k* z&UN0MmD9La)e5cm7rW6B{yKbW9WQ)UYtF}`4}lquig?`Kw4yDWSKh4^O$cn%hlsJF zNxIZ6vXy{ypD#Hz4dg%2-WsO!<5{R6U;n7A-!xPnl|}w<TyG$y0NNYXM=V6vM2?hE z_GQBi>m^*>lS*bleygvS&{P93Fx^VsynI16ljZ<q6)<FNjq7@ReStW6=D`=%BSWnC zVRO(fT>&m*Y_|SE>oW5%3p=vw%$t-irCwoWP-rWI<ZZh4Er#hzrn6c`S<QGt_7+1H zLmOmJ+As3EVoK`0TC5dv@yF9ep_G$%&<OLqY0T6vCyi$J%0kVZqqY%W0d0ysE@jy{ z?IYZ9RNSBzpONFiZt=Yxs@+y61atCbyD?C*$F)=77n>q3E;;&YQJuCLHNoS67aj&_ zF268Tz(dlV4fTyu=QnVi1I=?pZj`SSaW-ZgC#P#F7|b3Q3^iHi!CCzs9fI{2I<HwN zG{dZ-f`g>+5%*|I4|skZ7XOR2PefBZc4^ZPI_zNSN2$E6yL|<^PMH2|#eoSpBY(8s z<6;xl^bymIuPDi5?C}PQA(Xf1fIWgjsPbe?`<;||?3id_%`#ab6TW4)(Qxivo^`iL zB*__fJ8_FptL$c>jeTcU3LyBSb85Q_KzEexVvDd}4c4n}U^BhwxnbBEz#4fKdNp(< xr7Yk4hKd90DGj|<E1jna2T+Na@)-^597y~ovl5-Pmy@eGNI6G2cd_nC{{owgA&39~ diff --git a/NPAnalysis/10He_Riken/include/ObjectManager.hh b/NPAnalysis/10He_Riken/include/ObjectManager.hh index e86658f86..ad0cffdcb 100644 --- a/NPAnalysis/10He_Riken/include/ObjectManager.hh +++ b/NPAnalysis/10He_Riken/include/ObjectManager.hh @@ -117,12 +117,12 @@ namespace ENERGYLOSS 3 ); EnergyLoss He3StripAl = EnergyLoss ( "3He_Al.txt" , - 10 , + 100 , 1 , 3 ); EnergyLoss He3StripSi = EnergyLoss ( "3He_Si.txt" , - 10 , + 1000 , 1 , 3 ); @@ -139,7 +139,7 @@ namespace ENERGYLOSS 1 ); EnergyLoss protonStripAl = EnergyLoss ( "proton_Al.txt" , - 10 , + 100 , 1 , 1 ); diff --git a/NPAnalysis/10He_Riken/src/Analysis.cc b/NPAnalysis/10He_Riken/src/Analysis.cc index 32a2e4725..6e08403d6 100644 --- a/NPAnalysis/10He_Riken/src/Analysis.cc +++ b/NPAnalysis/10He_Riken/src/Analysis.cc @@ -31,19 +31,27 @@ int main(int argc,char** argv) myDetector -> ReadConfigurationFile(detectorfileName) ; // Attach more branch to the output - double ThinSi=-1 ;double Ex = 0 ; double EE = 0 ; double TT = 0 ; double X = 0 ; double Y = 0 ; int det ; double ResolThetaCM=0; double FullTheta = 0 ; - double ThetaCM=0; double EPl=0; double DEPl=0 ; - RootOutput::getInstance()->GetTree()->Branch("ExcitationEnergy",&Ex,"Ex/D") ; - RootOutput::getInstance()->GetTree()->Branch("E",&EE,"EE/D") ; - RootOutput::getInstance()->GetTree()->Branch("A",&TT,"TT/D") ; - RootOutput::getInstance()->GetTree()->Branch("X",&X,"X/D") ; - RootOutput::getInstance()->GetTree()->Branch("Y",&Y,"Y/D") ; - RootOutput::getInstance()->GetTree()->Branch("ThinSi_E",&ThinSi,"ThinSi/D") ; - RootOutput::getInstance()->GetTree()->Branch("ThetaCM",&ThetaCM,"ThetaCM/D") ; - RootOutput::getInstance()->GetTree()->Branch("ResolThetaCM",&ResolThetaCM,"ResolThetaCM/D") ; - RootOutput::getInstance()->GetTree()->Branch("FullTheta",&FullTheta,"FullTheta/D") ; - RootOutput::getInstance()->GetTree()->Branch("EPl",&EPl,"EPl/D") ; - RootOutput::getInstance()->GetTree()->Branch("DEPl",&DEPl,"DEPl/D") ; + + double ELab[2], ExcitationEnergy[2] ; + double ThetaLab[2] , ThetaCM[2] ; + double X[2] , Y[2] ; + double EPl1[2], EPl2[2] ; + double ThinSi_E ; + // Exitation Energy + RootOutput::getInstance()->GetTree()->Branch("ExcitationEnergy",ExcitationEnergy,"ExcitationEnergy[2]/D") ; + + //E lab et Theta lab + RootOutput::getInstance()->GetTree()->Branch("ELab",ELab,"ELab[2]/D") ; + RootOutput::getInstance()->GetTree()->Branch("ThetaLab",ThetaLab,"ThetaLab[2]/D") ; + RootOutput::getInstance()->GetTree()->Branch("ThinSi_E",&ThinSi_E,"ThinSi_E/D") ; + + RootOutput::getInstance()->GetTree()->Branch("X",X,"X/D[2]") ; + RootOutput::getInstance()->GetTree()->Branch("Y",Y,"Y/D[2]") ; + + RootOutput::getInstance()->GetTree()->Branch("ThetaCM",ThetaCM,"ThetaCM[2]/D") ; + + RootOutput::getInstance()->GetTree()->Branch("Plastic1_Energy",EPl1,"EPl[2]/D") ; + RootOutput::getInstance()->GetTree()->Branch("Plastic2_Energy",EPl2,"DEPl[2]/D") ; // Get the formed Chained Tree and Treat it TChain* Chain = RootInput:: getInstance() -> GetChain() ; @@ -55,13 +63,13 @@ int main(int argc,char** argv) Chain->SetBranchStatus("fPlastic_*",true); TInitialConditions* Init = new TInitialConditions(); - Chain->SetBranchAddress("ThinSiEnergy" ,&ThinSi ); + Chain->SetBranchAddress("ThinSiEnergy" ,&ThinSi_E ); Chain->SetBranchAddress("InitialConditions" ,&Init ); TPlasticData* Plastic = new TPlasticData() ; Chain->SetBranchAddress("Plastic",&Plastic ); - double XTarget=0 ; double YTarget=0; double BeamTheta = 0 ; double BeamPhi = 0 ; double E=-1000; + double XTarget=0 ; double YTarget=0; double BeamTheta = 0 ; double BeamPhi = 0 ; double E=-1000; // Get Must2 Pointer: MUST2Array* M2 = (MUST2Array*) myDetector -> m_Detector["MUST2"] ; @@ -69,154 +77,160 @@ int main(int argc,char** argv) int i; for ( i = 0 ; i < Chain -> GetEntries() ; i ++ ) { - if( i%100000 == 0 && i!=0) {cout << i << " Event annalysed "<<endl; } - Chain -> GetEntry(i); - - // Plastic - if(Plastic->GetEnergySize()==2) + // Clear local branch + for(int hh = 0 ; hh <2 ; hh++) { - DEPl=Plastic->GetEnergy(0); - EPl=Plastic->GetEnergy(1); + ELab[hh] = -1 ; ExcitationEnergy[hh] = -1 ; ThetaLab[hh] = -1 ; + X[hh] = -1000 ; Y[hh] = -1000 ; ThetaCM[hh] = -1 ; + EPl1[hh] = 0 ; EPl2[hh] = 0 ; + ThinSi_E = -1 ; } - - else - { - EPl =0 ; - DEPl =0 ; - } - - + + // Minimum code + if( i%100000 == 0 && i!=0) {cout << i << " Event annalysed "<<endl; } + Chain -> GetEntry(i); + // Clear Previous Event myDetector -> ClearEventPhysics() ; + // Build the new one myDetector -> BuildPhysicalEvent() ; - FullTheta = Init->GetICEmittedAngleThetaLabWorldFrame(0); - E = M2 -> GetEnergyDeposit(); + //// + + // Target (from initial condition) XTarget = Init->GetICPositionX(0); YTarget = Init->GetICPositionY(0); -// XTarget = RandomEngine.Gaus(Init->GetICPositionX(0),1); -// YTarget = RandomEngine.Gaus(Init->GetICPositionY(0),1); - - TVector3 HitDirection = M2 -> GetPositionOfInteraction() - TVector3(XTarget,YTarget,0); - -// BeamTheta = RandomEngine.Gaus( Init->GetICIncidentAngleTheta(0)*deg , 2*deg ) ; -// BeamPhi = RandomEngine.Gaus( Init->GetICIncidentAnglePhi(0)*deg , 2*deg ) ; - + // XTarget = RandomEngine.Gaus(Init->GetICPositionX(0),1); + // YTarget = RandomEngine.Gaus(Init->GetICPositionY(0),1); BeamTheta = Init->GetICIncidentAngleTheta(0)*deg ; BeamPhi = Init->GetICIncidentAnglePhi(0)*deg ; - - TVector3 BeamDirection = TVector3(cos(BeamPhi)*sin(BeamTheta) , sin(BeamPhi)*sin(BeamTheta) , cos(BeamTheta)) ; - // Angle between beam and particle - double Theta = ThetaCalculation ( HitDirection , BeamDirection ) ; - // Angle between particule and z axis (target Normal) - double ThetaN = ThetaCalculation ( HitDirection , TVector3(0,0,1) ) ; - // ANgle between particule and Must2 Si surface - double ThetaMM2Surface = ThetaCalculation ( HitDirection , M2 -> GetTelescopeNormal() ); - if(M2 -> GetPositionOfInteraction().Z()>0) + TVector3 BeamDirection = TVector3(cos(BeamPhi)*sin(BeamTheta) , sin(BeamPhi)*sin(BeamTheta) , cos(BeamTheta)) ; + //// + + // Must 2 And ThinSi // + for(int hit = 0; hit < M2 -> GetEventMultiplicity() ; hit ++) { - if(E>-1000 && ThinSi>0 ) - { - E= He3StripAl.EvaluateInitialEnergy( E , // Energy of the detected particle - 2*0.4*micrometer , // Target Thickness at 0 degree - ThetaMM2Surface ); - - E= He3StripSi.EvaluateInitialEnergy( E , // Energy of the detected particle - 20*micrometer , // Target Thickness at 0 degree - ThetaMM2Surface ); - -// E = E + ThinSi ; - - E= He3StripAl.EvaluateInitialEnergy( E , // Energy of the detected particle - 0.4*micrometer , // Target Thickness at 0 degree - ThetaMM2Surface ); + ELab[hit] = M2 -> GetEnergyDeposit(hit); + TVector3 HitDirection = M2 -> GetPositionOfInteraction(hit) - TVector3(XTarget,YTarget,0); + + // Angle between beam and particle + ThetaLab[hit] = ThetaCalculation ( HitDirection , BeamDirection ) ; + // Angle between particule and z axis (target Normal) + double ThetaN = ThetaCalculation ( HitDirection , TVector3(0,0,1) ) ; + // ANgle between particule and Must2 Si surface + double ThetaMM2Surface = ThetaCalculation ( HitDirection , M2 -> GetTelescopeNormal(hit) ); - // cout << E << " " << Eb-E << " " << ThinSi << endl ; + if(M2 -> GetPositionOfInteraction(hit).Z()>0) + { + if(ELab[hit]>-1000 && ThinSi_E>0 ) + { + ELab[hit]= He3StripAl.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 2*0.4*micrometer , // Target Thickness at 0 degree + ThetaMM2Surface ); + + ELab[hit]= He3StripSi.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 20*micrometer , // Target Thickness at 0 degree + ThetaMM2Surface ); + + ELab[hit]= He3StripAl.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 0.4*micrometer , // Target Thickness at 0 degree + ThetaMM2Surface ); - E= He3TargetWind.EvaluateInitialEnergy( E , // Energy of the detected particle - 15*micrometer , // Target Thickness at 0 degree + ELab[hit]= He3TargetWind.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 15*micrometer , // Target Thickness at 0 degree + ThetaN ); + + ELab[hit]= He3TargetGaz.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 1.5*mm , // Target Thickness at 0 degree + ThetaN ); + + ThetaCM[hit] = myReaction -> EnergyLabToThetaCM( ELab[hit] , 1 ) /deg ; + ExcitationEnergy[hit] = myReaction -> ReconstructRelativistic( ELab[hit] , ThetaLab[hit] ) ; + X[hit] = HitDirection . X(); + Y[hit] = HitDirection . Y(); + ThetaLab[hit] = ThetaLab[hit] / deg ; + } + + else if(ELab[hit]>-1000 ) + { + if(ELab[hit]>21.66)//CsI are inside a Mylar foil, plus rear alu strip + { + ELab[hit]= He3TargetWind.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 3*micrometer , // Target Thickness at 0 degree + ThetaMM2Surface ); + ELab[hit]= He3StripAl.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 0.4*micrometer , // Target Thickness at 0 degree + ThetaMM2Surface ); + } + + ELab[hit]= He3StripAl.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 0.4*micrometer , // Target Thickness at 0 degree + ThetaMM2Surface ); + + ELab[hit]= He3TargetWind.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 15*micrometer , // Target Thickness at 0 degree + ThetaN ); + + ELab[hit]= He3TargetGaz.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 1.5*mm , // Target Thickness at 0 degree + ThetaN ); + + ThetaCM[hit]= myReaction -> EnergyLabToThetaCM( ELab[hit] , 1 ) /deg ; + ExcitationEnergy[hit] = myReaction -> ReconstructRelativistic( ELab[hit], ThetaLab[hit] ) ; + X[hit] = HitDirection . X(); + Y[hit] = HitDirection . Y(); + ThetaLab[hit] = ThetaLab[hit] / deg ; + } + + else {ExcitationEnergy[hit]=-100 ; X[hit] = -100 ; Y[hit]= -100 ; ThetaLab[hit]=-100;ThetaCM[hit]=-100;} + + } + + else if(M2 -> GetPositionOfInteraction(hit).Z()<0) + { + + if(ELab[hit]>-1000 ) + { + if(ELab[hit]>18) + { + ELab[hit]= protonStripAl.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 0.4*micrometer , // Target Thickness at 0 degree + ThetaMM2Surface ); + } + + ELab[hit]= protonStripAl.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 0.4*micrometer , // Target Thickness at 0 degree + ThetaMM2Surface ); + + ELab[hit]= protonTargetWind.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle + 15*micrometer , // Target Thickness at 0 degree ThetaN ); - - E= He3TargetGaz.EvaluateInitialEnergy( E , // Energy of the detected particle + + ELab[hit]= protonTargetGaz.EvaluateInitialEnergy( ELab[hit] , // Energy of the detected particle 1.5*mm , // Target Thickness at 0 degree ThetaN ); - - ThetaCM = myReaction -> EnergyLabToThetaCM( E , 1 ) /deg ; - ResolThetaCM =ThetaCM - Init->GetICEmittedAngleThetaCM(0) ; - Ex = myReaction -> ReconstructRelativistic( E , Theta ) ; - X = HitDirection . X(); - Y = HitDirection . Y(); - } + ThetaCM[hit] = myReaction -> EnergyLabToThetaCM( ELab[hit] , 1 ) /deg ; + ExcitationEnergy[hit] = myReaction -> ReconstructRelativistic( ELab[hit], ThetaLab[hit] ) ; + X[hit] = HitDirection . X(); + Y[hit] = HitDirection . Y(); + ThetaLab[hit] = ThetaLab[hit] / deg ; + } + + else {ExcitationEnergy[hit]=-100 ; X[hit] = -100 ; Y[hit] = -100 ;ThetaLab[hit]=-100; ThetaCM[hit]=-100 ;} + + } - else if(E>-1000 ) - { - if(E>18)//CsI are inside a Mylar foil, plus rear alu strip - { - E= He3TargetWind.EvaluateInitialEnergy( E , // Energy of the detected particle - 3*micrometer , // Target Thickness at 0 degree - ThetaMM2Surface ); - E= He3StripAl.EvaluateInitialEnergy( E , // Energy of the detected particle - 0.4*micrometer , // Target Thickness at 0 degree - ThetaMM2Surface ); - } - - E= He3StripAl.EvaluateInitialEnergy( E , // Energy of the detected particle - 0.4*micrometer , // Target Thickness at 0 degree - ThetaMM2Surface ); - - E= He3TargetWind.EvaluateInitialEnergy( E , // Energy of the detected particle - 15*micrometer , // Target Thickness at 0 degree - ThetaN ); - - E= He3TargetGaz.EvaluateInitialEnergy( E , // Energy of the detected particle - 1.5*mm , // Target Thickness at 0 degree - ThetaN ); - ThetaCM = myReaction -> EnergyLabToThetaCM( E , 1 ) /deg ; - Ex = myReaction -> ReconstructRelativistic( E, Theta ) ; - X = HitDirection . X(); - Y = HitDirection . Y(); - - } - - else {Ex=-100 ; X = -100 ; Y = -100 ;} - - } - - if(M2 -> GetPositionOfInteraction().Z()<0) + + } + + // Plastic + for(int yy = 0 ; yy < Plastic->GetEnergySize() ; yy++) { + if(Plastic->GetPlasticNumber(yy)==1) EPl1[yy]=Plastic->GetEnergy(yy); + else if(Plastic->GetPlasticNumber(yy)==2) EPl2[yy]=Plastic->GetEnergy(yy); - if(E>-1000 ) - { - if(E>18) - { - E= protonStripAl.EvaluateInitialEnergy( E , // Energy of the detected particle - 0.4*micrometer , // Target Thickness at 0 degree - ThetaMM2Surface ); - } - - E= protonStripAl.EvaluateInitialEnergy( E , // Energy of the detected particle - 0.4*micrometer , // Target Thickness at 0 degree - ThetaMM2Surface ); - - E= protonTargetWind.EvaluateInitialEnergy( E , // Energy of the detected particle - 15*micrometer , // Target Thickness at 0 degree - ThetaN ); - - E= protonTargetGaz.EvaluateInitialEnergy( E , // Energy of the detected particle - 1.5*mm , // Target Thickness at 0 degree - ThetaN ); - ThetaCM = myReaction -> EnergyLabToThetaCM( E , 1 ) /deg ; - Ex = myReaction -> ReconstructRelativistic( E, Theta ) ; - X = HitDirection . X(); - Y = HitDirection . Y(); - - } - - else {Ex=-100 ; X = -100 ; Y = -100 ;} - - } - - - EE = E ; TT = Theta/deg ; + } + RootOutput::getInstance()->GetTree()->Fill() ; - ThinSi = -1 ; } + cout << "A total of " << i << " event has been annalysed " << endl ; RootOutput::getInstance()->Destroy(); diff --git a/NPDocumentation/NPTool_UserGuide.tex b/NPDocumentation/NPTool_UserGuide.tex index 29c843b20..b0827546f 100755 --- a/NPDocumentation/NPTool_UserGuide.tex +++ b/NPDocumentation/NPTool_UserGuide.tex @@ -19,9 +19,6 @@ \renewcommand{\headrulewidth}{0pt} % and the line } - - - %\documentclass[a4paper,12pt]{book} %\usepackage[T1]{fontenc} \usepackage [isolatin]{inputenc} % fontes avec caracteres accentues @@ -55,7 +52,26 @@ In NPTool analysis and simulation are linked together. The proposed way of worki \centering \includegraphics[width=1\textwidth]{./pictures/nptool_scheme_Ana.png} \caption{ \emph{Phase 2: Analysing an experiment} } - \end{figure} + \end{figure} + + + +\section{The directory layout} + NPTool come with a specific directory layout. The different make file and source are made to use this layout, using the environment variable. Here is the standard layout: + \begin{itemize} + \item[-] NPLib : hold the libraries used both in NPA and NPS (NB: those librairies can be use in your own independant code if you need) + \item[-] NPSimulation : hold the NPSimulation code + \item[-] NPAnalysis: this folder contain one folder for each analysis project, feel free to make new one on the basis of the template one for instance + \item[-] Inputs: this folder contain several folder, one for each type of intput, where you can find the input file used by the programm + \item[-] Outputs: find here the outputs file of your simulation and analysis project + \item[-] NPDocumentation: hold the documentation file + \item[-] Licence: Take a look to the licence file and the list of contributor + \item[-] \_MTN: you can some time find this folder, it not exactly part of the NPTool project, and is used only if you are working on the monotone data base (ie: if you are a contributor) + \item[] + \end{itemize} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter[NPSimulation]{NPSimulation} @@ -70,7 +86,7 @@ Because NPS is build on top of Geant4, you need C++ knowledge and Geant4 skills \item Generate Nuclear Physics Event (such as a transfert, a beam, an ion source,... ) \item Mange Detectors geometry (Number of module, positionning...) \end{itemize} - +NPTool NPS used two input files, one for the EventGenerator, and one for the Detectors Geometry. Those file are regroup in the \$NPT/Input directory wher you can find the EventGenerator and the DetectorConfiguration folder. If you want to add a new case you just have to create a new file in those directory. Note that files in the input directory are token readable file. It mean that they are not compile with the code, just read at each programm lauch. This way you can change the position of your detector or the energy of your beam for example without recompile the code. You can also quickly exchange your file with collaborators. \subsection{ Running a simulation with existing detectors and event generator } @@ -129,7 +145,6 @@ First you can have a look to the VDetector.hh file in the \$NPS/include director \item[] ReadSensitive(const G4Event*): Read the scorer associate the to the sensitive method \end{itemize} - The two last methods are followed by a "{}" wich mean you are free to implemented or not. If not they will remain empty. \begin{itemize} \item[] InitializeRootOutput(): Instantiate a new Root Data object (see NPLib) and associate it to a new branch @@ -137,5 +152,10 @@ The two last methods are followed by a "{}" wich mean you are free to implemente \end{itemize} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter[NPAnalysis]{NPAnalysis} + + + \end{document} diff --git a/NPLib/MUST2/Must2Array.cxx b/NPLib/MUST2/Must2Array.cxx index 630e036dd..52ff9e8b1 100644 --- a/NPLib/MUST2/Must2Array.cxx +++ b/NPLib/MUST2/Must2Array.cxx @@ -546,54 +546,36 @@ void MUST2Array::AddTelescope( double theta , StripPositionZ.push_back( OneTelescopeStripPositionZ ) ; } -double MUST2Array::GetEnergyDeposit() - { - if(EventPhysics->TotalEnergy.size()>0) - return EventPhysics->TotalEnergy[0] ; - else return -1000 ; - } - - -TVector3 MUST2Array::GetPositionOfInteraction() +TVector3 MUST2Array::GetPositionOfInteraction(int i) { - TVector3 Position = TVector3(-1000,-1000,-1000); - - if(EventPhysics->TelescopeNumber.size()==1) - { - Position = TVector3 ( GetStripPositionX( EventPhysics->TelescopeNumber[0] , EventPhysics->Si_X[0] , EventPhysics->Si_Y[0] ) , - GetStripPositionY( EventPhysics->TelescopeNumber[0] , EventPhysics->Si_X[0] , EventPhysics->Si_Y[0] ) , - GetStripPositionZ( EventPhysics->TelescopeNumber[0] , EventPhysics->Si_X[0] , EventPhysics->Si_Y[0] ) ) ; - } + TVector3 Position = TVector3 ( GetStripPositionX( EventPhysics->TelescopeNumber[i] , EventPhysics->Si_X[i] , EventPhysics->Si_Y[i] ) , + GetStripPositionY( EventPhysics->TelescopeNumber[i] , EventPhysics->Si_X[i] , EventPhysics->Si_Y[i] ) , + GetStripPositionZ( EventPhysics->TelescopeNumber[i] , EventPhysics->Si_X[i] , EventPhysics->Si_Y[i] ) ) ; return(Position) ; } -TVector3 MUST2Array::GetTelescopeNormal() +TVector3 MUST2Array::GetTelescopeNormal( int i) { - TVector3 Normal = TVector3(-1000,-1000,-1000); - - if(EventPhysics->TelescopeNumber.size()==1) - { - TVector3 U = TVector3 ( GetStripPositionX( EventPhysics->TelescopeNumber[0] , 128 , 1 ) , - GetStripPositionY( EventPhysics->TelescopeNumber[0] , 128 , 1 ) , - GetStripPositionZ( EventPhysics->TelescopeNumber[0] , 128 , 1 ) ) + TVector3 U = TVector3 ( GetStripPositionX( EventPhysics->TelescopeNumber[i] , 128 , 1 ) , + GetStripPositionY( EventPhysics->TelescopeNumber[i] , 128 , 1 ) , + GetStripPositionZ( EventPhysics->TelescopeNumber[i] , 128 , 1 ) ) - - TVector3 ( GetStripPositionX( EventPhysics->TelescopeNumber[0] , 1 , 1 ) , - GetStripPositionY( EventPhysics->TelescopeNumber[0] , 1 , 1 ) , - GetStripPositionZ( EventPhysics->TelescopeNumber[0] , 1 , 1 ) ); + - TVector3 ( GetStripPositionX( EventPhysics->TelescopeNumber[i] , 1 , 1 ) , + GetStripPositionY( EventPhysics->TelescopeNumber[i] , 1 , 1 ) , + GetStripPositionZ( EventPhysics->TelescopeNumber[i] , 1 , 1 ) ); - TVector3 V = TVector3 ( GetStripPositionX( EventPhysics->TelescopeNumber[0] , 128 , 128 ) , - GetStripPositionY( EventPhysics->TelescopeNumber[0] , 128 , 128 ) , - GetStripPositionZ( EventPhysics->TelescopeNumber[0] , 128 , 128 ) ) + TVector3 V = TVector3 ( GetStripPositionX( EventPhysics->TelescopeNumber[i] , 128 , 128 ) , + GetStripPositionY( EventPhysics->TelescopeNumber[i] , 128 , 128 ) , + GetStripPositionZ( EventPhysics->TelescopeNumber[i] , 128 , 128 ) ) - - TVector3 ( GetStripPositionX( EventPhysics->TelescopeNumber[0] , 128 , 1 ) , - GetStripPositionY( EventPhysics->TelescopeNumber[0] , 128 , 1 ) , - GetStripPositionZ( EventPhysics->TelescopeNumber[0] , 128 , 1 ) ); + - TVector3 ( GetStripPositionX( EventPhysics->TelescopeNumber[i] , 128 , 1 ) , + GetStripPositionY( EventPhysics->TelescopeNumber[i] , 128 , 1 ) , + GetStripPositionZ( EventPhysics->TelescopeNumber[i] , 128 , 1 ) ); - Normal = U.Cross(V); - } + TVector3 Normal = U.Cross(V); return(Normal.Unit()) ; diff --git a/NPLib/MUST2/Must2Array.h b/NPLib/MUST2/Must2Array.h index 1ffa0518c..6e91fcab2 100644 --- a/NPLib/MUST2/Must2Array.h +++ b/NPLib/MUST2/Must2Array.h @@ -92,11 +92,12 @@ class MUST2Array : public NPA::VDetector double GetNumberOfTelescope() { return NumberOfTelescope ; } ; // To be called after a build Physical Event + int GetEventMultiplicity() { return EventPhysics->EventMultiplicity; }; - double GetEnergyDeposit() ; + double GetEnergyDeposit(int i) { return EventPhysics->TotalEnergy[i] ;}; - TVector3 GetPositionOfInteraction(); - TVector3 GetTelescopeNormal() ; + TVector3 GetPositionOfInteraction(int i) ; + TVector3 GetTelescopeNormal(int i) ; void Print() ; private: // Root Input and Output tree classes diff --git a/NPLib/MUST2/TMust2Physics.cxx b/NPLib/MUST2/TMust2Physics.cxx index 56c9d34cb..c6811e20f 100644 --- a/NPLib/MUST2/TMust2Physics.cxx +++ b/NPLib/MUST2/TMust2Physics.cxx @@ -144,7 +144,6 @@ void TMust2Physics::BuildPhysicalEvent(TMust2Data* Data) for (int jj = 0 ; jj < 2 ; jj++) { Check_Si = false ;Check_SiLi = false ;Check_CsI = false ; - TelescopeNumber.push_back( Data->GetMMStripXEDetectorNbr(jj) ) ; EX = Data->GetMMStripXEEnergy(jj) ; @@ -167,9 +166,8 @@ void TMust2Physics::BuildPhysicalEvent(TMust2Data* Data) EY = Data->GetMMStripXEEnergy(i) ; TY = Data->GetMMStripXTTime(i) ; - /*if (EX>EY) Si_E.push_back(EX) ; - else Si_E.push_back(EY) ;*/ - Si_E.push_back(EX); + if (EX>EY) Si_E.push_back(EX) ; + else Si_E.push_back(EY) ; if (TX>TY) Si_T.push_back(TY) ; @@ -186,23 +184,24 @@ void TMust2Physics::BuildPhysicalEvent(TMust2Data* Data) if ( Data->GetMMSiLiEDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) && Data->GetMMSiLiEEnergy(i) > SiLi_E_Threshold ) { - SiLi_E.push_back(Data->GetMMSiLiEEnergy(i)) ; - SiLi_N.push_back(Data->GetMMSiLiEPadNbr(i)) ; - - if ( Data->GetMMSiLiTDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) - && Data->GetMMSiLiTPadNbr(i) == Data->GetMMSiLiEPadNbr(i) ) - { - SiLi_T.push_back(Data->GetMMSiLiTTime(i)) ; - Check_SiLi = true ; - } + Check_SiLi = true ; + SiLi_E.push_back(Data->GetMMSiLiEEnergy(i)) ; + SiLi_N.push_back(Data->GetMMSiLiEPadNbr(i)) ; + + if ( Data->GetMMSiLiTDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) + && Data->GetMMSiLiTPadNbr(i) == Data->GetMMSiLiEPadNbr(i) ) + { + SiLi_T.push_back(Data->GetMMSiLiTTime(i)) ; + } } - else - { - SiLi_E.push_back(-1) ; - SiLi_T.push_back(-1) ; - SiLi_N.push_back(-1) ; - } + } + + if(!Check_SiLi) + { + SiLi_E.push_back(-1) ; + SiLi_T.push_back(-1) ; + SiLi_N.push_back(-1) ; } // CsI @@ -211,22 +210,20 @@ void TMust2Physics::BuildPhysicalEvent(TMust2Data* Data) if ( Data->GetMMCsIEDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) && Data->GetMMCsIEEnergy(i) > CsI_E_Threshold ) { - CsI_E.push_back(Data->GetMMCsIEEnergy(i)) ; - CsI_N.push_back(Data->GetMMCsIECristalNbr(i)) ; - if ( Data->GetMMCsITDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) - && Data->GetMMCsITCristalNbr(i) == Data->GetMMCsIECristalNbr(i) ) - { - CsI_T.push_back(Data->GetMMCsITTime(i)) ; - Check_CsI = true ; - } + Check_CsI = true ; + CsI_E.push_back(Data->GetMMCsIEEnergy(i)) ; +// cout << Data->GetMMCsIEEnergy(i) << endl; + CsI_N.push_back(Data->GetMMCsIECristalNbr(i)) ; + CsI_T.push_back(Data->GetMMCsITTime(i)) ; } - else - { - CsI_E.push_back(-1) ; - CsI_T.push_back(-1) ; - CsI_N.push_back(-1) ; - } + } + + if(!Check_CsI) + { + CsI_E.push_back(-200) ; + CsI_T.push_back(-2) ; + CsI_N.push_back(-2) ; } TotalEnergy.push_back(Si_E.at(jj)) ; @@ -242,7 +239,7 @@ void TMust2Physics::BuildPhysicalEvent(TMust2Data* Data) && Data->GetMMStripYEDetectorNbr(0) == Data->GetMMStripYEDetectorNbr(1)) { - EventMultiplicity = 3 ; + EventMultiplicity = -1 ; double EY1, EX1, TX1, TY1 = 0; double EY2, EX2, TX2, TY2 = 0; diff --git a/NPSimulation/include/Plastic.hh b/NPSimulation/include/Plastic.hh index cf541f9aa..6646719c1 100644 --- a/NPSimulation/include/Plastic.hh +++ b/NPSimulation/include/Plastic.hh @@ -57,6 +57,7 @@ public: G4double Phi , G4double PlasticThickness , G4double PlasticRadius , + G4String Scintillator , G4double LeadThickness ); void VolumeMaker(G4ThreeVector Det_pos, int DetNumber,G4LogicalVolume* world) ; @@ -83,7 +84,10 @@ public: public: // Material void InitializeMaterial() ; // Platic - G4Material* m_MaterialPlastic ; + G4Material* m_MaterialPlastic_BC400 ; //BC-400 type plastic + G4Material* m_MaterialPlastic_BC452_2 ; //BC452:BC-400 loaded with 2%Pb type plastic + G4Material* m_MaterialPlastic_BC452_5 ; //BC452:BC-400 loaded with 5%Pb type plastic + G4Material* m_MaterialPlastic_BC452_10 ; //BC452:BC-400 loaded with 10%Pb type plastic // Lead G4Material* m_MaterialLead ; @@ -115,6 +119,9 @@ private: vector<G4double> m_Theta ; // > Spherical coordinate plastic volume center vector<G4double> m_Phi ; // | + // Scintillator type + vector<G4String> m_Scintillator ; + }; #endif diff --git a/NPSimulation/src/EventGeneratorTransfertToResonance.cc b/NPSimulation/src/EventGeneratorTransfertToResonance.cc index 7e532275a..eeb2e8afc 100644 --- a/NPSimulation/src/EventGeneratorTransfertToResonance.cc +++ b/NPSimulation/src/EventGeneratorTransfertToResonance.cc @@ -609,7 +609,6 @@ void EventGeneratorTransfertToResonance::ResonanceDecay( G4double EnergyHeavy for(int i = 0 ; i < NumberOfProtons ; i++) {masses[ll] = mp/GeV ; ll++;} - // Instentiate a Phase Space Generator, with flat distrution TGenPhaseSpace TPhaseSpace ; diff --git a/NPSimulation/src/Plastic.cc b/NPSimulation/src/Plastic.cc index e7ecb3107..0a0e7d057 100644 --- a/NPSimulation/src/Plastic.cc +++ b/NPSimulation/src/Plastic.cc @@ -73,16 +73,20 @@ Plastic::Plastic() Plastic::~Plastic() { - delete m_MaterialPlastic ; - delete m_MaterialLead ; - delete m_PlasticScorer ; + delete m_MaterialPlastic_BC400 ; + delete m_MaterialPlastic_BC452_2 ; + delete m_MaterialPlastic_BC452_5 ; + delete m_MaterialPlastic_BC452_10 ; + delete m_MaterialLead ; + delete m_PlasticScorer ; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void Plastic::AddPlastic( G4double R , G4double Theta , G4double Phi , - G4double PlasticThickness , - G4double PlasticRadius , + G4double PlasticThickness , + G4double PlasticRadius , + G4String Scintillator , G4double LeadThickness ) { @@ -92,6 +96,7 @@ void Plastic::AddPlastic( G4double R , m_PlasticThickness.push_back(PlasticThickness) ; m_PlasticRadius.push_back(PlasticRadius) ; m_LeadThickness.push_back(LeadThickness); + m_Scintillator.push_back(Scintillator); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -110,6 +115,7 @@ void Plastic::ReadConfiguration(string Path) string DataBuffer ; G4double Theta = 0 , Phi = 0 , R = 0 , Thickness = 0 , Radius = 0 , LeadThickness = 0; + G4String Scintillator ; bool check_Theta = false ; bool check_Phi = false ; @@ -117,6 +123,7 @@ void Plastic::ReadConfiguration(string Path) bool check_Thickness = false ; bool check_Radius = false ; bool check_LeadThickness = false ; + bool check_Scintillator = false ; bool ReadingStatus = false ; @@ -193,6 +200,13 @@ void Plastic::ReadConfiguration(string Path) cout << "Plastic Thickness: " << Thickness/mm << endl; } + else if (DataBuffer.compare(0, 13, "Scintillator=") == 0) { + check_Scintillator = true ; + ConfigFile >> DataBuffer ; + Scintillator = DataBuffer ; + cout << "Plastic Scintillator type: " << Scintillator << endl; + } + else if (DataBuffer.compare(0, 14, "LeadThickness=") == 0) { check_LeadThickness = true; ConfigFile >> DataBuffer ; @@ -209,14 +223,15 @@ void Plastic::ReadConfiguration(string Path) ///////////////////////////////////////////////// // If All necessary information there, toggle out - if ( check_Theta && check_Phi && check_R && check_Thickness && check_Radius && check_LeadThickness) + if ( check_Theta && check_Phi && check_R && check_Thickness && check_Radius && check_LeadThickness && check_Scintillator) { - AddPlastic( R , - Theta , - Phi , - Thickness , - Radius , - LeadThickness); + AddPlastic( R , + Theta , + Phi , + Thickness , + Radius , + Scintillator , + LeadThickness ); // Reinitialisation of Check Boolean @@ -226,6 +241,7 @@ void Plastic::ReadConfiguration(string Path) check_Thickness = false ; check_Radius = false ; check_LeadThickness = false ; + check_Scintillator = false ; ReadingStatus = false ; cout << "///"<< endl ; } @@ -269,6 +285,20 @@ void Plastic::VolumeMaker(G4ThreeVector Det_pos, int DetNumber, G4LogicalVolume* int i = DetNumber-1; + G4Material* PlasticMaterial ; + + if(m_Scintillator[i] == "BC400" ) PlasticMaterial = m_MaterialPlastic_BC400 ; + else if(m_Scintillator[i] == "BC452_2" ) PlasticMaterial = m_MaterialPlastic_BC452_2 ; + else if(m_Scintillator[i] == "BC452_5" ) PlasticMaterial = m_MaterialPlastic_BC452_5 ; + else if(m_Scintillator[i] == "BC452_10" ) PlasticMaterial = m_MaterialPlastic_BC452_10 ; + else { + G4cout << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl ; + G4cout << "WARNING: Material Not found, default material set : BC400" << endl ; + G4cout << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl ; + PlasticMaterial = m_MaterialPlastic_BC400; + } + + // Definition of the volume containing the sensitive detector if(m_PlasticThickness[i]>0 && m_PlasticRadius[i]>0) { @@ -279,7 +309,7 @@ void Plastic::VolumeMaker(G4ThreeVector Det_pos, int DetNumber, G4LogicalVolume* 0*deg , 360*deg ); - G4LogicalVolume* logicPlastic = new G4LogicalVolume(solidPlastic, m_MaterialPlastic, Name, 0, 0, 0); + G4LogicalVolume* logicPlastic = new G4LogicalVolume(solidPlastic, PlasticMaterial, Name, 0, 0, 0); logicPlastic->SetSensitiveDetector(m_PlasticScorer); G4VisAttributes* PlastVisAtt = new G4VisAttributes(G4Colour(0.0, 0.0, 0.9)) ; @@ -432,14 +462,14 @@ void Plastic::InitializeMaterial() //////////////////////////////////////////////////////////////// /////////////////Element Definition /////////////////////////// //////////////////////////////////////////////////////////////// - G4String symbol ; - G4double density = 0. , a = 0, z = 0 ; - G4int ncomponents = 0, natoms = 0 ; + G4String symbol ; + G4double density = 0. , a = 0, z = 0 ; + G4int ncomponents = 0, natoms = 0, fractionmass = 0 ; // for Plastic - G4Element* H = new G4Element("Hydrogen" , symbol = "H" , z = 1 , a = 1.01 * g / mole); - G4Element* C = new G4Element("Carbon" , symbol = "C" , z = 6 , a = 12.011 * g / mole); - + G4Element* H = new G4Element("Hydrogen" , symbol = "H" , z = 1 , a = 1.01 * g / mole); + G4Element* C = new G4Element("Carbon" , symbol = "C" , z = 6 , a = 12.011 * g / mole); + G4Element* Pb = new G4Element("Lead" , symbol = "Pb" , z = 82 , a = 207.2 * g / mole); //////////////////////////////////////////////////////////////// /////////////////Material Definition /////////////////////////// //////////////////////////////////////////////////////////////// @@ -450,11 +480,32 @@ void Plastic::InitializeMaterial() m_MaterialLead = new G4Material("Lead", z = 82 , a, density); - // Plastic + // Plastic BC-400 density = 1.032 * g / cm3; - m_MaterialPlastic = new G4Material("Plastic", density, ncomponents = 2); - m_MaterialPlastic->AddElement(H , natoms = 10); - m_MaterialPlastic->AddElement(C , natoms = 9); + m_MaterialPlastic_BC400 = new G4Material("Plastic_BC400", density, ncomponents = 2); + m_MaterialPlastic_BC400->AddElement(H , natoms = 10); + m_MaterialPlastic_BC400->AddElement(C , natoms = 9); + + // Plastic BC-452 Pb 2% + density = 1.05 * g / cm3; + m_MaterialPlastic_BC452_2 = new G4Material("Plastic_BC452_2", density, ncomponents = 3); + m_MaterialPlastic_BC452_2->AddElement(H , natoms = 10); + m_MaterialPlastic_BC452_2->AddElement(C , natoms = 9); + m_MaterialPlastic_BC452_2->AddElement(Pb , fractionmass=2*perCent); + + // Plastic BC-452 Pb 5% + density = 1.08 * g / cm3; + m_MaterialPlastic_BC452_5 = new G4Material("Plastic_BC452_5", density, ncomponents = 3); + m_MaterialPlastic_BC452_5->AddElement(H , natoms = 10); + m_MaterialPlastic_BC452_5->AddElement(C , natoms = 9); + m_MaterialPlastic_BC452_5->AddElement(Pb , fractionmass=5*perCent); + + // Plastic BC-452 Pb 10% + density = 1.17 * g / cm3; + m_MaterialPlastic_BC452_10 = new G4Material("Plastic_BC452_10", density, ncomponents = 3); + m_MaterialPlastic_BC452_10->AddElement(H , natoms = 10); + m_MaterialPlastic_BC452_10->AddElement(C , natoms = 9); + m_MaterialPlastic_BC452_10->AddElement(Pb , fractionmass=10*perCent); } -- GitLab