From 29322d151bd5bc7542e75773b775c68a25f56481 Mon Sep 17 00:00:00 2001
From: matta <matta@npt>
Date: Mon, 16 Nov 2009 04:45:10 +0000
Subject: [PATCH] * Minor change prevent segmentation fault if there is no
 target in the set-up in NPS 	- an empty target is instantiate every time 
 - if the target is empty, the energy loss process is not called

---
 .../DetectorConfiguration/Riken_65mm.detector |   4 +-
 Inputs/EventGenerator/10He.reaction           |   4 +-
 NPAnalysis/10He_Riken/Analysis                | Bin 50684 -> 55635 bytes
 .../10He_Riken/include/ObjectManager.hh       |  24 +--
 NPAnalysis/10He_Riken/src/Analysis.cc         | 123 +++++++-------
 NPDocumentation/NPTool_UserGuide.tex          |  27 ++-
 NPLib/MUST2/TMust2Physics.cxx                 |  59 +++++--
 NPSimulation/include/EventGeneratorBeam.hh    |   2 +-
 .../include/EventGeneratorTransfert.hh        |   2 +-
 .../EventGeneratorTransfertToResonance.hh     |   2 +-
 NPSimulation/include/Target.hh                | 160 +++++++++---------
 .../src/EventGeneratorTransfertToResonance.cc |   2 +-
 NPSimulation/src/Target.cc                    |  72 +++++++-
 13 files changed, 299 insertions(+), 182 deletions(-)

diff --git a/Inputs/DetectorConfiguration/Riken_65mm.detector b/Inputs/DetectorConfiguration/Riken_65mm.detector
index 0855d67ee..5dd3b2d0c 100644
--- a/Inputs/DetectorConfiguration/Riken_65mm.detector
+++ b/Inputs/DetectorConfiguration/Riken_65mm.detector
@@ -5,10 +5,10 @@
 %Material name according to the target library
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-GeneralTarget
+%GeneralTarget
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %Target
-	THICKNESS= 10000
+	THICKNESS= 1
 	RADIUS=	45
 	MATERIAL= CD2
 	ANGLE= 45
diff --git a/Inputs/EventGenerator/10He.reaction b/Inputs/EventGenerator/10He.reaction
index 2c1407b0f..1987df736 100644
--- a/Inputs/EventGenerator/10He.reaction
+++ b/Inputs/EventGenerator/10He.reaction
@@ -7,7 +7,7 @@ TransfertToResonance
 	Target= 2H
 	Light= 3He
 	Heavy= 10He
-	ExcitationEnergy= 2.0
+	ExcitationEnergy= 0.0
 	BeamEnergy= 550
 	BeamEnergySpread= 0
 	SigmaThetaX= 0.6921330164
@@ -19,7 +19,7 @@ TransfertToResonance
 	ResonanceDecayA= 8
 	CrossSectionPath= 11Li(d,3He)10He.txt	
 	ShootLight= 1
