From 1af83b88d082da40c4da9a241fbffa85023accc3 Mon Sep 17 00:00:00 2001 From: adrien-matta <a.matta@surrey.ac.uk> Date: Fri, 7 Nov 2014 14:49:12 +0000 Subject: [PATCH] * Adding TAMU project for Tiara at Texa simulation --- Inputs/DetectorConfiguration/Tiara.detector | 4 +- NPAnalysis/MakePhysicalTree/RunToTreat.txt | 7 +- NPAnalysis/TAMU/Analysis | Bin 0 -> 35740 bytes NPAnalysis/TAMU/Analysis.cxx | 78 +++++++++++ NPAnalysis/TAMU/Analysis.h | 124 ++++++++++++++++++ NPAnalysis/TAMU/Analysis.o | Bin 0 -> 28908 bytes NPAnalysis/TAMU/Makefile | 30 +++++ NPAnalysis/TAMU/RunToTreat.txt | 14 ++ NPLib/Tiara/TTiaraHyballPhysics.cxx | 2 +- NPLib/VDetector/DetectorManager.cxx | 2 +- NPSimulation/AnnularS1/AnnularS1.cc | 6 +- .../ComptonTelescope/ComptonTelescope.cc | 9 +- NPSimulation/DummyDetector/DummyDetector.cc | 12 +- NPSimulation/SSSD/ThinSi.cc | 1 + NPSimulation/Tigress/Tigress.cc | 1 + NPSimulation/src/ParticleStack.cc | 4 +- NPSimulation/src/VDetector.cc | 3 + 17 files changed, 281 insertions(+), 16 deletions(-) create mode 100755 NPAnalysis/TAMU/Analysis create mode 100644 NPAnalysis/TAMU/Analysis.cxx create mode 100644 NPAnalysis/TAMU/Analysis.h create mode 100644 NPAnalysis/TAMU/Analysis.o create mode 100644 NPAnalysis/TAMU/Makefile create mode 100644 NPAnalysis/TAMU/RunToTreat.txt diff --git a/Inputs/DetectorConfiguration/Tiara.detector b/Inputs/DetectorConfiguration/Tiara.detector index 57c30e53c..53c11b848 100644 --- a/Inputs/DetectorConfiguration/Tiara.detector +++ b/Inputs/DetectorConfiguration/Tiara.detector @@ -33,11 +33,11 @@ Tiara Z= -147 R= 0 Phi= 180 - %TiaraHyballWedge + TiaraHyballWedge Z= -147 R= 0 Phi= 240 - %TiaraHyballWedge + TiaraHyballWedge Z= -147 R= 0 Phi= 300 diff --git a/NPAnalysis/MakePhysicalTree/RunToTreat.txt b/NPAnalysis/MakePhysicalTree/RunToTreat.txt index b620b3931..3eb76adf7 100644 --- a/NPAnalysis/MakePhysicalTree/RunToTreat.txt +++ b/NPAnalysis/MakePhysicalTree/RunToTreat.txt @@ -1,9 +1,10 @@ TTreeName - AutoTree -RootFileName + SimulatedTree +RootFileName + ../../Outputs/Simulation/Test1.root % /data/e628X/e628/acquisition/run_root/run_1352.1.root % /data/e628X/e628/acquisition/run_root/run_1353.0.root - /data/e628X/e628/acquisition/run_root/run_1354.0.root +% /data/e628X/e628/acquisition/run_root/run_1354.0.root % /data/e628X/e628/acquisition/run_root/run_1354.1.root % /data/e628X/e628/acquisition/run_root/run_1355.0.root % /data/e628X/e628/acquisition/run_root/run_1356.0.root diff --git a/NPAnalysis/TAMU/Analysis b/NPAnalysis/TAMU/Analysis new file mode 100755 index 0000000000000000000000000000000000000000..51b49831b4f26db0704d1cf57f594d163074da92 GIT binary patch literal 35740 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 W0COnn9<06%XkP=Ib0t<b$o@B5TmVo2 literal 0 HcmV?d00001 diff --git a/NPAnalysis/TAMU/Analysis.cxx b/NPAnalysis/TAMU/Analysis.cxx new file mode 100644 index 000000000..12ee9b6fb --- /dev/null +++ b/NPAnalysis/TAMU/Analysis.cxx @@ -0,0 +1,78 @@ +#include "Analysis.h" +using namespace std; + +int main(int argc, char** argv) +{ + // command line parsing + NPOptionManager* myOptionManager = NPOptionManager::getInstance(argc,argv); + + // Instantiate RootInput + string runToReadfileName = myOptionManager->GetRunToReadFile(); + RootInput:: getInstance(runToReadfileName); + + // if input files are not given, use those from TAsciiFile + if (myOptionManager->IsDefault("DetectorConfiguration")) { + string name = RootInput::getInstance()->DumpAsciiFile("DetectorConfiguration"); + myOptionManager->SetDetectorFile(name); + } + + // get input files from NPOptionManager + string detectorfileName = myOptionManager->GetDetectorFile(); + string calibrationfileName = myOptionManager->GetCalibrationFile(); + string OutputfileName = myOptionManager->GetOutputFile(); + + // Instantiate RootOutput + RootOutput::getInstance("Analysis/"+OutputfileName, "AnalysedTree"); + + // Instantiate the detector using a file + NPA::DetectorManager* myDetector = new DetectorManager(); + myDetector->ReadConfigurationFile(detectorfileName); + double EGammaDC[4]; + RootOutput::getInstance()->GetTree()->Branch("EGammaDC", &EGammaDC, "EGammaDC[4]/D"); + float beta=0.17; + + // Get the formed Chained Tree and Treat it + TChain* Chain = RootInput:: getInstance() -> GetChain(); + + // Get number of events to treat + cout << endl << "///////// Starting Analysis ///////// "<< endl; + int nentries = Chain->GetEntries(); + cout << " Number of Event to be treated : " << nentries << endl; + clock_t begin = clock(); + clock_t end = begin; + + // main loop on entries + for (int i = 0; i < nentries; i++) { + if (i%10000 == 0 && i!=0) { + cout.precision(5); + end = clock(); + double TimeElapsed = (end-begin) / CLOCKS_PER_SEC; + double percent = (double)i/nentries; + double TimeToWait = (TimeElapsed/percent) - TimeElapsed; + cout << " "<< flush; + cout << "\r Progression:" << percent*100 << " % \t | \t Remaining time : ~" << TimeToWait <<"s"<< flush; + } + else if (i == nentries-1) cout << "\r Progression:" << " 100% " <<endl; + + // get data + Chain -> GetEntry(i); + + myDetector->ClearEventPhysics(); + myDetector->BuildPhysicalEvent(); + + /************************************************ + + Put your code here + + ************************************************/ + RootOutput::getInstance()->GetTree()->Fill(); + } + + cout << "A total of " << nentries << " event has been annalysed " << endl ; + + RootOutput::getInstance()->Destroy(); + RootInput::getInstance()->Destroy(); + NPOptionManager::getInstance()->Destroy(); + + return 0 ; +} diff --git a/NPAnalysis/TAMU/Analysis.h b/NPAnalysis/TAMU/Analysis.h new file mode 100644 index 000000000..d5ca8c305 --- /dev/null +++ b/NPAnalysis/TAMU/Analysis.h @@ -0,0 +1,124 @@ +// You can use this file to declare your spectra, file, energy loss , ... and whatever you want. +// This way you can remove all unnecessary declaration in the main programm. +// In order to help debugging and organizing we use Name Space. + +///////////////////////////////////////////////////////////////////////////////////////////////// +// -------------------------------------- VARIOUS INCLUDE --------------------------------------- + +// NPA +#include "DetectorManager.h" +#include "NPOptionManager.h" + +// STL C++ +#include <iostream> +#include <fstream> +#include <sstream> +#include <string> +#include <cmath> +#include <cstdlib> + +// ROOT +#include <TROOT.h> +#include <TChain.h> +#include <TFile.h> +#include <TLeaf.h> +#include <TVector3.h> +#include <TRandom.h> + +// NPL +#include "RootInput.h" +#include "RootOutput.h" +#include "NPReaction.h" +#include "TInitialConditions.h" +#include "TPlasticData.h" +#include "TMust2Data.h" +#include "TMust2Physics.h" +#include "TExogamPhysics.h" +#include "TSSSDPhysics.h" +#include "TPlasticPhysics.h" +#include "GaspardTracker.h" + +// Use CLHEP System of unit and Physical Constant +#include "NPGlobalSystemOfUnits.h" +#include "NPPhysicalConstants.h" + + +// ---------------------------------------------------------------------------------------------- +double ThetaCalculation (TVector3 A , TVector3 B) ; +///////////////////////////////////////////////////////////////////////////////////////////////// +// ----------------------------------- DOUBLE, INT, BOOL AND MORE ------------------------------- +namespace VARIABLE + { + // Declare your Variable here: + + double X1,Y1,Z1 ; + int N1,N2 = 0 ; + bool check= false ; + + // A Usefull Simple Random Generator + TRandom Rand; + } + +using namespace VARIABLE ; +// ---------------------------------------------------------------------------------------------- + + + +///////////////////////////////////////////////////////////////////////////////////////////////// +// -----------------------------------GRAPH------------------------------------------------------ +#include <TObject.h> +#include <TH1.h> +#include <TH1F.h> +#include <TH2.h> +#include <TH2F.h> +#include <TGraph2D.h> + +namespace GRAPH + { + // Declare your Spectra here: + + TH1F *myHist1D = new TH1F("Hist1D","Histogramm 1D ; x ; count", 1000 , -5 , 5 ) ; + + TH2F *myHist2D = new TH2F("Hist2D","Histogramm 2D ; x ; y ", 128 , 1 , 128 , 128 , 1 , 128 ) ; + + } + +using namespace GRAPH ; +// -------------------------------------------------------------------------------------------- + + + +/////////////////////////////////////////////////////////////////////////////////////////////// +// -----------------------------------CUT------------------------------------------------------ +#include <TCutG.h> +namespace CUT + { + // Declare your Cut here: + + } + +using namespace CUT ; +// -------------------------------------------------------------------------------------------- + + + +//////////////////////////////////////////////////////////////////////////////////////////////// +// -----------------------------------ENERGY LOSS---------------------------------------------- +#include "NPEnergyLoss.h" +using namespace NPL ; +namespace ENERGYLOSS + { + + // Declare your Energy loss here : + /* EnergyLoss ProtonTarget = EnergyLoss ( "CD2.txt" , + 100 , + 1, + 1 ); + */ + } + +using namespace ENERGYLOSS ; +// ---------------------------------------------------------------------------------------------- +///////////////////////////////////////////////////////////////////////////////////////////////// + + diff --git a/NPAnalysis/TAMU/Analysis.o b/NPAnalysis/TAMU/Analysis.o new file mode 100644 index 0000000000000000000000000000000000000000..862bc1a8688665f0eed43491fc185c9ccceed7fa GIT binary patch literal 28908 zcmeHwdw5&bmG23GU}zGV5?b?cBRZiCj|9th5{Ce_u|<x-NnG2ZDMLn9Y$X=Rk6Lo# zw3yl?>h;M%;E&?gJlcAuP|_BPTQGGCN)?ic-7vjl+Rot1z~Je$w{~wjxcT5>C`0aV z?Y*{ibaZ5=rE~8;_k59lXFc}XYp=cb>qu7q@!j9Qf3~JASg7F*FT%u`cyr^0>q5M? z5uN3#zeWlsS!ZIsq+wH|*Ahu;K3^oz8DRq8^VNB`)um{4cfcj@$R3#-xn9#AAl8{$ zH-Wl*zS@XC5^Sh!2@0!rdwp!@JJcv#ZOf#+ZRMKwF=AxcBmWv&{UKiq8MNCgJ&y`$ z+IP;E=>CYbr&nlN5m+C}uontO0`2}#iPX2-n^__GD<x>-m&@2QDcY{?34Oj@4Gq3P zXG5SZ;*0oq*zM(ACbbt+2jZHAy))#k<GatdBOJC!e7=gZy0R2Q^&^KbCEz<d-{)&+ zZEkLDQHpkZlbjdbN&(2O3XX%laHKuhvWxZY?OnlvdzuTLxyoV~xAwOCe2xBy-`c<F z?VUut=*nYziPf@yC%u~XaqvGRq^UP*Z%a6WcYlbucK>Ftkh&`WC$3JFrMpaf&8>~T zAhOxFv!kT}_R{^!xl)$TVKY;(NAa7vQI6Yln6JR+3pDw5w)>j{l4JKTm+dvN!5OwU z%l6=3ld?r9`nS#B5b<@i><P9s`g~Q${M6M+g8*0kB8l6O_o9C{YFe3OrF97rd3fbi zYTADXPHjcJFP3qsmiiinkX}K&zKqufy#CZ{t8V;8?>RAkmZs?@-Uu|^@Xn4#L+_tD zMGPa}ggf0Bt_PTcm=cOcbQ=j`!=*z0HdJ!nBh6z{9*eIefho9xH7&|XzOtdANG9Km zOWSLxgi!5`p86we9uT(&7r3J2@$|2elX@&V^`BICv{U#bn_@)Uga<LfG-AEN(P+0| zMw#l9%mE355)KNLn9ww0LxTB_us#DHbR#wePz{(=Zs}%Rh|OUV>t;VmQteiaBtKQz ziDcQ>1u`~bK<Kf!CL9<hg_H^KQ>9giqT|%?*sv&J#K);_W7Jw`SZJ6+WaY<+FI|xp zN+GQ$#!G0d8$KAZOYlBj2ER}{b*N1w%Umku<ej5@0pvEpG}4)Dk`p#jrcZ|#Q)Uj! zq==6wzhz95{J|{z-gJIUWEHC32EHEaw~OO#f<H`R**w`ds#vLwuk@3A#BMCrv+)!^ zCRA1PlJ-aHDde)xP&Sb)Yl?d$7O@~10a!dT1q1vN;c(n7{T?AOqC@G*v0))L<95C% z#y+Vg=GdC3_%j%-76)Q+Qbh74`Kb3`%KbRqOVdVlFvS=5x|yS!#vrCTUG>NXGSFS) zWg}V__(psHg^<owW=!7o_kmGm9IrCP9mZm>V7ydievR(RPW=KdbmLBqx0GwrTj9=V z^aNV+g=MR+M;eTYSu38PAs4$&xM0Lbh(i1cjOe(4_?To$Dmo!$lM<#R%m@{!X~bs* zGu{b*V5JS9qS2Ie(To!x*)6opev+hOteQbis<QQ#vUIQb+md|QD9Oh}0X||mN$uoW z-iYR$0u@serACw)C+4YfxLU1Das4s@%sBB?b-L0)oai3K@`O<gcIv!Xt~5%_Q#7HJ zsscQ2qtYXh23QTz&qA$4slhJY8;6b9QQ^Dn9GNZ3ivp!>4ojstag=nWlEN0<!;6(^ zKDwok#1xggRRQ6nGLxscFhln+Ga@{S3BVEoYBc%;-l^@TxZ4mVhg>l)f;^J@Nw8z2 zU__U}f-&}>8KaxG-|2am%DAHCh(S+W*>LSIqL`@uI!p`mLVXHhEhU#nqa^_9KDZ<} zrk)F70SV0*33WryRSn3oG=T2W0CE|cq5+qW=|B3H;%8sJ`(H0E*Wdm({qXNTd{TE^ z@xn>hdC@`WopfCxngkSGankiShe<XdWVtcYajkp_?D3PX+kofw_X+b(J*HWFp?mmJ zP4322-sqwYabk)-nSGasGv|$y(HW(4(v_>+TC(aAO*`rOEMgZYxeCUV(p3|W87Gz! zPbx8)lFf({Pst~gJXM@nN<5wvn^C$)^Xk)@w@o&Wn4)=Os(@(T^e?fWu`P(x!{}%` zuit^!;lQJPp}j1xy|gmfM6wlG7OLqBGVSx~B+5;{btdvLCRP+DyVL&!xlN$<0W-)K zn@IVRT8;XpeVPoNbf-HYmxIp~dD=5g2bT3?uIOGdQk*g;p~9c)PGYI<97&3?+~OYH z*_PIwO|m<QDY|n=6_DMDdNs~l%X~LRW4mFP2D|6yV&XHRPpE<jDXr)-q*OkWp;pXz zCoEVLll*!cUnpXwPV&)?K}&^nubMoN;z#LTuGA~l6m3KwNGinQDTA?;GqMlPqTr)l zaAkTLMQmNBdY&xUMA8$B!Rd!-pI|!mU$1f|xd0GHwWV80Q@u+pCGJd$%_!aD?9-i^ zh&n~rc6Ez>ZBweUH<OXpZIM=cr2-p2PKxM(Bp*G{q-+X**l;|h5fg<}H1f!R(bbpS zrF8Y`rne714}v{_d!Y9qUPE||;FZu#@Qto9EdTYQdC_eE)%t2xJra!g*n|izv!5g> zpOj<dfGVr2vMDu;{G^5_VH`_sX-gfIY2%$bXpTmg!91mmtRfa4RD%G9X;Z8CrPx); zdzlcXIIQaCr}Pb7vqtn<ROX6)3x-T_ulF3K1Mc=Cwj@*eN8z@KR86VA<r$OOmqnLa zqspCz=W(}cg(w7Xaf$P|+=Cv{&R8TPvHi$S*Yf=-`MwjmoB@Xx;;E!H5;||_Ou3Wh zqqyOHPv3Vmcl(h(VSnEV_sBQ~bFzCzb>pxa9`YbsHZlbTtbb=6$CE+e5<(;r_8-vR zG+ALB7WK-^Fujwyfe=Gw-%+;=w0G9n^d{18iv8=F6*oKST5W4j!N|;f{&d4Q`EwKd zLzwOlHXYsxylui3BzG(Ba<`9X^RZxVAJhC3Hf(R(k5FS}e~r)$T$$C4jv3w9iV$s@ ztTMb4y18j;l=2x9*QS}|-9++kQr<cBFPSqrWU}vE%PTlPsQ(SB4Jvr`96Kl+@XiP) zF$>J75;C8JzO<+JjP^lUDjG^Lqd#o+sR$;MIqh5hN&JcW6LahLoN&|Rk0!@9ja9|G zLshX@y*OA6w+ZNP0vwC(!aG7ODBbAqB$+9}=<k)30HeQ8QUZ+r0iujJt>9HgOs?ns zVv#q81!ZjQMYy|llW=Pv!rlk^An+hMdIa|gbo#jHd~`bQXQ<18=pww35To8#(Mq%; zx>D9g!@sBNRph<q+IK15P4BB1hUV5uee}%Zqzi^zLA|d||6Hs@@_82TCzHcBng>&2 zAo6Gw4AfLjHJLGr4o(KS!h{4PmM5rw0Y<-DQUZ+rm69TGJzLoGKPiWM-Y1vH46M2K zml0t`i9kiVC=e51#HuAFz=+A+E<<GwEaafjbh?28Sww=?HrBab_#0N1nU9e#I# z-f*0)zymS{4@wA3nGa@6G~76@FL(h98wDEapb0pRc+i~~0V-TFK+!>ALjoRSNJ;<> zOM>Djfw2)u2{2*_NfE%oo?nS@i8CD>o5iY-3>OjL&By`*jM%KC1Q;<*MnXa*24ZXm zg{J>n#+wa{$sz)b*tnzw7_kXS3FtXYzQD$$WD3CJOGyck_7O;`2EOHp`uj_S3dfEg z=o;b~s|cDLYzs!C#n7WV{<j!?cqHoqG3~~iSS59cjaWs>n2bA)Wyqe?3W(}gl1|T2 z8tL1QKt?5na^`x$bE9r<#FFN)o}}bCj`Dpc3NT$`baqT(j>SkN^kUR{F<S95x+cXc z*D)a+fX*azCUoNkN$)#~<pWEynvZ)<$O*Cw69Fu^bhC0wUx3HOU6aSWub+#ulbE^2 zbptHgnQc1AcEwf=b;})Nay)wnMT`%4U&rJzNRvpf_iaoJuwAH|yGvY$y52Ur9?^}L zD@-q-qp!j^26^A9pZ9w2<6TYHICX$`%-D2PwPH-(#Jc3Nh;|Jf@ZRS-q~>+<-`lOU zK}5y=7j5b}N-a$7A9BTVmt3E4gOUj7tXz0(>k0ZJEnYTy2npIXyJCUs*#vi&t-NLZ zlFo^}Oe+2sIV>ex!#AvK*+1Fpr`qT8FS)*}_Cp^*pE0(caP}8+qvK6u>&*5eV!!1; zQ+X7Y`!NT()t}N{M3w@CEZ_>$_9yen=WE}5<v*x=zW)7xE!R1JEV*UhZ@Vdm)MpsW zglbPq6USEc4nMjVd*96Y3iAV|NNg}lX>K)!O9b@GHE&oj@yG;B;elL~Vo_pX2+E~Z zz=53J*eOhl`1}j+$<MzYz!pM}@x(1xOMEmZO7l`IDJ+Z9WRsND6PQs!nK4P7r<*mH zyD)Ra+Jsnw5fd|k$xyjcH*&DriiW7Ck6_TWH-?#D5Yy<O*@?A&nASKWegf}il-@5J z!bEbN8*i@YMR<n;!pg#^T>GQ6L`^TXNDRS(9<O0iou6~|mkKXwT14F^;ge)subW>4 z<9+ni5c+JW!u%4=V543f-%g#Xz)X*+^Sz1<G~4rYe7TGo{bO(djwb-FDDBx$H4$jn z#4+#7Zm|@^y5wZao#mxgPwMuGJUT*+feGz^_hoE6h{SY0)9Zah<V|uqf5V7BBV?G- zqw;R}AQ)m^@25LV?a{}9)AYf#nAsD?rss9#2LhfjK^xHlC>gN_NOcKiozgfUin|Vt zVQr=6825=qOSaAIC8GCuZ~vDef(GpZ4n&El5Jf~kVlzD<#3EExW|TrDM~xvqO;xF@ zp){J?OUk^Xp~n&?UOgog4p;OQyd$u(w=AjCJL=s}2T3URBBleQ-UpZ*Fst4Bj-Q3W zX8dz%pol7`??DN%-^fGFMr;}0r)g0Yyi`QYD8&Vy5lfe24i1V!Q7R-GW5$W2?xl;V zMO}P+oN|EGWJ|D4BIetVa3Cy$`W14FJ_AX4n6e?&E!C3ds1dtU#W#IE>NzoqS}J;x zbo@D!$X4ueM`Xl@09A4aE3-!L5sHWiLVrHq5qj!8_(QwK>HE(VEGmcSh-}9v0y3GP zN(l%`c0NOC9yooXfP@Vq^<4MnOY<VcW=v>Yei%`vyJ>uHLc>QFbdNi7L%3|MQ)Ep~ zoPbnZ_kKYt3V&JAl*c)IM2)a=52E?GM46IFA1+qbV?v;SBXfmJe899p<f>~wea{KL zkX@?C7LqSwR+atI6IbrK?(GquR;sTR5dT0w4NJtLM7l!LSa1K;(i6cm#awkj^7x|; zL!6a*`!`CxYEf2A)7u2aGqMDADwT&*H8~H9#laYL9TJ9QD#ny|B4E6S!^2Hs6c0B| zybKI3vjYPR=U91`9RLovp8ZJr=_R&JwyhfA+E3rnL6nGqg)wYSkt5jGnzXmwGy%j* z99eXzOw+U4l=>j=We)-mLLJjGUh06dX$0g5*a=_)JxUf(Sb&&XWhR;Z(j)AJ#fB4S zZQ8M$1y}&;#bzF>tnhCXrRCjliC`SlaUjH@5`=i1TYwumdvNa)L*F2B)3skG=d&fp zXtW->7=zk0eE|nENgHS}yqoAI)`)jGyme?vby17d6e3d?F%IvWUSLG862(^H-L;?2 z{K7F)u%iiAbg5$TOregWBPgJYk=jdl*+-2~OpY3w-4SCkO&k5QR1^nkVkSq8keO2U zCybg(iiv1xa@Lq3^P|xz01E`i)G>jmb14b&X=NVV7!$Yh19yCWMpVyHn(xG^unDw? zo@;qGS>xxKxq^q3;Af0!`(wHPC2e&rOUS!rr4na8C9$6A&z7Eg`0|DLz*f^}k0LI* zS%;VS#@(lJLkC@PIqTjG8O>Z;056N~(87gJ(lZ~8PW0lU8=8~zFt=!7yzpHY?J6R^ zj@KAoLehp9(6<DuNJ8g&nrK5r{5uFT&`reCcq0R%%!^D6oI`3%JVC^pAgD<RBF=|H zWZ;)XT*<@~5%iHXN!}ykOCZR!DDxOgiq8e-MG#4Azhg-qNtR+|Ap@e!Czyzk<a!Wa z0rnEnh((?nC)6GXu>!<1Bw2=U%>57yAsNT|LDpKxjVTbDfOiw|J-mGbDAa23K{BcR z2kj$o2SL`(aN%tlM6#Z%Af_O$CdsWJ=&^(_up7iOL{(g;9)3hyc+tfmKZl?_ht_HL z;B60!wPgQSC=T6J;Wa=E+FAMNhOSc&_w;mkYYRIlxybK3VCk%vVVeR>YtC7}2k|!` zZb4-WpU2yvlH3My2MBS!1cD4KITLTMf#4iQE5Jd(v~`4+;_VZnfOuQbC0mvB`BIb= z7u}Fk{lw7mCLSG;NDqc1o(ci2yYQ9CX1Axpy}{jyS3_$Dz79+Zg=q?fN@1^Cs|Z8_ z4UyLN^46A}!Cf8g_*yc)2aB(Vg1Rvn3TUgZUL9#})5==>p}pZ?_-eijG}g5T0$Odb zxg#XY@GT3x8{vw-qFhrqe_g!&>I&^@b-D2k==KP{BI{O`-AZ(|TXS#jXx<TMcen0z zdv^y~BJN15dq=<>X%F}#fkyW=(D*ODv?cE9b_6sK4kIAfXzt70=eY00t0vIw$2VQ! zcqG^yfGc-lR&aX?3NCYNW$-iN50TrNJ0Kiy@`vGhpvCQP5fOy<)NB9$vPK}+O5om8 zP*?76+3gQkBJ(U4K2#Fdg3s4z3p#Tb<Ssrthqm-9z@^!t{?}L~aeY*(;mf;AbH8*( z`4awGuh6T2Z0a{sZ{r+#A;=2YUUKl->`|R`E%<zOmGJ27hcTeFT;<nQAjr3sZ0By= z)0Ok7cccS0d!+koyaw36i%FR-n;zM{6ED?XnyBf@Ip5hX=|6$j&@W`Q>hBbCT+aIB zM+k8(U_VxY7MINr(t7}UC9Id6${h5bhhFJv*c0CuJ`KIan0u?|(W7=hih8%P-oi6w zGjd+c-tI=&Et!^a`mj{bh(ERa9_SUEhTb#KTgiGiWwA$o(#D~h_1<8;obv2`(%(wt z{!aQiSKN!Cm&bavVvEb6e`xvAPD5`$^rqO)^Vpm{KPf&>KyQ-uvgI-9{StZ;thaIw zd+%B7&DD+-=;JZAH<w-&^oCADF9N**)}x(>xE$j52=uyHZ?3o;g<dD?CFeZ{dnce* ze;Rtru$j<V5Bs95{#^?_m9KNvOMAUMwl`P&?tz}hdUK7FXP`GbHUD^e6?!wQH&?x9 zVltmN4ZW+NmpF}j>!3Gs8hUp^Z|F4i9);dP)|)F2{sDS}r=j;I^af5t?~=2znLQ1? z3h4EohF%DI-K;m)dintLI$5tMOa9UPc9q4yjmT}fa_)OmCWbBlN&hzJ51o+Wb12tv z<^0xJe+6Wh<Us!qQh%=eses<tYf>+He6-cC{{D{JjTI#QQh!gkQL;1SLp)LNz9B<C z!}7aj`7&i){T*B%Cl1e>8Rffq0Q0(^EMIY%vLun$`J}v!<wI<r*YynhlPv#)G?O9E z<pH0qeCa&$wt3`(Ea&w)>HmsPN{5C%B9YZH{2QM~KEv{xvb3+1JD%6!Wc?Lfe?gus zm@Pi_EayDT@ULwic{j_s8#2ldvOHUUBv{VtX-4^(dFmH`IEyA`^FQ}O+5T*DH_JKA zGwLs3dA9advz*gBqkR25@-~+9dYDnZd!F)rEYH@yL6&FBzr;N9$$9M0%p+INy|UHs z=7}wvymTIUJ<GH8Pxn0X!Fl9~dE}Gx$Td#<Z1c05<-8tc^nX3ec^xW~*^IxlR`bhp z$>DV;DW7HeBrQ0&vgL=H1INwCsQ*hC7{@hjRS)pXzz*Ouz#!vx#!oYP87~7q4!sK* zUqFJth!1R^15){?7{AH*RmOJULy-G{4+3vtz8Cmi(8a)S13w0Q3OI}Ba6be72)Gze z;T{K4y$>@U0QQ643w!|R2R;Ve3PjWME1A9yh%ua>2aE#Wg)swq{{h6=IsadP&w-9J ze*}oG$^Sm^d9>>>Al3UIV;!T;=mK5=`P+EbNPfHyBtL!uBtJ%(ehx@}JOz9N@~;CQ z23`jwzb*liU%5c^S^j^bV~L&xBFFOo03?521X7&83nah3!FUJrZw4L#|4OEpv;2I< zmUA@izro%nAlWYiVyNe@2L2fIQs$ol#1x(X2KFk%e;tS|(*;L>2IxaT^6Q5{^6Nez z*==EY5Qrr%e+SEdb+)Gc1Ij%LB>hX7{v-C5)c#k1)DO=C$^H+47l1zmB>m3-NpCI7 zuK+Fsjjuop{+nk>z1M*hpHblFfKLIx4SWztc@+l!40t{eU6=nR8ud8nDaJk^o($(3 zK+IkF0pJyoZvs;Pt^qy<yc|gVo6q!lK<eLffmHuHI4gb)_;0|cfzJT(w0_mSz@xys zfuy$^NcG>&SOcVbt^ra#tAQA5`5y;<3-q}_6ZkgH>KH2d{|k5<=wAREfzJW)aCp@> zfn@)yj17$Cj4sB7j3+Te)I<LjAo=?&kjg&>{0{JbAcj!B2}FwKcLFJ{JAf3|Yk?Hk z|A9G);tF5sdC#i91(H7I7-8=VKq_}Tkm~sia0hT5kmd!nNz5no%mgX2>Ki~bdDTNe zxVowzh-=l|K-gTh7x;HTKX4c7`84ovL0<txS6uLMMtWF(4&?Ne2c%@a25f@fzrq;V z`6nRRi34{+{v>b^H0CT}=YGchK%`E7m!$LCfMllz`1in@fMdwla$qa;t_3~{dJXWK zkYCAs<PJUkUxhZ3EBW`Ij|b|Y4d5|g2ax<)ha{waxP<XuB-!^tHy}`bz*->bT?ZTm zt^ocBxRB|0&}lyb{VI^`jsr>F2~3b4um|`pblM@{e#SiDlb~~fh{<*Dp%cFcdds;u zs{+pfegpUpg8CKU<as1|0$258MX)9Pn1)0^kpUzg#476!<LY5g^t36p-5SEvB~s zss4>Xs=owC_0J&q`+$?cp8<V9DpwAqI2AI|c>V$CA1}n24ERMP59x0~u%8AlXM6+k zCmL<ihJp7n?FSwNoeRBtG1PK^FVK(!eib+i`Ci}*5V^2)3b+S23G4t)0FmoU$AMuW zazgteFaf*<NcF7+!Z&R-5OrxKz(HUkZ~%A%un$-a>;+Z<yMf55rJcYEU>mR$*aXyp z^}y?a+kjUAtARB@$g~@QrN9Cp>e4m?aj)G1TnR*(rEXvyFb{~bOLKw9>7_Zq7!W|e z=dl#Ito;-pua%--&d{_)ZXiOvC=ZA(Sd<Hde5uC#SulxD{YQN2KhjSy4l;H#)-#qe zx*0XbN%XHM&p61~%~;P^%IId)7$;F!lxG}d>}ITIEM;^vYK)U;G;S9q7zY`<8S5EK z8QqNZsVkbWC>JQ=!~99)m9WP+$T$Ebefo@n^t+i~&sfUnX4Dub(LZEw0!Zb@fmA*L zgvz23<_|G{5C~TmbpxqfCy>gu0jXR)kmRL|ZXoFa1pfy}n59rq&n<pRG^FZxa9(4% zdM@!6)9N|Ik_(}aBvZdjvyAC0DKT+fLNpvw&nH$BjrzJNL2=#4`d-%G%ybpgw{ZE2 z%cOo2%Ntlu=QXN-FVme&?`OK3X_IM#>3*i~XZr7$ewgVenSPY%=a_zy>7z_P%k<Bg z{t46XFg?cf#g|L}Ut;=Bre9&&WcuHkew^tOOn;l{x0oJc`hBLKXZq}mWW3e$nhTj; z@kv?#RZLef{VAo-bPdz$yb>T9{iV(&VWP3NsNd1)VtOSlkhs3ebSKk4V0w`0=b270 z{W8;enDpp6$#iv*q-h`MTA0w(bDI~jp1KxyYi+BfeDQ~*+>JQUb!3^8cV8{(F8E62 zX>(53){jVeiAT~eVLcRbE`K+dFW~ama(Q*`UdrXC3S{|rx&A>ef9wKje}LtWaCtY^ zzlY1$bN#omT%FrJEYD^6^DHmr@(;1Rm*qd<`YF%pigNur*MB9;3t0XeZr?#}-yW9N zvwR(wpJn+)Tz`V)(=1Q0{fD?bjYGP&v)s*cVpDue&l6&?`KJD>zEaZFT)vviFX8gz zTtA(MsC+%<9lBmWU&gl-i!WWj;_`i5{<~bhjq4xb^6I(OPHuk=+b?Iidam{^+izm~ zbbh1ybJ_l5Tz(su-_G)G_V1%C@8j~{WO;(+n^``|^1Un{WcgZ_kFfk+maFFm4?&OO zx01)lTbRtrKlNPn1|A=IJU#|luAaO87X3iw$F7p`D`EL0_s^XyA7uG{EIMRgJ@?(h z@=lijl*_B<w&!#GGb}%hYFyYuR$n9QTTS*rZ)5r)lEc1wZe7UsXE;9!a;5(4dRhJk zrr%@wU6+)r-&tGC@+p>ojOiJsb@nHR>#t)uZSLqgewOq{JqMoV_6%@5|F~GnyDyUZ zuk(1E@JO1TTTpuvEdS(3K~sMfO8It{PqO?bmRGa<DVD3}PzK8fS$;9g2f6$iET_#U zU3amZ9){4>!tzd*zsCO8bNNH;{}B7XeW|7`r~c;WSbv3lTMqwcx%_W)Wc$=}u%EE~ zF_yoD_$^=9t*PhWRTxiHerlEU=f~Jvki3BNy`SZIobMYTr}(Mo?2C9jCb&F(2a4qC zIe+NGGQOoO{{r>rIjHXnS>N}GJ{SHo9Tf6}rhfO1o~KcJ6Dy>CIprr_>bg<nBlhT= z&r=Xs#M*1{$4Y+<xoxGtvLv03p?<5J?ydA~AguIDHhb6G=w=&z9pY~-zuZRu%I42^ zZS`MZtN)*Eay+w0v)^o^kK5wWX`|1!`7>)P|F*4u`Ua!5JtMaEK8U@EReskw>9lU6 zkJ<FAkk8igUq?Pz>4$9c??Gsl*V*hXwCO)*tN)~prst+sd%w5QbpE!=@51=7(!aLF zbEnPzV>bF)Tl-$J)i-UEAF<`@TAM$4w)*d}_2=a_d-S~8>i=Cf{omQ@`-82%N))!1 zf7%w0L$?0F4>;bs*;7<^OQ4;;jaS|jXt<-?;|)r_<;!B8bsGbb&)^pxTlZ`Xv^EDK z?R&j7!P){}&F!@wpHMHkrL3m1?1n0DagD#F(JOfC>gc|;88&ZEV^ny&yTR}^hFg72 zPzeQyYUuR)@IA!NV1$*o?6@6YqHNjYZ5E8;I^A<4Y*pXffLeo%je@&oV@+ALUedf* zeq&SBEXy{Aywz0GR{8ssHGyyke*BV}T~b$zuV?yq1w0<9S{4emHl%7QOsmPUvcd{f zM&DY5L0=d@BzlLhq3I6at`2{@bj`D7bM=-s`sU{*e+#N=_jq;%B9-`wP=8B9z#FWt zrr-2L7i8$IMZ9Y|TIyPB0{%w&zNm=Tt($8jMLwU$Q@Fz)4mO}p`Z3hXhRwC$H8lC# zeUWy5FcPk8@Or^p@24jD(M)1^5xJV1YuCu`T3^%J3QyWPBI!P5t)alFiUNBbGWs9H zOHPejH{YBQmGzb3ioi~PM<_xmpi%Qf0Sf*Hi_2P{_=#1rDf7${o1%)2=C-nMLog^h zL1tc-K3h{8h^Vjq3hlp0EHk3uS%ch2tA`TYDTzv;Sndx6cgSxaThb`gXc2U`bVQI3 z7B$(AZK2c6FiJXGZr1tg3Vd}QpBLe+UF$;vu9pe84&#rqS7ha1BvKZOB0VT31(fEp zUFmtQlre{i=qXyIU&|hu3q_l&%RFmTxOo`EXBl%xX`zP(ZQ2*V=S~NY)6nub4=rnp zXi}zci?cJSv=trSgo!C_)+omJ)+5#dS{%U4>)f|qZw>Wjk(_5*G13D5=1S3-UT^I> z88ew4p>U<s{Nrq)p$?gVJWw6PGli`l#|h0F3e(EefGO<`%a~uYGt?1o`oOKQH#MsZ zVrFj)iB;v+&5jA+Syvtk_}j%d?5msb?f!=FT>0WDxuGK%YLuG(kSNCbX}w($KsU7R z&FJlQ>4J>0ohG-eQ#<{^kR_0|f$JE6%tggtYgtr2$h>czh2_xuK-T<iZOHD_oGy(O z7W;gd;;>Bn+wrs2fp%Xw@VSlv7UMrJfiR~P`=qxw%Nk08tzjQVO<?V=K!i3Fa-xvJ zH4TxyZK%py7~~xims(5fbSSXCBOLJU^fv?|H2eyDNi|uVwbT@)Ce70tJVj`>SMD~X zvC~U<Il7YBnELa9;wlV72macvEi^zKBqfz$DidgQkR_XB{R@SPLMP1v2j-gcP-|FC zgH{tB&yB6^4S}s~_?>qr`MOH{MNV+18dGUS3+R6lkb7Q-Dm_J5?dg9T=m^*0{|KN& zbJ{jTNt&o`4F_o>=nXokku9lK8~l90d%N5$r+HJHRH+L_upLwrXqpn)k$>Qk%}#M` zQ|lh5=6Fc3DbUh!117E=azkM~02Gm2wl|B0r^X))2eJpO5UXM+w6`J<!k<PtxlkZ{ zYYbw)>g0j&u&%W=l%@VcDo*mcU|X0C+-wccdfgxPO7n71rb#^o5UT(<$qOM*1;9yz zEGP$^<Q|p_2OSiOD#K+CfkAfr!)gUd_nCW*{-!JJt?{g_+Z3RCoG{wNU!RG7EUwwI zrH<AlSn<hjmIbQU)(K|y&AYRe{Zr<OwPE~4S^Hkv(A5@McL*NL?QQ->9}apxY(X#+ zWt(kjBe9-$8#_97`o#a1LFX5>^Prsrrrg>R`bS%o<b3M|+p?M^`D+@)S}cdupV1ti zn#AFBM_^a5#fKABLz7cgML3&<0})LBjXUsPHc)dhy@Z2}SZCS;k*0PYdcqb~r=%rp zYWyv`K!!s2A5q$ygDse@EH(UjOS4*0o5i$W8(E(;Epsn<VlUk0k=w!)=d&4{TQfMD zGdYDeJ8K%~k%C~>-C`Y!)VR7zI|uvq)CyCA^8q%Ufp%}ry1E-WcJ2(ci&C{#CBeA` z<>=`_r+-Iqx5u*%_afJ6vBlADXDd12+tu0WYr{Bc#or4CBYS<j3#f2fm2*GlSRIhP zzOF9yTte{Z5r7hA?7ln>NBQi^fAKTq997};pw2b&%$Hr)@g$jD-F}!<nsWI4#m|$< zeA;d~c{Wl~$K#O_O3(h>qfEM$4{)qXH}pY{Hp-H9u<)MENtE2SISDO0HzzU8kdAz8 z)tvZhx8@|XZP=VtQhPQhsV8mQ=BVMYb92;Nm)vq$HgAra8T&U!Er%_fqh7`?&Pj_m za!w*o`d-da#lD?$R7&5`IjYz;b&fh|`#MLB^sSwvifwnNbkep%)(xJcLi!%hS;e-^ zb5=^*={c*UZ}uE@<bKalr1~)H&Q6t*6W4#uxi-Cy|7*KARjqaEqO+jn(>m|l6>8mq z|CDVvo_N#$jztT3m8WQz^>Ykb@*Pw?S@?xom2WkkuP_v88_UZr|Fc>sP?V)$F_&1w zxHhAtlB{Em62|q6o&t5_Q8&sPPm$uNYCOuCXRQ(`yB=lOqbwIH%Z18vp|V`4EEg7M zIGou8Pho}<>bHlecwHu|1Yz4)wdIDgDxa^?=hwWt{13=z^X1e(**n=oB2_$VH)bzi LEJYS)h@t%--H?BZ literal 0 HcmV?d00001 diff --git a/NPAnalysis/TAMU/Makefile b/NPAnalysis/TAMU/Makefile new file mode 100644 index 000000000..bdfccb1e4 --- /dev/null +++ b/NPAnalysis/TAMU/Makefile @@ -0,0 +1,30 @@ +# include same architecture file than for NPLib +# so that consistency is ensured +include $(NPTOOL)/NPLib/Makefile.arch + +# additional libraries +LIBRARY = `$(NPTOOL)/NPLib/liblist` + +PROGRAMS = Analysis + +all: $(PROGRAMS) + +Analysis: Analysis.o + $(LD) $(LDFLAGS) $^ $(LIBS) $(LIBRARY) $(OutPutOpt) $@ + @echo "$@ done" + + +# rule for creating .o from .cxx +.SUFFIXES: .$(SrcSuf) +.$(SrcSuf).$(ObjSuf): + $(CXX) $(CXXFLAGS) $(INCLUDE) -c $< + +# some cleaning +clean: + rm -rf *.o + +distclean: + make clean; rm $(PROGRAMS) + +# dependences +Analysis.o: Analysis.cxx Analysis.h diff --git a/NPAnalysis/TAMU/RunToTreat.txt b/NPAnalysis/TAMU/RunToTreat.txt new file mode 100644 index 000000000..3eb76adf7 --- /dev/null +++ b/NPAnalysis/TAMU/RunToTreat.txt @@ -0,0 +1,14 @@ +TTreeName + SimulatedTree +RootFileName + ../../Outputs/Simulation/Test1.root +% /data/e628X/e628/acquisition/run_root/run_1352.1.root +% /data/e628X/e628/acquisition/run_root/run_1353.0.root +% /data/e628X/e628/acquisition/run_root/run_1354.0.root +% /data/e628X/e628/acquisition/run_root/run_1354.1.root +% /data/e628X/e628/acquisition/run_root/run_1355.0.root +% /data/e628X/e628/acquisition/run_root/run_1356.0.root +% /data/e628X/e628/acquisition/run_root/run_1357.0.root +% /data/e628X/e628/acquisition/run_root/run_1357.1.root +% /data/e628X/e628/acquisition/run_root/run_1358.0.root +% /data/e628X/e628/acquisition/run_root/run_1358.1.root diff --git a/NPLib/Tiara/TTiaraHyballPhysics.cxx b/NPLib/Tiara/TTiaraHyballPhysics.cxx index 3faf224b0..453e8c9a1 100644 --- a/NPLib/Tiara/TTiaraHyballPhysics.cxx +++ b/NPLib/Tiara/TTiaraHyballPhysics.cxx @@ -428,7 +428,7 @@ void TTiaraHyballPhysics::ReadConfiguration(string Path){ getline(ConfigFile, LineBuffer); // cout << LineBuffer << endl; - if (LineBuffer.compare(0, 11, "TiaraHyball") == 0) + if (LineBuffer.compare(0, 5, "Tiara") == 0) ReadingStatus = true; while (ReadingStatus && !ConfigFile.eof()) { diff --git a/NPLib/VDetector/DetectorManager.cxx b/NPLib/VDetector/DetectorManager.cxx index 9027d06d8..030b87339 100644 --- a/NPLib/VDetector/DetectorManager.cxx +++ b/NPLib/VDetector/DetectorManager.cxx @@ -581,7 +581,7 @@ void DetectorManager::ReadConfigurationFile(string Path) { //////////////////////////////////////////// ////////// Search for Tiara Hyball ///////// //////////////////////////////////////////// - else if (LineBuffer.compare(0, 11, "TiaraHyball") == 0 && TiaraHyball == false) { + else if (LineBuffer.compare(0, 5, "Tiara") == 0 && TiaraHyball == false) { #ifdef INC_TIARA TiaraHyball = true; cout << "//////// Tiara Hyball ////////" << endl << endl; diff --git a/NPSimulation/AnnularS1/AnnularS1.cc b/NPSimulation/AnnularS1/AnnularS1.cc index 9aa7ec047..638858822 100644 --- a/NPSimulation/AnnularS1/AnnularS1.cc +++ b/NPSimulation/AnnularS1/AnnularS1.cc @@ -335,6 +335,7 @@ void AnnularS1::InitializeRootOutput(){ RootOutput *pAnalysis = RootOutput::getInstance(); TTree *pTree = pAnalysis->GetTree(); pTree->Branch("AnnularS1", "TS1Data", &m_Event); + pTree->SetBranchAddress("AnnularS1",&m_Event); } // Read sensitive part and fill the Root tree. @@ -393,9 +394,10 @@ void AnnularS1::ReadSensitive(const G4Event* event){ // Initilize the Scorer use to read out the sensitive volume void AnnularS1::InitializeScorers() { + bool already_exist = false; // Associate Scorer - m_Scorer = new G4MultiFunctionalDetector("AnnularS1_Scorer"); - + m_Scorer = CheckScorer("AnnularS1_Scorer",already_exist); + if(already_exist) return; G4VPrimitiveScorer* AnnularScorer = new SILICONSCORERS::PS_Silicon_Annular("AnnularS1_Scorer", diff --git a/NPSimulation/ComptonTelescope/ComptonTelescope.cc b/NPSimulation/ComptonTelescope/ComptonTelescope.cc index 2d23c0288..c1b14b2fb 100755 --- a/NPSimulation/ComptonTelescope/ComptonTelescope.cc +++ b/NPSimulation/ComptonTelescope/ComptonTelescope.cc @@ -614,6 +614,9 @@ void ComptonTelescope::InitializeRootOutput() TTree *pTree = pAnalysis->GetTree(); pTree->Branch("ComptonTelescope", "TComptonTelescopeData", &m_Event); pTree->Branch("ComptonTelescopeProcess", "TComptonTelescopeProcessData", &m_ProcessEvent); + pTree->SetBranchAddress("ComptonTelescope", &m_Event); + pTree->SetBranchAddress("ComptonTelescopeProcess", &m_ProcessEvent); + } @@ -972,8 +975,12 @@ void ComptonTelescope::InitializeMaterial() void ComptonTelescope::InitializeScorers() { + + bool already_exist = false; // First stage Associate Scorer - m_TrackerScorer = new G4MultiFunctionalDetector("TrackerScorerComptonTelescope"); + m_TrackerScorer = CheckScorer("TrackerScorerComptonTelescope",already_exist); + if(already_exist) return; + G4VPrimitiveScorer* TowerNbr = new ComptonTelescopeScorerTrackerTowerNumber("TowerNumber", "ComptonTelescopeTower", 0); G4VPrimitiveScorer* DSSSDNbr = new ComptonTelescopeScorerTrackerDSSSDNumber("DSSSDNumber", "ComptonTelescopeTower", 0); G4VPrimitiveScorer* Energy = new ComptonTelescopeScorerTrackerEnergy("Energy", "ComptonTelescopeTower", 0); diff --git a/NPSimulation/DummyDetector/DummyDetector.cc b/NPSimulation/DummyDetector/DummyDetector.cc index 5eca72772..84849c60a 100644 --- a/NPSimulation/DummyDetector/DummyDetector.cc +++ b/NPSimulation/DummyDetector/DummyDetector.cc @@ -317,6 +317,7 @@ void DUMMYDetector::InitializeRootOutput() RootOutput *pAnalysis = RootOutput::getInstance(); TTree *pTree = pAnalysis->GetTree(); pTree->Branch("DUMMYDetector", "TDUMMYDetectorData", &m_Event) ; + pTree->SetBranchAddress("DUMMYDetector", &m_Event) ; } // Read sensitive part and fill the Root tree. @@ -424,9 +425,10 @@ void DUMMYDetector::InitializeMaterial() //////////////////////////////////////////////////////////////// void DUMMYDetector::InitializeScorers() - { - m_DUMMYDetectorScorer = new G4MultiFunctionalDetector("DUMMYDetectorScorer") ; - G4SDManager::GetSDMpointer()->AddNewDetector(m_DUMMYDetectorScorer); + { + bool already_exist = false; + m_DUMMYDetectorScorer = CheckScorer("DUMMYDetectorScorer",already_exist) ; + if(already_exist) return; G4VPrimitiveScorer* DetNbr = new PSDetectorNumber("DUMMYDetectorNumber","DUMMYDetector", 0) ; G4VPrimitiveScorer* Energy = new PSEnergy("Energy","DUMMYDetector", 0); @@ -436,7 +438,7 @@ void DUMMYDetector::InitializeScorers() m_DUMMYDetectorScorer->RegisterPrimitive(DetNbr); m_DUMMYDetectorScorer->RegisterPrimitive(Energy); m_DUMMYDetectorScorer->RegisterPrimitive(Time); - - + + G4SDManager::GetSDMpointer()->AddNewDetector(m_DUMMYDetectorScorer); } //////////////////////////////////////////////////////////////// diff --git a/NPSimulation/SSSD/ThinSi.cc b/NPSimulation/SSSD/ThinSi.cc index 79184184d..33ae2498f 100644 --- a/NPSimulation/SSSD/ThinSi.cc +++ b/NPSimulation/SSSD/ThinSi.cc @@ -62,6 +62,7 @@ using namespace CLHEP; ThinSi::ThinSi(){ InitializeMaterial(); m_Event = new TSSSDData(); + m_StripScorer=0; } ThinSi::~ThinSi(){ diff --git a/NPSimulation/Tigress/Tigress.cc b/NPSimulation/Tigress/Tigress.cc index ecc02a84d..4ab25dba9 100644 --- a/NPSimulation/Tigress/Tigress.cc +++ b/NPSimulation/Tigress/Tigress.cc @@ -766,6 +766,7 @@ void Tigress::InitializeRootOutput(){ RootOutput *pAnalysis = RootOutput::getInstance(); TTree *pTree = pAnalysis->GetTree(); pTree->Branch("Tigress", "TTigressData", &m_Event) ; + pTree->SetBranchAddress("Tigress", &m_Event) ; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/NPSimulation/src/ParticleStack.cc b/NPSimulation/src/ParticleStack.cc index 38b38facf..f2138e614 100644 --- a/NPSimulation/src/ParticleStack.cc +++ b/NPSimulation/src/ParticleStack.cc @@ -25,7 +25,8 @@ // G4 headers #include "G4ParticleTable.hh" - +#include "G4RunManager.hh" +#include "G4Run.hh" // NPL #include "RootOutput.h" @@ -243,6 +244,7 @@ void ParticleStack::ShootAllParticle(G4Event* anEvent){ // Write the DEDX table for charged particle and // all material used in the simulation if( anEvent->GetEventID()==0 + && G4RunManager::GetRunManager()->GetCurrentRun()->GetRunID()==0 && m_ParticleStack[i].GetParticleDefinition()->GetPDGCharge()!=0){ MaterialManager::getInstance() ->WriteDEDXTable(m_ParticleStack[i].GetParticleDefinition(), diff --git a/NPSimulation/src/VDetector.cc b/NPSimulation/src/VDetector.cc index bba2ac02e..7e613a2dd 100644 --- a/NPSimulation/src/VDetector.cc +++ b/NPSimulation/src/VDetector.cc @@ -47,6 +47,9 @@ void VDetector::InitializeRootOutput(){ // if the branch does not exist yet, create it if (!pTree->GetBranch("InteractionCoordinates")) pTree->Branch("InteractionCoordinates", "TInteractionCoordinates", &ms_InterCoord); + + pTree->SetBranchAddress("InteractionCoordinates", &ms_InterCoord); + } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -- GitLab