From d233810c8dc89f5c662934a693708460cf54e02c Mon Sep 17 00:00:00 2001
From: adrien matta <matta@lpccaen.in2p3.fr>
Date: Tue, 6 Feb 2018 17:05:48 +0100
Subject: [PATCH] * Beam tracking fully functional but side issue to solve:    
     - The initial condidition is filled is XYZ at emission plan, not         
  interaction plan like before         - The reaction and decay particle are
 no longer in the initial           condition

---
 Examples/Example1/Analysis.cxx                |   4 +-
 Examples/Example1/ShowResults.C               |   5 +-
 Examples/Example1/cuts/ETOF.root              | Bin 4267 -> 4279 bytes
 Inputs/EventGenerator/alpha.source            |   2 +-
 NPLib/Detectors/Plastic/TPlasticData.h        |  13 ++---
 NPLib/Detectors/Plastic/TPlasticPhysics.cxx   |  53 ++++++++----------
 NPSimulation/Detectors/Plastic/Plastic.cc     |  21 ++++---
 NPSimulation/Process/BeamReaction.cc          |  10 ----
 .../Scorers/ObsoleteGeneralScorers.cc         |   6 +-
 9 files changed, 51 insertions(+), 63 deletions(-)

diff --git a/Examples/Example1/Analysis.cxx b/Examples/Example1/Analysis.cxx
index b2690b081..a316f6be2 100644
--- a/Examples/Example1/Analysis.cxx
+++ b/Examples/Example1/Analysis.cxx
@@ -63,7 +63,7 @@ void Analysis::Init(){
   He3CD2 = EnergyLoss("Example/He3_CD2.G4table","G4Table",100 );
   He3Al = EnergyLoss("Example/He3_Al.G4table","G4Table",10);
   He3Si = EnergyLoss("Example/He3_Si.G4table","G4Table",10);
-  //Li11CD2 = EnergyLoss("ExampleLi11_CD2.G4table","G4Table",100);
+  Li11CD2 = EnergyLoss("Example/Li11_CD2.G4table","G4Table",100);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -79,7 +79,7 @@ void Analysis::TreatEvent(){
   TVector3 BeamDirection = Initial->GetBeamDirection();
   // Beam energy is measured using F3 and F2 plastic TOF
   double BeamEnergy = Rand.Gaus(Initial->GetIncidentInitialKineticEnergy(),4.5);
-  //BeamEnergy = Li11CD2.Slow(BeamEnergy,TargetThickness/2.,0);
+  BeamEnergy = Li11CD2.Slow(BeamEnergy,TargetThickness/2.,0);
 
   He10Reaction->SetBeamEnergy(BeamEnergy);
   //////////////////////////// LOOP on MUST2 + SSSD Hit //////////////////
diff --git a/Examples/Example1/ShowResults.C b/Examples/Example1/ShowResults.C
index 916886330..5e3ba7044 100644
--- a/Examples/Example1/ShowResults.C
+++ b/Examples/Example1/ShowResults.C
@@ -32,11 +32,14 @@ void ShowResults(){
     // E-DE
     c1->cd(1);
     chain->Draw("SSSD.Energy:MUST2.Si_E>>hIDE(1000,0,35,1000,0,5)","MUST2.CsI_E<0 && MUST2.TelescopeNumber<5","colz");
+
     EDE->Draw("same");
     
     // E-TOF
     c1->cd(2);
-    chain->Draw("-MUST2.Si_T:SSSD.Energy+MUST2.Si_E>>hIDT(1000,0,35,1000,-15,0)","MUST2.CsI_E<0 && MUST2.TelescopeNumber<5","colz");
+    chain->Draw("-MUST2.Si_T:SSSD.Energy+MUST2.Si_E>>hIDT(1000,0,35,1000,-30,0)","MUST2.CsI_E<0 && MUST2.TelescopeNumber<5","colz");
+
+
     ETOF->Draw("same");
     
     // Kinematical Line //
diff --git a/Examples/Example1/cuts/ETOF.root b/Examples/Example1/cuts/ETOF.root
index 462bead6ba3db3a5e7e68426a892a94f0aa23d75..067d548e7c6f2d4adc224047d2a23700cc380032 100644
GIT binary patch
delta 4077
zcmZWs2Q(Yp-;U9kvG)i{hgG{(V$+~e(pG8JUR8V74BEyfw%F33RL!c=Mq?|XsMVJs
zMvdB|$ZP!R|9t0s-}&x2&;8x?d(OS*x%b@jyc1~@(eUx~^aB7kU;qHX0RUiWJV)4h
zTjd-S=g_47Z-eqZ008m^Q0SBDd>F2<F6S+BQL<OIY^G>k1pxq|fQx0YrwO&rDL#t&
z7x4n;W7ZcO=Q!uSC@kRrPx0TG|EVeZFSw|Qf4Me<+0hgLA~oOzg|CfG(>MGA9$y!k
zCPD#5bmTFn0_%Qiy8X)1<l;t^3<%rJ-~p5Z2~6?_N=v8xs-&XBS>MCo@n9xkl0lf~
zfsC*0SKLAMjEa)-d&%sZi<ZxkFX#4<3P!5m@q2P$*+*%=n@dCYBU%Hh+Jrtj(d_*q
z9E6Eo_tIRlQ}|uc!%4HZfxf{wGf9(mD<Gr^;n*g_nypR)1RkAfvdpDDe%c0Dpp&m@
z`$Fw=nMGMv){|0lTh@=tJ5yfvHUQU(--uuXz!<SKntX#XPk}dt#S>@^fWWc1jyQrH
z%Jm_SIS&udS>%<5%G}pG?itm-KSR|<nCZ1x_^-d|#N$zOMYLj(_|^&v*!*RI8VhrT
z!9-huf^&+L14P)B5lHjGISMbuCS7^i&6a8~`dBW<L?|kaw}<Ut=1-MTu?k-!YH5dL
zyW1fzi>E0pqBI|6APKyV%mwE=l>@Hv@JMqB2&`e2a<ZPJTa~Z#^9k5tx$}58d*3rS
zM*{$-nV7qO<v&+OV(G84G@2LJgYtdaG^I4+ItZ{Najwz&6QZYp8K(v~WW6IGU&UK}
za#-Yp%bZx^dS-H|wQILGdrp@r&Sf2IpzvAM-dI6(o<Qgd&{#G!%`k+d%fPp{sm}m1
zG4#|DTIn<>6pQvl?X5u?D;8S13~ua>s`Cb6z%5|ik{u=CZKe?D^k?9NxT|_lfC$-W
zN-G;;z7Dl~h25rG`2+FC?Xupty|HKX#*SQO*(VA)VRG+hPb~WMWiZj#lO$!BzGAF#
zcr5y&k)gyYCD1uu<{r7FwrdloPh16636<v>2VtHAoqB0u;bcnx`Ou_bFLhJ|E8Lo*
zA*aNP=gNBODPhe`>tKQIG_NfMVPM@nPkggNqxK-p_u4kV9V<)4c-uWNrMU1KXvz5!
zxj@lx!0vXms3P%3uE#Trk1Om$Vo7SsPfFFVvH^lHeM+mrJVy{0Weri~V7{_(iHTx+
zCW#`H=UXa9+9CgnJAM>FRwE4x<>1vgUNJqU->x!oUlT)lo@=p|2rlr=AQob)oO{?d
z7+m`>648nrHM&XmbS$jy4FgSoMk|7XgOk}xBn}?0dgy!u3rPR483nEBjZ6Lh$p0%=
zLTNY?m5U`EN6ms^^S>&^RT%@g)=i>=^XkB_?wEu2IKRuV58V`4r>fi99C-yJ7oeI{
zTPYt{Fq9?OtRx7&+IuIHhd33l;QF{lxr`m>TjB87j($yf3uTS*$YZ$Njx)gNrb~L|
zPnO}H4?X@NIEkY?5=6SBt`(lGL07uHWxjh`Ouy4hJd0Hfhf+qB>I!46z87!ZGRfvY
zU3>(x){Er7ULyrcPCxyLy?2>Uf`B$Nev$N2?s>?D;HP&v9^Vw>k`U!tsY~RA5xVpi
z@sqxwL)>1wIY;sSc!Perb<Fj^t2Hbo6q$3uJB`|<k=m9;#v?NRZ+Kp{!0GodS7uuI
zBnay_s<nh~ytEEiZTSVsEazWcAwQDlduz>!{!{8`*q&NJO)PPxtKPD~O})i>RH+$%
zh&eyu8FRv0%lHJe7J?5TqYqV2r`1}vw^Iyks>y41ULoCY=AJz>5Lkb5&p7c|Z+J%+
z8KH){lv{5t@89@DJV(79o%A>o&19o;Kc5)|8*RQ*#NUN%f;@;PPkmS}^U#NDx&4T3
zZo|Db?qesK#sdcj?hsL8&(=ZdHhsqx4?kUVQI}Ygfgwo`5J<!&-`?WSEr;A+FvSZ3
z(>7rmKh3W(w7N@4S`90VM`G>Lc|TyD3<atoWSgDTAqAfm{e@i%d|FeN>KCOO;}y88
zY)|hiQ_K|o`r{o(zXWkPnox0anxnYF>>47BY*jMxQ64jO8}Na=G@WdC6tC!Qst9jP
zC{i+0hJy-=5YATXxHz&R$FFd_VYWvJbpkc7AJ8^o*!Pz4UEJ$yq4q&8x&!3P){`Yg
z4L^HMc7>!&Qtj%8(yld|$0LcihrMn|+60y;71S3f9Uq+ro#c=v-9pOii^srt?X$L0
z06u)9Tgg`AAk6mbhDlUdCx<vt*lR;N9eC38J8_R0p(*<iT3w6>El6r3^mu}#`eSzP
zLm6r`YsLeLEDEamRV+&Dd_?wNh6d_#XZ>bj&Bv!0^mZE+bQ-SoHp-QIlD5OT0{Y!U
zhZ9+D*w*sp7&#|a@8?7E@w1l`{Ytp#EZA(hbti^C)I=%Ts}9f>`cbJL1HFWB8sv;e
zUNRDhPZ)eZ!_%&wGRE;5zNFs_WtA3`JPc)vu}_uA(sQ5tqHd<J4yb%yYlYAR78o&x
z?P($w;DV*L8S9kALL~EXu9_5@u5r%*k3uIvw(ap}L%xA5tRQrFeX#OKRi?wei8i%%
zgk<1smHb3U*IxPK>@zgEca4O8bA7P>O4VJ&{uu=R{!U}QZp%G>uAGmyq_GB4E^mO7
z<NFNElH>3ozG6@zzqD*7r@VQN8VG$Dq_)=)>zG-2Xnaz1DbVuPRGk$FRv0ZP@wD)x
zm3J}}&cq1HKtUOgh7-!&6z;XU|FQ9ud{gcu)yd5JLF!}C8o#7DW~Hm5Uz9DQY9<Ep
zlr(b4*l4S_Z=S3;^>Y~cy=1bcGq^Wk-LRp~da)+w-YCb2V>g3Nq(3C08vd%;qk1JV
z7=-^P5(%LcTx<mLtuao$jlCpvSZuyU(w+7AWLAU(f884h6fqKtYe~e&&QN(O<!s`v
z<6&nrq1W~zQOWg3;d&q>N^yBKqZI-8N~a;_2U@Kk$b@y%F^v=VFzY~??lNY<p+%vS
z*^WJtldUHE`f-@h#y|AT(C`L9d$6LM*;M-t6w;Ri-YeA*@;(T>-M%ZowO_}Z9vX6+
zW9ATknXHzSDQ=eC@i_={KQX`!+QLLQ|74FFZ3h?#M`yIZ97{SP6ni*=5D$_|GbTKZ
zcuy-GFFC!~Y~8M{t%VzVFvS{4^0in!kq^!GKQvEjTCN2uUA(*0*FcCb-S*Qf(#C#z
z<iU2A!}pA5d6rCB8?l3Chvcyc3;N^K2<Y@cn9G**m;rY|E-&Nw3A2>^5uLxo7jDjB
zhA56EZ?rzw<w&iDI{EvEE$#N9r3%ghWiwcaxA+>1go%k6buY&qAsE9bx0caVek*;|
zBa*6ieD14Gj6MgNiP=HG^wQ^M1uFhnWtAD;{3J@r_=J@907dEfO#QCWSfbI8N~bGV
z5>MY;EB9hkU}0}A0hb>;!Q`;uvgW$(;s<OJc}F$&_<J=$nCTbdNHo+%`OjS-&6(d_
zZ~*eaiTz)-l^rnU8Vb3K@tZbwj#Vc$6`SpEW}W~86#4>c*6>0ydI&tNrGg+>F_|<W
zJS&y~qgs8E_~#hdbeC`7F6A*=(X0BkR+D_KMpWnZR<Fg@VZSNAC`M7STxu6lKjFkF
z=l&ZC-R=I+u`~pY)Vx>{$N~0IblQYz?;UnA=xFNYE{sonv3mxwSDVhzPg+id9Cf=;
zU2ER>#{c~AT=%O4108wx{Rkz~2B{xQqr{@-v6lmx!PW0BnSOX4s~v+jidQ$?ZebAr
z5U(<MpoF`A$Wor>Z)x33T;tJc{%trmuHR0~>B&J`M<Z&YNdvYsbJ$Itp~3_|exs@w
z$DJhLMC09TF4)XL=olFZ9+t%?3u(mWz~6Q6+dW)FK8FjJnoS*A#;(Hi4~y4k2Y08T
zQ(;55gHL02wiZLe$CvxMi+QBJbu5=<IiNE{r0)D|aiUpnX(f>bav*8qVQwQ~ni`eu
zjXeI>5MHFD-Ci#p-qF++^k}mND~NO7LMn?|H_$*VJwzT_Ry!Uw$k+!Hd?D4Jha@~y
zx5<}_D;15HWYdf;^hY{K1jwXjCeJ7E9$+=Jb0SHTP9(8>Cw9#VCl)0uuA<#xsDkf-
z4K+tlWFz!cs6N|f@flT?T3n}gLS5T)-quG5?d?IKIgzgh0@MS#rKvrBaEIPcv{Vxz
z(w4XFo8w8tF`{TcM#zX{457a2A8yxnD`g({{W}~<BjO9E+<GFaZIdRBC#>KfpVUgd
z)68k<=`-|-cY=!L*}?V_wZ777;n3lEg=c)&`8SS+kEr_vzP10{mU=ezJ5UT4u3#gJ
zhy|%q`KQGwxv{lh;Vc?8IrWqNM<ClxG1jfhL}c@b;qfk(bmO1hnL>B<=vS}bh0`%H
z*m4a00PDHi^-RNF4IK@@a(U|H<7FLe$65pkr$i+*syW~mOkeI_f#Iv1)nhxl2%R99
z{@&7^Kd)~c4<WxTsJuRL-;W4dl6c0hk9dfpTs2`P42AcEQXHw1o`no&;Ni^CS5{8K
zHe2p3s|R72U0F2{?w!m84x(nOy#KtwV=`gZuG(?taLDB|W}Mi+e+y^2l|07*J!Azr
zgwamxwZ=nmgi|YPErC_Ed#tr|Zh%{;r{NNf`f&)^mT}}#PH^MctJ3Kk#pNxCPMRD{
z4=7(_{l@%$xUx1v({|dP>@I5D=zVgO3`hB}{ph}_?q0L<=8FoK@qL2e6r>po8>`2X
zHe6~qdDBK+^A|r6O^A{67SCs(77uBq+l6ksw%C1EWd)4%?_dZ=nd|mL6vDG^aGJVb
z<>0HHH|3lHYIu6hiKdoTUC{_CIUe=p34u&0KAE)4Waxt~PF;KonhzZ%`rTwO)lHC;
zDGJV)V(*J<`!F*Sq12v`DE6gftP4MPR89l!!%nSW+6*>(g!B`brUzQN8QTQq>~nRR
zDooslcVgZeX7#<u!|gbZcU0j!>RJ*!SZ;<+D#et>j6$asL05#*IuSxjU&=L87Gtg0
z2Cx0V)FwZYD|_>z?b8zYWiD4V_ludU9be%#(HaVL+CT6Cb)7=R+3GhBhZ5G6ZM>h9
z6=0Tb2mK_Znj(T1sYQiwgl4<K3cCR>)Rixu|IqeRMJ46CL6kAM=MT3wIw{duAY@r2
zEOhRWiWw|4U$QEe6ks<`kr_vW6=g0oY%G@X`S+#BskZcdv`*B1Ac34#y?6)C^&`oR
z_@2Ewq*v1ZC&yY+v4j;`qp73JYrD-w2gYergrK@FzKA^cz}A1Aw9H?RC3|79&K>i)
odrk@GVmpuL{r~Ha1^LcLRsQDC|F4`22Y-=6|CgaLP$?boAC|qC&Hw-a

delta 4057
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

diff --git a/Inputs/EventGenerator/alpha.source b/Inputs/EventGenerator/alpha.source
index 2f871a6b6..b01a3a158 100644
--- a/Inputs/EventGenerator/alpha.source
+++ b/Inputs/EventGenerator/alpha.source
@@ -10,7 +10,7 @@ Isotropic
  HalfOpenAngleMax= 180 deg
  x0= 0 mm
  y0= 0 mm
- z0= -110 mm
+ z0= 0 mm
  Particle= alpha
  ExcitationEnergy= 0 MeV
 
diff --git a/NPLib/Detectors/Plastic/TPlasticData.h b/NPLib/Detectors/Plastic/TPlasticData.h
index 7de7f9c81..ff9b235ce 100644
--- a/NPLib/Detectors/Plastic/TPlasticData.h
+++ b/NPLib/Detectors/Plastic/TPlasticData.h
@@ -51,17 +51,14 @@ class TPlasticData : public TObject {
    
    //Mult
    // E
-   inline double   GetEnergyMult() const { return fPlastic_Energy.size() ;}
-   // (T)
-   inline double   GetTimeMult()   const { return fPlastic_Time.size() ;}
-   // (N)
-   inline int      GetPlasticNumberMult() const { return fPlastic_Number.size() ;}
+   inline double   GetMult() const { return fPlastic_Energy.size() ;}
    
    /////////////////////           SETTERS           ////////////////////////
    // (E)
-   inline void   SetEnergy(const double& E)     { fPlastic_Energy.push_back(E) ;}
-   inline void   SetTime(const double&  T)      { fPlastic_Time.push_back(T) ;}
-   inline void   SetPlasticNumber(const int& N) { fPlastic_Number.push_back(N) ;}
+   inline void SetEnergyAndTime(const int& N, const double& E, const double& T)
+    { fPlastic_Energy.push_back(E);
+      fPlastic_Time.push_back(T) ;
+      fPlastic_Number.push_back(N); }
    //
    ClassDef(TPlasticData,1)  // PlasticData structure
 };
diff --git a/NPLib/Detectors/Plastic/TPlasticPhysics.cxx b/NPLib/Detectors/Plastic/TPlasticPhysics.cxx
index dd6894114..26fb3d711 100644
--- a/NPLib/Detectors/Plastic/TPlasticPhysics.cxx
+++ b/NPLib/Detectors/Plastic/TPlasticPhysics.cxx
@@ -139,14 +139,11 @@ void TPlasticPhysics::ReadConfiguration(NPL::InputParser parser) {
 }
 
 ///////////////////////////////////////////////////////////////////////////
-void TPlasticPhysics::AddParameterToCalibrationManager()
-{
+void TPlasticPhysics::AddParameterToCalibrationManager(){
   CalibrationManager* Cal = CalibrationManager::getInstance();
 
-  for(int i = 0 ; i < NumberOfDetector ; i++)
-  {
-    for( int j = 0 ; j < 16 ; j++)
-    {
+  for(int i = 0 ; i < NumberOfDetector ; i++){
+    for( int j = 0 ; j < 16 ; j++){
       Cal->AddParameter("Plastic", "Detector"+ NPL::itoa(i+1)+"_E","Plastic_Detector"+ NPL::itoa(i+1)+"_E")   ;
       Cal->AddParameter("Plastic", "Detector"+ NPL::itoa(i+1)+"_T","Plastic_Detector"+ NPL::itoa(i+1)+"_T")   ;   
     }
@@ -155,16 +152,14 @@ void TPlasticPhysics::AddParameterToCalibrationManager()
 }
 
 ///////////////////////////////////////////////////////////////////////////
-void TPlasticPhysics::InitializeRootInputRaw() 
-{
-  TChain* inputChain = RootInput::getInstance()->GetChain()     ;
-  inputChain->SetBranchStatus ( "Plastic"       , true )        ;
-  inputChain->SetBranchStatus ( "fPlastic_*"    , true )        ;
-  inputChain->SetBranchAddress( "Plastic"       , &EventData )  ;
+void TPlasticPhysics::InitializeRootInputRaw() {
+  TChain* inputChain = RootInput::getInstance()->GetChain();
+  inputChain->SetBranchStatus ( "Plastic"   , true );
+  inputChain->SetBranchStatus ( "fPlastic_*", true );
+  inputChain->SetBranchAddress( "Plastic"   , &EventData );
 }
 ///////////////////////////////////////////////////////////////////////////
-void TPlasticPhysics::InitializeRootInputPhysics()
-{
+void TPlasticPhysics::InitializeRootInputPhysics(){
   TChain* inputChain = RootInput::getInstance()->GetChain();
   inputChain->SetBranchStatus ( "Plastic", true );
   inputChain->SetBranchStatus ( "DetectorNumber", true );
@@ -173,31 +168,27 @@ void TPlasticPhysics::InitializeRootInputPhysics()
   inputChain->SetBranchAddress( "Plastic", &EventPhysics );
 }
 ///////////////////////////////////////////////////////////////////////////
-void TPlasticPhysics::InitializeRootOutput()
-{
-  TTree* outputTree = RootOutput::getInstance()->GetTree()            ;
+void TPlasticPhysics::InitializeRootOutput(){
+  TTree* outputTree = RootOutput::getInstance()->GetTree();
   outputTree->Branch( "Plastic" , "TPlasticPhysics" , &EventPhysics ) ;
 }
 
 ///////////////////////////////////////////////////////////////////////////
-void TPlasticPhysics::BuildPhysicalEvent()
-{
-  BuildSimplePhysicalEvent()   ;
+void TPlasticPhysics::BuildPhysicalEvent(){
+  BuildSimplePhysicalEvent();
 }
 
 ///////////////////////////////////////////////////////////////////////////
-void TPlasticPhysics::BuildSimplePhysicalEvent()
-{
-  for(unsigned int i = 0 ; i < EventData->GetEnergyMult() ; i++)
-  {
-    DetectorNumber.push_back( EventData->GetPlasticNumber(i) )   ;
+void TPlasticPhysics::BuildSimplePhysicalEvent(){
+  unsigned int size =  EventData->GetMult();
+  for(unsigned int i = 0 ; i < size ; i++){
+    DetectorNumber.push_back(EventData->GetPlasticNumber(i));
     static string str;
-    str = "Plastic/Detector" + NPL::itoa( EventData->GetPlasticNumber(i) ) +"_E";
-    Energy.push_back(CalibrationManager::getInstance()->ApplyCalibration(str ,EventData->GetEnergy(i) ) );
-    str = "Plastic/Detector" + NPL::itoa( EventData->GetPlasticNumber(i) ) +"_T";
-    Time.push_back(CalibrationManager::getInstance()->ApplyCalibration(str ,EventData->GetTime(i) ) );
-  }
-
+    str = "Plastic/Detector" + NPL::itoa(EventData->GetPlasticNumber(i)) +"_E";
+    Energy.push_back(CalibrationManager::getInstance()->ApplyCalibration(str ,EventData->GetEnergy(i)));
+    str = "Plastic/Detector" + NPL::itoa(EventData->GetPlasticNumber(i)) +"_T";
+    Time.push_back(CalibrationManager::getInstance()->ApplyCalibration(str ,EventData->GetTime(i)));
+  } 
 }
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/NPSimulation/Detectors/Plastic/Plastic.cc b/NPSimulation/Detectors/Plastic/Plastic.cc
index ec9b2c7d0..1eeb8c92b 100644
--- a/NPSimulation/Detectors/Plastic/Plastic.cc
+++ b/NPSimulation/Detectors/Plastic/Plastic.cc
@@ -404,22 +404,25 @@ void Plastic::ReadSensitive(const G4Event* event){
   G4int sizeN = DetectorNumberHitMap->entries()    ;
   G4int sizeE = EnergyHitMap->entries()          ;
   G4int sizeT = TimeHitMap->entries()          ;
+  vector<double> energy;
+    vector<double> time;
+    vector<int>    det;
+
+
 
   // Loop on Plastic Number
   for (G4int l = 0 ; l < sizeN ; l++) {
     G4int N     =      *(DetectorNumber_itr->second)    ;
     G4int NTrackID  =   DetectorNumber_itr->first - N  ;
-
-
-    if (N > 0) {
-      m_Event->SetPlasticNumber(N) ;
+      if (N > 0) {
+      det.push_back(N);
       //  Energy
       Energy_itr = EnergyHitMap->GetMap()->begin();
       for (G4int h = 0 ; h < sizeE ; h++) {
         G4int ETrackID  =   Energy_itr->first  - N      ;
         G4double E     = *(Energy_itr->second)         ;
         if (ETrackID == NTrackID) {
-          m_Event->SetEnergy(RandGauss::shoot(E, E*ResoEnergy/100./2.35))    ;
+          energy.push_back(RandGauss::shoot(E, E*ResoEnergy/100./2.35))    ;
         }
         Energy_itr++;
       }
@@ -431,7 +434,7 @@ void Plastic::ReadSensitive(const G4Event* event){
         G4int TTrackID  =   Time_itr->first   - N    ;
         G4double T     = *(Time_itr->second)      ;
         if (TTrackID == NTrackID) {
-          m_Event->SetTime(RandGauss::shoot(T, ResoTime)) ;
+          time.push_back(RandGauss::shoot(T, ResoTime)) ;
         }
         Time_itr++;
       }
@@ -481,9 +484,13 @@ void Plastic::ReadSensitive(const G4Event* event){
       }
 
     }
-
     DetectorNumber_itr++;
   }
+ unsigned int size=energy.size();
+ for(unsigned int i = 0 ; i < size ; i++){
+   m_Event->SetEnergyAndTime(det[i],energy[i],time[i]);
+   }
+
 
   // clear map for next event
   TimeHitMap->clear()   ;
diff --git a/NPSimulation/Process/BeamReaction.cc b/NPSimulation/Process/BeamReaction.cc
index a55b2b36d..2a089a8c0 100644
--- a/NPSimulation/Process/BeamReaction.cc
+++ b/NPSimulation/Process/BeamReaction.cc
@@ -152,14 +152,8 @@ void NPS::BeamReaction::DoIt(const G4FastTrack& fastTrack,G4FastStep& fastStep)
   m_Reaction.ShootRandomExcitationEnergy();
  
   // Use to clean up the IonTable in case of the Ex changing at every event
-  static G4ParticleDefinition* previousHeavy=0;
-  if(previousHeavy)
-    delete previousHeavy;
-   // IonTable->Remove(previousHeavy);
-
   G4ParticleDefinition* HeavyName
   = IonTable->GetIon(HeavyZ, HeavyA, m_Reaction.GetExcitation4()*MeV);
-  //cout << IonTable->Entries()<< endl;
   // Set the Energy of the reaction 
   m_Reaction.SetBeamEnergy(energy);
 
@@ -225,8 +219,4 @@ void NPS::BeamReaction::DoIt(const G4FastTrack& fastTrack,G4FastStep& fastStep)
   // Reinit for next event
   m_PreviousEnergy=0 ;
   m_PreviousLength=0 ;
-  //previousHeavy=HeavyName;
-  //IonTable->fIonList->begin()->second->Mass();
-  //IonTable->fIonList->erase(IonTable->fIonList->begin());
-
 }
diff --git a/NPSimulation/Scorers/ObsoleteGeneralScorers.cc b/NPSimulation/Scorers/ObsoleteGeneralScorers.cc
index 558119d59..6bfbc2d8c 100644
--- a/NPSimulation/Scorers/ObsoleteGeneralScorers.cc
+++ b/NPSimulation/Scorers/ObsoleteGeneralScorers.cc
@@ -200,10 +200,10 @@ G4bool PSTOF::ProcessHits(G4Step* aStep, G4TouchableHistory*)
     int DetNumber = PickUpDetectorNumber(aStep, m_VolumeName);
     
     G4double TOF  = aStep->GetPreStepPoint()->GetGlobalTime();
-    G4double de = aStep->GetTotalEnergyDeposit();
+   // G4double de = aStep->GetTotalEnergyDeposit();
     G4int  index = aStep->GetTrack()->GetTrackID();
-    if(de < TriggerThreshold)
-        return FALSE;
+  //  if(de < TriggerThreshold)
+   //     return FALSE;
     EvtMap->set(index+DetNumber, TOF);
     return TRUE;
 }
-- 
GitLab