-	ShootHeavy= 1
+	ShootHeavy= 0
 	ShootDecayProduct= 0
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
diff --git a/NPAnalysis/10He_Riken/Analysis b/NPAnalysis/10He_Riken/Analysis
index ef3df396e03189c2958aeb881d7d327c569c9ee1..75f4cb005797b9560b71bcab202eac2dbc49b5fb 100755
GIT binary patch
literal 55635
zcmch=3t&@4_CJ106DU}vV%4tlb)!54mD;3lMQmvUR7%M<g)In%G)<d8nv^7kg1D9~
zRcfuWD2OYtRZ(#lwXTS$tXm!;y6kR6R20xED6Jr(BBG-Gf6m;QWb$Zt*B}0)m${#F
zX3m^BbLPw=H@CMN3&+L8#3<s^M~PJkwQSbJr6E0Ym&!>~bV{5uLix2aSm_HA@zUy$
z2Nx@VLR!!?xMGP1oVFNzTo(Y-MLd#C7yD3ITq_$Cg)S<uB&hsVz^g9Q#?dta0+T?e
zdWqi$Nh|oR;L#Na0$s$XI_R2!N+zIgy7GbP5<Jr<{&L4WMRA<c#L?wKS-J%OH{c_C
z#7D@#*5xd_)>S^r<#gB7Ci^_e2DL0yV{IE>G=-IgNT$;uq$E2L7ukmRx-Q?-@60%M
z&hcBv|Is%6;!}IBKJkMUyc==pa1FpUt98)jF?T6-xV^K$dOpc$$<YBND4HcX=ne>5
zymj7_1GHDf<sZ=e1^l|f1KR$tk1p=Q#0yQjwqoQR5Few|!59fSx<2QpB*nxjnk1zz
zE>B6UySz_gUER_;Q>>C7AM=2+`vT>zI)_fvzfW2J3lvSlEYc+h7kzSZ<>4AfAnY@N
z<B3QM`TZoMlli>~DXC({rCLU1{1(YHT+?yQz%>)sEx0VWqJ7FhwBf46<-j!?*Bo4K
zTwYv$T;hZ7Rp#TW<%C;#x(MlQxPHemC3UzK<EqC+AGnrsC$2^U_}r}~?B74&-{l;y
zl;{sg_Yd;>hmfwt)xz;3Jbjd>>ySQ%>v4`Ld6M7%1?dJ{H~z_ecW%QE_bv2j@~rVE
z9fvR1rH;0~z2e;K9yn*yW8W+}^k#dm>#4U_Jo0(^9dp~yoOpP4|1F*?y=z~Zn^2M4
zuVAY7%F=;L#vl8;wfk}3Uq1W6vSC%lCi54MzIfR`9{uFPRq=Uat9A^%TsigB8h8F(
z!>dmJ<;Q8S4Rt;@`}rS#7-p;5{Efc0V9uto#<!0(8t(c{|Fw5s|HxB!v?rw;Or5^}
zZ%6d+Ip$yf<H`Q<i65`s|Ib5ft+zH^pZ4M|&+2z>(51dv@Pnaj|L32*^~HI|S66I$
zvH8pM-d~<R>ajl*|KYQdPx$)1lswXz<o)TXiHF+u%`F|=_Wb<|raXM-TZ^G*{UYVH
zmk%vpRJ6@`@P+g19zEA@+IsleJKAH+3-_Ftf96F0$13yFE`RXCHF5vG<X@F*>>urU
zv@`kPicKs3o%CVmGlvZ8E<TvQ`_TFCjxfGmcvbQfKF@8p&0KNE|K*SPSJFK<J^B0#
zyE}h-<lXaP7k_=pHTK#4^WJfq#@v<c`|H1^b$)(q(e!ioJn~TN<UjRyo|%379~b?*
z-wprT({H8wb>Es%w>|i;zZ^O?+*f6I!uRIaUoRQ6<%Xo%s)P#5;REiv`&R52dCk!V
zPye@{@4jQ>m%JMTNm6{^RvCobG8*9gL-^eO0x69D_b~pZb3*yg2cepuf)oFcyt^s*
z@DJhN_Y+8!e{~qnM~Dy~%73F)AT|F*Vfy?ztiB(@@U_9>iVpYYFupykJ(q;Fp9M@V
zgY;>R;{XZajIi?k!rJQ()3;xk{H`#0{|u8Sbr;kBr7(VHP#vbv@UZq3h3RucSouw1
z`kW(GNbQRc(_b6LUmaFI#V_$;<-_#(I;?;9ht+>5tiQcs_)lT_zZ{024r}kcSfP#D
zUoVEq+ZWcpvas?C!sIUq(|>VT`)&$rk1kC96=CIf2i0T!cOoqRhA{kW*m(I@Sbc9}
z@-OSs#F5%pDCa6qpRXuyOE>`wpi{u>Ie%%AqBKeT{sXaw`5;*Sb}Sa^F44w~M*j1a
zOB4g-A4t+Nuhl8PQZ6_TYbKQcKQ7OHA?BH1Y2&DwlwW_5qO?inZ@L(B>rr(rM*5|r
ze(y0&9CZuf@6q16=dm8chx|uBSW&L}NE2t|{4MamH0bwhj_*gN<G{48qw?cnpJkhZ
z<$r?y)hJ)g`SYRAD(Htb3e&IUGDZ3HlVE$3(EsZW2C)wLOkCa-xWDpTML8<jYX|J#
z0ejrd<$VhMPIPGEXpKesJd28SA8X=Xg&z_wzXWSYw08{W-vxU;g8UH6_;X>%ZP1sx
zo$~JiUifK{KNR||{Y(=#ob%tgR8c-deu3|zj+feh74#wfK*e(H%kCAhXP*x>aYNBT
zB!33d$6-H+VR#7ozeBRmMi{mg`ax~RzY6`QNc}ky`rU%|2>ag(d$hd}w0|u8qlNeH
zAk=p`?B5DZYc0Y@(Ed$mA1O%s+yejl5$zNHn+p9}rS{bPN>Q$X|LA%C4CJRh0w9xj
zF6tZoxxnWsSD`;!rT)Ac^(Sl;{Bsl^+Vhpv|F0nb{jdl59_h0d9a9H;PzB`A_aSvd
zp77Ti_-`BdI?g`@#b=;?)xQQR`Y`*yjQXdd{i40yDBmIZ)1&B!)sp>RgMI2Q4UWGX
zAg^^;us_L<cBB8r_`}9Xsg?TU8R-88`fnKWQG14<VTUF8|3b$lz(3LLj6W0|y^{AA
z<$o9U7>@EIIsZ-AD-QM_!tr$IyGW9MKje*jM-z7w_|(5e7zlo8ypD#vEmD8f0Pg}$
z<?@!oJ|$BA8_>UPX#ZjO71@6;^zVRwi1to`y;CIrSO9x1mHKNV^vjX#cP%>R4fxwG
zUSBri<9)zaa6Ay>bQ|iwhT|gW<3)SL_&Nap+kyJUcv%O3TZ;0+UsI&`n1J}$jrO%m
z@$6RE=Zw_;Z(*NO$zL+jzE>o9F9Q3KU$pmX3M^84hQS|7Uev^Wg>g;xz7P5@Kcb2I
zHy__mA$tYN3xAseeNE^u(Z1D?cQ^W5#GARu{|DrUn#>=*g8wX&?3sjyyQO%a3CDR3
zSlDkX{3lWBzoWn!_^0r{4aol!#@iw;e=*`&jucPEqCKZzZz1nJv}+acOrBrCo;T0q
zwPU-hSZ<nUDYjQSeSW()&t>)b>^`O1@9^5K<rbUOZL_-+i>0#4<F@$xR<GY;Q7qHV
zewV+%X7=m#Hiy+~@q4XKzpub%G+XhHv8;HaxvZeXQj%gR(OZn>EGklzSu(k7w%z7;
z&o|CivDxo+x-0YaM$<$aDCI8GJab6aa+lFG4;=UW*(@#6r<P2$dwouiJI`Ua%|THo
ziOMQ5`#oN3rCqOA>&SJvJhsqk^7Y1ftl3VtpPCH|6c<e9cSUwVn*cj7tB}-UtGnD&
zm5OSZ#sLD8g?iIUCK$%4`kVC@XL&jPCw(TG{TcJnRFAiy9409@8q<8vg?1>Q7Se|l
zB2~tFtrc7sx=k$?pxP>KOT2d0U!-`j4JMDz@3VQG)uI8DtgtGbV~|*rV}Z|U^933-
zl_^CHLKiVpXThMPXsT$_!~jKKswyl|rbSSuhf`7~Su0gqKoF`c=Y|Q;Qu952p+uFl
zI9LY^Nt&Y>j(~@f^Qe6xx+22B&RVsPB2BMPvrMvht?o*@#YRpe+(H#7njIm~VD%#>
zG$~<2fg7~kg&Uj@aSbQ&F$6d@-|lCY<T(YLWOc(ay}S!ji%hxt^e`S8#XQ68&$1Mk
zVKmw81!kYwpH^*kdJ86+eWoHRmmR3WXvEM<v6$^H)TsCQ3(V;lX8tsn-RDC|8iqtM
z>NC)Er`u=8u&r@B=hoQC<ms&AqiUkh8e8LZm8))Jbs6W`-Tq%nx0Il62mokMpz#*B
zr`&ESv-<32qa~p5*|$z+Py^LEWJE)%=mU$*<M#P2PQ*nk4P`QEK%1!MGw6#EHS;{~
z3TI^v3L#F7bGqzCvyTRT)FS%KJeS?-WtQfn6$Xbt<yrBMDkIc|^jVQCco6D9fr81!
z9*+oM`V<0_Yy8zUh}4yKe*xM<5#5-HfJw2}oWguT&X}2R_xZh^1!}ivlY|0ygaEZR
zwAMzA<jy@2EiB9uL_=z^omtRZWAhi=T`<Qy1XrgG!GHzHklgw#qucJSTu^8&EAf;#
z?0#$BB%U!OpBO74#9r(Un{dG%pNNA@Pkl;|ZomMvx@xR`dx6{Ocf#?RE+T4CU2=A2
zZKsn>J>fht%}lEC`3?D2zm<mrhC{<KCNr68NE>hWBb-A4k9%@Oft&n}nOB|U!m{hL
zki7&Ez-RMR+lxHjDyZ!wA26HE`BKdUrHYZkgjpW_Am!nd&}_MGca6*HHS48}<E_4G
ztG7Io5?VBW%A`rtM3j><bMs<^l(S}v9?@r&M6g&-lS>B;k>~Mv%bjlY6DtU2Uf~3z
zX_O&3B{?lQm7Ch<FSlKNH9&F({0t*H#bUvF#xvjIsqtGp73yT5t~s!>AYU~5P#eZJ
zjnj}wRBpF<?Nx|^rVw%<K=quzhls`sq}ko&u4wBgV=<~pMdWkZEST7_2CGunQATqH
zMykbDYqfaotTCz}8=8c>BDV12b6JR{PPb@4&k7ZpJuaV-4N7)Ljt#SA2Ld6VLa-V_
z?PXRM#gMWdEP{|yOiK%<YZ=y+Zmc5xHV2dG!t@leXpGiqTM1%ux<&0IwR>=n9-;*%
z6Q$1-y;_Eas+AUeViI+Fd~EheBcBoh!|V%~C%wW|<8%BB`?Dn~ZyLHV(6A!RO(B(v
zRRugM)8?tdkYO_~n+BMPP2-Bq9<v2au~gR9TB@<A^|%r7{R=GfQUV<+hCr3-%s!`E
zvD!Q=&{x`Q78(S}dc`uuJ>Lm!itWCdDmz60zI-Qk3Sk=`3<Z<1hQ|Q1)cEY>iVY^4
z!&`$PRqKQ&StvJO=vP@$pT%B|AO=R6&!^Hsa;v^_)|V@KOvspO*!*uK{|e5<G~(C{
zOvZ^8F7y;W3-Uw&ou&p&a{A1m9|xxL-quz|`&^0zG~h6>&UPcSEM^N$HufGDJydPh
z)ZF5N+_8m5L#dwp9eSizS*x+Qi&zVWt^0y4GaIl3G^V1r)VVw;b2`aXyV~Zfu~azS
zY%c3{@e`CAp@Gp@T`g9LKT}J+-sPEZ_gcz4HBh(smomQI01xvzD;@qSgjZGPki`$p
zsaSriob>U<xuywORSRfSsL$v95Ll+3oi%y}{9%rLf$9xC`1@IRLbfN8E#AXmqxCm!
z$Sf9$0%H7Q02+#Oi}EK=G8T<5C^7=Ejk3{=Xm9^z%oH|k{(mzRg(R1~Lh_fh-Weet
z5b&<xCg>LlLz!?pY8MN$JyaUv{|43n5l{oU&&~jljz)Uj@`^bX3W&KjyV`5FIq5h^
zjrKn$*jH7F&~=vE#l{#GUzl3e2`#X93~s7u4WH-0Jj-;@XQ&$=tILLkH*Es~$0h1v
z4U8Yy<J(+p!HOWS`bRJO)?P!my6}xYOJc)I!m;-$G8T`YRyf&g)@M|EJ${e7#OkfI
z`+tjdhngkI0^Xo!Gjf63<}AkwI@ew4vYQ-EzMGL{rcAJ>(uTA;*Ttkw%*L|FU4tcL
ztv=OlpRX?O)J=HgqM+C28MCUawH9&uR#9zn%>PBkQ}_f%K~tK>)77J=5Sn3{I<^0-
zHA*?3qeA*7RqdM)Q({bnoD}tHE!C;$fGD^+z~X>yF+yqz^qASn<9#oORjP}ng<8Z=
zq_#fVTF#If={am@1QvB?d8`^J%)_58MRfASHWTD+Vu2vJe=1xx%=hWEtyil`kxMK^
z&ray1<GsN0?yLu9y)X)`y;W26HZFT{0As#EEgx8drqPOld(K(zOIj(gC0?%!?6Yny
zsag!VK$}9R@v}dB>Ql*W!#q~FV-NG8CHk4NvCOEB)C?TDmQkqsx!s+|ySumY5qrB{
zhmbLgH_>jKZJNk7`q2VM*e0-4EDL(^O=>coSxhvi{y)y7VkLo2{+YX=ENldD>RiQl
zQ-RT9C^D$CtUPI^%M<Z<>%w1VGzGVhKf6^K>hTeMXAx~Hp2<$tGr949rseSUkJvQ!
z=5)RIfiXL9SdBF?4FRzU{ZHXNPfv$h;X9Hv+I&NZ6$f~%YtH`I4|A6u?Az<Og7^2Z
z_4`FuN$KoBFv_%Q2u!QLm?vjpvXrXt%}pXYvsW7$^(p1{KzK6Y>+adg_`-s*c@~^Y
zE93L>EUA<drL+|HX$sQZu>}@=a%vzW-P5!1v5E%&(Q`5Khn|B`Kg6XE{Y&>6g&v&~
z`D0NYkAy>x_=wyhhgy!fK}jkt22Z<3`%lBE^fbKsUq7URDrhmNIe1TZ!5qPop*j8+
z6qFV$^}oqIfQL))Sc#&;mEd&ZiHv@Vl^%e@hh+X;;+uxk6N`P7ITC+^#8=B}rSg50
z_wjHD$xp%MAGsVzqxevsXm33;2OSWr+#ZnEM>)pjfsK4lJed=x+{N>&^7{njZ@yR?
z*B65588q!wJnIA856`CTrj(wIp%l-o?4=alxsOuRcz{wkNC%~OrtdJN(5#bE)Od_i
zJhXCxQs{G%Qan3yno?Nk45fJ1MM1s&@XU#ZQs@y!DW3U>rxefDBv6WnT@opsi0qW&
znV7+p;#ndcrFaHtD5ZGzX#}OK@C+KIcy=p=QalrsMyW+nvM9wfFQX}?XOAeo2fzEE
z6c6!CptJ<PPoNafzL+S5?Mf)s;aMO`C*v71N-tNGS(LgIrJPbc6yu;24_~<`9g1fg
zDIJD>qZAJ*)lzyTp2?zggrd|@iifwBP<j=fRigB2Jo7^-9s*iM=_ow&MrkshwW0J{
zJcC9l9HNC%JZ!g)(n>{HPpJXF37`}Mzm?K7McGJcx}t2RGy~6gQJRTow<yiRGgFji
zqyH(r4*gH*_2_>}N2C8Ky#f7CDIRK@()fwF{+OndeC+1M+gogSO!dAq-QC>{d;HqY
z^WZ_9-@#ov_d<5*&986oPH#hxcMscvf2mCOF!D49-F9`LSobjUI0x~%+8HL#bC8R7
zwJ}T{=s=GuU9Ak0CpvV5TNoyfbc`UpjA8Oj2P~v?)iF#S>VP&%S2e@rsg4}Nvlu3i
zbxa^^VwgPFVIrKvFnO?}lyC~e<jIa%gmny)M?0uNT?q^;u#}^ku)?s0a4q2zKY=hT
zj&L2}4u<0iFD2a0a020FgxeTSB)p1nE5k{ITL`x>Jecr$!pj)e5pE@1$M8_Xn+aDl
zJc4i=;aLn{LwFZq6T>Nl+X?3|oJM#b;S`3m2zL<HF+7@ZC*cH!a|oXxtT3EU_%z`Y
zKT`WA5Jq%F`x!1IOwT2EwKHrYoItpZ;S$10gj*RdC9EUd!te~jBM2{JcoyLl!gUOn
z6V4)B&9H-T4&hl0y9m?I!MaQgR}(f7&SBV3xRh`T!?lEG5!Nxhh_Hij0>gELs|hO%
zFCkn@_ymoUVM__u5$<64Zo*3mw==wq@G`<}4Bt<972#HfR}pR@+`{l`!s`hyW4MKI
zE8#kZ*Ad=KxSHYhgxd(uVt51LU4%^xw-RnAoWt-&!utrPFua*?2Vot<TL^a&PGGo=
z@Cm{S!#fC{CVb)tYX2_6w4UhdV0brS`gvYgJHzdS69~64yq7RN{@vBe@IJyi!Y#o1
z&u?k`sQ&N?Q%SLdo@aK@L(IRK>Y!&YJMTq?lgmOrJbu;P;KIX`N=<Ilh1Iy(ydFOj
z9JLPrY(3qlxwJd`eV?v*6MR;w-xkxzvUDe|AikPE`+e`HJGCStrhbR!=9$|YPc?5r
zbZ7Cg{#eq(8<4f3%|D37or0VGuW5!7t-Jm8?aP`Ahiag5_uMnk=C@PLzgc{2AEw&I
zf7D;E@h88QKUCwulcy-rfu?p&hZTuNPj5GBhIUTJsCt>icF{BA%?$<cGNNxo+LWiM
zZ__j>%_|tSWN2I?N;Ws-^E_)&HdvySp_@4G_o93pm1opIc^U~+$1Nyv^s>gc8g~Yz
z%m%ITMC1F!KMsR8HwcLoPnsJh^0HS5`SB#5Q3LWv^E^KxJ$k7sUq~6i<##Q`v>g=p
zHL^B0u!5|Kg<QnT-vvd8s$U}>RP6dcCPHLg#<Ug4E7dJ%w}^sUuymkK_yQf%+(3bX
zn)?L=5cLeBmU8NQOf1X8G!yg~bYydbK(WYmG)Zl$pndVZs^`&!U>*BG6DAS$zQ*%)
z4I{NQLn-=qjwRyu#(kt%1&q+RW(I~^b3-Lp>k+0FL-|AFNbSMLsWG!S|MyVu=!K2%
zG``k2cxdNFl5o25tFCQWMDa{0($qjgsfznflW<WuoeJ~T2-@YKk=2im2r6*{XhPvX
zP!(L^=OInBQYd^rFW+?|RA^j7vvqTWhikhRt>uWf<|@`22j_1j^9EY;Da5nZoJ^wD
zuuQBqB$Qh7>bE3L6t0x|M$pWliPi`uJfNX9g=GHiR0VHMrPOC4Zyqn-H5V#0t|@1&
zVdIiHNj2B|%qdy#WTE$HrZ>yP^rqsZ_e`d@DEy36ub@3dZb82P9ahQB4QwQ{8vVS+
zyHI2E^Mue8toW49(-6v<;vcG^O4c)PaxjfWseGzxl<<~2s06&_sG>Tw$aR^hd=V-q
zm%EX5QZ29g88nZmlNhy*Qy&Dixq;<jiVFHxG6vL{i)DFJ!s2Z?m{XbtpnL-TVi#$A
zDal!pL~;;XNU|Fgl<9u6xj~4z3%Uwd6|{MzKe;Lfo=~og^6^+CXhl3<*9L4oNWR*h
zrCjq5!6vHOo@Jc+I;hPJEDvjspnpli(4L2}-H6_v+gW=~(>UPmxjWb%A?79W7(Vm_
z?QzgVdxUb!DIaf-p#6^L>pFlfRj@s)xaI>x+S9_R-=R=*1IxqOBj}g&_PmMhRP^@T
z&)PGB<nZ>a4Yo&!`Rtoudj#zr&_sKLa@!~$Z;zlo&GU7|hqPxs*Zf9k9_*i1P94eG
z!}7592>NfxIOw049^3OMYfqfio@ayY5n?Wp+9POvrS=HrzB(CfkDz@38XLT$vGoo1
z&t|T<2V#QlY2(yspf)$KJghx}zL+XSd+4Wo(fj8m)}Btu-?j$ZBgEW9dUAggv<$8%
zjUS=h6;gWy?L5&Q7q<4n_Uz)C{|W41d)hg*5!B`emWQ=R(4Qq?Xpa?>di3^eXYJW1
zwdajsdxV&UUkBSGXceFde-p|TQ$Fr*f;NWd>spN?i{^$8xyG4HV}|(Tw3{?(*vI)7
zvmO$tKM6rQnlYI-Hn>=r6}*FxB#bR+uT#4zSd9(V_z7rDtZb8_J&eV1QvwVbk7!P2
zjzgqm=6)AysM%0q_a4z4p*Pu|x!XT+67ye(>k1Wz`C}u^AJb^Q=2PK}FClVYW5Zr_
zLO|la5CxkV6AM)qvBOmi%;DazAc<BaDNydc;|JH!cAnB&HJw=pFmvfat#V2ecW~yi
z=7uBO-0M-2BVNfDtUEe5e<?bkse#SND;TXro%i~nLz-yyuC4EkKdNPG`9|Za<_1yl
zMsf*06a?*R?h;4G1Qi$$T64n}yt-d8br|C6e8be~<oxfz7d<1Ipyg7#QWL0WR9#sC
zuIp6TJW|)y%?(28eI%9ZDrmQZ#yknS3hf?Z+I`D)sY3TPH!#F?{gLT<g7YUyx(W%?
zxYVvYalR*XWd*pdf5u`aQrDK|1|jtbY8AQ)+FRsE<n?J>AB>nUK%;n}`69Soy7~*1
zCbmmglPo@LMXO%mvbsLONhApnnSVMVdFe)4UnEGwrO~*aGG8Or_P66GFl9ZaGqzIt
z;PcSRpN727C!tZJaYK`FL!+_vHRC!OlwHGc7W$fzhKq7^Mw4;ld!6rf99;eC2-r1<
zl0s0NinxQXewE@h@&+))xnNmZHPjn7#?;@oF=pV}wk2&f4>nC&_tH~M`yGwDzWr?L
z_wkLpwx0fV<69#!Qk`uH*u6HsF>+gDdqdm6hEJeY{cY=%flKz|jv9@lU)pILrXA@F
zOs<`8q2*`~TGceAweii7TVJaG;L<!*^dMC<h>g1%8<s$m{p{a^GdJ%yuG?>1|G{?$
zXSN+QZaz@ccEG;*;LKeIjco_DaTvHCynb*EojXvSMUtUQVA+EW#5p)awe?siK)Gfj
z7lls)<uL9N>>-@JfU_^)T|+-&r|cJ?SB~D;WL#h08FRgHT}@hejUOLV<=@H$?BQ7W
z${y-^5pwDLq$#e+xUO;A*6)7}Q7rV*=9^YJK_7Zk9S@{HA68y0<cC6f6AOf-2aK&y
zp5>VK)j$`?TgiA7{33aOB%U@wwdc&b$P5pLWLSF8Sa%SczI(}pYbKD9jZ2Ae&u2uS
zb0MDNHX<|-fjX)*n3MI-npwe|X5>83%m@uk;*6n*2OC(48AIc#mzo<|k)4`3pZdnQ
zms;JGh%XVEjC(`IgFrL_5agL8YB=uV4>r&|pvpT9KFPZh@|qh4<KUoa%3jt1Q&x!~
z`a>7S#W7TVH!5#l!HS@ZnpaSEk!h#M#E6jiJX#|nlAt{d8jDES--?=>DPO9(38D%}
zn*|~t-yDg&R!;BwJ`PQuxtH4m-H&Y=DTA_49i^5qNsM03=_?qW<qDzShp%1^u0BYH
zYHkpjPop(Lc|ki28dDxCHc?qS<>R4J(6;b=T{HV(*6k$QvmS_N|3cHHT%+g0G~K}I
zN6|{2i)kw8UFhe7Gxs$&2tu)>rJ#+Gv=kLxC21*W7YQw2z*kev4eh8qvge<LhJl_}
z&&5u1CC4!(saPmIpDEeV+#oVO)fqIUpgjnhFeMX#eruq7+?0Ygm*?vm#FR{;ksINj
zGmda2iA^4mi3$I`<L|xxe%FT`YX?5Cy}3bfE{D7&`v)$04zU>{rfJHm`p@cE$VnX9
zxevt-1`F1tEKKHkwp}CgYz)ma@Bz#c{(f{+tnk&&lD2_M`p{x+=H7_X^H^y(8=JFO
zhJ#Dk1a{Ea!N#aIiB@8Kv}5w1_my<+{}iK@7c#cgw~e4ij)pAEJ1a<mOtms0YmEcL
zh*jQFziot2{W~lz4k`y4h$*B+RY4a;g;Gg{&_erEy+?!=qW5Za4*5@oQbG&SkLNp&
zf6{|`+AJw|@K9|nx|GN5@6aro!voe(r~kd&F7LfA3>z%nqSlr~>jVlXA^;u0S_9HL
zRcS$byGq|D3=G+CQ!POaUM1L7jKk>&2b+(jljLBk^F;cXDO$D&A8QHmv7i?ZVx@cS
z;2g=2@G;g`^AGo6cHx-Oykcxmh1OIH1FfnL4xagBJa`~6dsQ%6UGE$U777f4Oi1i$
z5Y!44<Uw!}iwshMnE$g1W=VzrdJtUpp9)1A1YIBZpk5Dy;6ZX@b@B2u2EjvWZ4rau
zU3F%R7zF=N>HldE95rDC9Mn!AZ(IE;lP+N<Rl;0aAio&9qWo#}Sa2McLS->oh%uWF
z8cix)2N8|yjeBEQ99UJ~b`8bLcsyB=y?x+v#LIyV|Kg`w>RIGyK5tO}(o#}Ai_GWL
z8$iXkCWP2*Ea-O7N$`cR2A!oWq4n$_P`dZv+aq4sM0)Zqq@a!FdeX^{sCtByPtX#j
zd}7%*>!V=11+5S?*6y32LA`NZ4A#`w8`lq9&6@fKwwBbW-%C4#>rkR;$~v)hySYQn
zaxY)DUkWxA5zF>Vxm^e&Ua+s&`f=I@UgijwA<7(q^0JI~IaV!R$j$Q+uSvCd38(%8
z)aC}3hgn?EzXrYY6~+{#6R1|$SI`cCCKeZ>qFquxLE9+uUHCFBqxm;u=usLELa6wf
z?M|sPauDIE=Y3K>L9<Bt#8-$DDIfm|P|z}YK9Y0vL&)3LY(G)ILz#B-EtZ+h)-&7j
zJ!k!~tR`bTd0mr{ZNO$@L5T$*M~Tq?;LHxn0wH~Y4ovDeaN9oGg=~h%gELPYG@f{!
zB;gy=#mDZZVR2hr%)o{Rv6@<ZTYPu7q6}=f8vwn!4sT-WJRip0Oz$8<*Tv1EZ&Xn^
zaj1rqkV&}Due4O)F)Gk{kOEKVSDHBN#s6<TNR)$~LPHLEnN;WRpx0)4ZICRII3)66
z5{YkvFqd^sg&uSSc2H|l=clBD+EVq79n5uNN+lUb$&pcs_Jq1CZAJx+`yTCpNQk1B
z&UT&?5H(8`a1C3A4@EIu9jtIr%jrps&cqX)#K%J{i66qnUxpUK8Tfa6I_fH%sFCt%
zAFzt)6;#c}7l`5omu~sF&s7l7Y-}Y?DU=LKd7nyhDaRon^(CNnR6kxVtLj0g3se}Y
zpjm8=u0KHHnY`1e3E$Pxx5_Hv2q{KqJ(IaE<PV#dg>@x~A$3MVfo9|1>Gl<V%XQ9T
zI&UV<I;ulmkgLsmj@LoV%wE;r%++Qqy50M!GA1%tQkxM{B(<43lR=13o5WD1UR2s_
ze2s4VF|}V4rk=#qZX?d;;0U#u$TJ|2X^2?|6ZUNFHm-IZEkrM5YBP~{kw|WBMp(c_
zlC_ySt3ZfQo5WD1FSCC8H{F_83;r$CE@f)(B2EU?!L7|i8hIVWd>y*<toAOhb{naE
z%ll*_Ch{#*Ce&txZ6F9IVd{JYLWJ5RhAP!Cwcn-N2l*{`5*t&yojA8s9b9cD@*Z9X
zF$ZzAxladtn}%|;v7M_;?*Qw3;yqHEi5yHKxwRSL94?Zq&D6OHgb1}s3{^Ub_1lMZ
z`!T=eYWtbm?A!ibXpm5wiF_9X;UqW1gk<gLYVYG})2rAzPwXSLnMgZ{<Z3fQ2^UFf
zGj)6*M5s+-NY|CD-;U7j)lBUp!b$FCYIhLle5!+6n~Bu%I*7RrCXA+bIU-84v4g8!
zM`~v?wVBALQJGMi5!QgfoaE+aBU5J!2oY+N7^?I`wNi~1-!M?fC+XKy0eaIRv<b{2
z#GwLDqkw1v6F-yJN6e3)*Ww*CQPDK0&VfmgqM@k@;;BbEulcUKo6TyN`B<Kr+n2G~
zG654~Q;w$5c!qAK#5bBSah_pW@qiJZHJ^r^dFi-=IS@c)!8@3fDBTa1?&DDpa(?i-
znv0>t4_^OZE5m~s9!xk;21-cxaq2x&A--u!T>UmSr#Irr;XbtIpn~U{nEp^v<tI^J
z5#JY`KSA)#(fK8UpDOX8ZIc44Z2dSkrk&Z1C@|MH#-a0QI)jdtwIw;=Qr8s1_RvqF
ztncQQ3>w#p&Q)786_32;!0V_R=s0&uoLFs+f*?9mG9H$Q%L7EJfV>q|J_;fZ;YV{g
z4zO{1v+<}@jzS8AHO@d4s&e2{*(+Ju@S_?3+}DgJVH1pplc*?I<`|V3k21~1z0FgO
zL09xdN0{c5)XK1{X*6~;8(Enje+s%YBOC)k1d>7TP;_8zX+))X&aByf8jHM}ZxO!D
zjq5?7>y7aPS7OQTkB6i0#UiJ3``f~rFlJ)YOj5ULN&;y`R-$K)u+U=d-`6zr%<J1U
z{8?k3S7hQAZxorh$2UQt1gW<ZC_h;drqDnx8zsS-g*1BPolG7s4Wkc_sby~)cz>JJ
zI<^1VH$5e9(Wz7dz8``|nKY`OK>kp)tl7wFr*1**Z@^frt%+(!oRpjVH?m|{{p4-B
zrW)3tDDT3z0gc;vQ_KLW)e_()<iMia8`CgbfJ@R&1bRlbB6OUo-l^kOwGA5yi_ng(
zoxcv~&#jH#6(;gi{rl>7B;L$rP-9rLxxGnW6Ln|}S&f?fBBsRbov<C9A8t|GPxLB?
z!q=(en~aGholk(1se+xnXd*z9LYXh5I}A8KcMwF7U&FH^k0^0ss8&l4QBqVOLsJjL
zQ^-c`VyKgkokAX%sOtwTtufcBnOS`0U*WAmwaCzfc`&x?Z911iZ$h0rP>{6bntx2R
z6;xrUii>_E6$dUcz_F;Lu{~%OI`@TBsfO|AaIMeK@ofqRUl0g1!5`YgP(PEaPp@kY
z=yHg3>Cg1ztB#FK43Ym$8ADZk?+mkIRg=0xc?@}R>_naA9|c<P_S*z`WWSfGeN)ik
z2~Cp{8w+7?L>bsT;EquCE}r*Z<Yf_(I!3m&UTsa2@i1)dWESJ*Jx;o3pgftJ*}rdO
zLlRg+1}@PFTkj6qdN<JmwiX_;iBWrR;a=pS7QP3^X*TXAMVbRnSqG-%1z!-Cnipo`
zc|R}{S90CQqP#HiRb;YWUDT{9aP;P;DZ87DyL-0pRXn4i*?1z-k$F3sj3*jnj}9bF
zc$j?@4Wk`858en2B8KMh*&Xo$0YHtWJZ2s(<ZW4tK0|ApCMBWQ)zFQR+3-ESwm1<3
z7rKb@854Q#<>Zydgrnzi+^pjI+Y%IZ+F$b|_hK5GIC~0<G^hvRmB$&T74F&cVgxZ@
z{P84^#gcCc0`V0H22^lez*j>evQqUm<M@!n$pNOTM1KZp0ugI~Dc-VmOS6&fjyHft
zU5uHTSrIM14-2>OShUpmH800yZzK;ko&;*1plO<Na^NQ8*DxEbM`I?iig>M^CX@K4
zoWy1m4!p3|gZ*eu*HBddnoYv>J9L<7)hHf_xN6)RLm7<6c%7peI<eFEZ45nGaI6u|
zp-%6IxbyPa=`CvQ9^?*l-WN}IcP}-5TX);HivL_*^bHg}dJYHlWjE@pzwH?B#0SaA
zSSPUIG8Qsf>D#dYA>ll<(%(G5$O2Ky+=SX-$AX>4{V`3G;K#?BjR!D}5%&|wRAC__
z1G1Tn{g8o~_5iaIoabT)?|L{mW`|I`P@TTn$f7lSmImR3>G%TTbXdE$;`v2rGH$2w
zP(YKzJ!`T75|}23R80;GO`6G8m+UkiMff<X@^%Z}Tryp>u~*;5SMTcjQ=J0;^e<8}
zuCWiCT`cpPXqhio*jNNpCqD4cuzdB$#Q4aj3WMY05JF~95{A3FUl2m2A*PNMb&z4d
zqPp?P=F)^_IC*dZOplf^D}c!Q3S)#VkZuM8SxLQ%a0`D9M4avFQ4iyNPon9lhc)E*
z>u8AT`FwnPQMNO4Hyj+tL!IZ*4L|+({Xe?9p*@dJZ1}JRJw+1w<w)3?h2|ZcXw!@}
za1;KGTWaDFPPX`MZ-iM=vWS{btSM+C2i=(3Umy+c6cVr&YW#qY#zDx#Iv)d>ejSHr
z;jorUP=|70r^G^8EZC|Ps!0ufeB^w(i|i8LM0-GWxrvtJ9JKz}HBB|NM51FgTIzKE
zl^$)v!6TMgdaP>M0-N>6V+dh5w|%z}lP&U-mF_`antQ*ePD(|~>vvqkwyHtBsI}Be
zwR4%EGS=9D2U1xZNVMW#-ZpSkoA?S#+nGaJ!z<cj+G5(bcEnQF)#zd2fRY~*3ulD9
z{n9#~ttYQ!g-EN-fBy5I2e5L;Lm$v)Zg2JvSAxI4fn7Q$L)PN$G5A4c{jtHF<6pzp
z<>mJ=V4Lgd-;u9v?e5di?H{T?rG^NxYEhl8`~K%BSN+bI?4P_J)bAL~jM6lCD5^w#
zu)5~q)%Y<_{poK11uxTG#j^UNn(p?dSdeN?*0Y}k1@d-67y7NF|0?v)B6#gI{4SCv
zsu=ne6#p#n)acxHd%4c<(fO+J4yuX;x-yU7p|k45>u+@xc=N9gZ#e-?ya`pM`D$#)
z=+j-N%f%}n@q%uju7A}6Q7##8jACzn)m1GJ<&w+!yQOvB8h42YS<91gr?B!1?d9~!
zIu$_JwR*gqr`S2i?zRX%y@6FBazMC}UFaNDUOh^mQs@j4&CV)%@e~)x5ne;37;9}#
zKYJsU`exjl4KuIJkDx02y}c@z1I36}`ttm^Q}YB!EEADSugym$rBs=w-b_>QItIK(
zncknQM7$eTsVK;^T%}B!VlFW#{N=R@z33MGqq|mobY^;CJzjGhG_+t{t5bAEHC1JH
zug+7UV{c!kzAUrr=%uT$0D4C`S7-8iD!q8AHf(U6q8p~`uUmwx*iNs;B)NWPl^r>M
zr}z||J|$%sq~=17-|8Z<iq1|i(AGK7*=2US8{WV=9MVJd3@8=lMyIGRlE3acyuLts
zi@8GYB!qI-sw$m6Uw6H(78l+I>-IB_K3~pY5E&Ne7}=1o;5|l`Nel3L-(-KSpP_t1
zrFEf2UuH36ObifnU4dJ(lijLs9g)g%LPT*+=MoT>@P8fJeLF(iPne^+ZwIIYP(Lza
z_uwjmDdiz@9R*LK(eL&ZEZ6bVdG&|(G)D1jMB;&>&<e91-&}3RH?S>u2xaL7_^mg7
z+@gL?+!#F_nxoREscFu=A!*%`<Xqz0|M^dra{S2smsE{ab`@1tZT(B$qYrO?`2OwR
z=bd@-%RQ6IOgG;1`SUH`?ra@X@XVG!e)aCcG3S3aYVm^)%)Q~0TP{w}W#4lBzT4ja
zrv0l|u1lI_dgWB>udl0fG}_<EuFEbc{9*Z>YdW$-c_EML$FKH(as5R-qTcK^#gB~p
z@DCC73cko6Enk?u6a{t_<yO2iyz`vo^T+ho&WQ48|2OYHu6ci5ztN_@>V91Q#M^nI
z{$_4(A)nECKg#|0m)yG#?BBR@?EhM>dE4<Pw?Cd}yyCdN>9Juo`J(=w=+ExCzV`Rl
z%{kY7{$;`~Ip5|AeC^Pi-#`4|w%qQUZa4h6Z(FY5Z=EySnf>qI=C<;3c#yoP=-Z?m
zp{Hn<Xy@K9@9I2r(G#QZ;d%`T)9Z@Uvz}jjO-5cwdnNk|zZ{h}_~^$Om)tn|&~3l%
zzqkQ!5TH-c&qO~la^2XRLEMj5^8UMc>XEh2#O@irA#cx{Grb1-eHuQ&@<QKR6Q3Uc
z(ZVG+hPNYWRDQ`1m-o+6(_iuQyBj|+zViC$zYWQ`YV2FX?)d1#{IL&IcRsbnn{%`)
zy&&t$Z*rRM|NYmcDa&tob3<9tV<ReWc>Qm_ac^CA^oG;L3$v~`^Xc_MkNaMJx9pPX
z9XI}U-|!1Z6*uQ>d2ZhRh8fK{^I!UU$JduO=bY)UUvnV4;l_W&jdXn*`_$+&*LsH>
zdwJwojror!v{M$`@JQ^TEB79{?Zz<=<bUsZed!Goul??Yvc~Uk@c;JC*G@WIW2XIa
zZ&vIV&t7-ruU!Kd>=|=??ZTUW|JgI|-cUiGL349NKab3Kv25oHbMiV<>le-bavis`
zs^!o5*Mx680_Ae<ZBy^3<%n^p_UlbIs_At%ZoaJH=x;XP!^iPyHO;xb?fc)&-r~Q{
z!RgbuoWvYeULwb{a$+uxz21RPTL{LnZQb1|h`}Fx*xl_wI-;YyyB&uEAL9|clSqF;
zx)gc);#tXcNaK;VAsvbI0MgM&Pa~axG!gN-1ZfJ=Sx5_!-jCFQv<2xBq#Ka7Al;30
z3({jq=`1lGPvf0LdJWPg&|?hJ7NpaWZb5nn(tSw(i1Z}VSMU^S5>C@Pk)|O{#8agv
zq}L&JA)SD9Dbg~e>yR!*+J<yB(gR4hAw7*W4iBm(;;e8w(ln&yNKHt8kJN>9J<_E}
zHzQq#^mllaeFxIJkai$liS!K8LHPAS66Pu$(ln%3BQ+r{Lh3>~73or>Wk}Z{y$bt*
z9Z0{&Q#OZ@_Qj7*XdWDbbTHCnq*+KOA}v8$g|r%JEz-M@)+1ey^d6);kkYThI+4ym
zs=<@AwMcbHS0EjYv;}D?(j7?sNKYZXAL#)6JgOCG3ew$3??HM3X)99tyNAb-jzD?}
zX+F{ccmQe^(gdW7kPbz<3TZOZjYzYQj=+390ck!`{QQJ{ViuZ;m6%0wFcrN0(s+$#
zX$<jnxZH=kyP-P%u<dzqV;lOMi*8}%C;&|dk8n7z6r_Cc@O!}so*yJ5cvvn(@Rorz
z8a${L!P@}RH9hclfj77Z-eK_K!J{wD!u6yj&d?sp4F)f<2VNF<8t{G{MP><jaXs*=
z!6RLwmAf0fgeW}xMv;BcM}@4D;ExoN)Lz1SeZU=xYvU{3-SjuMH0?3kIQ*Gnr657u
zr$)&i7+X`_cS1sJpBjHc-##_93H|!iEJA+P_lON{d{KK7)ezRdgTZUT<6!tbUj#1;
zyp`Zx8iiNFdDleYRfG39%7yp64tYCqtp$(14c08tXyb%F)9N+!l>_P9it=k=qmj4|
z*LOE~8^8;xcYJ*;mFom=3wXoia-64u?497@nbQcFI`B4who8Si@J55TsRx;*;I)C5
z7^R$_%M8&4`AE-Y;B7-Wqg)Ppk`HVE?-+Q+GH*iAHoL*U3=fQAm`CVJYxQ{WqK!ul
z;`Mpp4VTMt+vvbc0uRgk5SgUUXz)lT{oTkwUr74Q0ROL;52B6bTJRp}fp<T6%fTZb
z4anvCw1W2)c+vW5H+YA8kl6{|Ti{(G%fvm|T!R4iK6ue$oDRI5QDn0AgSQDhiah~6
zdHab!1N>Vs|Iy#M3+Ge4i@-k*^HwzbtOD;R%z@GRi@wq71}|E<cJPk(Q0^FbUw{|Q
z1{C<e=|SdD@DBID%K`7LC_Ek7w;494d3-(YH7(M3o*4AmI+Py=8w^LDfQ@)xuLjQq
zUbGmqne(FAXD@ia>A|iiz{>$|h+H4;slVb8S0{jnSBV96k^K1@@M#?q9=oV7CxBNB
z-f+1r?sd3mT{8o`nYh>NknB)Uuf0QaCyP(C_E?EL(fWqgBdft<3t15pA&cs51Md~^
zqWSIt@cs;5G<{El_Xv1UE!b8rGZDh>?x9=?cuT;G7Gny*^G1=WgIrpZncnX1ehI0j
zU9y2WXaia|eTun=`Xb;9xMeXEY0N@4`^AWPkJ?XpX^j}(4x(q_Is^Zkjx->zNUe`Z
zIN^9kI|@JGT%c`>QC^JEw)9cni-DvE`)CjKQ4aLcex0S<8LM3#tE`Bn`(5nc4`Q{?
zX_Qm3+9r*HSqk?XG{k+I{rizdyIQNP&}#84?hdW?J*~2b-QUrd@+|MG{j9HYsIT@&
zKV^A8?Gyc!mVR`<w;ypk`e`4DQyz+=`#0jWAI2&B*nM+<qWr19_CSB-nf}^0`YYQR
zW$6H-uN|P>aE`KRz?dcHC_l3M$Ic=8KKAeNbF^pTl{@0c?2T9c8Bh1$#1nV@x%BTV
z=W2JKr@V9S82pXUHRsX&tLG8@H2e3Sf!fsx%HspaoE)fp&hA$v5O){*_k#rOvGbKv
z31fDgul((Ny8q;S;;tG*|2{oPyX699=b$n8Ypcx{(Eall5WOx@+jOCFPonnOMCH%y
z{>}?$f`0Tu?b8=2f4-;>?(e-=`&g3l#KqcwUraA!#QoYN?VG<+-b&K`kffYs_iy}4
z`}HMC_ph{1T%xpGLiYzQd9fb~cU+;pCqp@Nh4#B4%ELpnFAh=uIz;=?5as<L+LdX_
zpNG=F+lFe_4pZJAsy#JS`GVa)FpTJX*}unzX?F})mJHXf9<HnyPWOKsPTW)M-#=Wb
z?YdHV@=ER2E0ven{l`}l_n{Fx2OzmOjjBJ){{22p`)RteJbmyh>B<Y~bpK&Gaqr9^
zOZ+qAo){#@GPOIilqFdM)@CUWWYPWKvxt2xOZ!l^a(}jVd$zJA8(w*U{(;Y4IQUPP
zP~M5rei@^DM(%oNAN)i9tXv**@p-r(srAQ<)mma3V+Pz8qdZD^P~tY0r#mJtMVqP6
zUJSCf#$2@+tPf(eJNhVJQpUga(cTq{KdFn``dIBN8f8r^ZsGaw$0~0z!V4PhH(F&c
z&6?dB?H{ztU0Na>*J?NPQ=0mMys58tS6^joUm`r#PkSg%*+%cn{JfvGyPtBJ5e~#@
z|2RPTj{ZjRy8c@Hg?IQh2=@)pzIl$)IsoMT1GJwHP(EdZH_p-CkH5ow4#>;nwd>-Q
zHSt6^5zqG0bRKyV{vNE_KJ{#p?$NNob(-JP7fVDxm!}u=^d6o*$kWGp`Ycbk@bopF
z(o5j*zw!xB|Ah4=;gMJiQJTTiT%MYEI*X?*XbR<fho||7i-Zv!SZYChChXzq`#kO9
z=?^?T7p<mzSMW50rxSQOlczO2eUhg;c}nk9rSga%Ed4uA>3yz5KZZ0ODg8ZaT659g
zt^VexZqMC|)xR%2Vwr}P4oYc*`uBNPVq=3M?7ggrtn7m(D_ihpNSH_&fqy8T<Ec`G
zj*2^<)x^>LKBTnIz>gmlny;Xig0HtdNuZ;9Jus7kt-0rwXQZ<j(Ei&`E54Z$d8eW+
z6}aZ%x&zlrT#w`0gli|RcW`}*>lCiO&uii?!ZjRM2Ci|qrsAr=H4oPvxK`qN9M>jX
zJ8`{(>r-5(aP`GT?IK*mab@5dhifXX3S9GW-GOT*uE%k0!nG6EJGef@bqZHs{50nx
zT*Gl?;2MW(Dy|A#^KjjPYbCD7ac#o26W2SqKE-tkS6}?y@r!T`$CZI=9ImOjDsaui
zbqB7MxR`D5Hs$MdBgPj^8L3OdpZrVF8B$WRQ_@p1bR&xKwaNsmU!{*q!}ja{C9__Y
zoM}i8m8>6Sh?M-xW$wL!$-V_uetdbBj6W5qrVeq3zYuKqRx8PFkKdk*mralITPr!j
zUsg#jqd)UH%2}=?6T%l%4kfvKfgAGF)bCX}^VGk#90DxhdF?LBuijL<{7N$WGa<?N
zGjh0Re^4yh>tTO7F4^v|RN#9myTwtCk^(^_{)C;q)@HBvTcA9?=1ZnOMC^kCYBJk~
z?5M<A<+LHU2ZHfWGOJCMjK4{TLY^x61C3(n{Ku5m>J&F<tfwJHqyez?Cof4n`V7H^
z5XSONK)wlJ=zzrsTL<=`wYbRVKt2cZ4dpyaM8167<4DUx^-^r2vlQA7Q{12r<)f<z
z7sV&aM=`4u8R$HfVi=0BJQRbb;-a`k`6$MX0Fh#w_)uQ@+=7eZ6Xm1W^vbo^BY-LD
zB|2Sma8W#?dx~jEXjmKWsb0z}+OZJ#INoDrC?@VhKGH|XqkJ@2>v4&E6hk|ak76t3
zqj)Xy-Hm(FmFl4wo{*-#LmQBNM7?(ciF`T8mxFw>1QR^ErE9sAuLW_V1&i#}$SXdi
zD}7es67p!y7+s~V)fp522+?bKKC%n_jrmgKOQ44Fj|ke21Cu<;=QssFn1}aE6W|{q
zZzHhCxA(LrZf`C2073|OBHt@gJ~}RIUyOY|bvXZseC@y_k65cPhpcK)?aQ+T<h?89
zqj#gOLq4h6K)w&8eDo634ag_zBAMd;5bmkZs9u`8T1g(-OEmgWK9YY7m(XuB=Ge{X
zNFf6(c2D?ADId+nTaZsj1^I{a(DgkoA@2ZQaC2a3q&!vxnW%o!kA64Wfqd=cc>JT|
zsTTR9Y81*x&;E#yxIG^Pk|jRJ8>8o={8G0od+&w6;Bf9T(7(Y&Z6F^c7n0>2eiCab
zj7{+o^$IMf6t@V|uN~<_@rlw{UNglZ6{|H+yiqaLuErG=YZ<2ap<=c7#2O}+MK(1a
zsC<@<t%X#q4g?zCDrUQGHjY(HkxWr&ysB9302-GnW~XFq&8A|!LI58cXDVi=dTczY
zSRK7IZd6RYf_}yLP%%3RX5&D`YGfyWS8*aG3i-8))fJ#vd&MevQzSm*rz&54Sb+Rd
z#YvPX<aa8@i@fk5|57nJTKdE)mxlP3M)|UvEI{Lwvc+KLp%OyB7_2-;01N$Mlna$~
z;C61WKFYbuL}2zVW27-CJsl~%6`6XLumfod-lvQN-f(V2{eI9}r1}>F@8<T4!KxST
z8dCp5zzMuRNZzx+;zRBE8vy-ImpqZ`-;I=hpeyi)!1U`}Qi%9xkS=>i6G!JPB<~tz
zq+ju>{DI0C;6I+w@bUwd3BV6Ym>#%Z4Xn0zpkf7Xk+2(horG@%UN7M$;0+R{{Zy-j
zp8(z{;f=tXCENzQMZ&v*+a&xx@D2$d0p2Cylfdo3qP<!Ki+vKl5V%9a!+<-b@|nQL
zB%BL;0vKXp-+_u5_)7^_0DmRng}`4+_+H?Xz`~x70H2odGr(sgybW0SGMIl4utvfk
z1IJ1DbKrOh(|5fI67GW#l_=qXz)2Fm1bDE7hXLy(oC-Wt!ef9(01Nw01x}H$2RKW@
zOM!DF+yXp7!u0bPlZ5vGmrD3B@GJ>`3+#~a02sDf!aCqu31<P<N!SFuRKhmkWfHy>
zc$I|z0Nf(s$AQ;Nn9jIcCHy+@W(j`?+$P~~fOkolPCD8p{A=KS5>5v0knjz_of0kt
zJ|SWH&f&C#>AQAC8vnNf$4R&eI6=Y>0VhfLNno9XHv^B5@N2*+5~lNvED3)KoFm~=
zz!M~_MVvB8I0?8^!g}CY5~gz!hlHmCS4(&{aIJ)I1+J6uUBF8v{72wr68<ajDha;|
z+#=x*fY(d-Ti{j+55#6=vxF}PZj*2(@Gc2Y0&bV^4B&kdrZ+=$NO%G82?^f?d|JY5
zft9a=<8upeoP^&2PLS|P;3NqT!ob!^n9lo0NVo_%MZ&Xyvm{K<K;%gHcHjvTz8Bae
z;XeVFO86PzSrYy`utUOofvY9_32?21e*mtN@Bl2KmP$AYc$tK+1YRZKEZ`OiPXt~s
zVH<F(gnhu9CENtuCgHWfyCnPqaJz)tf%i$c6SzadKLU43co3F=CnP)s__TymX^D6;
z*#Ac0I0?@LPLOa7aFT?ZfOQgn7<hz)p94;j@T<UC5~f!R<wzJuxXJ_x(-%i32@k>&
zwp7AHfM-cK8`vS?iNMtoo&j7d;km$d62237sf5=6FO%@Iz^f#@9k@lpZvn5D@Dbov
z3DahKvxJj?+a!D?@Gc2w1Gh`K5O|-2X8?CdcrI|Kgd2cQNcbV((-Lk4R=x@L|LeeU
z65bD-AmLNMNfM67mO&@stAIyHcpPwwgl)iC5}pT~BjG!MCrEfDut~yy0WOvBtH84)
zd<57b;Q`pfR7?0;;93b!0IrkpEa0UQUIe^M!YhDRN%*h8EfU5zV#<069|3Na@BnO~
zHcNN}aGQk30q>G<IdHp#e-FG*!t@+<hlF1N?v(I;;1d!)4NTvC(D$9R-cQ69?lkyV
zW+=2?H3AP1`-?v3Dl>pr^8Ja@=K`fF4A%jR{a8$&BxNPA*uTZ}xk&jFF#UlTh*x6z
zBq|$#>3u>f9;mzseCnts?g|jDfIg|%LZ*G7iKC-4!ZU$SbZFver$~4$@X;<!9EKIc
z7h;P^f3Jp~V;ThhCF+(FT*8Wy8HT3-*I|D~3Y?GqPemBNE(|{oTmgGgeyaazV6k7O
z`koKVzatFq2Yv(k598%8lMXj2YXR^wNuTM!bp8bv^gmCT1x$aN2g@MVzG~o=Xg@v2
zK>GX@*aZ34a2%s<se#n?Cju}1G-$5{z;Upzu-|>a%a3T{=$R9ehb?a4L;76{Om9>o
z{~&wih4C%G&p{v2e|y9D$AEwOL=(3N<w<_Ex}|4zko-r1#r{1(`IXWNOm7G|jCqXe
zdlPsa>@V~^1T6OV3E1y`0sP}<L4E~}2+Ab?ctbrh2-Npc7(Nw-hvP`$KG;jN=ON&?
zC3y)rVxSj23406$ZpD6@Dj<DE0>2{J`wsO;g4M6Xzbk-`!~W<tW{;PEsXccCv-V2)
z$v)k{ezafo_a)Mi2Jx>C!?nQlnr5(=|8EWBp9sV8IDqef{e=7pz^BmO^(asM^&IdU
zXwNQ=(=pD@Nc~YnfrNiZpRzFQ10IL-g`2>m@p2z<EBuwzAo))L(@Vif1eO0=SouCs
zEa78K9KsgMZvoyS)jyXM=N~G+gfPAbBNE}qfMtK#Kz#VuXe4Cse}|R-9@sC%pQ~|D
zNUv`a`6tl9A^(v4S-{(nUyQ$nz;|Q3V%fs<eOt<}1FZ{~-m8XNrr&wecLXHwGT>ck
zUn=g&KIy=8{-*ldKxH(rc)px`bZS`n3gGIGG;zhe{6B#ohkocrChs%g7WglnPf+`R
z3M)TYhj<~yqfx+*puZ3qSozt&b&~z=0^S7wpazk?JAmoWh)oBk{@x2r?~xMr`x01u
zsJ+_DkzeZ1i-DI(_PG{Vd?^1!$}jO}0DCci3<r<uZvb8;jn9=~<y*t>8^9$}fBy(f
z-+NG<gYeByEE$=9sQycUr=oqLy^X||+V>>zEzn1d?>)d@A^wT@l`=#~Q~N(R3>O2(
zp*)ePJ)3aj<?)~Jsj&QULqp|V0o;c6>p-UdO$Tn0;@1Y?`_W!%3(0#mto(an_+py4
z_=n2m0Plu>(XgTNzA*m7z#US37gNXZ50%%4;hZpR0=@?A*CQ{<e*t(0;*;=S^?^B6
zAjuniCFVoPJ~M!mfXDFiF9M7CMThxi2XLa)-^YQ)hvc0z0`|lA;6x*A1{NQ}wZIy*
zpPEhjJqGMXdxbrY01wA_8OiwrakB_m<S!)#|B$>nVYm_4jq#ubkK`{8<3ACG+r#jA
zSK&NX^8a50=Sbr<7g&6#{$;?Qp*_?MRNqnHtALFhPre%K#1A!b^o%v}?*m?i{+Y@7
zhk(V0<edb*1@;&IKN^8?8{`cDkIJtBUWj-h;>j1lYtg@={=!js_ECy=Hv@|g$)6vF
z?*aY;>?P`38^(VHScmz8o;jxa3zK0FX}rz>{!|*D{{R*r)*j$msXbG!6<pOn6r0!Y
z^Vd{VB-<2=C9h<1v8AxUTw=i=P`BiVpqug}R=LMg>GG6WT^9EBy2V;ki=Wt5RlD%h
z;_~G5Y=d4QhQ(Q4ODI)Qzq2o|sj6Ba>M<7Ovuef_=T0(O1fpuheXthxT|TQt{K`4m
z28E}a{e@W;i_^oN7qCn()TdTXRUb0QbJ%Tj=+BO)=M_#cnhN#lc9-4e_j=qGo5Sj@
zw9}taPt#j0KKd!L%|a5KR+n=j`(d&LKee`$+wuHE4g2}DCB^BKgr(c7T{S+EP?$ca
zq<9Lu%a}7Rx6sUPv*%2*)=tSoJ(MMjkOZ7=0rV*>quJr{`Y9(XCnKjjfS8mi1$Z_A
z88fL|@ZRa>_iDw39(QG+VhK3i0_gRuVuBfIlvULv6sy@e-!Nya)9*9cy<->n?NlOt
zPLXM{nUyunDZuj~<2>H^R&P0@q%z7_t8Gqzls3nVR_6L_c6T{`?aZ>JGg`hqgqS)f
z-&5rA<JZzQ{8*auWz8w@<+(g=R<AyF&RG0(+2)vBHX9wv<fL#?t{dLP8&e(RXUv)6
z_Ssq1j5#JRo@Sw3>2nI)6&_XoZ>?VX2{wU@IYzJ7!#XYlV(nJ)BJ_-Tflp$L!;j!y
zU<BMNrON4Y;RoC>1i3(ft`E`;Juy;47%8w2{S-VxQji`dDaZ(slpY}?gHb|CtE7-}
z*>jvOPefUGh#-dukmw;&GODd!pWPPPG(3FcjTD{jwz?y!Syp!?2B4=(7Li_I_f|P&
zN?IBEP9|hCi$|fN>Tqfn)f_>rcG@C{26u=ahMG`V6#`SMszPi89AX=TEi}6=EW0f<
zyFMhhAvCigG_PS!NaoZzp}B!WHK`8ip$xCJ+-VIlr(X5oNJd7v9j`NBaa4GFwhvAl
zAt4ncxr5TG!UzVRSLUZeu#EL7)JyOsk2^$8MkI+V8=ZmvkHScy-j1ZFJM3QnLRk$q
zEF!5@_DX96)!_EYMfD-bP!$5x>=tu@oI4Y5Ucdk>lWBU4(@LwD!sdBg{t&LAM@|Nf
z+Mc<U&R(QuP;d5Jw%YFRk()jnZ3yv=)JgWKvd)H3m^vp6j}OBoVb~Okv#6c)1`D~4
zv~YqN8^WoEIida*f(%t5Fm1loA7c9qw|&0f6FOv49QJBUwbf^{x@2`y5ou(sPqF%|
zJicnUPl%~9tX0)vB<|SJ8F1_<3^r;a=~?7R;SR*C7fwtIC!~5DA?8i5u!fCfy*dp>
zr9;aII*a^~R2q^I)b#mwykSMQU%KD!b6G<umDU<x$mn9DHiC-L?e;E^OJ>ZmyXHAV
zx-qTF6Y9d*Wp>-#8uUy^ucq5-yv~sRBex3?E}S!j81Th#Dhw4aAk&5gsXeT%t{Ob5
zDz_okRZ}bDOn6Zq785c}uLrTj;i>UKVhAGzj7hYJ33X;eb;xv^?w{`orDQm)u8L4n
zYPB<D{>#dp=c%-odp&Z6nKp~dS?LJTF571D&8@L|?IEgVIV^ZBkJ~m!F0R)*Fr1<=
z(up22tLal2DVpePdo-#(Lqt7GmDT67*g{&PPvdW+iN;HJ+iTb^BMKAax+Y9kDoApx
zQmblGWSnKM_93vjLx_5W`zi}&iE0-Xt#Wol3Z9lmli0qc#%o6=w=cxP2EEONCSk{;
zHW9A@DtD@T88M3+QUk5e!=4Vo&Em4VEBy|+CcS>F$Kj1q8bQrf?XX(BHdmO{nCDok
zY=%glevV}<=Cp-Xc&SlHE$QYGlcmH?@zCl=gF=`FVw&icO5vQ;IpeLq5(iigk1NEN
z4Eh?klO9C3TdM3<H#T{0pVQBWVBzGv+`>YAhS_N;wHPg70z$YYy>O@XT6UVHm$HS<
z-pYd8Q`z)9UqO#W88fux_`=C!a|<n&0t+@PSyOY13v$O68V#j-vM{z#*jA&*vHdBx
z&>O_&*)7%cjE0m*Djx2~4m=|(Be~M<w^Z9Ken*XaPI6f-k+G?^SiOjb7VP>$3D|ej
zrkCq6dE7X&5gL*bID5#SR+KxbAP*(jAw=Lnz~`|z5Vu@*+G3ggS(f553*ND1FEIPe
z{<LbV(_1jn>@yXm7MXIhr;0b88I5MYKE+~YZmswE3(V;jkkVZ69F#Pgt&C#S>+xEw
z>Kebr?J2h#O(>KqDqtj*i)z+ql@zGw1$kJL;@|+IOrJL1?k~tQdEidK(~RuEU?PNM
z281|iL4|XXf?kz1+UFXJCz>;0hhLzPSr)Tpp4C-@29k0C6S5Xs%B()SLN6qP>0Qn;
zgk$O^L_w!JCue+N!Pq>DAvpz1TdmbnX0LSOIK}F>IdXFHN=xy}5Q{!JmDCRRs3Nm3
zPfxA#aWSQ(mek}lWMu||(|A4eQ9HcN<?`6(h39h5pKY3_sM;vLFlEposU`Bc52|9;
zH~Ukotkvk^2#*Ns{h;rd4Hl!(m<o3_qQ2?mNrhQ>M;<!{GU#zvjy}h`<Z959=x2JR
zoY73j6jGa~(<oxUTj5r;`D!?(9yJ8rip6Kkf9V(1)v8WEyIFd@%QN5ZwUpu2Zso>e
z)y1lu#S^n&K00GdHS2#FuhSbaw7fLkW5MfJo1srB_IUi0Yy22;nHW6u;z7~CfLorW
zk)46+oj3%7FC+eA5l6n5&e{s!nN;KR8%z$oJ<;Yf&^Q*Ocya{})-YyS@2ftQKE62D
zG$E^M0lhO%pU);FauR)t`ZmKtkB?m4>~pF|hG#uWWnci$u`f`EZ_tw{W(5LNTFC^%
zIA~#-XhV-W%ggaUx#(F}MxO@5%1+fo)HE9{#oV_jHtW+xY@TFwTPy9}-bR*%exJpM
zKH8u+6z3M@Po88f8edRk1j2-XLn1d~k-9txdb7Ti{K<k}b_I){brXaI)E;`|tXIn>
zE0?`O8c=4B%V%_khtALt2B%<gZDP338o<D`fY(*>sZDifWBD)SIU#Nw81B+6^h>yF
zCdLlgj7{!6R2nkC4K%>n+GTnXrprK)vlEume9na|<XI}Ku*z2FS{{IVS<U3DeTX>>
zdjNk#f3vO)&RMC&baJL{35v0Y#9|JS%V|T;@{r*4_}IjsUG2r&XX*W<V)5d`SyUAc
za#^^HHgyLKf`zorYp35%QUnN+DJ(JJ;cA-w=@s}A#Zh2Gem#9BgO!{W-!T-}jF_6R
z_QF~O+Z0R}ScO&<U~!m&Ra=H7To7CAMFbRm)>!&gsv6XB3`6fu<<m}-#hVxvsP=ze
zt>NgGji|Hk9W1uOs2Gy!iZn1~o&Bm(g7agK>q3g*V$#f}sk^|9nL7*9CBDzX(Fs|h
z++~VbyA=gi7u<368S3kNtu7nAAsGG^$YEyQkC7HwoZDP%*@$%+d242g8twx_z=ak3
zf8{^65_nI#1v6rV1O5CJ8T<w&iS9JmW01zuY&4yj2us;84J?(lwHEAfeIC5g7n@Pb
zyp+)Ow4MDzndZI}W0A3V{ItT!X0tv+J%%WuZ!`VBb*jfXXbU!J>T(*v!Q!b<U-TQT
z-O;u&20i+-Ag{n}b7E`k&vjS2>?Vg(4G1CC;|<WMX1~{2olD1IQ{3~Rfu-2)!>JV7
zmzRh2JvIuo=EzXrI$ThWjaIqQXt4T?vzckKv7L0|NTjw_pNeBtb?whLND+Il;2J$*
zHIEg0R+Y8ZBEsoS^Pos2q8!e@=(NMm*5?>CBGRSN97jGB+7niM6Tm6zHb?Hh)O?Sh
zdK-RNQEhR|SE~8`7-w@fyDO|*W(nEGUCABw7g%|Pt>x8)JDf4h+JQMn+MuM{=-YAT
zp22~v*TanpFi}u*BDOTs*uenJf&Y7i#AcdB$Po8QRlPUpL2QBz-KO{2<!WG{HN3i0
zr9BoMIFM(B)D&=3vwD&l9FeJ$td**2L7IM=N(o;dsU6Aoy;u+Qu<PZ~DK*&Zy-ee3
z@JM5EEx2DUB15xkymmH>Lqh@MU`D8Qiisbd$~WCn$8&1rcxKU;Mzk;&TR4`7js*%`
zXMLVA&<P9N%u+<l0=Cts;U3LB5M4qeTM-@8^y(2os|VH}XJ?&8yGQjzz=p$#IT1r$
zebk`bWu!BTUt*Uf%*GC;SRK8E&R%@Zm~T*xE#ecL5L1IXW~A*np2@%|_5w9;z&X=s
z@?~M;ta}FSqS*OBkIN6$vSHE9S*uPZfdzy*sAx<fQU%-qo-S6W6v2Y@9+#&GAwhG5
zhDKpJbBbDx%O7nG3vb0jwhR+SnYwl@(PIIU#YTJ7EwDZ_&t=CKgtSuSXA!FTe@R<M
zHwH5`=?`m$O_7l^q*#(6uR5!rb$#(v7eYo@v=E`7hY86N{UF#_Mr}f;WMC~@M(vE+
z7u0TI{@hWP$46Oj<^R_O4sXBRINLOFo)UH@5@k;lb|78KmvC8mSYwu{hnM{D1+8T#
zm@p}#oGY3)|8F}octFTXi_94@yNC{qdSFkTgz<%rN@XMF=P%L4_AGK`#P(Nsl&lh8
zld<)XaNnPKXq<&pIeg((#ZPJFkR%RK=zzvFuGs7`Ta4ibp{<j;{lV#-KIHU{TrqT4
zug~JAjn=Xf5C7vR>V`gKL<cwJ|83X{#Ck)K`t@DNQYu~Ea*VgK=VQ<{*}-o()H7C0
z6Be%>&xg`lvaE*_0qS3K<aYk7hmYW4{?9%*&rr{f>3gJT=L4A*3MrY~Q-7xWU@GG$
z@;^K5WCsp<aKJ?oPCenr23*}Wr(#$!C;yL2sXRSxtHaMS)9AYqNVQ@{W6OZEzd{Tf
zL_HY1*JU6Y*~2L`o7c|vAznKB8jR+Pg2_0-!^5qX8lRn=tz}^o=<(uwTd!A_h`IFT
z7ViQdEmy;X01i0RobLG|8#QO5jal6m5j1{*ePw3wC`kRPguW~7<tr<kb3i%%U5b1@
zVF)bYd89b|%4R{=fce?ifbv&4dODjb!MDCXo2S}d<ndPFAdr1AcoyeneM-4KFg2U7
Nz!L+^W{m9M{|`*fj)VXJ

literal 50684
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
AiU0rr

diff --git a/NPAnalysis/10He_Riken/include/ObjectManager.hh b/NPAnalysis/10He_Riken/include/ObjectManager.hh
index c61e480db..ab0d7e99f 100644
--- a/NPAnalysis/10He_Riken/include/ObjectManager.hh
+++ b/NPAnalysis/10He_Riken/include/ObjectManager.hh
@@ -108,40 +108,40 @@ namespace ENERGYLOSS
 	
 		//	3He Energy Loss
 			EnergyLoss He3TargetWind = EnergyLoss 	(	"3He_Mylar.txt" 		,
-														1000	 				,
-														3					,
+														10000	 				,
+														1					,
 														3						);
 		
-			EnergyLoss He3TargetGaz = EnergyLoss 	(	"3He_D2solid_1b_26K.txt" 	,
-														1000	 				,
-														3						,
+			EnergyLoss He3TargetGaz = EnergyLoss 	(	"3He_D2gaz_1b_26K.txt" 	,
+														10000	 				,
+														1						,
 														3						);
 			
 			EnergyLoss He3StripAl   = EnergyLoss 	(	"3He_Al.txt" 			,
-														1000						,
-														3						,
+														10000						,
+														1						,
 														3						);
 														
 			EnergyLoss He3StripSi   = EnergyLoss 	(	"3He_Si.txt" 			,
-														1000						,
-														3					,
+														10000						,
+														1					,
 														3						);
 														
 														
 		//	proton Energy Loss
 			EnergyLoss protonTargetWind = EnergyLoss 	(	"proton_Mylar.txt"	 		,
 															1000		 				,
-															3						,
+															1						,
 															1							);
 		
 			EnergyLoss protonTargetGaz = EnergyLoss 	(	"proton_D2gaz_1b_26K.txt" 	,
 															1000		 				,
-															3						,
+															1						,
 															1							);
 			
 			EnergyLoss protonStripAl   = EnergyLoss 	(	"proton_Al.txt" 			,
 															100							,
-															3							,
+															1							,
 															1							);
 														
 	
diff --git a/NPAnalysis/10He_Riken/src/Analysis.cc b/NPAnalysis/10He_Riken/src/Analysis.cc
index 09c9e496b..4015e62a9 100644
--- a/NPAnalysis/10He_Riken/src/Analysis.cc
+++ b/NPAnalysis/10He_Riken/src/Analysis.cc
@@ -48,6 +48,7 @@ int main(int argc,char** argv)
 	//E lab et Theta lab
 	RootOutput::getInstance()->GetTree()->Branch("ThetaCM",ThetaCM,"ThetaCM[2]/D") 	;
 	RootOutput::getInstance()->GetTree()->Branch("ELab",ELab,"ELab[2]/D") 					;
+	RootOutput::getInstance()->GetTree()->Branch("ThetaLab",ThetaLab,"ThetaLab[2]/D") 					;
 	RootOutput::getInstance()->GetTree()->Branch("X",X,"X/D[2]") 										;
 	RootOutput::getInstance()->GetTree()->Branch("Y",Y,"Y/D[2]")									 	;
 	
@@ -110,7 +111,7 @@ int main(int argc,char** argv)
 			
 			
 			
-/*			// Target (from initial condition)
+			// Target (from initial condition)
 			XTarget = Init->GetICPositionX(0);
 			YTarget = Init->GetICPositionY(0);
 			//	XTarget = RandomEngine.Gaus(Init->GetICPositionX(0),1);
@@ -120,9 +121,11 @@ int main(int argc,char** argv)
 			////
 			
 			// Must 2 And ThinSi //
-			for(int hit = 0; hit < M2 -> GetEventMultiplicity() ; hit ++)
+			//for(int hit = 0; hit < M2 -> GetEventMultiplicity() ; hit ++)
+			for(int hit = 0; hit < M2 -> Si_E.size() ; hit ++)
 				{
-				//	ELab[hit] = M2 -> GetEnergyDeposit(hit);
+					ELab[hit] = -1 ; ThetaLab[hit] = -1;
+					//	Get Hit Direction
 					TVector3 HitDirection  = M2 -> GetPositionOfInteraction(hit) - TVector3(XTarget,YTarget,0);
 					
 					// Angle between beam and particle
@@ -132,67 +135,77 @@ int main(int argc,char** argv)
 					// ANgle between particule and Must2 Si surface
 					double ThetaMM2Surface = ThetaCalculation ( HitDirection , M2 -> GetTelescopeNormal(hit) );
 
-					if(M2 -> GetPositionOfInteraction(hit).Z()>0)
+					if(M2 -> GetPositionOfInteraction(hit).Z() > 0)
 						{
-							if(ELab[hit]>-1000 && ThinSi_E>0 )	
-							if(M2Physics.CsI.size)
-								{
-										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		);																
+							if( M2 -> CsI_E[hit] == 0 && M2 -> Si_E[hit] > 0)
+								{ 
+										ELab[hit] = M2 -> Si_E[hit]  ;
 										
+										ELab[hit]= He3StripAl.EvaluateInitialEnergy(		ELab[hit] 				, // Energy of the detected particle
+																																		2*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]= He3StripSi.EvaluateInitialEnergy(		ELab[hit] 				, // Energy of the detected particle
+//																																		20*micrometer			, // Target Thickness at 0 degree
+//																																		ThetaMM2Surface		);																
+										
+										if(ThinSi -> Energy.size() > 0)ELab[hit] += ThinSi-> Energy[hit];
+										
+										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]= 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					);
+										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] ) /deg 	;
-									ExcitationEnergy[hit] = myReaction -> ReconstructRelativistic( ELab[hit] , ThetaLab[hit] ) 		;	
-									X[hit] = HitDirection . X();
+									ThetaCM[hit] = He10Reaction -> EnergyLabToThetaCM( ELab[hit] ) /deg 	;
+									ExcitationEnergy[hit] = He10Reaction -> ReconstructRelativistic( ELab[hit] , ThetaLab[hit] ) 		;	
 									X[hit] = HitDirection . X();
 									Y[hit] = HitDirection . Y();	
 									ThetaLab[hit] = ThetaLab[hit] / deg ;
 								}
-
-							else if(ELab[hit]>-1000 )
+ 
+							else if(M2 ->CsI_E[hit] > 0 && M2 -> Si_E[hit] > 0)
 								{
 					
-								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]= M2 ->CsI_E[hit] ;
 								
-									ELab[hit]= He3TargetWind.EvaluateInitialEnergy( ELab[hit] 		, // Energy of the detected particle
-																				15*micrometer		, // Target Thickness at 0 degree
-																				ThetaN				);
+									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]+= M2 ->Si_E[hit];
 									
-									ELab[hit]= He3TargetGaz.EvaluateInitialEnergy(	ELab[hit] 		, // Energy of the detected particle
-																				1.5*mm				, // Target Thickness at 0 degree
-																				ThetaN				);
+									ELab[hit]= He3StripAl.EvaluateInitialEnergy(		ELab[hit] 					, // Energy of the detected particle
+																																	0.4*micrometer			, // Target Thickness at 0 degree
+																																	ThetaMM2Surface			);
+								
+									if(ThinSi -> Energy.size() > 0)ELab[hit] += ThinSi-> Energy[hit];
+									
+									
+									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] ) ;	
+									ThetaCM[hit]= He10Reaction -> EnergyLabToThetaCM( ELab[hit] ) /deg 	;	
+									ExcitationEnergy[hit] = He10Reaction -> ReconstructRelativistic( ELab[hit], ThetaLab[hit] ) ;	
 									X[hit] = HitDirection . X();
 									Y[hit] = HitDirection . Y();	
 									ThetaLab[hit] = ThetaLab[hit] / deg ;
@@ -202,7 +215,7 @@ int main(int argc,char** argv)
 						
 						}
 						
-					else if(M2 -> GetPositionOfInteraction(hit).Z()<0)
+					/*else if(M2 -> GetPositionOfInteraction(hit).Z()<0)
 						{
 							
 						if(ELab[hit]>-1000 )
@@ -234,19 +247,11 @@ int main(int argc,char** argv)
 							
 						else {ExcitationEnergy[hit]=-100 ; X[hit] = -100 ; Y[hit] = -100 ;ThetaLab[hit]=-100; ThetaCM[hit]=-100 ;}
 						
-						}	
+						}	*/
 
 
 				}			
 			
-			// 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);
-					
-				}*/
-			
 			RootOutput::getInstance()->GetTree()->Fill()	;
 		}
 
diff --git a/NPDocumentation/NPTool_UserGuide.tex b/NPDocumentation/NPTool_UserGuide.tex
index 08af1c466..1d9e94b71 100755
--- a/NPDocumentation/NPTool_UserGuide.tex
+++ b/NPDocumentation/NPTool_UserGuide.tex
@@ -92,9 +92,34 @@ It also help to understand what happen during analysis.
 	NPLib is widely build on top of ROOT,GSL and CLHEP (by order of importance), but not on Geant4.
 	
 	\section{the directory layout}
-	
+		NPLib is made of several folder, one for each detector basicly and some for other shared object such as reaction and nucleus class. A common makefile is present in the NPLib directory calling the individual make file of every folder. In this folder you will also find a README file and the liblist file, containing a small macro used in NPA and NPS makefile to return the list of avaible librairies. Our phylosophy is to have two class for each detector, inheritted fron the TObject ROOT class so theyr can be put in a TTree. The first one is called the Data class, named following the TDetectorNameData, where T is there to remind the TObject dependance. This Data class hold the raw parameter given by the detector during an experiment, understood before any treatment. NPSimulation will output those kind of raw data, the only difference between a simulated and an experiement data object is the one comming from NPS are already calibrated. The second class is a Physics class, named TDetectorNamePhysics. This class hold the results of the treated Data object, ie after application of threshold, selection of good event, application of calibration,... and so one, depending on your detector. Note that the Physics class also derived from the VDetector class, and therefore can be used in NPA via the DetectorManager class. This system allow your annalysis programm to be more flexible and lisible. Let's have a look to the Directory layout:
+		
+		
+		\begin{itemize}
+			\item[DummyDetector] Template base for making your own Data and Physics class
+			\item[AnnularS1] Containing the Data object for the Annular detector "S1" by micron 
+			\item[GASPARD] Data and Physics object associate to the Gamma and Segmented Particule ARray Detector
+			\item[MUST2] Data and Physics object associate to the MUr a STrip 2 detector
+			\item[Plastic] Data and Physics object associate to the Plastic scintillator detector
+			\item[SSSD] Data and Physics object associate to the Single Sided Striped Detector
+			\item[InitialConditions] Used in NPS to output the initial physics condition of the generated event (Beam interaction position and energy, angle and energy of particule,...)
+			\item[InteractionCoordinates] Used in NPS to output the true physical point of interaction in the differents detector
+			\item[CalibrationManager] This class allowed to manage different file and token and associate them to detector
+			\item[IORoot] Hold the ROOTInput and ROOTOutput classes that allow an easier used of TTRee in NPS and NPA
+			\item[Tools] A few usefull classes such as Nuclear Reaction kinematics, Nucleus object and Energy Loss
+			\item[VDetector] Virtual Detector class from wich inherrited all Physics class
+			\item[include] All header are copy in this folder during compilation
+			\item[lib] All libraries are copy in this folder during compilation
+		\end{itemize}
+		
 	\section{Step by step from TDUMMYDetectorData class}
 		\subsection{step 1}
+			First, go to your consol and open the NPLib folder, there type \begin{verbatim}make distclean\end{verbatim}
+			This command will remove all the compilation generated file and only the source will remain.
+			Copy the DummyDetector folder and rename it, let's say, WonderdullDetector. 
+			Ebter the directory and rename the TDummyDetectorData.h and .cxx with your detector name, you should have now only three file: Makefile, TWonderfullDetectorData.h and TWonderfullDetectorData.cxx
+			If any other file remain, just remove it.
+			No open the .h and .cxx file with your favorite editor (gedit or vim for instance). Replace the the DUMMYDetector by your detector name. Just have look in the .h file, the class is very basic, a couple of value are stored in stl vector (allowing smaller tree and increasing speed access). A few methods allowed to set or get those value and to know the size of the different vector. 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 				
 \chapter[NPSimulation]{NPSimulation}
diff --git a/NPLib/MUST2/TMust2Physics.cxx b/NPLib/MUST2/TMust2Physics.cxx
index 70b6fcf02..4cd918223 100644
--- a/NPLib/MUST2/TMust2Physics.cxx
+++ b/NPLib/MUST2/TMust2Physics.cxx
@@ -57,15 +57,23 @@ void TMust2Physics::BuildSimplePhysicalEvent()
 	
 void TMust2Physics::BuildPhysicalEvent()
 	{ 
+		bool check_SILI = false ;
+		bool check_CSI  = false ;
+	
+	
 		if( CheckEvent() == 1 )
 			{
 				vector< TVector2 > couple = Match_X_Y() ;
 				
 				for(unsigned int i = 0 ; i < couple.size() ; i++)
 					{
+						check_SILI = false ;
+						check_CSI = false ;
+					
 						int N = EventData->GetMMStripXEDetectorNbr(couple[i].X())		;
-						int X = EventData->GetMMStripXEStripNbr(couple[i].X())				;
-						int Y = EventData->GetMMStripXEStripNbr(couple[i].Y())				;
+						
+						int X = EventData->GetMMStripXEStripNbr(couple[i].X())			;
+						int Y = EventData->GetMMStripYEStripNbr(couple[i].Y())			;
 						
 						double Si_X_E = fSi_X_E(EventData , couple[i].X())	;
 						double Si_Y_E = fSi_Y_E(EventData , couple[i].Y())	;
@@ -95,6 +103,8 @@ void TMust2Physics::BuildPhysicalEvent()
 													SiLi_N.push_back(EventData->GetMMSiLiEPadNbr(j))	;
 													SiLi_E.push_back(fSiLi_E(EventData , j))	;
 													SiLi_T.push_back(fSiLi_T(EventData , j))		;
+													check_SILI = true ;
+													
 												}
 											}
 									}
@@ -112,10 +122,27 @@ void TMust2Physics::BuildPhysicalEvent()
 														CsI_N.push_back(EventData->GetMMCsIECristalNbr(j))	;
 														CsI_E.push_back(fCsI_E(EventData , j))			;
 														CsI_T.push_back(fCsI_T(EventData , j))				;
+														check_CSI = true ;
 													}
 											}
 									}
 							}
+					
+					
+						if(!check_SILI)
+							{
+								SiLi_N.push_back(0)	;
+								SiLi_E.push_back(0)	;
+								SiLi_T.push_back(0)	;
+							}
+
+						if(!check_CSI) 
+							{
+								CsI_N.push_back(0)	;
+								CsI_E.push_back(0)	;
+								CsI_T.push_back(0)	;
+							}
+					
 					}
 			}
 		
@@ -872,8 +899,8 @@ void TMust2Physics::AddTelescope(	double theta 	,
 TVector3 TMust2Physics::GetPositionOfInteraction(int i)
 	{
 		TVector3 Position = TVector3 (	GetStripPositionX( TelescopeNumber[i] , Si_X[i] , Si_Y[i] ) 	,
-										GetStripPositionY( TelescopeNumber[i] , Si_X[i] , Si_Y[i] )	,
-										GetStripPositionZ( TelescopeNumber[i] , Si_X[i] , Si_Y[i] )	) ;
+																		GetStripPositionY( TelescopeNumber[i] , Si_X[i] , Si_Y[i] )		,
+																		GetStripPositionZ( TelescopeNumber[i] , Si_X[i] , Si_Y[i] )		) ;
 		
 		return(Position) ;	
 	
@@ -881,21 +908,21 @@ TVector3 TMust2Physics::GetPositionOfInteraction(int i)
 	
 TVector3 TMust2Physics::GetTelescopeNormal( int i)
 	{
-				TVector3 U = TVector3 (		GetStripPositionX( TelescopeNumber[i] , 128 , 1 ) 	,
-											GetStripPositionY( TelescopeNumber[i] , 128 , 1 )		,
-											GetStripPositionZ( TelescopeNumber[i] , 128 , 1 )		)
+				TVector3 U = 	TVector3 (	GetStripPositionX( TelescopeNumber[i] , 128 , 1 ) 	,
+																	GetStripPositionY( TelescopeNumber[i] , 128 , 1 )		,
+																	GetStripPositionZ( TelescopeNumber[i] , 128 , 1 )		)
 											
-							- TVector3 (	GetStripPositionX( TelescopeNumber[i] , 1 , 1 ) 		,
-											GetStripPositionY( TelescopeNumber[i] , 1 , 1 )		,
-											GetStripPositionZ( TelescopeNumber[i] , 1 , 1 )		);
+									- 	TVector3 (	GetStripPositionX( TelescopeNumber[i] , 1 , 1 ) 		,
+																	GetStripPositionY( TelescopeNumber[i] , 1 , 1 )			,
+																	GetStripPositionZ( TelescopeNumber[i] , 1 , 1 )			);
 										
-				TVector3 V = TVector3 (		GetStripPositionX( TelescopeNumber[i] , 128 , 128 ) 	,
-											GetStripPositionY( TelescopeNumber[i] , 128 , 128 )	,
-											GetStripPositionZ( TelescopeNumber[i] , 128 , 128 )	)
+				TVector3 V = 	TVector3 (	GetStripPositionX( TelescopeNumber[i] , 128 , 128 ) ,
+																	GetStripPositionY( TelescopeNumber[i] , 128 , 128 )	,
+																	GetStripPositionZ( TelescopeNumber[i] , 128 , 128 )	)
 											
-							- TVector3 (	GetStripPositionX( TelescopeNumber[i] , 128 , 1 ) 	,
-											GetStripPositionY( TelescopeNumber[i] , 128 , 1 )		,
-											GetStripPositionZ( TelescopeNumber[i] , 128 , 1 )		);
+										-	TVector3 (	GetStripPositionX( TelescopeNumber[i] , 128 , 1 ) 	,
+																	GetStripPositionY( TelescopeNumber[i] , 128 , 1 )		,
+																	GetStripPositionZ( TelescopeNumber[i] , 128 , 1 )		);
 											
 				TVector3 Normal = U.Cross(V);
 		
diff --git a/NPSimulation/include/EventGeneratorBeam.hh b/NPSimulation/include/EventGeneratorBeam.hh
index 04e2cd742..915aa13cc 100644
--- a/NPSimulation/include/EventGeneratorBeam.hh
+++ b/NPSimulation/include/EventGeneratorBeam.hh
@@ -50,7 +50,7 @@ public:     // Inherit from VEventGenerator Class
    void GenerateEvent(G4Event*, G4ParticleGun*);
    void InitializeRootOutput();
 
-   void SetTarget(Target* Target) {m_Target = Target;}
+   void SetTarget(Target* Target) {if(Target!=0)m_Target = Target;}
 
 
 private: // TTree to store initial value of beam and reaction
diff --git a/NPSimulation/include/EventGeneratorTransfert.hh b/NPSimulation/include/EventGeneratorTransfert.hh
index dde7b3f2d..cfe4b7be6 100644
--- a/NPSimulation/include/EventGeneratorTransfert.hh
+++ b/NPSimulation/include/EventGeneratorTransfert.hh
@@ -69,7 +69,7 @@ public:     // Constructors and Destructors
 public: // Inherit from VEventGenerator class
    void        ReadConfiguration(string);
    void        GenerateEvent(G4Event*, G4ParticleGun*);
-   void	       SetTarget(Target* Target) {m_Target = Target;}
+   void	       SetTarget(Target* Target) {if(Target!=0)m_Target = Target;};
 
 
 private: // Particle Shoot Option
diff --git a/NPSimulation/include/EventGeneratorTransfertToResonance.hh b/NPSimulation/include/EventGeneratorTransfertToResonance.hh
index 63492f180..eba9c9ef8 100644
--- a/NPSimulation/include/EventGeneratorTransfertToResonance.hh
+++ b/NPSimulation/include/EventGeneratorTransfertToResonance.hh
@@ -74,7 +74,7 @@ class EventGeneratorTransfertToResonance : public VEventGenerator
 	public:     // Inherit from VEventGenerator class
 	   void        ReadConfiguration(string)              ;
 	   void        GenerateEvent(G4Event*, G4ParticleGun*)       ;
-	   void        SetTarget(Target* Target) {m_Target = Target;}
+	   void        SetTarget(Target* Target) {if(Target!=0)m_Target = Target;};
 
 	private: // Particle Shoot Option
 	   bool        m_ShootLight         ;
diff --git a/NPSimulation/include/Target.hh b/NPSimulation/include/Target.hh
index 3b24daf07..170f7394c 100644
--- a/NPSimulation/include/Target.hh
+++ b/NPSimulation/include/Target.hh
@@ -43,87 +43,89 @@
 
 using namespace std;
 
-
-
 class Target : public VDetector
 {
-public:
-   Target();
-
-
-public:
-  //	Read stream at Configfile to pick-up parameters of detector (Position,...)
-  //	Called in DetecorConstruction::ReadDetextorConfiguration Method
-  void ReadConfiguration(string Path);
-
-  //	Construct detector and inialise sensitive part.
-  //	Called After DetecorConstruction::AddDetector Method
-  void ConstructDetector(G4LogicalVolume* world);
-
-  //	Add Detector branch to the EventTree.
-  //	Called After DetecorConstruction::AddDetector Method
-  void InitializeRootOutput();
-
-  //	Read sensitive part and fill the Root tree.
-  //	Called at in the EventAction::EndOfEventAvtion
-  void ReadSensitive(const G4Event* event);
-
-public:
-	//	method for debug purpose (still to be implemented)
-	//	This method should check if the results of the beam interaction within the target
-	//	(interaction coordinates) are well located inside the target volume
-	bool IsInsideTarget() {return false;};
-
-   // Used to calculate the incident beam direction (taking into account
-   // the emittance) and the vertex of interaction in target
-   // Also compute the energy lost by the beam in the target before interacting
-   void CalculateBeamInteraction(double MeanPosX, double SigmaPosX, double MeanPosTheta, double SigmaPosTheta,
-                                 double MeanPosY, double SigmaPosY, double MeanPosPhi,   double SigmaPosPhi,
-                                 double IncidentBeamEnergy,
-                                 G4ParticleDefinition* BeamName,
-                                 G4ThreeVector &InterCoord, double &AngleEmittanceTheta, double &AngleEmittancePhi,
-                                 double &AngleIncidentTheta, double &AngleIncidentPhi,
-                                 double &FinalBeamEnergy);
-	                                
-	// Used to simulate beam emmitance effect
-	void RandomGaussian2D(double MeanX, double MeanY, double SigmaX, double SigmaY, double &X, double &Y, double NumberOfSigma = 10000);
-
-public:
-   G4Material* GetMaterialFromLibrary(G4String MaterialName, G4double Temperature = 0, G4double Pressure = 0);
-
-
-public:
-   G4double    GetTargetThickness()	{return m_TargetThickness;}
-   G4Material* GetTargetMaterial()	{return m_TargetMaterial;}
-   G4double    GetTargetRadius()		{return m_TargetRadius;}
-   G4double    GetTargetAngle()			{return m_TargetAngle;}
-   G4double    GetTargetX()					{return m_TargetX;}
-   G4double    GetTargetY()					{return m_TargetY;}
-   G4double    GetTargetZ()					{return m_TargetZ;}
-   G4int       GetTargetNbLayers()	{return m_TargetNbLayers;}
-
-
-private:
-   // Target type : true = normal ; false = cryo
-   bool     m_TargetType;
-
-   // Standard parameter
-   G4double    m_TargetThickness;
-   G4double    m_TargetRadius;
-   G4double    m_TargetAngle;
-   G4Material* m_TargetMaterial;
-   G4int       m_TargetNbLayers;
-
-   // For Cryo Target
-   G4double    m_TargetTemperature;
-   G4double    m_TargetPressure;
-   G4double    m_WindowsThickness;
-   G4Material* m_WindowsMaterial;
-
-   // Positioning
-   G4double    m_TargetX;
-   G4double    m_TargetY;
-   G4double    m_TargetZ;
+	public:
+	   Target();
+	   ~Target(){};
+
+
+	public:
+		//	Read stream at Configfile to pick-up parameters of detector (Position,...)
+		//	Called in DetecorConstruction::ReadDetextorConfiguration Method
+		void ReadConfiguration(string Path);
+
+		//	Construct detector and inialise sensitive part.
+		//	Called After DetecorConstruction::AddDetector Method
+		void ConstructDetector(G4LogicalVolume* world);
+
+		//	Add Detector branch to the EventTree.
+		//	Called After DetecorConstruction::AddDetector Method
+		void InitializeRootOutput();
+
+		//	Read sensitive part and fill the Root tree.
+		//	Called at in the EventAction::EndOfEventAvtion
+		void ReadSensitive(const G4Event* event);
+
+	public:
+		//	method for debug purpose (still to be implemented)
+		//	This method should check if the results of the beam interaction within the target
+		//	(interaction coordinates) are well located inside the target volume
+		bool IsInsideTarget() {return false;};
+
+		// Used to calculate the incident beam direction (taking into account
+		// the emittance) and the vertex of interaction in target
+		// Also compute the energy lost by the beam in the target before interacting
+		void CalculateBeamInteraction(double MeanPosX, double SigmaPosX, double MeanPosTheta, double SigmaPosTheta,
+		                              double MeanPosY, double SigmaPosY, double MeanPosPhi,   double SigmaPosPhi,
+		                              double IncidentBeamEnergy,
+		                              G4ParticleDefinition* BeamName,
+		                              G4ThreeVector &InterCoord, double &AngleEmittanceTheta, double &AngleEmittancePhi,
+		                              double &AngleIncidentTheta, double &AngleIncidentPhi,
+		                              double &FinalBeamEnergy);
+		                              
+		// Used to simulate beam emmitance effect
+		void RandomGaussian2D(double MeanX, double MeanY, double SigmaX, double SigmaY, double &X, double &Y, double NumberOfSigma = 10000);
+
+	public:
+		//	Return Material from the Target Material Library
+		G4Material* GetMaterialFromLibrary(G4String MaterialName, G4double Temperature = 0, G4double Pressure = 0);
+		
+		//	Generate a DEDX file table using the material used in the target
+		void 				WriteDEDXTable(G4ParticleDefinition* Particle,G4double Emin,G4double Emax);
+
+	public:
+		G4double    GetTargetThickness()	{return m_TargetThickness;}
+		G4Material* GetTargetMaterial()		{return m_TargetMaterial;}
+		G4double    GetTargetRadius()			{return m_TargetRadius;}
+		G4double    GetTargetAngle()			{return m_TargetAngle;}
+		G4double    GetTargetX()					{return m_TargetX;}
+		G4double    GetTargetY()					{return m_TargetY;}
+		G4double    GetTargetZ()					{return m_TargetZ;}
+		G4int       GetTargetNbLayers()		{return m_TargetNbLayers;}
+
+
+	private:
+		// Target type : true = normal ; false = cryo
+		bool     m_TargetType;
+
+		// Standard parameter
+		G4double    m_TargetThickness;
+		G4double    m_TargetRadius;
+		G4double    m_TargetAngle;
+		G4Material* m_TargetMaterial;
+		G4int       m_TargetNbLayers;
+
+		// For Cryo Target
+		G4double    m_TargetTemperature;
+		G4double    m_TargetPressure;
+		G4double    m_WindowsThickness;
+		G4Material* m_WindowsMaterial;
+
+		// Positioning
+		G4double    m_TargetX;
+		G4double    m_TargetY;
+		G4double    m_TargetZ;
 };
 
 #endif
diff --git a/NPSimulation/src/EventGeneratorTransfertToResonance.cc b/NPSimulation/src/EventGeneratorTransfertToResonance.cc
index c12b8b13f..0990ad3ab 100644
--- a/NPSimulation/src/EventGeneratorTransfertToResonance.cc
+++ b/NPSimulation/src/EventGeneratorTransfertToResonance.cc
@@ -57,7 +57,7 @@ EventGeneratorTransfertToResonance::EventGeneratorTransfertToResonance()
    //------------- Default Constructor -------------
 	m_InitConditions	= new TInitialConditions()	;
 	m_Reaction = new Reaction() ;
-	m_Target = 0;
+	m_Target = new Target();
 	m_SigmaX       		=  0 ;
 	m_SigmaY       		=  0 ;
 	m_SigmaThetaX     =  0 ;
diff --git a/NPSimulation/src/Target.cc b/NPSimulation/src/Target.cc
index af9f4998b..2d9e53ed4 100644
--- a/NPSimulation/src/Target.cc
+++ b/NPSimulation/src/Target.cc
@@ -28,6 +28,7 @@
 // C++ header
 #include <fstream>
 #include <limits>
+
 // G4 geometry header
 #include "G4Tubs.hh"
 
@@ -42,6 +43,8 @@
 #include "G4VisAttributes.hh"
 #include "G4Colour.hh"
 #include "G4EmCalculator.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4ParticleTable.hh"
 #include "Randomize.hh"
 using namespace CLHEP ;
 // NPTool header
@@ -480,6 +483,9 @@ void Target::ConstructDetector(G4LogicalVolume* world)
       }
    }
 
+
+
+WriteDEDXTable(G4ParticleTable::GetParticleTable()->GetIon(2, 3, 0.) ,0,300);
 }
 
 // Add Detector branch to the EventTree.
@@ -553,20 +559,28 @@ void Target::CalculateBeamInteraction(	double MeanPosX, double SigmaPosX, double
       y0 += m_TargetY;
       z0 += m_TargetZ;
       InterCoord = G4ThreeVector(x0, y0, z0);
-
-		G4EmCalculator emCalculator;
+      
 		if(m_TargetType)
 			{
-				for (G4int i = 0; i < m_TargetNbLayers; i++) 
+				G4EmCalculator emCalculator;		
+				if(m_TargetThickness!=0)
 					{
-						G4double dedx = emCalculator.ComputeTotalDEDX(IncidentBeamEnergy, BeamName, m_TargetMaterial);
-						G4double de   = dedx * EffectiveTargetThicknessBeforeInteraction / m_TargetNbLayers;
-						IncidentBeamEnergy -= de;
+						for (G4int i = 0; i < m_TargetNbLayers; i++) 
+							{
+								G4double dedx = emCalculator.ComputeTotalDEDX(IncidentBeamEnergy, BeamName, m_TargetMaterial);
+								G4double de   = dedx * EffectiveTargetThicknessBeforeInteraction / m_TargetNbLayers;
+								IncidentBeamEnergy -= de;
+							}
+					
 					}
 			
 			}
+		
+			
 		else
-			{		//	Windows
+			{		G4EmCalculator emCalculator;		
+					//	Windows
+					if(m_WindowsThickness!=0)
 					for (G4int i = 0; i < m_TargetNbLayers; i++) 
 						{
 							G4double dedx = emCalculator.ComputeTotalDEDX(IncidentBeamEnergy, BeamName, m_WindowsMaterial);
@@ -575,6 +589,7 @@ void Target::CalculateBeamInteraction(	double MeanPosX, double SigmaPosX, double
 						}
 						
 					// Target
+					if(m_TargetThickness!=0)
 					for (G4int i = 0; i < m_TargetNbLayers; i++) 
 						{
 							G4double dedx = emCalculator.ComputeTotalDEDX(IncidentBeamEnergy, BeamName, m_TargetMaterial);
@@ -607,3 +622,46 @@ void Target::RandomGaussian2D(double MeanX, double MeanY, double SigmaX, double
       Y = RandGauss::shoot(MeanY, SigmaY);
    }
 }
+
+//	Generate a DEDX file table using the material used in the target
+void Target::WriteDEDXTable(G4ParticleDefinition* Particle ,G4double Emin,G4double Emax)
+	{
+		//	Opening hte output file
+		G4String GlobalPath = getenv("NPTOOL");
+   	G4String Path = GlobalPath + "/Inputs/EnergyLoss/" + Particle->GetParticleName() + "_" + m_TargetMaterial->GetName() + ".G4table";
+	
+		ofstream File		;
+		File.open(Path)	;
+		
+		if(!File) return ;
+		
+		File	<< "Table from Geant4 generate using NPSimulation" << endl
+					<< "Particle: " << Particle->GetParticleName() << "\tMaterial: " << m_TargetMaterial->GetName() << endl ;
+		
+		G4EmCalculator emCalculator;
+	
+		for (G4double E=Emin*MeV; E < Emax*MeV; E+=(Emax-Emin)*MeV/10000.) 
+						{
+							G4double dedx = emCalculator.ComputeTotalDEDX(E, Particle, m_TargetMaterial);
+							File << E/MeV << "\t" << dedx/(MeV/um) << endl ;
+						}
+		File.close();
+		
+		if(!m_TargetType)
+			{
+				G4String Path = GlobalPath + "/Inputs/EnergyLoss/" + Particle->GetParticleName() + "_" + m_WindowsMaterial->GetName() + ".G4table";
+				File.open(Path)		;
+				if(!File) return 	;
+				File	<< "Table from Geant4 generate using NPSimulation" << endl
+					<< "Particle: " << Particle->GetParticleName() << "\tMaterial: " << m_TargetMaterial->GetName() << endl ;
+					
+				for (G4double E=Emin*MeV; E < Emax*MeV; E+=(Emax-Emin)*MeV/10000.) 
+						{
+							G4double dedx = emCalculator.ComputeTotalDEDX(E, Particle, m_WindowsMaterial);
+							File << E/MeV << "\t" << dedx/(MeV/um) << endl ;
+						}
+			}
+			
+						
+		File.close();
+	}
-- 
GitLab