diff --git a/Inputs/CrossSection/sn132dp_gs_10AMeV.txt b/Inputs/CrossSection/sn132dp_gs_10AMeV.txt new file mode 100644 index 0000000000000000000000000000000000000000..4ea5ac1698811a531fe3f90c136282e67847ca94 --- /dev/null +++ b/Inputs/CrossSection/sn132dp_gs_10AMeV.txt @@ -0,0 +1,60 @@ + 0.00 0.12987E+01 + 2.00 0.13107E+01 + 4.00 0.13432E+01 + 6.00 0.13873E+01 + 8.00 0.14303E+01 + 10.00 0.14582E+01 + 12.00 0.14589E+01 + 14.00 0.14241E+01 + 16.00 0.13510E+01 + 18.00 0.12428E+01 + 20.00 0.11084E+01 + 22.00 0.96070E+00 + 24.00 0.81470E+00 + 26.00 0.68441E+00 + 28.00 0.58040E+00 + 30.00 0.50792E+00 + 32.00 0.46624E+00 + 34.00 0.44942E+00 + 36.00 0.44805E+00 + 38.00 0.45164E+00 + 40.00 0.45092E+00 + 42.00 0.43948E+00 + 44.00 0.41464E+00 + 46.00 0.37733E+00 + 48.00 0.33118E+00 + 50.00 0.28132E+00 + 52.00 0.23304E+00 + 54.00 0.19069E+00 + 56.00 0.15700E+00 + 58.00 0.13289E+00 + 60.00 0.11769E+00 + 62.00 0.10955E+00 + 64.00 0.10604E+00 + 66.00 0.10471E+00 + 68.00 0.10349E+00 + 70.00 0.10094E+00 + 72.00 0.96332E-01 + 74.00 0.89567E-01 + 76.00 0.81048E-01 + 78.00 0.71469E-01 + 80.00 0.61629E-01 + 82.00 0.52274E-01 + 84.00 0.43994E-01 + 86.00 0.37166E-01 + 88.00 0.31948E-01 + 90.00 0.28292E-01 + 92.00 0.25992E-01 + 94.00 0.24739E-01 + 96.00 0.24178E-01 + 98.00 0.23960E-01 + 100.00 0.23779E-01 + 102.00 0.23406E-01 + 104.00 0.22697E-01 + 106.00 0.21599E-01 + 108.00 0.20135E-01 + 110.00 0.18393E-01 + 112.00 0.16495E-01 + 114.00 0.14580E-01 + 116.00 0.12778E-01 + 118.00 0.11196E-01 diff --git a/Inputs/DetectorConfiguration/gaspardFull.detector.eps b/Inputs/DetectorConfiguration/gaspardFull.detector.eps deleted file mode 100644 index faa2e59d2d7402f17ce7f8b62f57890f826635b1..0000000000000000000000000000000000000000 --- a/Inputs/DetectorConfiguration/gaspardFull.detector.eps +++ /dev/null @@ -1,892 +0,0 @@ -%!PS-Adobe-3.0 -%%Title: gaspardFull.detector -%%For: Nicolas de Séréville -%%Creator: a2ps version 4.14 -%%CreationDate: Tue Jun 16 13:26:30 2009 -%%BoundingBox: 24 24 588 768 -%%DocumentData: Clean7Bit -%%Orientation: Portrait -%%Pages: 4 -%%PageOrder: Ascend -%%DocumentMedia: Letter 612 792 0 () () -%%DocumentNeededResources: font Courier -%%+ font Courier-Bold -%%+ font Courier-BoldOblique -%%+ font Courier-Oblique -%%+ font Helvetica -%%+ font Helvetica-Bold -%%+ font Symbol -%%+ font Times-Bold -%%+ font Times-Roman -%%DocumentProcessColors: Black -%%DocumentSuppliedResources: procset a2ps-a2ps-hdr -%%+ procset a2ps-black+white-Prolog -%%+ encoding ISO-8859-1Encoding -%%EndComments -/a2psdict 200 dict def -a2psdict begin -%%BeginProlog -%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana -%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana -% Check PostScript language level. -/languagelevel where { - pop /gs_languagelevel languagelevel def -} { - /gs_languagelevel 1 def -} ifelse - -% EPSF import as in the Red Book -/BeginInclude { - /b4_Inc_state save def % Save state for cleanup - /dict_count countdictstack def % Count objects on dict stack - /op_count count 1 sub def % Count objects on operand stack - userdict begin - 0 setgray 0 setlinecap - 1 setlinewidth 0 setlinejoin - 10 setmiterlimit [ ] 0 setdash newpath - gs_languagelevel 1 ne { - false setstrokeadjust false setoverprint - } if -} bind def - -/EndInclude { - count op_count sub { pos } repeat % Clean up stacks - countdictstack dict_count sub { end } repeat - b4_Inc_state restore -} bind def - -/BeginEPSF { - BeginInclude - /showpage { } def -} bind def - -/EndEPSF { - EndInclude -} bind def - -% Page prefeed -/page_prefeed { % bool -> - - statusdict /prefeed known { - statusdict exch /prefeed exch put - } { - pop - } ifelse -} bind def - -/deffont { - findfont exch scalefont def -} bind def - -/reencode_font { - findfont reencode 2 copy definefont pop def -} bind def - -% Function c-show (str => -) -% centers text only according to x axis. -/c-show { - dup stringwidth pop - 2 div neg 0 rmoveto - show -} bind def - -% Function l-show (str => -) -% prints texts so that it ends at currentpoint -/l-show { - dup stringwidth pop neg - 0 - rmoveto show -} bind def - -% center-fit show (str w => -) -% show centered, and scale currentfont so that the width is less than w -/cfshow { - exch dup stringwidth pop - % If the title is too big, try to make it smaller - 3 2 roll 2 copy - gt - { % if, i.e. too big - exch div - currentfont exch scalefont setfont - } { % ifelse - pop pop - } - ifelse - c-show % center title -} bind def - -% Return the y size of the current font -% - => fontsize -/currentfontsize { - currentfont /FontMatrix get 3 get 1000 mul -} bind def - -% reencode the font -% <encoding-vector> <fontdict> -> <newfontdict> -/reencode { %def - dup length 5 add dict begin - { %forall - % <vector> <key> <val> - 1 index /FID ne - { def }{ pop pop } ifelse - } forall - /Encoding exch def % - - - % Use the font's bounding box to determine the ascent, descent, - % and overall height; don't forget that these values have to be - % transformed using the font's matrix. - % We use `load' because sometimes BBox is executable, sometimes not. - % Since we need 4 numbers an not an array avoid BBox from being executed - /FontBBox load aload pop - FontMatrix transform /Ascent exch def pop - FontMatrix transform /Descent exch def pop - /FontHeight Ascent Descent sub def - - % Get the underline position and thickness if they're defined. - % Use 1 if they are not defined. - currentdict /FontInfo 2 copy known - { get - /UnderlinePosition 2 copy % <FontInfo> /UP <FontInfo> /UP - 2 copy known - { get }{ pop pop 1 } ifelse - 0 exch FontMatrix transform exch pop - def % <FontInfo> - - /UnderlineThickness 2 copy % <FontInfo> /UT <FontInfo> /UT - 2 copy known - { get }{ pop pop 1 } ifelse - 0 exch FontMatrix transform exch pop - def % <FontInfo> - pop % - - }{ pop pop - } ifelse - - currentdict - end -} bind def - -% Function print line number (<string> # -) -/# { - gsave - sx cw mul neg 2 div 0 rmoveto - f# setfont - c-show - grestore -} bind def - -% -------- Some routines to enlight plain b/w printings --------- - -% Underline -% width -- -/dounderline { - currentpoint - gsave - moveto - 0 currentfont /Descent get currentfontsize mul rmoveto - 0 rlineto - stroke - grestore -} bind def - -% Underline a string -% string -- -/dounderlinestring { - stringwidth pop - dounderline -} bind def - -/UL { - /ul exch store -} bind def - -% Draw a box of WIDTH wrt current font -% width -- -/dobox { - currentpoint - gsave - newpath - moveto - 0 currentfont /Descent get currentfontsize mul rmoveto - dup 0 rlineto - 0 currentfont /FontHeight get currentfontsize mul rlineto - neg 0 rlineto - closepath - stroke - grestore -} bind def - -/BX { - /bx exch store -} bind def - -% Box a string -% string -- -/doboxstring { - stringwidth pop - dobox -} bind def - -% -% ------------- Color routines --------------- -% -/FG /setrgbcolor load def - -% Draw the background -% width -- -/dobackground { - currentpoint - gsave - newpath - moveto - 0 currentfont /Descent get currentfontsize mul rmoveto - dup 0 rlineto - 0 currentfont /FontHeight get currentfontsize mul rlineto - neg 0 rlineto - closepath - bgcolor aload pop setrgbcolor - fill - grestore -} bind def - -% Draw bg for a string -% string -- -/dobackgroundstring { - stringwidth pop - dobackground -} bind def - - -/BG { - dup /bg exch store - { mark 4 1 roll ] /bgcolor exch store } if -} bind def - - -/Show { - bg { dup dobackgroundstring } if - ul { dup dounderlinestring } if - bx { dup doboxstring } if - show -} bind def - -% Function T(ab), jumps to the n-th tabulation in the current line -/T { - cw mul x0 add - bg { dup currentpoint pop sub dobackground } if - ul { dup currentpoint pop sub dounderline } if - bx { dup currentpoint pop sub dobox } if - y0 moveto -} bind def - -% Function n: move to the next line -/n { - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -% Function N: show and move to the next line -/N { - Show - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -/S { - Show -} bind def - -%%BeginResource: procset a2ps-a2ps-hdr 2.0 2 -%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana -%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana -% Function title: prints page header. -% <ct> <rt> <lt> are passed as argument -/title { - % 1. Draw the background - x v get y v get moveto - gsave - 0 th 2 div neg rmoveto - th setlinewidth - 0.95 setgray - pw 0 rlineto stroke - grestore - % 2. Border it - gsave - 0.7 setlinewidth - pw 0 rlineto - 0 th neg rlineto - pw neg 0 rlineto - closepath stroke - grestore - % stk: ct rt lt - x v get y v get th sub 1 add moveto -%%IncludeResource: font Helvetica - fHelvetica fnfs 0.8 mul scalefont setfont - % 3. The left title - gsave - dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack - fnfs 0.8 mul hm rmoveto - show % left title - grestore - exch - % stk: ct ltw rt - % 4. the right title - gsave - dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack - dup - pw exch stringwidth pop fnfs 0.8 mul add sub - hm - rmoveto - show % right title - grestore - % stk: ct ltw rtw - % 5. the center title - gsave - pw 3 1 roll - % stk: ct pw ltw rtw - 3 copy - % Move to the center of the left room - sub add 2 div hm rmoveto - % What is the available space in here? - add sub fnfs 0.8 mul sub fnfs 0.8 mul sub - % stk: ct space_left -%%IncludeResource: font Helvetica-Bold - fHelvetica-Bold fnfs scalefont setfont - cfshow - grestore -} bind def - -% Function border: prints virtual page border -/border { %def - gsave % print four sides - 0 setgray - x v get y v get moveto - 0.7 setlinewidth % of the square - pw 0 rlineto - 0 ph neg rlineto - pw neg 0 rlineto - closepath stroke - grestore -} bind def - -% Function water: prints a water mark in background -/water { %def - gsave - scx scy moveto rotate -%%IncludeResource: font Times-Bold - fTimes-Bold 100 scalefont setfont - .97 setgray - dup stringwidth pop 2 div neg -50 rmoveto - show - grestore -} bind def - -% Function rhead: prints the right header -/rhead { %def - lx ly moveto - fHelvetica fnfs 0.8 mul scalefont setfont - l-show -} bind def - -% Function footer (cf rf lf -> -) -/footer { - fHelvetica fnfs 0.8 mul scalefont setfont - dx dy moveto - show - - snx sny moveto - l-show - - fnx fny moveto - c-show -} bind def -%%EndResource -%%BeginResource: procset a2ps-black+white-Prolog 2.0 1 - -% Function T(ab), jumps to the n-th tabulation in the current line -/T { - cw mul x0 add y0 moveto -} bind def - -% Function n: move to the next line -/n { %def - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -% Function N: show and move to the next line -/N { - Show - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -/S { - Show -} bind def - -/p { - false UL - false BX - fCourier bfs scalefont setfont - Show -} bind def - -/sy { - false UL - false BX - fSymbol bfs scalefont setfont - Show -} bind def - -/k { - false UL - false BX - fCourier-Oblique bfs scalefont setfont - Show -} bind def - -/K { - false UL - false BX - fCourier-Bold bfs scalefont setfont - Show -} bind def - -/c { - false UL - false BX - fCourier-Oblique bfs scalefont setfont - Show -} bind def - -/C { - false UL - false BX - fCourier-BoldOblique bfs scalefont setfont - Show -} bind def - -/l { - false UL - false BX - fHelvetica bfs scalefont setfont - Show -} bind def - -/L { - false UL - false BX - fHelvetica-Bold bfs scalefont setfont - Show -} bind def - -/str{ - false UL - false BX - fTimes-Roman bfs scalefont setfont - Show -} bind def - -/e{ - false UL - true BX - fHelvetica-Bold bfs scalefont setfont - Show -} bind def - -%%EndResource -%%EndProlog -%%BeginSetup -%%IncludeResource: font Courier -%%IncludeResource: font Courier-Oblique -%%IncludeResource: font Courier-Bold -%%IncludeResource: font Times-Roman -%%IncludeResource: font Symbol -%%IncludeResource: font Courier-BoldOblique -%%BeginResource: encoding ISO-8859-1Encoding -/ISO-8859-1Encoding [ -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright -/parenleft /parenright /asterisk /plus /comma /minus /period /slash -/zero /one /two /three /four /five /six /seven -/eight /nine /colon /semicolon /less /equal /greater /question -/at /A /B /C /D /E /F /G -/H /I /J /K /L /M /N /O -/P /Q /R /S /T /U /V /W -/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore -/quoteleft /a /b /c /d /e /f /g -/h /i /j /k /l /m /n /o -/p /q /r /s /t /u /v /w -/x /y /z /braceleft /bar /braceright /asciitilde /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/space /exclamdown /cent /sterling /currency /yen /brokenbar /section -/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron -/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet -/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown -/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla -/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis -/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply -/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls -/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla -/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis -/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide -/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis -] def -%%EndResource -% Initialize page description variables. -/sh 792 def -/sw 612 def -/llx 24 def -/urx 588 def -/ury 768 def -/lly 24 def -/#copies 1 def -/th 20.000000 def -/fnfs 15 def -/bfs 11.547912 def -/cw 6.928747 def - -% Dictionary for ISO-8859-1 support -/iso1dict 8 dict begin - /fCourier ISO-8859-1Encoding /Courier reencode_font - /fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font - /fCourier-BoldOblique ISO-8859-1Encoding /Courier-BoldOblique reencode_font - /fCourier-Oblique ISO-8859-1Encoding /Courier-Oblique reencode_font - /fHelvetica ISO-8859-1Encoding /Helvetica reencode_font - /fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font - /fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font - /fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font -currentdict end def -/bgcolor [ 0 0 0 ] def -/bg false def -/ul false def -/bx false def -% The font for line numbering -/f# /Helvetica findfont bfs .6 mul scalefont def -/fSymbol /Symbol findfont def -/hm fnfs 0.25 mul def -/pw - cw 81.400000 mul -def -/ph - 689.410325 th add -def -/pmw 0 def -/pmh 0 def -/v 0 def -/x [ - 0 -] def -/y [ - pmh ph add 0 mul ph add -] def -/scx sw 2 div def -/scy sh 2 div def -/snx urx def -/sny lly 2 add def -/dx llx def -/dy sny def -/fnx scx def -/fny dy def -/lx snx def -/ly ury fnfs 0.8 mul sub def -/sx 0 def -/tab 8 def -/x0 0 def -/y0 0 def -%%EndSetup - -%%Page: (1) 1 -%%BeginPageSetup -/pagesave save def -%%EndPageSetup -iso1dict begin -gsave -llx lly 12 add translate -/v 0 store -/x0 x v get 4.850123 add sx cw mul add store -/y0 y v get bfs th add sub store -x0 y0 moveto -(%%%%%%%%%%Detector%%%%%%%%%%%%%%%%%%%) p n -(%%Position and distance given in mm) N -(%%Angle given in degree) N -(%% using the data from the experimental mesurement) N -(%% special care is given for the X Y direction) N -(%% NOTATTION USED IN THE FOLLOWING:) N -(%%) N -(%% X1_Y1 ) S 16 T () S 24 T (--> X:1 Y:1) N -(%% X128_Y1 ) S 16 T () S 24 T (--> X:128 Y:1) N -(%% X1_Y128 ) S 16 T () S 24 T (--> X:1 Y:128) N -(%% X128_Y128 ) S 16 T (--> X:128 Y:128) N -(%%Option: 0,1 for Si SiLi and CSI) N -(%%Option: all or sensible for VISualisation) N -(% 1.2 12.371134021) N -(% 2 20.618556701) N -(% 30 309.278350515) N -() N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1) N -(GeneralTarget) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1) N -(Target) N -() S 8 T (THICKNESS= 309.278350515) N -() S 8 T (RADIUS=) S 16 T (7.5) N -() S 8 T (MATERIAL= CD2) N -() S 8 T (X= 0) N -() S 8 T (Y= 0) N -() S 8 T (Z= 0) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) S 40 T () N -(Gaspard) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Barrel) N -(GPDSquare ) N -() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (49.1) S 32 T (66.08) S 40 T (-135.41) N -() S 8 T (X128_Y1=) S 24 T (-48.9) S 32 T (66.22) S 40 T (-135.41) N -() S 8 T (X1_Y128=) S 24 T (-48.8) S 32 T (135.51) S 40 T (-66.1) N -() S 8 T (X128_Y128=) S 24 T (49.2) S 32 T (135.36) S 40 T (-66.1) N -() S 8 T (FIRSTSTAGE= 1) N -() S 8 T (SECONDSTAGE= 0) N -() S 8 T (THIRDSTAGE= 0) N -() S 8 T (VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2) N -(GPDSquare ) N -() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (-66.04) S 32 T (61.23) S 40 T (-130.4) N -() S 8 T (X128_Y1=) S 24 T (-135.4) S 32 T (12.32) S 40 T (-81.4) N -() S 8 T (X1_Y128=) S 24 T (-65.94) S 32 T (130.51) S 40 T (-61.09) N -() S 8 T (X128_Y128=) S 24 T (-135.3) S 32 T (81.6) S 40 T (-12.1) N -() S 8 T (FIRSTSTAGE= 1) N -() S 8 T (SECONDSTAGE= 0) N -() S 8 T (THIRDSTAGE= 0) N -() S 8 T (VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3) N -(GPDSquare ) N -() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (-142.52) S 32 T (0.22) S 40 T (-69.3) N -() S 8 T (X128_Y1=) S 24 T (-142.62) S 32 T (-69.09) S 40 T (-0.01) N -() S 8 T (X1_Y128=) S 24 T (-142.42) S 32 T (69.5) S 40 T (0.01) N -() S 8 T (X128_Y128=) S 24 T (-142.52) S 32 T (0.19) S 40 T (69.3) N -() S 8 T (FIRSTSTAGE= 1) N -() S 8 T (SECONDSTAGE= 0) N -() S 8 T (THIRDSTAGE= 0) N -() S 8 T (VIS= all) N -(gaspardFull.detector) (Page 1/4) (Jun 08, 09 10:39) title -border -grestore -(Printed by Nicolas de S\303\251r\303\251ville) rhead -() (1/4) (Tuesday June 16, 2009) footer -end % of iso1dict -pagesave restore -showpage -%%Page: (2) 2 -%%BeginPageSetup -/pagesave save def -%%EndPageSetup -iso1dict begin -gsave -llx lly 12 add translate -/v 0 store -/x0 x v get 4.850123 add sx cw mul add store -/y0 y v get bfs th add sub store -x0 y0 moveto -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4) p n -(GPDSquare ) N -() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (-135.54) S 32 T (-81.21) S 40 T (12.1) N -() S 8 T (X128_Y1=) S 24 T (-66.31) S 32 T (-130.32) S 40 T (61.09) N -() S 8 T (X1_Y128=) S 24 T (-135.44) S 32 T (-11.93) S 40 T (81.4) N -() S 8 T (X128_Y128=) S 24 T (-66.21) S 32 T (-61.04) S 40 T (130.4) N -() S 8 T (FIRSTSTAGE= 1) N -() S 8 T (SECONDSTAGE= 0) N -() S 8 T (THIRDSTAGE= 0) N -() S 8 T (VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5) N -(GPDSquare ) N -() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (-49.2) S 32 T (-135.36) S 40 T (66.1) N -() S 8 T (X128_Y1=) S 24 T (48.8) S 32 T (-135.51) S 40 T (66.1) N -() S 8 T (X1_Y128=) S 24 T (48.9) S 32 T (-66.22) S 40 T (135.41) N -() S 8 T (X128_Y128=) S 24 T (-49.1) S 32 T (-66.08) S 40 T (135.41) N -() S 8 T (FIRSTSTAGE= 1) N -() S 8 T (SECONDSTAGE= 0) N -() S 8 T (THIRDSTAGE= 0) N -() S 8 T (VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6) N -(GPDSquare ) N -() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (65.94) S 32 T (-130.51) S 40 T (61.09) N -() S 8 T (X128_Y1=) S 24 T (135.3) S 32 T (-81.6) S 40 T (12.1) N -() S 8 T (X1_Y128=) S 24 T (135.4) S 32 T (-12.32) S 40 T (81.4) N -() S 8 T (X128_Y128=) S 24 T (66.04) S 32 T (-61.23) S 40 T (130.4) N -() S 8 T (FIRSTSTAGE= 1) N -() S 8 T (SECONDSTAGE= 0) N -() S 8 T (THIRDSTAGE= 0) N -() S 8 T (VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7) N -(GPDSquare ) N -() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (142.42) S 32 T (-69.5) S 40 T (-0.01) N -() S 8 T (X128_Y1=) S 24 T (142.52) S 32 T (-0.19) S 40 T (-69.3) N -() S 8 T (X1_Y128=) S 24 T (142.52) S 32 T (-0.22) S 40 T (69.3) N -() S 8 T (X128_Y128=) S 24 T (142.62) S 32 T (69.09) S 40 T (0.01) N -() S 8 T (FIRSTSTAGE= 1) N -() S 8 T (SECONDSTAGE= 0) N -() S 8 T (THIRDSTAGE= 0) N -() S 8 T (VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8) N -(GPDSquare ) N -() S 8 T (X1_Y1=) S 16 T ( ) S 24 T (135.44) S 32 T (11.93) S 40 T (-81.4) N -() S 8 T (X128_Y1=) S 24 T (66.21) S 32 T (61.04) S 40 T (-130.4) N -() S 8 T (X1_Y128=) S 24 T (66.31) S 32 T (130.32) S 40 T (-61.09) N -() S 8 T (X128_Y128=) S 24 T (135.54) S 32 T (81.21) S 40 T ( -12.1) N -() S 8 T (FIRSTSTAGE= 1) N -() S 8 T (SECONDSTAGE= 0) N -() S 8 T (THIRDSTAGE= 0) N -() S 8 T (VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Cap Back) N -(GPDSquare) N -( X1_Y1= -12.17 -38.15 -153.33) N -( X128_Y1= -81.53 -87.06 -104.34) N -( X1_Y128= -61.04 45.57 -138.96) N -( X128_Y128= -130.41 -3.34 -89.97) N -( FIRSTSTAGE= 1) N -( SECONDSTAGE= 0) N -( THIRDSTAGE= 0) N -(gaspardFull.detector) (Page 2/4) (Jun 08, 09 10:39) title -border -grestore -(Printed by Nicolas de S\303\251r\303\251ville) rhead -() (Tuesday June 16, 2009) (2/4) footer -end % of iso1dict -pagesave restore -showpage -%%Page: (3) 3 -%%BeginPageSetup -/pagesave save def -%%EndPageSetup -iso1dict begin -gsave -llx lly 12 add translate -/v 0 store -/x0 x v get 4.850123 add sx cw mul add store -/y0 y v get bfs th add sub store -x0 y0 moveto -( VIS= all) p n -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2) N -(GPDSquare) N -( X1_Y1= -12.33 -153.3 -38.22) N -( X128_Y1= -61.31 -138.89 45.43) N -( X1_Y128= -130.54 -89.78 -3.56) N -( X128_Y128= -81.56 -104.19 -87.21) N -( FIRSTSTAGE= 1) N -( SECONDSTAGE= 0) N -( THIRDSTAGE= 0) N -( VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3) N -(GPDSquare) N -( X1_Y1= 11.89 -153.33 -38.22) N -( X128_Y1= 81.26 -104.42 -87.21) N -( X1_Y128= 60.91 -139.07 45.43) N -( X128_Y128= 130.28 -130.28 -3.56) N -( FIRSTSTAGE= 1) N -( SECONDSTAGE= 0) N -( THIRDSTAGE= 0) N -( VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4) N -(GPDSquare) N -( X1_Y1= 130.4 -3.72 -89.97) N -( X128_Y1= 81.28 -87.29 -104.34) N -( X1_Y128= 12.06 -38.18 -153.33) N -( X128_Y128= 61.18 45.39 -138.96) N -( FIRSTSTAGE= 1) N -( SECONDSTAGE= 0) N -( THIRDSTAGE= 0) N -( VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5) N -(GPDSquare) N -( X1_Y1= 69.15 -100.86 -100.79) N -( X128_Y1= -0.22 -149.76 -51.8) N -( X1_Y128= -0.08 -51.75 -149.78) N -( X128_Y128= -69.44 -100.66 -100.79) N -( FIRSTSTAGE= 1) N -( SECONDSTAGE= 0) N -( THIRDSTAGE= 0) N -( VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Cap Front) N -(GPDSquare ) N -( X1_Y1= -60.91 139.07 -45.43) N -( X128_Y1= -130.28 90.16 3.6) N -( X1_Y128= -81.26 104.42 87.21) N -( X128_Y128= -11.89 153.33 38.22) N -( FIRSTSTAGE= 1) N -( SECONDSTAGE= 0) N -( THIRDSTAGE= 0) N -( VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2) N -(GPDSquare ) N -( X1_Y1= -81.28 87.29 104.34) N -( X128_Y1= -130.40 3.72 89.97) N -( X1_Y128= -12.06 38.18 153.33) N -( X128_Y128= -61.18 -45.39 138.96) N -( FIRSTSTAGE= 1) N -( SECONDSTAGE= 0) N -(gaspardFull.detector) (Page 3/4) (Jun 08, 09 10:39) title -border -grestore -(Printed by Nicolas de S\303\251r\303\251ville) rhead -() (3/4) (Tuesday June 16, 2009) footer -end % of iso1dict -pagesave restore -showpage -%%Page: (4) 4 -%%BeginPageSetup -/pagesave save def -%%EndPageSetup -iso1dict begin -gsave -llx lly 12 add translate -/v 0 store -/x0 x v get 4.850123 add sx cw mul add store -/y0 y v get bfs th add sub store -x0 y0 moveto -( THIRDSTAGE= 0) p n -( VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3) N -(GPDSquare ) N -( X1_Y1= 81.53 87.06 104.34) N -( X128_Y1= 12.17 38.15 153.33) N -( X1_Y128= 61.04 -45.57 138.96) N -( X128_Y128= 130.411 3.34 89.97) N -( FIRSTSTAGE= 1) N -( SECONDSTAGE= 0) N -( THIRDSTAGE= 0) N -( VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4) N -(GPDSquare) N -( X1_Y1= 61.31 138.89 -45.43) N -( X128_Y1= 12.33 153.30 38.22) N -( X1_Y128= 81.56 104.19 87.21) N -( X128_Y128= 130.54 89.78 3.56) N -( FIRSTSTAGE= 1) N -( SECONDSTAGE= 0) N -( THIRDSTAGE= 0) N -( VIS= all) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5) N -(GPDSquare) N -( X1_Y1= 0.22 149.76 51.80) N -( X128_Y1= -69.15 100.86 100.79) N -( X1_Y128= 0.08 51.75 149.78) N -( X128_Y128= 69.44 100.66 100.79) N -( FIRSTSTAGE= 1) N -( SECONDSTAGE= 0) N -( THIRDSTAGE= 0) N -( VIS= all) N -(gaspardFull.detector) (Page 4/4) (Jun 08, 09 10:39) title -border -grestore -(Printed by Nicolas de S\303\251r\303\251ville) rhead -() (Tuesday June 16, 2009) (4/4) footer -end % of iso1dict -pagesave restore -showpage - -%%Trailer -end -%%EOF diff --git a/Inputs/DetectorConfiguration/gaspardTestSpheric.detector b/Inputs/DetectorConfiguration/gaspardTestSpheric.detector index c2459a56b75799b6f75ef8c265f4111d9b617454..5465fea0426fe14a09e3bedd7c97de63b6382e72 100644 --- a/Inputs/DetectorConfiguration/gaspardTestSpheric.detector +++ b/Inputs/DetectorConfiguration/gaspardTestSpheric.detector @@ -9,8 +9,8 @@ GeneralTarget %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Target - THICKNESS= 1 - RADIUS= 45 + THICKNESS= 0.0001 + RADIUS= 12 MATERIAL= CD2 X= 0 Y= 0 diff --git a/Inputs/DetectorConfiguration/gaspardBarrel.detector b/Inputs/DetectorConfiguration/gaspardV1Barrel.detector similarity index 100% rename from Inputs/DetectorConfiguration/gaspardBarrel.detector rename to Inputs/DetectorConfiguration/gaspardV1Barrel.detector diff --git a/Inputs/DetectorConfiguration/gaspardCapBack.detector b/Inputs/DetectorConfiguration/gaspardV1EndCapBack.detector similarity index 100% rename from Inputs/DetectorConfiguration/gaspardCapBack.detector rename to Inputs/DetectorConfiguration/gaspardV1EndCapBack.detector diff --git a/Inputs/DetectorConfiguration/gaspardCapFront.detector b/Inputs/DetectorConfiguration/gaspardV1EndCapFront.detector similarity index 100% rename from Inputs/DetectorConfiguration/gaspardCapFront.detector rename to Inputs/DetectorConfiguration/gaspardV1EndCapFront.detector diff --git a/Inputs/DetectorConfiguration/gaspardFull.detector b/Inputs/DetectorConfiguration/gaspardV1Full.detector similarity index 100% rename from Inputs/DetectorConfiguration/gaspardFull.detector rename to Inputs/DetectorConfiguration/gaspardV1Full.detector diff --git a/Inputs/DetectorConfiguration/gaspardV2CapBack.detector b/Inputs/DetectorConfiguration/gaspardV2EndCapBack.detector similarity index 100% rename from Inputs/DetectorConfiguration/gaspardV2CapBack.detector rename to Inputs/DetectorConfiguration/gaspardV2EndCapBack.detector diff --git a/Inputs/DetectorConfiguration/gaspardV2CapFront.detector b/Inputs/DetectorConfiguration/gaspardV2EndCapFront.detector similarity index 100% rename from Inputs/DetectorConfiguration/gaspardV2CapFront.detector rename to Inputs/DetectorConfiguration/gaspardV2EndCapFront.detector diff --git a/Inputs/DetectorConfiguration/gaspardV2test.detector b/Inputs/DetectorConfiguration/gaspardV2test.detector deleted file mode 100644 index 3360566ba592e764540b29419687230c8016fcc2..0000000000000000000000000000000000000000 --- a/Inputs/DetectorConfiguration/gaspardV2test.detector +++ /dev/null @@ -1,48 +0,0 @@ -%%%%%%%%%%Detector%%%%%%%%%%%%%%%%%%% -%%Position and distance given in mm -%%Angle given in degree -%% using the data from the experimental mesurement -%% special care is given for the X Y direction -%% NOTATTION USED IN THE FOLLOWING: -%% -%% X1_Y1 --> X:1 Y:1 -%% X128_Y1 --> X:128 Y:1 -%% X1_Y128 --> X:1 Y:128 -%% X128_Y128 --> X:128 Y:128 -%%Option: 0,1 for Si SiLi and CSI -%%Option: all or sensible for VISualisation -% 1.2 12.371134021 -% 2 20.618556701 -% 30 309.278350515 - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 -GeneralTarget -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 -Target - THICKNESS= 0.001 - RADIUS= 7.5 - MATERIAL= CD2 - X= 0 - Y= 0 - Z= 0 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -GaspardTracker -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Annular Back -GPDAnnular - Z= -200 - RMIN= 16 - RMAX= 52 - FIRSTSTAGE= 1 - SECONDSTAGE= 0 - THIRDSTAGE= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 End-Cap Back -GPDTrapezoid - X1_Y1= 45.64 34.43 -146.50 - X128_Y1= 91.09 79.82 -91.36 - X1_Y128= 120.84 8.00 -91.36 - X128_Y128= 56.59 8.00 -146.50 - FIRSTSTAGE= 1 - SECONDSTAGE= 0 - THIRDSTAGE= 1 - VIS= all diff --git a/Inputs/DetectorConfiguration/gaspardV2trap.detector b/Inputs/DetectorConfiguration/gaspardV2trap.detector deleted file mode 100644 index b1dbaab6d9513bfa3d4c209fc570166ac1a2c262..0000000000000000000000000000000000000000 --- a/Inputs/DetectorConfiguration/gaspardV2trap.detector +++ /dev/null @@ -1,59 +0,0 @@ -%%%%%%%%%%Detector%%%%%%%%%%%%%%%%%%% -%%Position and distance given in mm -%%Angle given in degree -%% using the data from the experimental mesurement -%% special care is given for the X Y direction -%% NOTATTION USED IN THE FOLLOWING: -%% -%% X1_Y1 --> X:1 Y:1 -%% X128_Y1 --> X:128 Y:1 -%% X1_Y128 --> X:1 Y:128 -%% X128_Y128 --> X:128 Y:128 -%%Option: 0,1 for Si SiLi and CSI -%%Option: all or sensible for VISualisation -% 1.2 12.371134021 -% 2 20.618556701 -% 30 309.278350515 - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 -GeneralTarget -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 -Target - THICKNESS= 0.001 - RADIUS= 7.5 - MATERIAL= CD2 - X= 0 - Y= 0 - Z= 0 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -GaspardTracker -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Barrel -GPDSquare - X1_Y1= 49.1 66.08 -135.41 - X128_Y1= -48.9 66.22 -135.41 - X1_Y128= -48.8 135.51 -66.1 - X128_Y128= 49.2 135.36 -66.1 - FIRSTSTAGE= 1 - SECONDSTAGE= 0 - THIRDSTAGE= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2 -GPDTrapezoid - THETA= 0 - PHI= 0 - R= 20 - BETA= 0 - FIRSTSTAGE= 0 - SECONDSTAGE= 0 - THIRDSTAGE= 0 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 Barrel -GPDTrapezoid - X1_Y1= 122.02 14.32 -4.45 - X128_Y1= 122.02 38.86 76.58 - X1_Y128= 122.02 -38.88 76.58 - X128_Y128= 122.02 -14.29 -4.45 - FIRSTSTAGE= 0 - SECONDSTAGE= 0 - THIRDSTAGE= 0 - VIS= all diff --git a/Inputs/DetectorConfiguration/testPerformance.detector b/Inputs/DetectorConfiguration/testPerformance.detector deleted file mode 100644 index fed3091d0c5f7ea14fae1ac046921b4bbf6f145c..0000000000000000000000000000000000000000 --- a/Inputs/DetectorConfiguration/testPerformance.detector +++ /dev/null @@ -1,365 +0,0 @@ -%Fichier de configuration manip E225 -%%%%%%%%%%%Target%%%%%%%%%%%%%%%%%%%1 -%Thickness in micrometer -%Radius in mm -%Temperature in K, Pressure in bar -%Material name according to the target library - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -GeneralTarget -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -Target - THICKNESS= 1 - RADIUS= 45 - MATERIAL= CD2 - X= 0 - Y= 0 - Z= 0 -%%%%%%%%%%Detector%%%%%%%%%%%%%%%%%%% -%%Position and R given in mm -%%Angle given in degree -%%Option: 0,1 for Si SiLi and CsI -%%Option: all or sensible for VISualisation - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -MUST2Array -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 -M2Telescope - THETA= 0 - PHI= 0 - R= 300 - BETA= 0 -0 -0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2 -M2Telescope - THETA= 30 - PHI= 0 - R= 300 - BETA= 0 -0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3 -M2Telescope - THETA= 60 - PHI= 0 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4 -M2Telescope - THETA= 90 - PHI= 0 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 -M2Telescope - THETA= 120 - PHI= 0 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 150 - PHI= 0 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7 -M2Telescope - THETA= 180 - PHI= 0 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8 -M2Telescope - THETA= -30 - PHI= 0 - R= 300 - BETA= 0 -0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%9 -M2Telescope - THETA= -60 - PHI= 0 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%10 -M2Telescope - THETA= -90 - PHI= 0 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%11 -M2Telescope - THETA= -120 - PHI= 0 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%12 -M2Telescope - THETA= -150 - PHI= 0 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2 -M2Telescope - THETA= 30 - PHI= 90 - R= 300 - BETA= 0 -0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3 -M2Telescope - THETA= 60 - PHI= 90 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4 -M2Telescope - THETA= 90 - PHI= 90 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 -M2Telescope - THETA= 120 - PHI= 90 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 150 - PHI= 90 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2 -M2Telescope - THETA= 30 - PHI= -90 - R= 300 - BETA= 0 -0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3 -M2Telescope - THETA= 60 - PHI= -90 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4 -M2Telescope - THETA= 90 - PHI= -90 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 -M2Telescope - THETA= 120 - PHI= -90 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 150 - PHI= -90 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 45 - PHI= 45 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 90 - PHI= 45 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 135 - PHI= 45 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 45 - PHI= -45 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 90 - PHI= -45 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 135 - PHI= -45 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 45 - PHI= -135 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 90 - PHI= -135 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 135 - PHI= -135 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 45 - PHI= 135 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 90 - PHI= 135 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6 -M2Telescope - THETA= 135 - PHI= 135 - R= 300 - BETA= 0 0 0 - SI= 1 - SILI= 0 - CSI= 1 - VIS= all diff --git a/Inputs/EventGenerator/132Sndp.reaction b/Inputs/EventGenerator/132Sndp.reaction new file mode 100644 index 0000000000000000000000000000000000000000..5bdb077e4d6f9240fe93c625687c05caedc0baf3 --- /dev/null +++ b/Inputs/EventGenerator/132Sndp.reaction @@ -0,0 +1,21 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%% Reaction file for 60Fe(d,p)61Fe reaction %%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%Beam energy given in MeV ; Excitation in MeV ; emmitance in rad +Transfert + Beam= 132Sn + Target= 2H + Light= 1H + Heavy= 133Sn + ExcitationEnergy= 0.0 + BeamEnergy= 1320 + BeamEnergySpread= 0 + SigmaX= 2 + SigmaY= 2 + SigmaThetaX= 0 + SigmaPhiY= 0 + CrossSectionPath= sn132dp_gs_10AMeV.txt + ShootLight= 1 + ShootHeavy= 0 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Inputs/EventGenerator/60Fe.reaction.eps b/Inputs/EventGenerator/60Fe.reaction.eps deleted file mode 100644 index b2dbcb72bd280cb65bceb5f53c9330e0efd9e54f..0000000000000000000000000000000000000000 --- a/Inputs/EventGenerator/60Fe.reaction.eps +++ /dev/null @@ -1,649 +0,0 @@ -%!PS-Adobe-3.0 -%%Title: 60Fe.reaction -%%For: Nicolas de Séréville -%%Creator: a2ps version 4.14 -%%CreationDate: Tue Jun 16 11:57:57 2009 -%%BoundingBox: 24 24 588 768 -%%DocumentData: Clean7Bit -%%Orientation: Landscape -%%Pages: 1 -%%PageOrder: Ascend -%%DocumentMedia: Letter 612 792 0 () () -%%DocumentNeededResources: font Courier -%%+ font Courier-Bold -%%+ font Courier-BoldOblique -%%+ font Courier-Oblique -%%+ font Helvetica -%%+ font Helvetica-Bold -%%+ font Symbol -%%+ font Times-Bold -%%+ font Times-Roman -%%DocumentProcessColors: Black -%%DocumentSuppliedResources: procset a2ps-a2ps-hdr -%%+ procset a2ps-black+white-Prolog -%%+ encoding ISO-8859-1Encoding -%%EndComments -/a2psdict 200 dict def -a2psdict begin -%%BeginProlog -%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana -%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana -% Check PostScript language level. -/languagelevel where { - pop /gs_languagelevel languagelevel def -} { - /gs_languagelevel 1 def -} ifelse - -% EPSF import as in the Red Book -/BeginInclude { - /b4_Inc_state save def % Save state for cleanup - /dict_count countdictstack def % Count objects on dict stack - /op_count count 1 sub def % Count objects on operand stack - userdict begin - 0 setgray 0 setlinecap - 1 setlinewidth 0 setlinejoin - 10 setmiterlimit [ ] 0 setdash newpath - gs_languagelevel 1 ne { - false setstrokeadjust false setoverprint - } if -} bind def - -/EndInclude { - count op_count sub { pos } repeat % Clean up stacks - countdictstack dict_count sub { end } repeat - b4_Inc_state restore -} bind def - -/BeginEPSF { - BeginInclude - /showpage { } def -} bind def - -/EndEPSF { - EndInclude -} bind def - -% Page prefeed -/page_prefeed { % bool -> - - statusdict /prefeed known { - statusdict exch /prefeed exch put - } { - pop - } ifelse -} bind def - -/deffont { - findfont exch scalefont def -} bind def - -/reencode_font { - findfont reencode 2 copy definefont pop def -} bind def - -% Function c-show (str => -) -% centers text only according to x axis. -/c-show { - dup stringwidth pop - 2 div neg 0 rmoveto - show -} bind def - -% Function l-show (str => -) -% prints texts so that it ends at currentpoint -/l-show { - dup stringwidth pop neg - 0 - rmoveto show -} bind def - -% center-fit show (str w => -) -% show centered, and scale currentfont so that the width is less than w -/cfshow { - exch dup stringwidth pop - % If the title is too big, try to make it smaller - 3 2 roll 2 copy - gt - { % if, i.e. too big - exch div - currentfont exch scalefont setfont - } { % ifelse - pop pop - } - ifelse - c-show % center title -} bind def - -% Return the y size of the current font -% - => fontsize -/currentfontsize { - currentfont /FontMatrix get 3 get 1000 mul -} bind def - -% reencode the font -% <encoding-vector> <fontdict> -> <newfontdict> -/reencode { %def - dup length 5 add dict begin - { %forall - % <vector> <key> <val> - 1 index /FID ne - { def }{ pop pop } ifelse - } forall - /Encoding exch def % - - - % Use the font's bounding box to determine the ascent, descent, - % and overall height; don't forget that these values have to be - % transformed using the font's matrix. - % We use `load' because sometimes BBox is executable, sometimes not. - % Since we need 4 numbers an not an array avoid BBox from being executed - /FontBBox load aload pop - FontMatrix transform /Ascent exch def pop - FontMatrix transform /Descent exch def pop - /FontHeight Ascent Descent sub def - - % Get the underline position and thickness if they're defined. - % Use 1 if they are not defined. - currentdict /FontInfo 2 copy known - { get - /UnderlinePosition 2 copy % <FontInfo> /UP <FontInfo> /UP - 2 copy known - { get }{ pop pop 1 } ifelse - 0 exch FontMatrix transform exch pop - def % <FontInfo> - - /UnderlineThickness 2 copy % <FontInfo> /UT <FontInfo> /UT - 2 copy known - { get }{ pop pop 1 } ifelse - 0 exch FontMatrix transform exch pop - def % <FontInfo> - pop % - - }{ pop pop - } ifelse - - currentdict - end -} bind def - -% Function print line number (<string> # -) -/# { - gsave - sx cw mul neg 2 div 0 rmoveto - f# setfont - c-show - grestore -} bind def - -% -------- Some routines to enlight plain b/w printings --------- - -% Underline -% width -- -/dounderline { - currentpoint - gsave - moveto - 0 currentfont /Descent get currentfontsize mul rmoveto - 0 rlineto - stroke - grestore -} bind def - -% Underline a string -% string -- -/dounderlinestring { - stringwidth pop - dounderline -} bind def - -/UL { - /ul exch store -} bind def - -% Draw a box of WIDTH wrt current font -% width -- -/dobox { - currentpoint - gsave - newpath - moveto - 0 currentfont /Descent get currentfontsize mul rmoveto - dup 0 rlineto - 0 currentfont /FontHeight get currentfontsize mul rlineto - neg 0 rlineto - closepath - stroke - grestore -} bind def - -/BX { - /bx exch store -} bind def - -% Box a string -% string -- -/doboxstring { - stringwidth pop - dobox -} bind def - -% -% ------------- Color routines --------------- -% -/FG /setrgbcolor load def - -% Draw the background -% width -- -/dobackground { - currentpoint - gsave - newpath - moveto - 0 currentfont /Descent get currentfontsize mul rmoveto - dup 0 rlineto - 0 currentfont /FontHeight get currentfontsize mul rlineto - neg 0 rlineto - closepath - bgcolor aload pop setrgbcolor - fill - grestore -} bind def - -% Draw bg for a string -% string -- -/dobackgroundstring { - stringwidth pop - dobackground -} bind def - - -/BG { - dup /bg exch store - { mark 4 1 roll ] /bgcolor exch store } if -} bind def - - -/Show { - bg { dup dobackgroundstring } if - ul { dup dounderlinestring } if - bx { dup doboxstring } if - show -} bind def - -% Function T(ab), jumps to the n-th tabulation in the current line -/T { - cw mul x0 add - bg { dup currentpoint pop sub dobackground } if - ul { dup currentpoint pop sub dounderline } if - bx { dup currentpoint pop sub dobox } if - y0 moveto -} bind def - -% Function n: move to the next line -/n { - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -% Function N: show and move to the next line -/N { - Show - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -/S { - Show -} bind def - -%%BeginResource: procset a2ps-a2ps-hdr 2.0 2 -%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana -%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana -% Function title: prints page header. -% <ct> <rt> <lt> are passed as argument -/title { - % 1. Draw the background - x v get y v get moveto - gsave - 0 th 2 div neg rmoveto - th setlinewidth - 0.95 setgray - pw 0 rlineto stroke - grestore - % 2. Border it - gsave - 0.7 setlinewidth - pw 0 rlineto - 0 th neg rlineto - pw neg 0 rlineto - closepath stroke - grestore - % stk: ct rt lt - x v get y v get th sub 1 add moveto -%%IncludeResource: font Helvetica - fHelvetica fnfs 0.8 mul scalefont setfont - % 3. The left title - gsave - dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack - fnfs 0.8 mul hm rmoveto - show % left title - grestore - exch - % stk: ct ltw rt - % 4. the right title - gsave - dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack - dup - pw exch stringwidth pop fnfs 0.8 mul add sub - hm - rmoveto - show % right title - grestore - % stk: ct ltw rtw - % 5. the center title - gsave - pw 3 1 roll - % stk: ct pw ltw rtw - 3 copy - % Move to the center of the left room - sub add 2 div hm rmoveto - % What is the available space in here? - add sub fnfs 0.8 mul sub fnfs 0.8 mul sub - % stk: ct space_left -%%IncludeResource: font Helvetica-Bold - fHelvetica-Bold fnfs scalefont setfont - cfshow - grestore -} bind def - -% Function border: prints virtual page border -/border { %def - gsave % print four sides - 0 setgray - x v get y v get moveto - 0.7 setlinewidth % of the square - pw 0 rlineto - 0 ph neg rlineto - pw neg 0 rlineto - closepath stroke - grestore -} bind def - -% Function water: prints a water mark in background -/water { %def - gsave - scx scy moveto rotate -%%IncludeResource: font Times-Bold - fTimes-Bold 100 scalefont setfont - .97 setgray - dup stringwidth pop 2 div neg -50 rmoveto - show - grestore -} bind def - -% Function rhead: prints the right header -/rhead { %def - lx ly moveto - fHelvetica fnfs 0.8 mul scalefont setfont - l-show -} bind def - -% Function footer (cf rf lf -> -) -/footer { - fHelvetica fnfs 0.8 mul scalefont setfont - dx dy moveto - show - - snx sny moveto - l-show - - fnx fny moveto - c-show -} bind def -%%EndResource -%%BeginResource: procset a2ps-black+white-Prolog 2.0 1 - -% Function T(ab), jumps to the n-th tabulation in the current line -/T { - cw mul x0 add y0 moveto -} bind def - -% Function n: move to the next line -/n { %def - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -% Function N: show and move to the next line -/N { - Show - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -/S { - Show -} bind def - -/p { - false UL - false BX - fCourier bfs scalefont setfont - Show -} bind def - -/sy { - false UL - false BX - fSymbol bfs scalefont setfont - Show -} bind def - -/k { - false UL - false BX - fCourier-Oblique bfs scalefont setfont - Show -} bind def - -/K { - false UL - false BX - fCourier-Bold bfs scalefont setfont - Show -} bind def - -/c { - false UL - false BX - fCourier-Oblique bfs scalefont setfont - Show -} bind def - -/C { - false UL - false BX - fCourier-BoldOblique bfs scalefont setfont - Show -} bind def - -/l { - false UL - false BX - fHelvetica bfs scalefont setfont - Show -} bind def - -/L { - false UL - false BX - fHelvetica-Bold bfs scalefont setfont - Show -} bind def - -/str{ - false UL - false BX - fTimes-Roman bfs scalefont setfont - Show -} bind def - -/e{ - false UL - true BX - fHelvetica-Bold bfs scalefont setfont - Show -} bind def - -%%EndResource -%%EndProlog -%%BeginSetup -%%IncludeResource: font Courier -%%IncludeResource: font Courier-Oblique -%%IncludeResource: font Courier-Bold -%%IncludeResource: font Times-Roman -%%IncludeResource: font Symbol -%%IncludeResource: font Courier-BoldOblique -%%BeginResource: encoding ISO-8859-1Encoding -/ISO-8859-1Encoding [ -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright -/parenleft /parenright /asterisk /plus /comma /minus /period /slash -/zero /one /two /three /four /five /six /seven -/eight /nine /colon /semicolon /less /equal /greater /question -/at /A /B /C /D /E /F /G -/H /I /J /K /L /M /N /O -/P /Q /R /S /T /U /V /W -/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore -/quoteleft /a /b /c /d /e /f /g -/h /i /j /k /l /m /n /o -/p /q /r /s /t /u /v /w -/x /y /z /braceleft /bar /braceright /asciitilde /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/space /exclamdown /cent /sterling /currency /yen /brokenbar /section -/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron -/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet -/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown -/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla -/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis -/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply -/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls -/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla -/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis -/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide -/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis -] def -%%EndResource -% Initialize page description variables. -/sh 612 def -/sw 792 def -/llx 24 def -/urx 768 def -/ury 588 def -/lly 24 def -/#copies 1 def -/th 15.000000 def -/fnfs 11 def -/bfs 7.493857 def -/cw 4.496314 def - -% Dictionary for ISO-8859-1 support -/iso1dict 8 dict begin - /fCourier ISO-8859-1Encoding /Courier reencode_font - /fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font - /fCourier-BoldOblique ISO-8859-1Encoding /Courier-BoldOblique reencode_font - /fCourier-Oblique ISO-8859-1Encoding /Courier-Oblique reencode_font - /fHelvetica ISO-8859-1Encoding /Helvetica reencode_font - /fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font - /fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font - /fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font -currentdict end def -/bgcolor [ 0 0 0 ] def -/bg false def -/ul false def -/bx false def -% The font for line numbering -/f# /Helvetica findfont bfs .6 mul scalefont def -/fSymbol /Symbol findfont def -/hm fnfs 0.25 mul def -/pw - cw 81.400000 mul -def -/ph - 522.321860 th add -def -/pmw urx llx sub pw 2 mul sub 1 div def -/pmh 0 def -/v 0 def -/x [ - 0 - dup pmw add pw add -] def -/y [ - pmh ph add 0 mul ph add - dup -] def -/scx sw 2 div def -/scy sh 2 div def -/snx urx def -/sny lly 2 add def -/dx llx def -/dy sny def -/fnx scx def -/fny dy def -/lx snx def -/ly ury fnfs 0.8 mul sub def -/sx 0 def -/tab 8 def -/x0 0 def -/y0 0 def -%%EndSetup - -%%Page: (1) 1 -%%BeginPageSetup -/pagesave save def -sh 0 translate 90 rotate -%%EndPageSetup -iso1dict begin -gsave -llx lly 12 add translate -/v 0 store -/x0 x v get 3.147420 add sx cw mul add store -/y0 y v get bfs th add sub store -x0 y0 moveto -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) p n -(%%%%%%%%% Reaction file for 11Li\(d,3He\)10He reaction %%%%%%%%%) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) N -(%%Beam energy given in MeV ; Excitation in MeV) N -(Transfert) N -() S 8 T (Beam= 60Fe) N -() S 8 T (Target= 2H) N -() S 8 T (Light= 1H) N -() S 8 T (Heavy= 61Fe) N -() S 8 T (ExcitationEnergy= 2.0) N -() S 8 T (BeamEnergy= 800) N -() S 8 T (BeamEnergySpread= 0) N -() S 8 T (BeamFWHMX= 0.6232) N -() S 8 T (BeamFWHMY= 0.9069) N -() S 8 T (BeamSpreadX= 0) N -() S 8 T (CrossSectionPath= ni69_g7_01.n) N -() S 8 T (ShootLight= 1) N -() S 8 T (ShootHeavy= 0) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) N -() N -(60Fe.reaction) (Page 1/1) (May 26, 09 12:13) title -border -grestore -(Printed by Nicolas de S\303\251r\303\251ville) rhead -(60Fe.reaction) (1/1) (Tuesday June 16, 2009) footer -end % of iso1dict -pagesave restore -showpage - -%%Trailer -end -%%EOF diff --git a/Inputs/EventGenerator/60Fe.reaction2.eps b/Inputs/EventGenerator/60Fe.reaction2.eps deleted file mode 100644 index b6b041300fa239a4aca651a2b3edb411f3ce935d..0000000000000000000000000000000000000000 --- a/Inputs/EventGenerator/60Fe.reaction2.eps +++ /dev/null @@ -1,646 +0,0 @@ -%!PS-Adobe-3.0 -%%Title: 60Fe.reaction -%%For: Nicolas de Séréville -%%Creator: a2ps version 4.14 -%%CreationDate: Tue Jun 16 13:24:05 2009 -%%BoundingBox: 24 24 588 768 -%%DocumentData: Clean7Bit -%%Orientation: Portrait -%%Pages: 1 -%%PageOrder: Ascend -%%DocumentMedia: Letter 612 792 0 () () -%%DocumentNeededResources: font Courier -%%+ font Courier-Bold -%%+ font Courier-BoldOblique -%%+ font Courier-Oblique -%%+ font Helvetica -%%+ font Helvetica-Bold -%%+ font Symbol -%%+ font Times-Bold -%%+ font Times-Roman -%%DocumentProcessColors: Black -%%DocumentSuppliedResources: procset a2ps-a2ps-hdr -%%+ procset a2ps-black+white-Prolog -%%+ encoding ISO-8859-1Encoding -%%EndComments -/a2psdict 200 dict def -a2psdict begin -%%BeginProlog -%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana -%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana -% Check PostScript language level. -/languagelevel where { - pop /gs_languagelevel languagelevel def -} { - /gs_languagelevel 1 def -} ifelse - -% EPSF import as in the Red Book -/BeginInclude { - /b4_Inc_state save def % Save state for cleanup - /dict_count countdictstack def % Count objects on dict stack - /op_count count 1 sub def % Count objects on operand stack - userdict begin - 0 setgray 0 setlinecap - 1 setlinewidth 0 setlinejoin - 10 setmiterlimit [ ] 0 setdash newpath - gs_languagelevel 1 ne { - false setstrokeadjust false setoverprint - } if -} bind def - -/EndInclude { - count op_count sub { pos } repeat % Clean up stacks - countdictstack dict_count sub { end } repeat - b4_Inc_state restore -} bind def - -/BeginEPSF { - BeginInclude - /showpage { } def -} bind def - -/EndEPSF { - EndInclude -} bind def - -% Page prefeed -/page_prefeed { % bool -> - - statusdict /prefeed known { - statusdict exch /prefeed exch put - } { - pop - } ifelse -} bind def - -/deffont { - findfont exch scalefont def -} bind def - -/reencode_font { - findfont reencode 2 copy definefont pop def -} bind def - -% Function c-show (str => -) -% centers text only according to x axis. -/c-show { - dup stringwidth pop - 2 div neg 0 rmoveto - show -} bind def - -% Function l-show (str => -) -% prints texts so that it ends at currentpoint -/l-show { - dup stringwidth pop neg - 0 - rmoveto show -} bind def - -% center-fit show (str w => -) -% show centered, and scale currentfont so that the width is less than w -/cfshow { - exch dup stringwidth pop - % If the title is too big, try to make it smaller - 3 2 roll 2 copy - gt - { % if, i.e. too big - exch div - currentfont exch scalefont setfont - } { % ifelse - pop pop - } - ifelse - c-show % center title -} bind def - -% Return the y size of the current font -% - => fontsize -/currentfontsize { - currentfont /FontMatrix get 3 get 1000 mul -} bind def - -% reencode the font -% <encoding-vector> <fontdict> -> <newfontdict> -/reencode { %def - dup length 5 add dict begin - { %forall - % <vector> <key> <val> - 1 index /FID ne - { def }{ pop pop } ifelse - } forall - /Encoding exch def % - - - % Use the font's bounding box to determine the ascent, descent, - % and overall height; don't forget that these values have to be - % transformed using the font's matrix. - % We use `load' because sometimes BBox is executable, sometimes not. - % Since we need 4 numbers an not an array avoid BBox from being executed - /FontBBox load aload pop - FontMatrix transform /Ascent exch def pop - FontMatrix transform /Descent exch def pop - /FontHeight Ascent Descent sub def - - % Get the underline position and thickness if they're defined. - % Use 1 if they are not defined. - currentdict /FontInfo 2 copy known - { get - /UnderlinePosition 2 copy % <FontInfo> /UP <FontInfo> /UP - 2 copy known - { get }{ pop pop 1 } ifelse - 0 exch FontMatrix transform exch pop - def % <FontInfo> - - /UnderlineThickness 2 copy % <FontInfo> /UT <FontInfo> /UT - 2 copy known - { get }{ pop pop 1 } ifelse - 0 exch FontMatrix transform exch pop - def % <FontInfo> - pop % - - }{ pop pop - } ifelse - - currentdict - end -} bind def - -% Function print line number (<string> # -) -/# { - gsave - sx cw mul neg 2 div 0 rmoveto - f# setfont - c-show - grestore -} bind def - -% -------- Some routines to enlight plain b/w printings --------- - -% Underline -% width -- -/dounderline { - currentpoint - gsave - moveto - 0 currentfont /Descent get currentfontsize mul rmoveto - 0 rlineto - stroke - grestore -} bind def - -% Underline a string -% string -- -/dounderlinestring { - stringwidth pop - dounderline -} bind def - -/UL { - /ul exch store -} bind def - -% Draw a box of WIDTH wrt current font -% width -- -/dobox { - currentpoint - gsave - newpath - moveto - 0 currentfont /Descent get currentfontsize mul rmoveto - dup 0 rlineto - 0 currentfont /FontHeight get currentfontsize mul rlineto - neg 0 rlineto - closepath - stroke - grestore -} bind def - -/BX { - /bx exch store -} bind def - -% Box a string -% string -- -/doboxstring { - stringwidth pop - dobox -} bind def - -% -% ------------- Color routines --------------- -% -/FG /setrgbcolor load def - -% Draw the background -% width -- -/dobackground { - currentpoint - gsave - newpath - moveto - 0 currentfont /Descent get currentfontsize mul rmoveto - dup 0 rlineto - 0 currentfont /FontHeight get currentfontsize mul rlineto - neg 0 rlineto - closepath - bgcolor aload pop setrgbcolor - fill - grestore -} bind def - -% Draw bg for a string -% string -- -/dobackgroundstring { - stringwidth pop - dobackground -} bind def - - -/BG { - dup /bg exch store - { mark 4 1 roll ] /bgcolor exch store } if -} bind def - - -/Show { - bg { dup dobackgroundstring } if - ul { dup dounderlinestring } if - bx { dup doboxstring } if - show -} bind def - -% Function T(ab), jumps to the n-th tabulation in the current line -/T { - cw mul x0 add - bg { dup currentpoint pop sub dobackground } if - ul { dup currentpoint pop sub dounderline } if - bx { dup currentpoint pop sub dobox } if - y0 moveto -} bind def - -% Function n: move to the next line -/n { - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -% Function N: show and move to the next line -/N { - Show - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -/S { - Show -} bind def - -%%BeginResource: procset a2ps-a2ps-hdr 2.0 2 -%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana -%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana -% Function title: prints page header. -% <ct> <rt> <lt> are passed as argument -/title { - % 1. Draw the background - x v get y v get moveto - gsave - 0 th 2 div neg rmoveto - th setlinewidth - 0.95 setgray - pw 0 rlineto stroke - grestore - % 2. Border it - gsave - 0.7 setlinewidth - pw 0 rlineto - 0 th neg rlineto - pw neg 0 rlineto - closepath stroke - grestore - % stk: ct rt lt - x v get y v get th sub 1 add moveto -%%IncludeResource: font Helvetica - fHelvetica fnfs 0.8 mul scalefont setfont - % 3. The left title - gsave - dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack - fnfs 0.8 mul hm rmoveto - show % left title - grestore - exch - % stk: ct ltw rt - % 4. the right title - gsave - dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack - dup - pw exch stringwidth pop fnfs 0.8 mul add sub - hm - rmoveto - show % right title - grestore - % stk: ct ltw rtw - % 5. the center title - gsave - pw 3 1 roll - % stk: ct pw ltw rtw - 3 copy - % Move to the center of the left room - sub add 2 div hm rmoveto - % What is the available space in here? - add sub fnfs 0.8 mul sub fnfs 0.8 mul sub - % stk: ct space_left -%%IncludeResource: font Helvetica-Bold - fHelvetica-Bold fnfs scalefont setfont - cfshow - grestore -} bind def - -% Function border: prints virtual page border -/border { %def - gsave % print four sides - 0 setgray - x v get y v get moveto - 0.7 setlinewidth % of the square - pw 0 rlineto - 0 ph neg rlineto - pw neg 0 rlineto - closepath stroke - grestore -} bind def - -% Function water: prints a water mark in background -/water { %def - gsave - scx scy moveto rotate -%%IncludeResource: font Times-Bold - fTimes-Bold 100 scalefont setfont - .97 setgray - dup stringwidth pop 2 div neg -50 rmoveto - show - grestore -} bind def - -% Function rhead: prints the right header -/rhead { %def - lx ly moveto - fHelvetica fnfs 0.8 mul scalefont setfont - l-show -} bind def - -% Function footer (cf rf lf -> -) -/footer { - fHelvetica fnfs 0.8 mul scalefont setfont - dx dy moveto - show - - snx sny moveto - l-show - - fnx fny moveto - c-show -} bind def -%%EndResource -%%BeginResource: procset a2ps-black+white-Prolog 2.0 1 - -% Function T(ab), jumps to the n-th tabulation in the current line -/T { - cw mul x0 add y0 moveto -} bind def - -% Function n: move to the next line -/n { %def - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -% Function N: show and move to the next line -/N { - Show - /y0 y0 bfs sub store - x0 y0 moveto -} bind def - -/S { - Show -} bind def - -/p { - false UL - false BX - fCourier bfs scalefont setfont - Show -} bind def - -/sy { - false UL - false BX - fSymbol bfs scalefont setfont - Show -} bind def - -/k { - false UL - false BX - fCourier-Oblique bfs scalefont setfont - Show -} bind def - -/K { - false UL - false BX - fCourier-Bold bfs scalefont setfont - Show -} bind def - -/c { - false UL - false BX - fCourier-Oblique bfs scalefont setfont - Show -} bind def - -/C { - false UL - false BX - fCourier-BoldOblique bfs scalefont setfont - Show -} bind def - -/l { - false UL - false BX - fHelvetica bfs scalefont setfont - Show -} bind def - -/L { - false UL - false BX - fHelvetica-Bold bfs scalefont setfont - Show -} bind def - -/str{ - false UL - false BX - fTimes-Roman bfs scalefont setfont - Show -} bind def - -/e{ - false UL - true BX - fHelvetica-Bold bfs scalefont setfont - Show -} bind def - -%%EndResource -%%EndProlog -%%BeginSetup -%%IncludeResource: font Courier -%%IncludeResource: font Courier-Oblique -%%IncludeResource: font Courier-Bold -%%IncludeResource: font Times-Roman -%%IncludeResource: font Symbol -%%IncludeResource: font Courier-BoldOblique -%%BeginResource: encoding ISO-8859-1Encoding -/ISO-8859-1Encoding [ -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright -/parenleft /parenright /asterisk /plus /comma /minus /period /slash -/zero /one /two /three /four /five /six /seven -/eight /nine /colon /semicolon /less /equal /greater /question -/at /A /B /C /D /E /F /G -/H /I /J /K /L /M /N /O -/P /Q /R /S /T /U /V /W -/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore -/quoteleft /a /b /c /d /e /f /g -/h /i /j /k /l /m /n /o -/p /q /r /s /t /u /v /w -/x /y /z /braceleft /bar /braceright /asciitilde /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/space /exclamdown /cent /sterling /currency /yen /brokenbar /section -/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron -/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet -/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown -/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla -/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis -/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply -/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls -/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla -/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis -/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide -/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis -] def -%%EndResource -% Initialize page description variables. -/sh 792 def -/sw 612 def -/llx 24 def -/urx 588 def -/ury 768 def -/lly 24 def -/#copies 1 def -/th 20.000000 def -/fnfs 15 def -/bfs 11.547912 def -/cw 6.928747 def - -% Dictionary for ISO-8859-1 support -/iso1dict 8 dict begin - /fCourier ISO-8859-1Encoding /Courier reencode_font - /fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font - /fCourier-BoldOblique ISO-8859-1Encoding /Courier-BoldOblique reencode_font - /fCourier-Oblique ISO-8859-1Encoding /Courier-Oblique reencode_font - /fHelvetica ISO-8859-1Encoding /Helvetica reencode_font - /fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font - /fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font - /fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font -currentdict end def -/bgcolor [ 0 0 0 ] def -/bg false def -/ul false def -/bx false def -% The font for line numbering -/f# /Helvetica findfont bfs .6 mul scalefont def -/fSymbol /Symbol findfont def -/hm fnfs 0.25 mul def -/pw - cw 81.400000 mul -def -/ph - 689.410325 th add -def -/pmw 0 def -/pmh 0 def -/v 0 def -/x [ - 0 -] def -/y [ - pmh ph add 0 mul ph add -] def -/scx sw 2 div def -/scy sh 2 div def -/snx urx def -/sny lly 2 add def -/dx llx def -/dy sny def -/fnx scx def -/fny dy def -/lx snx def -/ly ury fnfs 0.8 mul sub def -/sx 0 def -/tab 8 def -/x0 0 def -/y0 0 def -%%EndSetup - -%%Page: (1) 1 -%%BeginPageSetup -/pagesave save def -%%EndPageSetup -iso1dict begin -gsave -llx lly 12 add translate -/v 0 store -/x0 x v get 4.850123 add sx cw mul add store -/y0 y v get bfs th add sub store -x0 y0 moveto -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) p n -(%%%%%%%%% Reaction file for 11Li\(d,3He\)10He reaction %%%%%%%%%) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) N -(%%Beam energy given in MeV ; Excitation in MeV) N -(Transfert) N -() S 8 T (Beam= 60Fe) N -() S 8 T (Target= 2H) N -() S 8 T (Light= 1H) N -() S 8 T (Heavy= 61Fe) N -() S 8 T (ExcitationEnergy= 2.0) N -() S 8 T (BeamEnergy= 800) N -() S 8 T (BeamEnergySpread= 0) N -() S 8 T (BeamFWHMX= 0.6232) N -() S 8 T (BeamFWHMY= 0.9069) N -() S 8 T (BeamSpreadX= 0) N -() S 8 T (CrossSectionPath= ni69_g7_01.n) N -() S 8 T (ShootLight= 1) N -() S 8 T (ShootHeavy= 0) N -(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%) N -() N -(60Fe.reaction) (Page 1/1) (May 26, 09 12:13) title -border -grestore -(Printed by Nicolas de S\303\251r\303\251ville) rhead -() (1/1) (Tuesday June 16, 2009) footer -end % of iso1dict -pagesave restore -showpage - -%%Trailer -end -%%EOF diff --git a/NPAnalysis/Gaspard/CrossSection.c b/NPAnalysis/Gaspard/CrossSection.c deleted file mode 100644 index 5640efb446f5464a98882b5a40ea015ef2745171..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/CrossSection.c +++ /dev/null @@ -1,121 +0,0 @@ -{ - gROOT->Reset(); - gStyle->SetOptStat(1); - gStyle->SetPalette(51,0); - /////////////////////// - /////////////////////// - - double Pi = 3.141592654 ; - -///Usefull myAngleInRad * RadToDeg = myAngle In deg :p - double DegToRad = Pi/180. ; // 2Pi/360 = Pi/180 - double RadToDeg = 180./Pi ; // 360/2Pi = 180/Pi - -TFile *file0 = TFile::Open("./Result/myResult.root"); - - cEA = new TCanvas("cEA","Kinematic Line" ,100,100,900,900); - hEA->Draw("COLZ"); - cEx = new TCanvas("cEx","Excitation Energy" ,100,100,600,600); - hEx->Draw(); - - cEHexa = new TCanvas("cEHexa","Hexaneutron bound Energy" ,100,100,600,600); - hEHexa->Draw(); - - cCM = new TCanvas("cCm" , "Cross Section (CM)" , 100 , 100 , 900, 900) ; - hThetaCM->Draw(); - - vector<double> relative_error; - double NumberOfHitX=0; - ifstream efficFile; - efficFile.open("./17cm.efficiency"); - string EffString, ThetaString; - double xxx = hThetaLabCM->GetNbinsY(); - - for(Int_t i = 1 ; i < hThetaLabCM->GetNbinsX() ; i++) - { - // Calculate Relative error - NumberOfHitX=hThetaLabCM->Integral(i, i, 1, xxx ); - if(NumberOfHitX!=0)relative_error.push_back( 1. / ( sqrt(NumberOfHitX) ) ); - else {relative_error.push_back(0) ;} - } - - for(Int_t j = 1 ; j < hThetaLabCM->GetNbinsY() ; j++) - { - //Efficacity correction - efficFile >> ThetaString >> EffString; - double Eff = atoi(EffString.c_str()); - for(Int_t i = 1 ; i < hThetaLabCM->GetNbinsX() ; i++) - { - if (Eff!=0) - { - double pipo = (hThetaLabCM->GetCellContent(i,j))/(Eff) ; - hThetaLabCM->SetCellContent( i, j, pipo ); - } - else hThetaLabCM->SetCellContent( i, j, 0 ); - } - } - - TH1D* hCrossSection = new TH1D(); - hCrossSection = hThetaLabCM->ProjectionX("Cross Section", 0, -1, "") ; - - for(Int_t i = 1 ; i < hCrossSection->GetNbinsX() ; i++) - { - // Calculate Error - hCrossSection->SetBinContent(i, - NumberOfHitX=hCrossSection->GetBinContent(i)/(sin(hCrossSection->GetBinCenter(i)*DegToRad) )); - double error=NumberOfHitX*relative_error[i]; - hCrossSection->SetBinError(i,error); - } - - hCrossSection->Draw(); - - string Path="../Data/CrossSection/11Li(d,3He)10He.txt"; - ifstream CrossSectionFile; - CrossSectionFile.open(Path.c_str()); - if( CrossSectionFile.is_open() ) - cout << " file " << Path << " loading " << endl; - else{ - cout << " Error, no file " << Path << " found" << endl; return;} - - - //Normalisation: - //Int_t Maximum_Bin = hCrossSection->GetMaximumBin() ; - Int_t Maximum_Bin = 3 ; - Double_t Maximum_theta = hCrossSection->GetBinCenter(Maximum_Bin) ; - Double_t Bin_Width = hCrossSection->GetBinWidth(Maximum_Bin) ; - Double_t Maximum = hCrossSection->GetBinContent(Maximum_Bin) ; - - Double_t Normalisation_Factor = 0 ; - Double_t ThetaVal = 0 ; - Double_t CSVal = 0 ; - TMarker marker ; - string theta,CS ; - - while( !CrossSectionFile.eof() && ThetaVal<60) - { - CrossSectionFile >> theta >> CS ; - - ThetaVal=atof(theta.c_str()) ; - - if(ThetaVal>(Maximum_theta-Bin_Width/1000) && ThetaVal<(Maximum_theta+Bin_Width/1000) ) - { - CSVal=atof(CS.c_str()) ; - Normalisation_Factor = Maximum/CSVal; - } - } - CrossSectionFile.close(); - CrossSectionFile.open(Path.c_str()); - - //Reading Cross Section - - ThetaVal=0; - while( !CrossSectionFile.eof() && ThetaVal<60) - { - - CrossSectionFile >> theta >> CS ; - CSVal=atof(CS.c_str()) ; - ThetaVal=atof(theta.c_str()) ; - marker->DrawMarker(ThetaVal,CSVal*Normalisation_Factor ) ; - } - -} diff --git a/NPAnalysis/Gaspard/Makefile b/NPAnalysis/Gaspard/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..215794b2868b46e37601e95c6dedb6b1f84d7c11 --- /dev/null +++ b/NPAnalysis/Gaspard/Makefile @@ -0,0 +1,10 @@ + +Analyse: + make -C ./src + +clean: + make clean -C ./src + +distclean: + make clean -C ./src + rm Analysis diff --git a/NPAnalysis/Gaspard/Result/myResult.root b/NPAnalysis/Gaspard/Result/myResult.root deleted file mode 100644 index eb7aa8c9045793132a6c1c12c390e3b06e31eeb7..0000000000000000000000000000000000000000 Binary files a/NPAnalysis/Gaspard/Result/myResult.root and /dev/null differ diff --git a/NPAnalysis/Gaspard/Result/myResult_newGPD.root b/NPAnalysis/Gaspard/Result/myResult_newGPD.root deleted file mode 100644 index ab4d9b0461ed828ac52fcd4fab9f366248c0950e..0000000000000000000000000000000000000000 Binary files a/NPAnalysis/Gaspard/Result/myResult_newGPD.root and /dev/null differ diff --git a/NPAnalysis/Gaspard/RunToTreat.txt b/NPAnalysis/Gaspard/RunToTreat.txt new file mode 100644 index 0000000000000000000000000000000000000000..008354fd1b9fa2d1c15477a463be1e2bf76a6b7e --- /dev/null +++ b/NPAnalysis/Gaspard/RunToTreat.txt @@ -0,0 +1,4 @@ +TTreeName + SimulatedTree +RootFileName + ../../Outputs/Simulation/mySimul.root diff --git a/NPAnalysis/Gaspard/TimeOfFlight.c b/NPAnalysis/Gaspard/TimeOfFlight.c deleted file mode 100644 index 916932fc04c540832f14c0c4cf14b4889d8972be..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/TimeOfFlight.c +++ /dev/null @@ -1,14 +0,0 @@ -{ - - gROOT->Reset(); - gStyle->SetOptStat(1); - gStyle->SetPalette(51,0); - //gStyle->SetPalette(1); - /////////////////////// - /////////////////////// -TFile *file0 = TFile::Open("./Result/myResult.root"); - - TCanvas* cTOF = new TCanvas("cTOF","Time of Flight" ,10,10,800,800); - hTOF1234->Draw("COLZ"); - -} diff --git a/NPAnalysis/Gaspard/affich.c b/NPAnalysis/Gaspard/affich.c deleted file mode 100644 index 2c8537ea62be3b91ec797d490b630dd8f4ecc6eb..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/affich.c +++ /dev/null @@ -1,291 +0,0 @@ -{ - - gROOT->Reset(); - gStyle->SetOptStat(1); - //gStyle->SetPalette(51,0); - gStyle->SetPalette(1); - /////////////////////// - /////////////////////// -TFile *file0 = TFile::Open("./Result/myResult.root"); - -/* TCanvas* cTOF = new TCanvas("cTOF","Time of Flight" ,10,10,800,800); - cTOF->Divide(3,2); - - cTOF->cd(1); - hTOF1->Draw("COLZ"); - - cTOF->cd(2); - hTOF2->Draw("COLZ"); - - cTOF->cd(3); - hTOF3->Draw("COLZ"); - - cTOF->cd(4); - hTOF4->Draw("COLZ"); - - cTOF->cd(5); - hTOF5->Draw("COLZ"); */ - - double Pi = 3.141592654 ; - double DegToRad = Pi/180. ; // 2Pi/360 = Pi/180 - -/* vector<double> relative_error; - double NumberOfHitX=0; - cTheta2D = new TCanvas("cTheta2d","Cross Section" ,100,100,900,900); - hThetaLabCM->Draw("COLZ");*/ - cTheta = new TCanvas("cTheta","Cross Section" ,100,100,900,900); - hTheta->Draw(); -/* ifstream efficFile; - - efficFile.open("./efficiency/20cm2.efficiency"); - string EffString, ThetaString; - double xxx = hThetaLabCM->GetNbinsY(); - - for(Int_t i = 1 ; i < hThetaLabCM->GetNbinsX() ; i++) - { - // Calculate Relative error - NumberOfHitX=hThetaLabCM->Integral(i, i, 1, xxx ); - if(NumberOfHitX!=0)relative_error.push_back( ( sqrt(NumberOfHitX) ) / (NumberOfHitX) ); - else {relative_error.push_back(0) ;} - } - - for(Int_t j = 1 ; j < hThetaLabCM->GetNbinsY() ; j++) - { - //Efficacity correction - efficFile >> ThetaString >> EffString; - double Eff = atoi(EffString.c_str()); - for(Int_t i = 1 ; i < hThetaLabCM->GetNbinsX() ; i++) - { - if (Eff!=0) - { - double pipo = (hThetaLabCM->GetCellContent(i,j))/(Eff/100) ; - hThetaLabCM->SetCellContent( i, j, pipo ); - } - else hThetaLabCM->SetCellContent( i, j, 0 ); - } - } - - - TH1D* hCrossSection = new TH1D(); - hCrossSection = hThetaLabCM->ProjectionX("Cross Section", 0, -1, "") ; - - - for(Int_t i = 1 ; i < hCrossSection->GetNbinsX() ; i++) - { - // Calculate Error - NumberOfHitX=hCrossSection->GetBinContent(i); - double error=NumberOfHitX*relative_error[i]; - hCrossSection->SetBinError(i,error); - } - - hCrossSection->Draw(); - -/* ofstream efficFile; - efficFile.open("20cm.efficiency"); - - for(Int_t i = 1 ; i < hTheta->GetNbinsX() ; i++) - { - - Double_t Flux = 100000*sin(hTheta->GetBinCenter(i)*DegToRad)*2*DegToRad/2; - - if(Flux!=0) - { - Double_t Efficiency = ( ( Flux - hTheta->GetBinContent(i) ) / Flux ) * 100 ; - - hTheta->SetBinContent(i, 100-Efficiency ) ; - - efficFile << hTheta->GetBinCenter(i) << " " << 100-Efficiency << endl; - } - - else hTheta->SetBinContent(i, 0 ); - } - - - //hTheta->Draw();*/ - - //efficiency correction and error bar calculation -/* ifstream efficFile; - efficFile.open("./efficiency/20cmCM.efficiency"); - string EffString, ThetaString; - double Eff, relative_error, error, toto ; - - for(Int_t i = 1 ; i < hThetaCM->GetNbinsX() ; i++) - { - - efficFile >> ThetaString >> EffString; - Eff = atoi(EffString.c_str()); - if(hThetaCM->GetBinContent(i)!=0)relative_error = sqrt(hThetaCM->GetBinContent(i))/(hThetaCM->GetBinContent(i)); - - toto=hThetaCM->GetBinContent(i)*(100-Eff) ; - hThetaCM->SetBinContent(i, toto) ; - - error=hThetaCM->GetBinContent(i)*relative_error; - hThetaCM->SetBinError(i,error); - }*/ - - - - - //hThetaCM->Draw(); - -/* string Path="/home/Adrien/Desktop/geant/Simulation/Data/CrossSection/11Li(d,3He)10He.txt"; - ifstream CrossSectionFile; - CrossSectionFile.open(Path.c_str()); - if( CrossSectionFile.is_open() ) - cout << " file " << Path << " loading " << endl; - else{ - cout << " Error, no file " << Path << " found" << endl; return;} - - - //Normalisation: - Int_t Maximum_Bin = hCrossSection->GetMaximumBin() ; - Double_t Maximum_theta = hCrossSection->GetBinCenter(Maximum_Bin) ; - Double_t Bin_Width = hCrossSection->GetBinWidth(Maximum_Bin) ; - Double_t Maximum = hCrossSection->GetBinContent(Maximum_Bin) ; - - Double_t Normalisation_Factor=0; - - - - Double_t ThetaVal=0 ; - Double_t CSVal=0 ; - TMarker marker ; - string theta,CS ; - - while( !CrossSectionFile.eof() && ThetaVal<60) - { - CrossSectionFile >> theta >> CS ; - - ThetaVal=atof(theta.c_str()) ; - - if(ThetaVal>(Maximum_theta-Bin_Width/4) && ThetaVal<(Maximum_theta+Bin_Width/4) ) - { - CSVal=atof(CS.c_str()) ; - Normalisation_Factor = Maximum/CSVal; - } - } - CrossSectionFile.close(); - CrossSectionFile.open(Path.c_str()); - - //Reading Cross Section - - ThetaVal=0; - while( !CrossSectionFile.eof() && ThetaVal<60) - { - - CrossSectionFile >> theta >> CS ; - CSVal=atof(CS.c_str()) ; - ThetaVal=atof(theta.c_str()) ; - marker->DrawMarker(ThetaVal,CSVal*Normalisation_Factor) ; - } - - - -/* - //Normalisation: - Double_t Maximum_Bin = hTheta->GetMaximumBin() ; - Double_t Maximum = hTheta->GetBinContent(Maximum_Bin) ; - - Double_t Normalisation_Factor = Maximum/3.; - - - - //Reading Cross Section - Double_t ThetaVal=0 ; - Double_t CSVal=0 ; - TMarker marker ; - string theta,CS ; - - while( !CrossSectionFile.eof() && ThetaVal<60) - { - - CrossSectionFile >> theta >> CS ; - CSVal=atof(CS.c_str()) ; - ThetaVal=atof(theta.c_str()) ; - - ThetaVal=0.000479597*pow(ThetaVal,3)-0.0670771*pow(ThetaVal,2)+3.08149*ThetaVal-0.339958 ; - - marker->DrawMarker(ThetaVal,CSVal*Normalisation_Factor) ; - } -// cTheta->SetLogy(1); - - - - - /* - cKine = new TCanvas("cKine","Kinematics lines" ,10,10,800,800); - hKine->Draw("COLZ");*/ - -/* cKineInit = new TCanvas("cKineInit","Initial Kinematics lines" ,100,100,600,600); - hKineInit->Draw("COLZ"); - - cEDE = new TCanvas("EDE","EDE add Strip" ,100,100,600,600); - hEDEAddStrip->Draw("COLZ"); -/* cG = new TCanvas("cG","Strip position",500,100,800,600); - cG->Divide(3,2); - - cG->cd(1); - Agraph2D->Draw("P0") ; - cG->cd(2); - Bgraph2D->Draw("P0") ; - cG->cd(3); - Cgraph2D->Draw("P0") ; - cG->cd(4); - Dgraph2D->Draw("P0") ; - cG->cd(5); - Egraph2D->Draw("P0") ; - - cG2 = new TCanvas("cG2","all Strip position",500,100,800,600); - TOTgraph2D->Draw("P0") ; - */ - cH = new TCanvas("cH","Hit density",500,100,1000,800); - cH->Divide(3,2); - - cH->cd(1); - hHIT4->Draw("COLZ"); - cH->cd(2); - hHIT2->Draw("COLZ"); - cH->cd(3); - hHIT5->Draw("COLZ"); - cH->cd(4); - hHIT1->Draw("COLZ"); - cH->cd(5); - hHIT3->Draw("COLZ"); - cH->cd(6); - hThetaHeavy->Draw(); - -/* cH->cd(5); - hXZ->Draw("COLZ"); - cH->cd(6); - hXY->Draw("COLZ"); - - cEDE = new TCanvas("cEDE","EDE indentification Spectra",500,100,1000,800); - cEDE->Divide(3,2); - - cEDE->cd(1); - hEDE1->Draw("COLZ"); - cEDE->cd(2); - hEDE2->Draw("COLZ"); - cEDE->cd(3); - hEDE3->Draw("COLZ"); - cEDE->cd(4); - hEDE4->Draw("COLZ"); - cEDE->cd(5); - hEDE5->Draw("COLZ"); - cEDE->cd(6); - TH2F* hEDET= new TH2F("hEDET","",4000,-1,600, 400, -1, 25) ; - hEDET->Add(hEDE1); - hEDET->Add(hEDE2); - hEDET->Add(hEDE3); - hEDET->Add(hEDE4); - hEDET->Draw("CLOZ");*/ - - cEx = new TCanvas("cEx","Excitation Energy" ,100,100,600,600); - hEx->Draw(); - /*cE = new TCanvas("cE","Light Energy" ,500,100,1000,800); - cE->Divide(2); - cE->cd(1); - hE1234->Draw(); - cE->cd(2); - hE5->Draw();*/ -} diff --git a/NPAnalysis/Gaspard/efficiency.c b/NPAnalysis/Gaspard/efficiency.c deleted file mode 100644 index 9a04af185f75853d0bce5bae2009cd8cd01cae1a..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/efficiency.c +++ /dev/null @@ -1,58 +0,0 @@ -{ - gROOT->Reset(); - gStyle->SetOptStat(1); - gStyle->SetPalette(51,0); - /////////////////////// - /////////////////////// -TFile *file0 = TFile::Open("./Result/myResult.root"); - - double Pi = 3.141592654 ; - double DegToRad = Pi/180. ; // 2Pi/360 = Pi/180 - - - ofstream efficFile; - efficFile.open("12cm.efficiency"); - - for(Int_t i = 1 ; i < hTheta->GetNbinsX() ; i++) - { - Double_t Flux = 1000000./2. * sin(hTheta->GetBinCenter(i)*DegToRad) * (2*DegToRad) ; - - if(Flux!=0) - { - Double_t Efficiency = 100*( (hTheta->GetBinContent(i)) / Flux ); - hTheta->SetBinContent(i, Efficiency ) ; - } - - else hTheta->SetBinContent(i, 0 ); - - efficFile << hTheta->GetBinCenter(i) << " " << Efficiency << endl; - } - - cEff = new TCanvas("cEff","Efficiency" ,100,100,600,600); - hTheta->Draw(); - - cHit = new TCanvas("cHit","Hit" ,100,100,600,600); - hXY->Draw("COLZ"); - - cHit2 = new TCanvas("cHit2","Hit" ,100,100,600,600); - cHit2->Divide(3,2); - - cHit2->cd(1); - hXY1->Draw("COLZ"); - - cHit2->cd(2); - hXY2->Draw("COLZ"); - - cHit2->cd(3); - hXY3->Draw("COLZ"); - - cHit2->cd(4); - hXY4->Draw("COLZ"); - - cHit2->cd(5); - hXY5->Draw("COLZ"); - - cHit2->cd(6); - hXY6->Draw("COLZ"); - -} diff --git a/NPAnalysis/Gaspard/hit.c b/NPAnalysis/Gaspard/hit.c deleted file mode 100644 index 50db19da5e7c54b1cba977ffe34232fb328dcdd0..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/hit.c +++ /dev/null @@ -1,44 +0,0 @@ -{ - gROOT->Reset(); - gStyle->SetOptStat(1); - gStyle->SetPalette(51,0); - /////////////////////// - /////////////////////// -TFile *file0 = TFile::Open("./Result/myResult.root"); - - cEff = new TCanvas("cEff","Theta Distribution" ,100,100,600,600); - hTheta->Draw(); - - - cCM = new TCanvas("cCm" , "ThetaCM" , 100 , 100 , 600, 600) ; - hThetaCM->Draw(); - - cHit = new TCanvas("cHit","Hit" ,100,100,600,600); - hXY->Draw("COLZ"); - - - cHit2 = new TCanvas("cHit2","Hit" ,100,100,600,600); - cHit2->Divide(3,2); - - cHit2->cd(1); - hXY1->Draw("COLZ"); - - cHit2->cd(2); - hXY2->Draw("COLZ"); - - cHit2->cd(3); - hXY3->Draw("COLZ"); - - cHit2->cd(4); - hXY4->Draw("COLZ"); - - cHit2->cd(5); - hXY5->Draw("COLZ"); - - cHit2->cd(6); - hXY6->Draw("COLZ"); - - cEx = new TCanvas("cEx","Excitation Energy" ,100,100,300,300); - hEx->Draw(); - -} diff --git a/NPAnalysis/Gaspard/include/ConfigurationReader.hh b/NPAnalysis/Gaspard/include/ConfigurationReader.hh deleted file mode 100644 index d4b2e1fe1eaf30c39807391b226329724bab7b84..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/include/ConfigurationReader.hh +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef ConfigurationReader_h -#define ConfigurationReader_h 1 - -// STL -#include <string> -#include <iostream> -#include <fstream> - -// NPL -#include "NPReaction.h" -using namespace NPL ; - -#include "must.hh" - -void ReadConfiguration ( string Path , array* myArray ) ; -Reaction* ReadReaction ( string Path ) ; - - -#endif - diff --git a/NPAnalysis/Gaspard/include/DetectorManager.hh b/NPAnalysis/Gaspard/include/DetectorManager.hh new file mode 100644 index 0000000000000000000000000000000000000000..eb49f01ef92509cd0531f4f12c7eace833047e61 --- /dev/null +++ b/NPAnalysis/Gaspard/include/DetectorManager.hh @@ -0,0 +1,39 @@ +#ifndef DetectorManager_h +#define DetectorManager_h + +// NPL +#include "VDetector.h" + +// STL +#include <string> +#include <map> + +using namespace std ; +using namespace NPA ; + +// This class manage a map of virtual detector + +class DetectorManager + { + public: + DetectorManager() ; + ~DetectorManager() ; + + public: + // Read stream at Path and pick-up Token declaration of Detector + void ReadConfigurationFile(string Path) ; + void BuildPhysicalEvent() ; + void BuildSimplePhysicalEvent() ; + void InitializeRootInput() ; + void InitializeRootOutput() ; + void AddDetector(string,VDetector*) ; + void ClearEventPhysics() ; + void ClearEventData() ; + + public: // The map containning all detectors + // Using a Map one can access to any detector using its name + map<string,VDetector*> m_Detector ; + + }; + +#endif diff --git a/NPAnalysis/Gaspard/include/ObjectManager.hh b/NPAnalysis/Gaspard/include/ObjectManager.hh index 9f90b2a5dc4c538d683f5bf378a2ece2250c591a..87249677afccc0f2904ba9a871236176453ee7af 100644 --- a/NPAnalysis/Gaspard/include/ObjectManager.hh +++ b/NPAnalysis/Gaspard/include/ObjectManager.hh @@ -1,26 +1,65 @@ // 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 organising we use Name Space. +// In order to help debugging and organizing we use Name Space. + +///////////////////////////////////////////////////////////////////////////////////////////////// +// -------------------------------------- VARIOUS INCLUDE --------------------------------------- + +// NPA +#include "DetectorManager.hh" +#include "GaspardTracker.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 "TMust2Data.h" +#include "TMust2Physics.h" +#include "NPReaction.h" +#include "RootInput.h" +#include "RootOutput.h" +#include "TInteractionCoordinates.h" + +// Use CLHEP System of unit and Physical Constant +#include "CLHEP/Units/GlobalSystemOfUnits.h" +#include "CLHEP/Units/PhysicalConstants.h" -// -----------------------------------DOUBLE, INT, BOOL-------------------------------------------- - +// ---------------------------------------------------------------------------------------------- +double ThetaCalculation (TVector3 A , TVector3 B) ; +///////////////////////////////////////////////////////////////////////////////////////////////// +// ----------------------------------- DOUBLE, INT, BOOL AND MORE ------------------------------- namespace VARIABLE { - double Xs,Ys,Zs,N ; - double Theta = 0 ; - double Ex = 0 ; - double ThetaCM = 0 ; - int X,Y ; - bool check_light = false ; + // 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> @@ -32,53 +71,48 @@ using namespace VARIABLE ; namespace GRAPH { // Declare your Spectra here: - const int NbElements = 18; - TH2F *hXY1 = new TH2F("hXY1","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hXY2 = new TH2F("hXY2","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hXY3 = new TH2F("hXY3","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hXY4 = new TH2F("hXY4","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hXY5 = new TH2F("hXY5","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hXY6 = new TH2F("hXY6","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hHitPattern[NbElements]; - - TH1F *hEnerX = new TH1F("hEnerX", "Energy X", 1000, -1, 10); - TH1F *hEnerY = new TH1F("hEnerY", "Energy Y", 1000, -1, 10); - TH2F *hEnerXY = new TH2F("hEnerXY", "Energy X vs Y", 100, -1, 10, 100, -1, 10); - TH2F *hEnerTheta = new TH2F("hEnerTheta", "Energy v.s. Theta", 90, 0, 180, 400, 0, 100); - - TH2F *hXY = new TH2F("hXY","", 300 , -130 , 130 , 300 , -130 , 130 ) ; - TH2F *hEA = new TH2F("hEA" ,"", 120 , 0 , 60 , 260 , 0 , 130 ) ; - TH1F *hEx = new TH1F("hEx", "E* (MeV)", 10000, -10, 40); - TH1F *hEHexa = new TH1F("hEHexa","EHexa (MeV)", 1000 , -5 , 5 ) ; - TH1F *hThetaCM = new TH1F("hThetaCM","ThetaCM (deg)", 30 , 0 , 60 ) ; - TH1F *hTheta = new TH1F("hTheta","Theta Lab (deg)",180,0,180) ; - TH2F *hThetaLabCM = new TH2F("hThetaLabCM","", 90 , 0 , 180 , 90 , 0 , 180 ) ; + 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 GRAPH ; -// ---------------------------------------------------------------------------------------------- +using namespace CUT ; +// -------------------------------------------------------------------------------------------- + -// -----------------------------------ENERGY LOSS------------------------------------------------ -/* -#include "NPEnergyLossCorrection.h" +//////////////////////////////////////////////////////////////////////////////////////////////// +// -----------------------------------ENERGY LOSS---------------------------------------------- +#include "NPEnergyLoss.h" using namespace NPL ; namespace ENERGYLOSS { -// EnergyLoss ProtonTarget = EnergyLoss ( "/home/Adrien/Desktop/dEdX.txt" , -// 100 , -// 1 ); - + // Declare your Energy loss here : + /* EnergyLoss ProtonTarget = EnergyLoss ( "CD2.txt" , + 100 , + 1 ); + */ } using namespace ENERGYLOSS ; -*/ // ---------------------------------------------------------------------------------------------- - +///////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/NPAnalysis/Gaspard/include/must.hh b/NPAnalysis/Gaspard/include/must.hh deleted file mode 100644 index d3fa3a733fc029e7ed403f3a944e9dd68fc390c4..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/include/must.hh +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef must_h -#define must_h 1 - -#include <vector> -#include <TFile.h> -#include <TH2.h> -#include <TH2F.h> -#include "CLHEP/Vector/ThreeVector.h" -using namespace std ; -using namespace CLHEP ; - -class must -{ -public: - must( double theta , double phi , double distance , double beta_u , double beta_v, double beta_w) ; - must( Hep3Vector C_X1_Y1 , - Hep3Vector C_X128_Y1 , - Hep3Vector C_X1_Y128 , - Hep3Vector C_X128_Y128 , - Hep3Vector TargetPosition ); - - double GetStripPositionX( int X , int Y ) ; - double GetStripPositionY( int X , int Y ) ; - double GetStripPositionZ( int X , int Y ) ; - void Print() ; - -private: - - vector< vector < double > > StripPositionX ; - vector< vector < double > > StripPositionY ; - vector< vector < double > > StripPositionZ ; - -}; - - -class array -{ -public: - array(); - void addTelescope( double theta , double phi , double distance , double beta_u , double beta_v , double beta_w) ; - void addTelescope( Hep3Vector C_X1_Y1 , - Hep3Vector C_X128_Y1 , - Hep3Vector C_X1_Y128 , - Hep3Vector C_X128_Y128 ); - - double GetStripPositionX( int N , int X , int Y ) ; - double GetStripPositionY( int N , int X , int Y ) ; - double GetStripPositionZ( int N , int X , int Y ) ; - double GetNumberOfTelescope() {return NumberOfTelescope;} ; - void Print() ; - -private: - vector< must > myArray ; - int NumberOfTelescope ; - -public: // Histogram - -/*// Hit Density - vector<TH2F*> HitDensity ; - - // Time of Flight Identification - vector<TH2F*> TOF ; - - // EDE Identification - vector<TH2F*> EDE ; - - // Kinematic Line - KinematicLine ; - - // Excitation Energy - ExcitationEnergy ;*/ - -}; - -#endif diff --git a/NPAnalysis/Gaspard/kinematic1MeV.contour b/NPAnalysis/Gaspard/kinematic1MeV.contour deleted file mode 100644 index 96c8267de29aec5472c1ec72fdbcf73171d62824..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/kinematic1MeV.contour +++ /dev/null @@ -1,27 +0,0 @@ -{ -//========= Macro generated from object: Graph/Graph -//========= by ROOT version5.22/00 - - TGraph *graph = new TGraph(9); - graph->SetName("Graph"); - graph->SetTitle("Graph"); - graph->SetFillColor(1); - graph->SetPoint(0,42.5558,25.636); - graph->SetPoint(1,36.4453,18.3991); - graph->SetPoint(2,21.2109,12.2588); - graph->SetPoint(3,6.22768,10.943); - graph->SetPoint(4,6.89732,5.67982); - graph->SetPoint(5,24.308,7.87281); - graph->SetPoint(6,38.8728,14.6711); - graph->SetPoint(7,44.6484,23.6623); - graph->SetPoint(8,42.6395,25.636); - - TH1 *Graph1 = new TH1F("Graph1","Graph",100,2.3856,48.4905); - Graph1->SetMinimum(3.68421); - Graph1->SetMaximum(27.6316); - Graph1->SetDirectory(0); - Graph1->SetStats(0); - graph->SetHistogram(Graph1); - - graph->Draw(""); -} diff --git a/NPAnalysis/Gaspard/makeAnalyse.sh b/NPAnalysis/Gaspard/makeAnalyse.sh deleted file mode 100755 index 6d62d9b5efef605ec9b14fafea319941f181dd9f..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/makeAnalyse.sh +++ /dev/null @@ -1,8 +0,0 @@ -# This file is here to help you making Analysis. -# Feel free to had more such as automatic lauch ou ROOT macro - - - -cd src ; make ; cd .. -./Analysis ../Inputs/Reaction/34Si.reaction ../Inputs/DetectorConfiguration/e530.detector -root -l hit.c diff --git a/NPAnalysis/Gaspard/root.ps b/NPAnalysis/Gaspard/root.ps deleted file mode 100644 index 79ba81bb0b06619d95cb69f587fb3b0ff93f94a4..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/root.ps +++ /dev/null @@ -1,98 +0,0 @@ -%!PS-Adobe-2.0 -%%Title: root.ps: figure d'article -%%Creator: ROOT Version 5.22/00 -%%CreationDate: Thu Sep 10 19:14:45 2009 -%%Orientation: Landscape -%%EndComments -%%BeginProlog -/s {stroke} def /l {lineto} def /m {moveto} def /t {translate} def -/sw {stringwidth} def /r {rotate} def /rl {roll} def /R {repeat} def -/d {rlineto} def /rm {rmoveto} def /gr {grestore} def /f {eofill} def -/c {setrgbcolor} def /black {0 setgray} def /sd {setdash} def -/cl {closepath} def /sf {scalefont setfont} def /lw {setlinewidth} def -/box {m dup 0 exch d exch 0 d 0 exch neg d cl} def -/NC{systemdict begin initclip end}def/C{NC box clip newpath}def -/bl {box s} def /bf {box f} def /Y { 0 exch d} def /X { 0 d} def -/mp {newpath /y exch def /x exch def} def -/side {[w .77 mul w .23 mul] .385 w mul sd w 0 l currentpoint t -144 r} def -/mr {mp x y w2 0 360 arc} def /m24 {mr s} def /m20 {mr f} def -/mb {mp x y w2 add m w2 neg 0 d 0 w neg d w 0 d 0 w d cl} def -/mt {mp x y w2 add m w2 neg w neg d w 0 d cl} def -/m21 {mb f} def /m25 {mb s} def /m22 {mt f} def /m26{mt s} def -/m23 {mp x y w2 sub m w2 w d w neg 0 d cl f} def -/m27 {mp x y w2 add m w3 neg w2 neg d w3 w2 neg d w3 w2 d cl s} def -/m28 {mp x w2 sub y w2 sub w3 add m w3 0 d 0 w3 neg d w3 0 d 0 w3 d w3 0 d 0 w3 d w3 neg 0 d 0 w3 d w3 neg 0 d - 0 w3 neg d w3 neg 0 d cl s } def -/m29 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t - 4 {side} repeat cl fill gr} def -/m30 {mp gsave x w2 sub y w2 add w3 sub m currentpoint t - 4 {side} repeat cl s gr} def -/m31 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d x w2 sub y w2 add m w w neg d x w2 sub y w2 - sub m w w d s} def -/m2 {mp x y w2 sub m 0 w d x w2 sub y m w 0 d s} def -/m5 {mp x w2 sub y w2 sub m w w d x w2 sub y w2 add m w w neg d s} def -/reEncode {exch findfont dup length dict begin {1 index /FID eq {pop pop} {def} ifelse } forall /Encoding exch def currentdict end dup /FontName get exch definefont pop } def [/Times-Bold /Times-Italic /Times-BoldItalic /Helvetica - /Helvetica-Oblique /Helvetica-Bold /Helvetica-BoldOblique /Courier /Courier-Oblique /Courier-Bold /Courier-BoldOblique /Times-Roman /AvantGarde-Book /AvantGarde-BookOblique /AvantGarde-Demi /AvantGarde-DemiOblique /Bookman-Demi - /Bookman-DemiItalic /Bookman-Light /Bookman-LightItalic /Helvetica-Narrow /Helvetica-Narrow-Bold /Helvetica-Narrow-BoldOblique /Helvetica-Narrow-Oblique /NewCenturySchlbk-Roman /NewCenturySchlbk-Bold - /NewCenturySchlbk-BoldItalic /NewCenturySchlbk-Italic /Palatino-Bold /Palatino-BoldItalic /Palatino-Italic /Palatino-Roman ] {ISOLatin1Encoding reEncode } forall -/oshow {gsave [] 0 sd true charpath stroke gr} def -/stwn { /fs exch def /fn exch def /text exch def fn findfont fs sf - text sw pop xs add /xs exch def} def -/stwb { /fs exch def /fn exch def /nbas exch def /textf exch deftextf length /tlen exch def nbas tlen gt {/nbas tlendef} iffn findfont fs sf textf dup length nbas sub nbas getinterval sw -pop neg xs add /xs exch def} def -/Zone {/iy exch def /ix exch def ix 1 sub 3144 mul 1 iy sub 2224 - mul t} def -%%EndProlog -%%BeginSetup -%%EndSetup -newpath gsave 90 r 0 -594 t 28 20 t .25 .25 scale gsave -%%Page: 1 1 - gsave gsave - 1 1 Zone - gsave 0 0 t black[ ] 0 sd 3 lw 0.999 0.999 0.999 c 2948 1992 0 0 bf black 0.999 0.999 0.999 c 2329 1574 324 219 bf black 2329 1574 324 219 bl 0.999 0.999 0.999 c 2329 1574 324 219 bf black 2329 1574 324 219 bl 1 1 1 c black 324 255 m 6 X 18 Y 5 X - -18 Y 6 X -18 Y 17 X -18 Y 5 X 36 Y 6 X -36 Y 6 X 36 Y 11 X -18 Y 11 X -18 Y 11 X 18 Y 17 X 36 Y 5 X -36 Y 23 X -18 Y 5 X 18 Y 6 X 36 Y 5 X -54 Y 6 X 36 Y 6 X -18 Y 5 X 18 Y 6 X -18 Y 17 X 18 Y 11 X -18 Y 11 X 53 Y 6 X -53 Y 5 X 18 Y 6 X -18 Y 11 X - 18 Y 11 X 18 Y 6 X 35 Y 5 X -18 Y 6 X -53 Y 5 X 18 Y 12 X 35 Y 5 X -53 Y 6 X -18 Y 5 X 107 Y 6 X -18 Y 5 X -53 Y 12 X 89 Y 5 X -89 Y 17 X -36 Y 6 X 89 Y 5 X -89 Y 6 X 71 Y 5 X -17 Y 6 X 17 Y 5 X 36 Y 6 X -18 Y 6 X 18 Y 5 X -53 Y 6 X 53 Y 5 X -36 Y - 6 X -53 Y 6 X 107 Y 5 X -89 Y 6 X -18 Y 5 X 36 Y 6 X -36 Y 5 X 71 Y 6 X -35 Y 6 X 71 Y 5 X 53 Y 6 X -53 Y 5 X -71 Y 6 X 53 Y 6 X -36 Y 5 X -17 Y 6 X -18 Y 5 X 125 Y 6 X -90 Y 6 X -17 Y 5 X 71 Y 6 X -89 Y 5 X 18 Y 6 X 17 Y 5 X 36 Y 6 X 36 Y 6 X -36 - Y 11 X 36 Y 5 X -125 Y 6 X 53 Y 6 X -35 Y 5 X 160 Y 6 X -160 Y 5 X 125 Y 6 X -72 Y 5 X -53 Y 6 X 35 Y 6 X 54 Y 5 X -54 Y 6 X 107 Y 5 X -124 Y 6 X 35 Y 6 X 54 Y 5 X -36 Y 6 X 18 Y 5 X 36 Y 6 X -90 Y 5 X -35 Y 6 X 53 Y 6 X -35 Y 5 X 35 Y 6 X 72 Y 5 X - -90 Y 6 X 54 Y 6 X -18 Y 5 X 18 Y 6 X -54 Y 5 X 36 Y 6 X 54 Y 6 X -107 Y 5 X 124 Y 6 X 18 Y 5 X -107 Y 6 X 54 Y 5 X -18 Y 6 X 36 Y 6 X 17 Y 11 X 72 Y 5 X -72 Y 6 X -107 Y 6 X 72 Y 5 X 53 Y 6 X 54 Y 5 X -89 Y 6 X -54 Y 5 X 71 Y 6 X -35 Y 6 X -54 Y 5 - X 18 Y 6 X 36 Y 5 X 143 Y 6 X 35 Y 6 X -89 Y 5 X -89 Y 6 X 53 Y 5 X 36 Y 6 X -54 Y 5 X 18 Y 6 X 143 Y 6 X -125 Y 5 X 18 Y 6 X 54 Y 5 X 53 Y 6 X 18 Y 6 X -89 Y 11 X 107 Y 5 X -36 Y 6 X -36 Y 5 X 72 Y 12 X 18 Y 5 X 71 Y 6 X -107 Y 5 X 214 Y 6 X -54 Y - 6 X -17 Y 5 X -36 Y 6 X -107 Y 5 X 232 Y 6 X -54 Y 6 X 107 Y 5 X -89 Y 6 X 214 Y 5 X -160 Y 6 X -72 Y 5 X 18 Y 6 X 232 Y 6 X 161 Y 5 X -179 Y 6 X 250 Y 5 X -71 Y 6 X -179 Y 6 X 143 Y 5 X 285 Y 6 X 36 Y 5 X -125 Y 6 X 357 Y 5 X -286 Y 6 X 215 Y 6 X - -286 Y 11 X 179 Y 5 X -143 Y 6 X -72 Y 6 X 250 Y 5 X -35 Y 6 X -72 Y 5 X 286 Y 6 X -90 Y 5 X -142 Y 12 X -304 Y 5 X 125 Y 6 X 107 Y 11 X -285 Y 6 X 196 Y 5 X -125 Y 6 X -53 Y 5 X -72 Y 6 X -160 Y 5 X 285 Y 6 X -410 Y 6 X 53 Y 5 X -124 Y 6 X 214 Y 5 - X -18 Y 6 X -36 Y 6 X -125 Y 5 X -160 Y 6 X 71 Y 5 X -18 Y 6 X 143 Y 6 X -143 Y 5 X -18 Y 6 X 36 Y 5 X -125 Y 6 X -18 Y 5 X 107 Y 6 X -71 Y 6 X 18 Y 5 X -18 Y 11 X 54 Y 6 X -107 Y 11 X -72 Y 6 X -36 Y 5 X 108 Y 6 X -36 Y 5 X 18 Y 6 X -18 Y 6 X 53 Y - 5 X -125 Y 11 X 54 Y 6 X 18 Y 6 X 18 Y 5 X -125 Y 6 X -18 Y 11 X -36 Y 5 X -18 Y 6 X 90 Y 11 X -18 Y 6 X 35 Y 5 X -17 Y 6 X -72 Y 6 X 54 Y 5 X 71 Y 6 X -53 Y 5 X -18 Y 6 X -18 Y 11 X -54 Y 6 X 54 Y 5 X -18 Y 6 X -36 Y 5 X -17 Y 12 X -18 Y 5 X 71 Y - 6 X -36 Y 5 X 18 Y 6 X 89 Y 6 X -107 Y 16 X 18 Y 6 X -53 Y 5 X 35 Y 12 X -53 Y 5 X 71 Y 6 X 18 Y 5 X -18 Y 6 X -18 Y 6 X 72 Y 5 X 18 Y 6 X -143 Y 5 X 89 Y 6 X -18 Y 5 X -53 Y 6 X 35 Y 6 X -17 Y 5 X -18 Y 6 X 35 Y 5 X -17 Y 6 X 53 Y 6 X -36 Y 5 X - -17 Y 6 X -54 Y 5 X 71 Y 6 X -17 Y 17 X -18 Y 5 X 35 Y 6 X 90 Y 5 X -125 Y 6 X 35 Y 6 X -35 Y 5 X 35 Y 6 X -17 Y 5 X -18 Y 6 X 53 Y 6 X -18 Y 5 X -35 Y 11 X 35 Y 6 X -53 Y 11 X 18 Y 6 X 35 Y 5 X -17 Y 6 X 17 Y 5 X 36 Y 17 X -53 Y 6 X -36 Y 5 X 53 Y - 6 X -17 Y 22 X 35 Y 6 X 54 Y 5 X -89 Y 12 X -18 Y 5 X 18 Y 6 X 53 Y 5 X -36 Y 6 X -17 Y 5 X 53 Y 17 X -89 Y 11 X 18 Y 12 X 89 Y 5 X -89 Y 6 X 18 Y 5 X -18 Y 6 X -18 Y 5 X 53 Y 6 X -53 Y 6 X 36 Y 5 X -36 Y 6 X 18 Y 5 X 18 Y 6 X -18 Y 6 X 53 Y 5 X - -18 Y 6 X -35 Y 11 X 35 Y 6 X -53 Y 5 X 53 Y 6 X -35 Y 11 X -18 Y 11 X -18 Y 6 X 54 Y 11 X -36 Y 5 X 36 Y 12 X -36 Y 11 X 36 Y 5 X -54 Y 6 X 71 Y 5 X -35 Y 6 X 18 Y 6 X 17 Y 5 X -53 Y 6 X 71 Y 5 X -71 Y 12 X 18 Y 5 X 18 Y 6 X -36 Y 5 X 89 Y 6 X -89 - Y 5 X 18 Y 6 X 18 Y 11 X s 324 219 m 2329 X s 369 266 m -47 Y s 481 243 m -24 Y s 592 243 m -24 Y s 704 243 m -24 Y s 816 243 m -24 Y s 927 266 m -47 Y s 1039 243 m -24 Y s 1151 243 m -24 Y s 1263 243 m -24 Y s 1374 243 m -24 Y s 1486 266 m -47 Y s - 1598 243 m -24 Y s 1709 243 m -24 Y s 1821 243 m -24 Y s 1933 243 m -24 Y s 2044 266 m -47 Y s 2156 243 m -24 Y s 2268 243 m -24 Y s 2380 243 m -24 Y s 2491 243 m -24 Y s 2603 266 m -47 Y s 369 266 m -47 Y s 2603 266 m -47 Y s - gsave 2948 1992 0 0 C 351 149 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (1) show NC gr - gsave 2948 1992 0 0 C 873 149 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (1.5) show NC gr - gsave 2948 1992 0 0 C 1461 149 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (2) show NC gr - gsave 2948 1992 0 0 C 1992 149 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (2.5) show NC gr - gsave 2948 1992 0 0 C 2580 149 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (3) show NC gr 324 1793 m 2329 X s 369 1745 m 48 Y s 481 1769 m 24 Y s 592 1769 m 24 Y s 704 1769 m 24 Y s 816 1769 m 24 Y s 927 1745 m 48 Y s 1039 1769 m 24 Y s 1151 - 1769 m 24 Y s 1263 1769 m 24 Y s 1374 1769 m 24 Y s 1486 1745 m 48 Y s 1598 1769 m 24 Y s 1709 1769 m 24 Y s 1821 1769 m 24 Y s 1933 1769 m 24 Y s 2044 1745 m 48 Y s 2156 1769 m 24 Y s 2268 1769 m 24 Y s 2380 1769 m 24 Y s 2491 1769 m 24 Y s 2603 - 1745 m 48 Y s 369 1745 m 48 Y s 2603 1745 m 48 Y s 324 219 m 1574 Y s 394 219 m -70 X s 359 255 m -35 X s 359 290 m -35 X s 359 326 m -35 X s 359 362 m -35 X s 394 397 m -70 X s 359 433 m -35 X s 359 469 m -35 X s 359 505 m -35 X s 359 540 m -35 X - s 394 576 m -70 X s 359 612 m -35 X s 359 647 m -35 X s 359 683 m -35 X s 359 719 m -35 X s 394 754 m -70 X s 359 790 m -35 X s 359 826 m -35 X s 359 861 m -35 X s 359 897 m -35 X s 394 933 m -70 X s 359 968 m -35 X s 359 1004 m -35 X s 359 1040 m - -35 X s 359 1075 m -35 X s 394 1111 m -70 X s 359 1147 m -35 X s 359 1182 m -35 X s 359 1218 m -35 X s 359 1254 m -35 X s 394 1289 m -70 X s 359 1325 m -35 X s 359 1361 m -35 X s 359 1396 m -35 X s 359 1432 m -35 X s 394 1468 m -70 X s 359 1504 m - -35 X s 359 1539 m -35 X s 359 1575 m -35 X s 359 1611 m -35 X s 394 1646 m -70 X s 394 1646 m -70 X s 359 1682 m -35 X s 359 1718 m -35 X s 359 1753 m -35 X s 359 1789 m -35 X s - gsave 2948 1992 0 0 C 268 189 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (0) show NC gr - gsave 2948 1992 0 0 C 224 369 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (10) show NC gr - gsave 2948 1992 0 0 C 224 548 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (20) show NC gr - gsave 2948 1992 0 0 C 224 724 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (30) show NC gr - gsave 2948 1992 0 0 C 224 904 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (40) show NC gr - gsave 2948 1992 0 0 C 224 1084 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (50) show NC gr - gsave 2948 1992 0 0 C 224 1259 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (60) show NC gr - gsave 2948 1992 0 0 C 224 1439 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (70) show NC gr - gsave 2948 1992 0 0 C 224 1619 t 0 r /Helvetica-Bold findfont 74.5782 sf 0 0 m (80) show NC gr 2653 219 m 1574 Y s 2583 219 m 70 X s 2618 255 m 35 X s 2618 290 m 35 X s 2618 326 m 35 X s 2618 362 m 35 X s 2583 397 m 70 X s 2618 433 m 35 X s 2618 - 469 m 35 X s 2618 505 m 35 X s 2618 540 m 35 X s 2583 576 m 70 X s 2618 612 m 35 X s 2618 647 m 35 X s 2618 683 m 35 X s 2618 719 m 35 X s 2583 754 m 70 X s 2618 790 m 35 X s 2618 826 m 35 X s 2618 861 m 35 X s 2618 897 m 35 X s 2583 933 m 70 X s - 2618 968 m 35 X s 2618 1004 m 35 X s 2618 1040 m 35 X s 2618 1075 m 35 X s 2583 1111 m 70 X s 2618 1147 m 35 X s 2618 1182 m 35 X s 2618 1218 m 35 X s 2618 1254 m 35 X s 2583 1289 m 70 X s 2618 1325 m 35 X s 2618 1361 m 35 X s 2618 1396 m 35 X s - 2618 1432 m 35 X s 2583 1468 m 70 X s 2618 1504 m 35 X s 2618 1539 m 35 X s 2618 1575 m 35 X s 2618 1611 m 35 X s 2583 1646 m 70 X s 2583 1646 m 70 X s 2618 1682 m 35 X s 2618 1718 m 35 X s 2618 1753 m 35 X s 2618 1789 m 35 X s 0.999 0.999 0.999 c - 432 111 29 1871 bf black 43 1871 m -9 Y 427 X 107 Y -9 X -98 Y f 29 1871 m 111 Y 432 X -111 Y -432 X cl s 1 1 1 c black - gsave 2948 1992 0 0 C 61 1904 t 0 r /Helvetica-Bold findfont 87.739 sf 0 0 m (E* \(MeV\)) show NC gr gr -showpage - gr -%%Trailer -%%Pages: 1 - gr gr gr -%%EOF diff --git a/NPAnalysis/Gaspard/src/Analysis.cc b/NPAnalysis/Gaspard/src/Analysis.cc index ad75bb183b1ccf0651bc89fa15d53c912c222f65..8e4125f0c3da2b5d3ee6dfb94cbf727d318edf8f 100644 --- a/NPAnalysis/Gaspard/src/Analysis.cc +++ b/NPAnalysis/Gaspard/src/Analysis.cc @@ -1,337 +1,116 @@ -#include "must.hh" - -#include <fstream> -#include "sstream" -#include <string> -#include <cmath> - -//include ROOT -#include "TROOT.h" -#include "TChain.h" -#include "TFile.h" -#include "TString.h" -#include "TH2.h" -#include "TStyle.h" -#include "TRandom.h" - -//NPL -#include "TGaspardTrackerData.h" -#include "TInteractionCoordinates.h" -#include "TInitialConditions.h" -#include "NPReaction.h" -//#include "NPEnergyLossCorrection.h" -using namespace NPL ; - -// Use CLHEP System of unit and Physical Constant -#include "CLHEP/Units/GlobalSystemOfUnits.h" -#include "CLHEP/Units/PhysicalConstants.h" -#include "CLHEP/Vector/ThreeVector.h" - -//NPA -#include "ConfigurationReader.hh" #include "ObjectManager.hh" -// prototype -double ThetaCalculation( double StripX , double StripY ,double StripZ, double PPAC_X, double PPAC_Y, double PPAC_Theta); -double HexaEnergy(double HeavyEnergy ,double ThetaHeavy , double Excitation); -///////////// +using namespace std; -int main(int argc,char** argv) -{ - // A Usefull Random Generator - TRandom rand; - // Get arguments from command line +int main(int argc,char** argv) +{ + // test if number of arguments is correct if (argc != 4) { cout << - "you need to specify a Reaction file, a Detector file and a ROOT file such as : Analysis myReaction.reaction myDetector.detector myRootFile.root" - << endl; + "you need to specify both a Reaction file and a Detector file such as : Analysis myReaction.reaction myDetector.detector runToRead.run" + << endl; return 0; - } - string reactionfileName = argv[1]; - string detectorfileName = argv[2]; - string rootfileName = argv[3]; - - ////////////////////////////////////////////////////////////////////// - ///////////////////////// Load Reaction ////////////////////////////// - ////////////////////////////////////////////////////////////////////// - Reaction* myReaction = ReadReaction(reactionfileName); - - ////////////////////////////////////////////////////////////////////// - ///////////////////////// Load Detector ///////////////////////////// - ////////////////////////////////////////////////////////////////////// - array* myArray = new array(); - ReadConfiguration(detectorfileName, myArray); - - cout << "////////////////////////////////////////////" << endl; - cout << "Total Number Of telescope : " << myArray->GetNumberOfTelescope() << endl; - cout << "////////////////////////////////////////////" << endl; - - ////////////////////////////////////////////////////////////////////// - /////////////////////// Load ROOT file /////////////////////////////// - ////////////////////////////////////////////////////////////////////// - // Open output ROOT file from NPTool simulation run - string path = getenv("NPTOOL"); - path += "/Outputs/Simulation/" + rootfileName; - TFile *inFile = new TFile(path.c_str()); - TTree *tree = (TTree*) inFile->Get("SimulatedTree"); - -// TChain* t1 = new TChain("SimulatedTree"); -// t1->Add("../../Outputs/Simulation/mySimul.root"); - TGaspardTrackerData* EventGPD = new TGaspardTrackerData(); - tree->SetBranchAddress("GASPARD",&EventGPD); - TInteractionCoordinates* InterCoord = new TInteractionCoordinates(); - tree->SetBranchAddress("InteractionCoordinates",&InterCoord); - TInitialConditions* InitCond = new TInitialConditions(); - tree->SetBranchAddress("InitialConditions",&InitCond); - - ////////////////////////////////////////////////////////////////////// - /////////////////////// Load ROOT file /////////////////////////////// - ////////////////////////////////////////////////////////////////////// - for (Int_t i = 0; i < NbElements; i++) { - TString hname = Form("hHitPattern%d", i+1); - TString htitle = Form("HitPattern%d", i+1); - hHitPattern[i] = new TH2F(hname, htitle, 128, 1, 128, 128, 1, 128); } - //////////////// Analyse Part //////////////////////////////////////// - Int_t nentries = (Int_t) tree->GetEntries(); - cout << "There are " << nentries << " entries to process" << endl; - for (Int_t e = 0; e < nentries; e++) { - check_light =false ; - if ((e+1)%10000==0) cout << "Entries number " << e+1 << " on " << tree->GetEntries() << endl ; - tree->GetEntry(e); - - // first check that there is an event detected - if (EventGPD->GetGPDTrkFirstStageFrontEMult() > 0) { - // calculate multiplicity - Int_t multXE = EventGPD->GetGPDTrkFirstStageFrontEMult(); - Int_t multYE = EventGPD->GetGPDTrkFirstStageBackEMult(); - Int_t multXT = EventGPD->GetGPDTrkFirstStageFrontTMult(); - Int_t multYT = EventGPD->GetGPDTrkFirstStageBackTMult(); - // case of multiplicity 1 for the strips - if (multXE==1 && multYE==1 && multXT==1 && multYT==1) { - // calculate detector number - Int_t det_ref = EventGPD->GetGPDTrkFirstStageFrontEDetectorNbr(0); - Int_t detecXE = EventGPD->GetGPDTrkFirstStageFrontEDetectorNbr(0) / det_ref; - Int_t detecXT = EventGPD->GetGPDTrkFirstStageFrontTDetectorNbr(0) / det_ref; - Int_t detecYE = EventGPD->GetGPDTrkFirstStageBackEDetectorNbr(0) / det_ref; - Int_t detecYT = EventGPD->GetGPDTrkFirstStageBackTDetectorNbr(0) / det_ref; - det_ref -= 1000; // for TGaspardTrackerDummyShape - // case of same detector - if (detecXE*detecXT*detecYE*detecYT == 1) { - // calculate strip number - Int_t stripXE = EventGPD->GetGPDTrkFirstStageFrontEStripNbr(0); - Int_t stripXT = EventGPD->GetGPDTrkFirstStageFrontTStripNbr(0); - Int_t stripYE = EventGPD->GetGPDTrkFirstStageBackEStripNbr(0); - Int_t stripYT = EventGPD->GetGPDTrkFirstStageBackTStripNbr(0); - // case of same strips on X and Y - if (stripXE == stripXT && stripYE == stripYT) { // here we have a good strip event - // fill hit pattern histograms - hHitPattern[det_ref-1]->Fill(stripXE, stripYE); - // get energy from strips - Double_t EnergyStripX = EventGPD->GetGPDTrkFirstStageFrontEEnergy(0) * MeV; - Double_t EnergyStripY = EventGPD->GetGPDTrkFirstStageBackEEnergy(0) * MeV; - Double_t EnergyStrip = 0.5 * (EnergyStripX + EnergyStripY); -// Double_t EnergyStrip = EnergyStripX; -// if (EnergyStripY > EnergyStrip) EnergyStrip = EnergyStripY; - Double_t TotalEnergy = EnergyStrip; - // fill detected energy - hEnerX->Fill(EnergyStripX); - hEnerY->Fill(EnergyStripY); - hEnerXY->Fill(EnergyStripX, EnergyStripY); - // calculate multiplicity of 2nd and third stages - Int_t mult2E = EventGPD->GetGPDTrkSecondStageEMult(); - Int_t mult2T = EventGPD->GetGPDTrkSecondStageTMult(); - Int_t mult3E = EventGPD->GetGPDTrkThirdStageEMult(); - Int_t mult3T = EventGPD->GetGPDTrkThirdStageTMult(); - // check if we have a 2nd stage event - if (mult2E==1 && mult2T==1) { - Double_t EnergySecond = EventGPD->GetGPDTrkSecondStageEEnergy(0); - TotalEnergy += EnergySecond; - } - // check if we have a third stage event - if (mult3E==1 && mult3T==1) { - Double_t EnergyThird = EventGPD->GetGPDTrkThirdStageEEnergy(0); - TotalEnergy += EnergyThird; - } - // get emitted angle in the beam frame -// Double_t Theta = InitCond->GetICEmittedAngleThetaLabIncidentFrame(0) * deg; - Double_t Theta = InterCoord->GetDetectedAngleTheta(0) * deg; - hTheta->Fill(Theta / deg); - hEnerTheta->Fill(Theta / deg, TotalEnergy); - // calculate lab angle from strips - Double_t xstrip = myArray->GetStripPositionX(det_ref, stripXE, stripYE); - Double_t ystrip = myArray->GetStripPositionY(det_ref, stripXE, stripYE); - Double_t zstrip = myArray->GetStripPositionZ(det_ref, stripXE, stripYE); - Hep3Vector posstrip(xstrip, ystrip, zstrip); - Double_t ThetaStrip = posstrip.theta() * rad; - cout << Theta/deg << " " << ThetaStrip/deg << endl; - // calculate excitation energy -// Ex = myReaction->ReconstructRelativistic(TotalEnergy / MeV, Theta / rad); - Ex = myReaction->ReconstructRelativistic(TotalEnergy / MeV, ThetaStrip / rad); - // condition on c.m. angle - // for (d,p) reaction theta_c.m. < 40 deg - Double_t ThetaCM = myReaction->EnergyLabToThetaCM(TotalEnergy / MeV, -500) * rad; - hThetaCM->Fill(ThetaCM / deg); - hThetaLabCM -> Fill(ThetaCM/deg,Theta/deg); -// if (ThetaCM/deg < 20) { - hEx->Fill(Ex); -// } - } - else { - cout << "Not same strips" << endl; - } - } - else { - cout << "Not same detector" << endl; - } - } - else { - cout << "Multiplicity is not one, it is: " << endl; - cout << "\tmultXE: " << multXE << endl; - cout << "\tmultXT: " << multXT << endl; - cout << "\tmultYE: " << multYE << endl; - cout << "\tmultYT: " << multYT << endl; + // get arguments + string reactionfileName = argv[1]; + string detectorfileName = argv[2]; + string runToReadfileName = argv[3]; + + // Instantiate RootInput and RootOutput singleton classes + RootInput:: getInstance(runToReadfileName); + RootOutput::getInstance("Analysis/Gaspard_AnalyzedData", "AnalyzedTree"); + + // Initialize the reaction + NPL::Reaction* myReaction = new Reaction(); + myReaction->ReadConfigurationFile(reactionfileName); + + // Initialize the detector + DetectorManager* myDetector = new DetectorManager; + myDetector->ReadConfigurationFile(detectorfileName); + + // Attach more branch to the output + double Ex = 0 ; double EE = 0 ; double TT = 0 ; double X = 0 ; double Y = 0 ; int det ; + RootOutput::getInstance()->GetTree()->Branch("ExcitationEnergy",&Ex,"Ex/D") ; + RootOutput::getInstance()->GetTree()->Branch("E",&EE,"EE/D") ; + RootOutput::getInstance()->GetTree()->Branch("A",&TT,"TT/D") ; + RootOutput::getInstance()->GetTree()->Branch("X",&X,"X/D") ; + RootOutput::getInstance()->GetTree()->Branch("Y",&Y,"Y/D") ; + + // Get GaspardTracker pointer + GaspardTracker* GPDTrack = (GaspardTracker*) myDetector->m_Detector["GASPARD"]; + + // Get the TChain and treat it + TChain* chain = RootInput:: getInstance() -> GetChain(); + + // Connect TInteractionCoordinates branch + TInteractionCoordinates *interCoord = 0; + chain->SetBranchAddress("InteractionCoordinates", &interCoord); + chain->SetBranchStatus("InteractionCoordinates", 0); + + // Analysis is here! + int nentries = chain->GetEntries(); + cout << "Number of entries to be analysed: " << nentries << endl; + + for (int i = 0; i < nentries; i ++) { + if (i%10000 == 0 && i!=0) cout << i << " analysed events" << endl; + chain -> GetEntry(i); + + // Treat Gaspard event + myDetector->ClearEventPhysics(); + myDetector->BuildPhysicalEvent(); + + // Get total energy + double E = GPDTrack->GetEnergyDeposit(); + + // if there is a hit in the detector array, treat it. + double Theta, ThetaStrip; + TVector3 A; + if (E > -1000) { + // Get exact scattering angle from TInteractionCoordinates object + Theta = interCoord->GetDetectedAngleTheta(0) * deg; + + // Get interaction coordinates taking into account the strips + A = GPDTrack->GetPositionOfInteraction(); + // Calculate scattering angle + ThetaStrip = ThetaCalculation (A ,TVector3(0,0,1)); + + // Calculate excitation energy + if (Theta/deg > 90) { +// Ex = myReaction->ReconstructRelativistic(E, Theta / rad); + Ex = myReaction->ReconstructRelativistic(E, ThetaStrip); } + else Ex = -200; + } + else { + Ex = -100; } -/* - PhysicsMUST2->BuildPhysicalEvent(EventMUST2) ; - - /////////////////////// - // Put your Analysis Here - - if( PhysicsMUST2->TelescopeNumber.size()>0) - { - for(Int_t mult = 0 ; mult < PhysicsMUST2->TelescopeNumber.size() ; mult++) - { - N=PhysicsMUST2->TelescopeNumber.at(mult); - - Double_t Theta = rad * ThetaCalculation( - Xs=myArray->GetStripPositionX( N , X=PhysicsMUST2->Si_X.at(mult) , Y=PhysicsMUST2->Si_Y.at(mult) ) , - Ys=myArray->GetStripPositionY( N , X=PhysicsMUST2->Si_X.at(mult) , Y=PhysicsMUST2->Si_Y.at(mult) ) , - Zs=myArray->GetStripPositionZ( N , X=PhysicsMUST2->Si_X.at(mult) , Y=PhysicsMUST2->Si_Y.at(mult) ) , - BeamX , - BeamY , - BeamTheta ); - - // Rand prevent binning effect due to discret Hit position pattern (strip center) - hXY->Fill( (Xs-1)+2*rand.Uniform() ,(Ys-1)+2*rand.Uniform() ); - - if(N==1)hXY1 -> Fill(X,Y) ; - if(N==2)hXY2 -> Fill(X,Y) ; - if(N==3)hXY3 -> Fill(X,Y) ; - if(N==4)hXY4 -> Fill(X,Y) ; - - Double_t Energy = PhysicsMUST2->TotalEnergy.at(mult)*MeV ; - - // Correct Energy Loss in the target -// Energy = ProtonTarget.EvaluateInitialEnergy( Energy , -// 20.618556701*micrometer , -// Theta ); - - - Ex = myReaction->ReconstructRelativistic( Energy , Theta ) ; - - ThetaCM = myReaction->EnergyLabToThetaCM(Energy) ; - hThetaLabCM -> Fill(ThetaCM/deg,Theta/deg) ; - hThetaCM -> Fill(ThetaCM/deg) ; - hEA-> Fill(Theta/deg , Energy) ; - //hEA-> Fill(InitialTheta , InitialEnergy) ; - hTheta->Fill(Theta/deg) ; - check_light = true ; - - hEx->Fill(Ex); -*/ - /*if(N==5 && check_light) - { - - double Hexa = HexaEnergy(PhysicsMUST2->TotalEnergy.at(mult) ,Ex) ; - cout << Hexa << endl ; - hEHexa->Fill(Hexa); - }*/ -/* } - - } - - PhysicsMUST2->Clear(); - ////////////////////// - - PhysicsMUST2->Clear();*/ - } - - TFile outfile("./Result/myResult.root","RECREATE") ; - - for (Int_t i = 0; i < NbElements; i++) hHitPattern[i]->Write(); - hTheta -> Write() ; - hThetaCM -> Write() ; - hThetaLabCM -> Write() ; - hXY -> Write() ; - hXY1 -> Write() ; - hXY2 -> Write() ; - hXY3 -> Write() ; - hXY4 -> Write() ; - hXY5 -> Write() ; - hXY6 -> Write() ; - hEx -> Write() ; - hEA -> Write() ; - hEHexa -> Write() ; - hEnerX->Write(); - hEnerY->Write(); - hEnerXY->Write(); - hEnerTheta->Write(); - - outfile.Close() ; - -return 0 ; -} - + EE = E ; TT = ThetaStrip/deg; + if (E>-1000) { + X = A . X(); + Y = A . Y(); + } + else { + X = -1000 ; Y = -1000; + } -double ThetaCalculation( double StripX , double StripY ,double StripZ, double PPAC_X, double PPAC_Y, double PPAC_Theta) - { - double TargetZ = -50;//mm - StripX = StripX-PPAC_X ; StripY = StripY-PPAC_Y ; StripZ=StripZ-TargetZ ; - double norme = sqrt ( StripX*StripX + StripY*StripY + StripZ*StripZ ) ; - double Theta = acos ( StripZ / norme ) ; - return (Theta-PPAC_Theta) ; //return Theta in rad - } + // Fill output tree + RootOutput::getInstance()->GetTree()->Fill(); + } + // delete singleton classes + RootOutput::getInstance()->Destroy(); + RootInput::getInstance()->Destroy(); -double HexaEnergy(double HeavyEnergy ,double ThetaHeavy , double Excitation) - { - /*double M10He = 9362.73 + Excitation ; - double Malpha = 3727.42 ; - double Mn = 939.56536 ; - double M2 = M10He * M10He ; - double Ma2 = Malpha * Malpha ; + return 0; +} - // HeavyEnergyLab to HeavyEnergyCM - - // Initial Lab to CM Momentum - G4double InitialMomentum = sqrt(EnergyHeavy*EnergyHeavy - Ma2) ; - G4double InitialMomentumX = sin(ThetaHeavy) ; - G4double InitialMomentumY = sin(ThetaHeavy) ; - G4double InitialMomentumZ = cos(ThetaHeavy) ; - - // Beta and Gamma CM to Lab - G4double betaX = (DaughterMomentumX*p - InitialMomentumX*InitialMomentum)/E ; - G4double betaY = (DaughterMomentumY*p - InitialMomentumY*InitialMomentum)/E ; - G4double betaZ = (DaughterMomentumZ*p - InitialMomentumZ*InitialMomentum)/E ; - G4double beta = sqrt (betaX*betaX + betaY*betaY + betaZ*betaZ ) ; - G4double beta2 = beta*beta ; - G4double gamma = 1 / ( sqrt(1 - beta2 ) ) ; - // Calculate everything for heavy particule - - G4double NewEnergy = - gamma*E - - betaX*gamma*DaughterMomentumX*p - - betaY*gamma*DaughterMomentumY*p - - betaZ*gamma*DaughterMomentumZ*p; - - double HexaEnergy = sqrt( ( (M2 + Ma2)/(2*M10He) - (HeavyEnergy) ) * (2*M10He) ); - - return(6*Mn-HexaEnergy) ;*/ - } +double ThetaCalculation (TVector3 A , TVector3 B) +{ + double Theta = acos( (A.Dot(B)) / (A.Mag()*B.Mag()) ); + return Theta ; +} diff --git a/NPAnalysis/Gaspard/src/ConfigurationReader.cc b/NPAnalysis/Gaspard/src/ConfigurationReader.cc deleted file mode 100644 index 827855f119ecf7c4073a5b1e828cfcf7d4fe3184..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/src/ConfigurationReader.cc +++ /dev/null @@ -1,319 +0,0 @@ -#include "ConfigurationReader.hh" -#include <vector> -#include <stdlib.h> -#include "CLHEP/Vector/ThreeVector.h" - -using namespace std ; -using namespace CLHEP ; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ReadConfiguration( string Path , array* myArray) -{ - -////////General Reading needs//////// - string LineBuffer; - string DataBuffer; - -////////MUST2 Detector needs//////// - Hep3Vector A,B,C,D; - - double Theta,Phi,Distance,Beta_u,Beta_v,Beta_w; - int SI,SILI,CSI,VIS; - bool check_A=false;bool check_B=false;bool check_C=false;bool check_D=false; - bool check_Theta=false;bool check_Phi=false;bool check_Distance=false;bool check_Beta=false; - - bool MUST2=false; - bool Target=false; - bool CryoTarget=false; - -//////////Target Definition needs/////// - double TargetThickness, TargetRadius; - - //for cryogenic target - - double WindowsThickness, TargetTemperature, TargetPressure; - -////////////////////////////////////////////////////////////////////////////////////////// - ifstream ConfigFile; - ConfigFile.open(Path.c_str()); - - if( ConfigFile.is_open() ) - cout << " Configuration file " << Path << " loading " << endl; - else{ - cout << " Error, no configuration file" << Path << " found" << endl; return;} - - int i=0; - while( !ConfigFile.eof() ) - { - - //Pick-up next line - getline(ConfigFile, LineBuffer); i++; - - //Search for comment Symbol % - if(LineBuffer.compare(0,1,"%")==0) {;} - - //Search for Telescope - else if(LineBuffer.compare(0,9,"GPDSquare")==0 || LineBuffer.compare(0,13,"GPDDummyShape")==0) - { - - //A MUST2 Telescope is detected: - - //Check if it is the first telescope added. If yes, Instantiate a new Array linked to the logical World. - if(!MUST2) - { - //MUST2Array= new MUST2Array(world); - MUST2=true; - } - - check_A=false; check_B=false; check_C=false; check_D=false; - check_Theta=false; check_Phi=false; check_Distance=false; - cout << "///////////////" << endl; - cout << "Telescope found" << endl; - cout << "///////////////" << endl; - - ConfigFile >> DataBuffer; - //Position method - if(DataBuffer.compare(0,6,"X1_Y1=")==0) - { - check_A=true; - ConfigFile >> DataBuffer ; A.setX( atof( DataBuffer.c_str() ) ); - ConfigFile >> DataBuffer ; A.setY( atof( DataBuffer.c_str() ) ); - ConfigFile >> DataBuffer ; A.setZ( atof( DataBuffer.c_str() ) ); - - cout << "X1 Y1 corner position : " << A << endl; - } - - //Angle method - if(DataBuffer.compare(0,6,"THETA=")==0) - { - check_Theta=true; - ConfigFile >> DataBuffer ; Theta=atof(DataBuffer.c_str()) ; - cout << "Theta: "<< Theta << endl; - } - - - ConfigFile >> DataBuffer; - - //Position method - if(DataBuffer.compare(0,8,"X128_Y1=")==0) - { - check_B=true; - ConfigFile >> DataBuffer ; B.setX( atof( DataBuffer.c_str() ) ); - ConfigFile >> DataBuffer ; B.setY( atof( DataBuffer.c_str() ) ); - ConfigFile >> DataBuffer ; B.setZ( atof( DataBuffer.c_str() ) ); - - cout << "X128 Y1 corner position : " << B << endl; - } - - //Angle method - if(DataBuffer.compare(0,4,"PHI=")==0) - { - check_Phi=true; - ConfigFile >> DataBuffer ; Phi=atof(DataBuffer.c_str()) ; - cout << "Phi: "<< Phi << endl; - } - - ConfigFile >> DataBuffer; - - //Position method - if(DataBuffer.compare(0,8,"X1_Y128=")==0) - { - check_C=true; - ConfigFile >> DataBuffer ; C.setX( atof( DataBuffer.c_str() ) ); - ConfigFile >> DataBuffer ; C.setY( atof( DataBuffer.c_str() ) ); - ConfigFile >> DataBuffer ; C.setZ( atof( DataBuffer.c_str() ) ); - - cout << "X1 Y128 corner position : " << C << endl; - } - - //Angle method - if(DataBuffer.compare(0,2,"R=")==0) - { - check_Distance=true; - ConfigFile >> DataBuffer ; Distance=atof(DataBuffer.c_str()) ; - cout << "Distance: "<< Distance << endl; - } - - ConfigFile >> DataBuffer; - //Position method - if(DataBuffer.compare(0,10,"X128_Y128=")==0) - { - check_D=true; - ConfigFile >> DataBuffer ; D.setX( atof( DataBuffer.c_str() ) ); - ConfigFile >> DataBuffer ; D.setY( atof( DataBuffer.c_str() ) ); - ConfigFile >> DataBuffer ; D.setZ( atof( DataBuffer.c_str() ) ); - - cout << "X128 Y128 corner position : " << D << endl; - } - - //Angle method - if(DataBuffer.compare(0,5,"BETA=")==0) - { - check_Beta=true; - ConfigFile >> DataBuffer ; Beta_u=atof(DataBuffer.c_str()) ; - ConfigFile >> DataBuffer ; Beta_v=atof(DataBuffer.c_str()) ; - ConfigFile >> DataBuffer ; Beta_w=atof(DataBuffer.c_str()) ; - cout << "Beta: "<< Beta_u << Beta_v << Beta_w << endl; - } - - ConfigFile >> DataBuffer; - if(DataBuffer.compare(0,10,"FIRSTSTAGE=")==0) - { - ConfigFile >> DataBuffer;SI=atof(DataBuffer.c_str()) ; - } - - ConfigFile >> DataBuffer; - if(DataBuffer.compare(0,11,"SECONDSTAGE=")==0) - { - ConfigFile >> DataBuffer;SILI=atof(DataBuffer.c_str()) ; - } - - - ConfigFile >> DataBuffer; - if(DataBuffer.compare(0,10,"THIRDSTAGE=")==0) - { - ConfigFile >> DataBuffer;CSI=atof(DataBuffer.c_str()) ; - } - - - ///Add The previously define telescope - - //With position method - if(check_A && check_B && check_C && check_D) - { - myArray->addTelescope( A , - B , - C , - D ); - - } - - //with angle method - if(check_Theta && check_Phi && check_Distance && check_Beta) - { - myArray->addTelescope( Theta , - Phi , - Distance , - Beta_u , - Beta_v , - Beta_w ); - - } - - - } - - //Nothing understandable - else ; - - - } - -ConfigFile.close(); -return; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Reaction* ReadReaction( string Path ) -{ -////////General Reading needs//////// - string LineBuffer; - string DataBuffer; - -////////Reaction Setting needs/////// -string Beam,Target,Heavy,Light,CrossSectionPath; -double BeamEnergy,ExcitationEnergy; -Reaction* myReaction; - -////////////////////////////////////////////////////////////////////////////////////////// - ifstream ReactionFile; - ReactionFile.open(Path.c_str()); - - if( ReactionFile.is_open() ) - cout << " Reaction file " << Path << " loading " << endl; - else{ - cout << " Error, no Reaction file" << Path << " found" << endl; return myReaction;} - - - int i=0; - while( !ReactionFile.eof() ) - { - //Pick-up next line - getline(ReactionFile, LineBuffer); i++; - - //Search for comment Symbol % - if(LineBuffer.compare(0,1,"%")==0) {;} - - else if(LineBuffer.compare(0,9,"Transfert")==0) - { - - ReactionFile >> DataBuffer; - if(DataBuffer.compare(0,5,"Beam=")==0) - { - ReactionFile >> DataBuffer; - Beam = DataBuffer; - cout << "Beam " << Beam << endl; - } - - ReactionFile >> DataBuffer; - if(DataBuffer.compare(0,7,"Target=")==0) - { - ReactionFile >> DataBuffer; - Target = DataBuffer; - cout << "Target " << Target << endl; - } - - ReactionFile >> DataBuffer; - if(DataBuffer.compare(0,6,"Light=")==0) - { - ReactionFile >> DataBuffer; - Light = DataBuffer; - cout << "Light " << Light << endl; - } - - ReactionFile >> DataBuffer; - if(DataBuffer.compare(0,6,"Heavy=")==0) - { - ReactionFile >> DataBuffer; - Heavy = DataBuffer; - cout << "Heavy " << Heavy << endl; - } - - ReactionFile >> DataBuffer; - if(DataBuffer.compare(0,17,"ExcitationEnergy=")==0) - { - ReactionFile >> DataBuffer; - ExcitationEnergy = atof(DataBuffer.c_str()); - cout << "ExcitationEnergy " << ExcitationEnergy << " MeV" << endl; - } - - ReactionFile >> DataBuffer; - if(DataBuffer.compare(0,11,"BeamEnergy=")==0) - { - ReactionFile >> DataBuffer; - BeamEnergy = atof(DataBuffer.c_str()); - cout << "EnergyBeam " << BeamEnergy << " MeV" << endl; - } - - ReactionFile >> DataBuffer;ReactionFile >> DataBuffer; - ReactionFile >> DataBuffer;ReactionFile >> DataBuffer; - ReactionFile >> DataBuffer;ReactionFile >> DataBuffer; - ReactionFile >> DataBuffer;ReactionFile >> DataBuffer; - ReactionFile >> DataBuffer;ReactionFile >> DataBuffer; - - - ReactionFile >> DataBuffer; - if(DataBuffer.compare(0,17,"CrossSectionPath=")==0) - { - ReactionFile >> CrossSectionPath; - cout << "CrossSectionPath " << CrossSectionPath << endl; - } - } - } - -myReaction = new Reaction(Beam, Target, Light, Heavy,BeamEnergy,ExcitationEnergy,CrossSectionPath); - -ReactionFile.close(); -return myReaction; - -} - diff --git a/NPAnalysis/Gaspard/src/ConfigurationReader.hh b/NPAnalysis/Gaspard/src/ConfigurationReader.hh deleted file mode 100644 index d4b2e1fe1eaf30c39807391b226329724bab7b84..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/src/ConfigurationReader.hh +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef ConfigurationReader_h -#define ConfigurationReader_h 1 - -// STL -#include <string> -#include <iostream> -#include <fstream> - -// NPL -#include "NPReaction.h" -using namespace NPL ; - -#include "must.hh" - -void ReadConfiguration ( string Path , array* myArray ) ; -Reaction* ReadReaction ( string Path ) ; - - -#endif - diff --git a/NPAnalysis/Gaspard/src/DetectorManager.cc b/NPAnalysis/Gaspard/src/DetectorManager.cc new file mode 100644 index 0000000000000000000000000000000000000000..93bbbd699e84eaacedecc00f80499a4608e9a676 --- /dev/null +++ b/NPAnalysis/Gaspard/src/DetectorManager.cc @@ -0,0 +1,229 @@ +#include "DetectorManager.hh" + +// STL +#include <iostream> +#include <fstream> +#include <cstdlib> + +// Detector +#include "Must2Array.h" +#include "GaspardTracker.h" + +///////////////////////////////////////////////////////////////////////////////////////////////// +// Default Constructor and Destructor +DetectorManager::DetectorManager() + {} + +///////////////////////////////////////////////////////////////////////////////////////////////// +DetectorManager::~DetectorManager() + {} + + +///////////////////////////////////////////////////////////////////////////////////////////////// +// Read stream at ConfigFile and pick-up Token declaration of Detector +void DetectorManager::ReadConfigurationFile(string Path) + { + ////////General Reading needs//////// + string LineBuffer; + string DataBuffer; + + /////////Boolean//////////////////// + bool MUST2 = false ; + bool AddThinSi = false ; + bool GeneralTarget = false ; + bool GPDTracker = false ; // Gaspard Tracker + ////////////////////////////////////////////////////////////////////////////////////////// + // added by Nicolas [07/05/09] + string GlobalPath = getenv("NPTOOL"); + Path = GlobalPath + "/Inputs/DetectorConfiguration/" + Path; + ifstream ConfigFile; + ConfigFile.open(Path.c_str()); + + if (ConfigFile.is_open()) + { + cout << "/////////////////////////////" << endl; + cout << " Configuration file " << Path << " loading " << endl; + } + + else + { + cout << " Error, no configuration file" << Path << " found" << endl; + return; + } + + + while (!ConfigFile.eof()) { + //Pick-up next line + getline(ConfigFile, LineBuffer); + //Search for comment Symbol: % + if (LineBuffer.compare(0, 1, "%") == 0) { /*Do Nothing*/ ;} + + //////////////////////////////////////////// + //////////// Search for Gaspard //////////// + //////////////////////////////////////////// + else if (LineBuffer.compare(0, 14, "GaspardTracker") == 0 && GPDTracker == false) { + GPDTracker = true ; + cout << "//////// Gaspard Tracker ////////" << endl ; + + // Instantiate the new array as a VDetector Object + VDetector* myDetector = new GaspardTracker() ; + + // Read Position of Telescope + ConfigFile.close() ; + myDetector->ReadConfiguration(Path) ; + ConfigFile.open(Path.c_str()) ; + + // Add array to the VDetector Vector + AddDetector("GASPARD", myDetector) ; + } + + //////////////////////////////////////////// + //////// Search for MUST2 Array //////// + //////////////////////////////////////////// + else if (LineBuffer.compare(0, 10, "MUST2Array") == 0 && MUST2 == false) { + MUST2 = true ; + cout << "//////// MUST2 Array ////////" << endl << endl ; + + // Instantiate the new array as a VDetector Object + VDetector* myDetector = new MUST2Array() ; + + // Read Position of Telescope + ConfigFile.close() ; + myDetector->ReadConfiguration(Path) ; + ConfigFile.open(Path.c_str()) ; + + // Add array to the VDetector Vector + AddDetector("MUST2" , myDetector) ; + } + + /* //////////////////////////////////////////// + ////////// Search for Add.ThinSi /////////// + //////////////////////////////////////////// + else if (LineBuffer.compare(0, 9, "AddThinSi") == 0 && AddThinSi == false) { + AddThinSi = true ; + cout << "//////// Thin Si ////////" << endl << endl ; + + // Instantiate the new array as a VDetector Object + VDetector* myDetector = new ThinSi() ; + + // Read Position of Telescope + ConfigFile.close() ; + myDetector->ReadConfiguration(Path) ; + ConfigFile.open(Path.c_str()) ; + + // Add array to the VDetector Vector + AddDetector(myDetector) ; + } + + //////////////////////////////////////////// + //////////// Search for Target ///////////// + //////////////////////////////////////////// + + else if (LineBuffer.compare(0, 13, "GeneralTarget") == 0 && GeneralTarget == false) { + GeneralTarget = true ; + cout << "////////// Target ///////////" << endl << endl ; + + // Instantiate the new array as a VDetector Objects + VDetector* myDetector = new Target() ; + + // Read Position and target specification + ConfigFile.close() ; + myDetector->ReadConfiguration(Path) ; + ConfigFile.open(Path.c_str()) ; + + m_TargetThickness = ((Target*)myDetector)->GetTargetThickness() ; + m_TargetRadius = ((Target*)myDetector)->GetTargetRadius() ; + m_TargetX = ((Target*)myDetector)->GetTargetX() ; + m_TargetY = ((Target*)myDetector)->GetTargetY() ; + m_TargetZ = ((Target*)myDetector)->GetTargetZ() ; + + // Add target to the VDetector Vector + AddDetector(myDetector) ; + }*/ + + //Nothing understandable + //else ; + } + + ConfigFile.close(); + + InitializeRootInput(); + InitializeRootOutput(); + + return ; + } + +///////////////////////////////////////////////////////////////////////////////////////////////// + +void DetectorManager::BuildPhysicalEvent() + { + map<string,VDetector*>::iterator it ; + + for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) + { + it->second->BuildPhysicalEvent() ; + } + } +///////////////////////////////////////////////////////////////////////////////////////////////// + +void DetectorManager::BuildSimplePhysicalEvent() + { + map<string,VDetector*>::iterator it ; + + for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) + { + it->second->BuildSimplePhysicalEvent() ; + } + } +///////////////////////////////////////////////////////////////////////////////////////////////// + +void DetectorManager::InitializeRootInput() + { + map<string,VDetector*>::iterator it ; + + for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) + { + it->second->InitializeRootInput() ; + } + } +///////////////////////////////////////////////////////////////////////////////////////////////// + +void DetectorManager::InitializeRootOutput() + { + map<string,VDetector*>::iterator it ; + + for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) + { + it->second->InitializeRootOutput() ; + } + + } +///////////////////////////////////////////////////////////////////////////////////////////////// + +void DetectorManager::AddDetector(string DetectorName , VDetector* newDetector) + { + m_Detector[DetectorName] = newDetector ; + } +///////////////////////////////////////////////////////////////////////////////////////////////// +void DetectorManager::ClearEventPhysics() + { + map<string,VDetector*>::iterator it ; + + for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) + { + it->second->ClearEventPhysics() ; + } + + } +///////////////////////////////////////////////////////////////////////////////////////////////// +void DetectorManager::ClearEventData() + { + map<string,VDetector*>::iterator it ; + + for( it = m_Detector.begin() ; it != m_Detector.end() ; ++it) + { + it->second->ClearEventData() ; + } + + } + diff --git a/NPAnalysis/Gaspard/src/GNUmakefile b/NPAnalysis/Gaspard/src/GNUmakefile index 51c5fef9d17ce76ec2688e1b0f19b11c285f5ab8..c18b108aaeff1d074e76e615e2f38d050e4cfedc 100644 --- a/NPAnalysis/Gaspard/src/GNUmakefile +++ b/NPAnalysis/Gaspard/src/GNUmakefile @@ -5,7 +5,7 @@ CPP=g++ EXEC=Analysis # local includes -NPAINCLUDES = $(NPANA)/include +NPAINCLUDES = ../include # ROOT includes CXXFLAGS += `root-config --cflags` @@ -15,21 +15,21 @@ CXXFLAGS += -I$(CLHEP_INCLUDE_DIR) CXXFLAGS += -I$(NPAINCLUDES) CXXFLAGS += -I$(NPLIB)/include - LDFLAGS = `root-config --libs` -lMathMore -#LDFLAGS += -L$(NPLIB) -lMust2Data -lReaction -lEnergyLossCorrection -LDFLAGS += -L$(NPLIB)/lib -lMust2Data -lGaspardData -lInteractionCoordinates \ - -lInitialConditions -lReaction -LDFLAGS += -L$(CLHEP_LIB_DIR) -l$(CLHEP_LIB) +LDFLAGS+= -L$(NPLIB)/lib -lVDetector -lIORoot -lReaction -lEnergyLoss \ + -lMust2Data -lMust2Physics \ + -lGaspardData -lGaspardPhysics \ + -lAnnularS1Data \ + -lInitialConditions -lInteractionCoordinates +LDFLAGS+= -L$(CLHEP_LIB_DIR) -l$(CLHEP_LIB) SRC= $(wildcard *.cc) -INC= $(wildcart $(NPAINCLUDES)/*.hh) OBJ=$(SRC:.cc=.o) #all:$(EXEC) # @$(CPP) -o $@ -c $< $(CXXFLAGS) -Analysis:$(OBJ) $(INC) +Analysis:$(OBJ) @$(CPP) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) mv Analysis ../Analysis diff --git a/NPAnalysis/Gaspard/src/ObjectManager.hh b/NPAnalysis/Gaspard/src/ObjectManager.hh deleted file mode 100644 index 3e2bd0b1deb511b91eec39ccf0d7b8102d370d5d..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/src/ObjectManager.hh +++ /dev/null @@ -1,84 +0,0 @@ -// 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 organising we use Name Space. - - -// -----------------------------------DOUBLE, INT, BOOL-------------------------------------------- - -namespace VARIABLE - { - double Xs,Ys,Zs,N ; - double Theta = 0 ; - double Ex = 0 ; - double ThetaCM = 0 ; - int X,Y ; - bool check_light = false ; - - } - -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: - const int NbElements = 40; - - TH2F *hXY1 = new TH2F("hXY1","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hXY2 = new TH2F("hXY2","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hXY3 = new TH2F("hXY3","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hXY4 = new TH2F("hXY4","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hXY5 = new TH2F("hXY5","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hXY6 = new TH2F("hXY6","", 128 , 1 , 128 , 128 , 1 , 128 ) ; - TH2F *hHitPattern[NbElements]; - - TH1F *hEnerX = new TH1F("hEnerX", "Energy X", 1000, -1, 10); - TH1F *hEnerY = new TH1F("hEnerY", "Energy Y", 1000, -1, 10); - TH2F *hEnerXY = new TH2F("hEnerXY", "Energy X vs Y", 100, -1, 10, 100, -1, 10); - TH2F *hEnerTheta = new TH2F("hEnerTheta", "Energy v.s. Theta", 90, 0, 180, 400, 0, 100); - - TH2F *hXY = new TH2F("hXY","", 300 , -130 , 130 , 300 , -130 , 130 ) ; - TH2F *hEA = new TH2F("hEA" ,"", 120 , 0 , 60 , 260 , 0 , 130 ) ; - TH1F *hEx = new TH1F("hEx", "E* (MeV)", 10000, -10, 40); - TH1F *hEHexa = new TH1F("hEHexa","EHexa (MeV)", 1000 , -5 , 5 ) ; - TH1F *hThetaCM = new TH1F("hThetaCM","ThetaCM (deg)", 30 , 0 , 60 ) ; - TH1F *hTheta = new TH1F("hTheta","Theta Lab (deg)",180,0,180) ; - TH2F *hThetaLabCM = new TH2F("hThetaLabCM","", 90 , 0 , 180 , 90 , 0 , 180 ) ; - - // Declare your Cut here: - - } - -using namespace GRAPH ; -// ---------------------------------------------------------------------------------------------- - - -// -----------------------------------ENERGY LOSS------------------------------------------------ -/* -#include "NPEnergyLossCorrection.h" -using namespace NPL ; -namespace ENERGYLOSS - { - -// EnergyLoss ProtonTarget = EnergyLoss ( "/home/Adrien/Desktop/dEdX.txt" , -// 100 , -// 1 ); - - } - -using namespace ENERGYLOSS ; -*/ -// ---------------------------------------------------------------------------------------------- - - - diff --git a/NPAnalysis/Gaspard/src/must.cc b/NPAnalysis/Gaspard/src/must.cc deleted file mode 100644 index 4ccdeb7ed9e1b749e14dde0e1b5e50ca7126ca28..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/src/must.cc +++ /dev/null @@ -1,245 +0,0 @@ -#include "must.hh" -#include <cmath> -#include <iostream> - -using namespace std; - -/////////////////////////////////////////////////////// - -//////// Constructor by Spherical Coordinate -must::must(double theta, double phi, double distance, double beta_u , double beta_v, double beta_w) - { - double Pi = 3.141592654 ; - - // convert from degree to radian: - theta = theta * Pi/180. ; - phi = phi * Pi/180. ; - - //Vector U on Telescope Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis) - Hep3Vector U ; - //Vector V on Telescope Face (parallele to X Strip) - Hep3Vector V ; - //Vector W normal to Telescope Face (pointing CsI) - Hep3Vector W ; - //Vector position of Telescope Face center - Hep3Vector C ; - - /*if(theta==180 && phi==90) - { - C = Hep3Vector (0,0,distance) ; - U = Hep3Vector (1,0,0) ; - V = Hep3Vector (0,1,0) ; - W = Hep3Vector (0,0,1) ; - }*/ - - if(theta==0 && phi==0) - { - C = Hep3Vector (0,0,distance) ; - U = Hep3Vector (1,0,0) ; - V = Hep3Vector (0,1,0) ; - W = Hep3Vector (0,0,1) ; - } - - else - { - C = Hep3Vector ( distance * sin(theta) * cos(phi) , - distance * sin(theta) * sin(phi) , - distance * cos(theta) ); - - Hep3Vector Y = Hep3Vector( cos(theta) * cos(phi), - cos(theta) * sin(phi), - -sin(theta)); - - W = C.unit() ; -// U = W.cross( Hep3Vector (0,1,0) ) ; - U = W.cross( Y ) ; - V = W.cross(U); - - U = U.unit(); - V = V.unit(); - - U.rotate( U , beta_u * Pi/180. ) ; - V.rotate( U , beta_u * Pi/180. ) ; - - U.rotate( V , beta_v * Pi/180. ) ; - V.rotate( V , beta_v * Pi/180. ) ; - - U.rotate( W , beta_w * Pi/180. ) ; - V.rotate( W , beta_w * Pi/180. ) ; - } - -// double Face = 98 ; //mm - double Face = 50 ; //mm - double NumberOfStrip = 128 ; - double StripPitch = Face/NumberOfStrip ; //mm - - vector<double> lineX ; vector<double> lineY ; vector<double> lineZ ; - double X , Y , Z ; - - //Moving C to the 1.1 corner: - C.setX( C.x() - ( Face/2 - StripPitch/2 ) * ( V.x() + U.x() ) ) ; - C.setY( C.y() - ( Face/2 - StripPitch/2 ) * ( V.y() + U.y() ) ) ; - C.setZ( C.z() - ( Face/2 - StripPitch/2 ) * ( V.z() + U.z() ) ) ; - - for( int i = 0 ; i < 128 ; i++ ) - { - - lineX.clear() ; - lineY.clear() ; - lineZ.clear() ; - - for( int j = 0 ; j < 128 ; j++ ) - { - - X = C.x() + StripPitch * ( U.x()*i + V.x()*j ) ; - Y = C.y() + StripPitch * ( U.y()*i + V.y()*j ) ; - Z = C.z() + StripPitch * ( U.z()*i + V.z()*j ) ; - - lineX.push_back(X) ; - lineY.push_back(Y) ; - lineZ.push_back(Z) ; - } - - StripPositionX.push_back(lineX) ; - StripPositionY.push_back(lineY) ; - StripPositionZ.push_back(lineZ) ; - - } - } - -/////////////////////////////////////////////////////// - -must::must( Hep3Vector C_X1_Y1 , - Hep3Vector C_X128_Y1 , - Hep3Vector C_X1_Y128 , - Hep3Vector C_X128_Y128 , - Hep3Vector TargetPosition = Hep3Vector(0,0,0) ) - { - - // Vector U on Telescope Face (paralelle to Y Strip) (NB: remember that Y strip are allong X axis) - Hep3Vector U = C_X128_Y1 - C_X1_Y1 ; - U = U.unit() ; - - // Vector V on Telescope Face (parallele to X Strip) - Hep3Vector V = C_X1_Y128 - C_X1_Y1 ; - V = V.unit() ; - - // Position Vector of Strip Center - Hep3Vector StripCenter ; - // Position Vector of X=1 Y=1 Strip - Hep3Vector Strip_1_1 ; - - // Geometry Parameter - double Face = 98 ; //mm - double NumberOfStrip = 128 ; - double StripPitch = Face/NumberOfStrip ; //mm - - // Buffer object to fill Position Array - vector<double> lineX ; vector<double> lineY ; vector<double> lineZ ; - - // Moving StripCenter to 1.1 corner: - Strip_1_1 = C_X1_Y1 + (U+V) * StripPitch/2 ; - - for( int i = 0 ; i < 128 ; i++ ) - { - lineX.clear() ; - lineY.clear() ; - lineZ.clear() ; - - for( int j = 0 ; j < 128 ; j++ ) - { - StripCenter = Strip_1_1 + StripPitch*( i*U + j*V ) ; - //StripCenter += -TargetPosition ; - - lineX.push_back( StripCenter.x() ) ; - lineY.push_back( StripCenter.y() ) ; - lineZ.push_back( StripCenter.z() ) ; - } - - StripPositionX.push_back(lineX) ; - StripPositionY.push_back(lineY) ; - StripPositionZ.push_back(lineZ) ; - - } - } - -/////////////////////////////////////////////////////// -double must::GetStripPositionX(int X , int Y) - { - return StripPositionX[X][Y]; - } -/////////////////////////////////////////////////////// -double must::GetStripPositionY(int X , int Y) - { - return StripPositionY[X][Y]; - } -/////////////////////////////////////////////////////// -double must::GetStripPositionZ(int X , int Y) - { - return StripPositionZ[X][Y]; - } -/////////////////////////////////////////////////////// -void must::Print() - { - - for( int i = 0 ; i < 128 ; i++ ) - { - - for( int j = 0 ; j < 128 ; j++ ) - { - cout << i+1 << " "<< j+1 << " " - << StripPositionX[i][j] << " " - << StripPositionY[i][j] << " " - << StripPositionZ[i][j] << " " - << endl ; - } - } - } - -/////////////////////////////////////////////////////// -///////////////// Class Array ///////////////////////// -/////////////////////////////////////////////////////// -array::array() -{NumberOfTelescope=0;} -/////////////////////////////////////////////////////// -void array::addTelescope( double theta , double phi , double distance , double beta_u , double beta_v, double beta_w) - { - must myMust(theta , phi , distance , beta_u , beta_v, beta_w) ; - NumberOfTelescope++ ; - myArray.push_back(myMust) ; - } - -/////////////// -void array::addTelescope(Hep3Vector A , Hep3Vector B , Hep3Vector C , Hep3Vector D ) - { - must myMust( A , B , C , D) ; - NumberOfTelescope++ ; - myArray.push_back(myMust) ; - } - - -/////////////////////////////////////////////////////// -double array::GetStripPositionX( int N , int X , int Y ) - { - return myArray[N-1].GetStripPositionX( X-1 , Y-1 ); - } - -/////////////////////////////////////////////////////// -double array::GetStripPositionY( int N , int X , int Y ) - { - return myArray[N-1].GetStripPositionY( X-1 , Y-1 ); - } - -/////////////////////////////////////////////////////// -double array::GetStripPositionZ( int N , int X , int Y ) - { - return myArray[N-1].GetStripPositionZ( X-1 , Y-1 ); - } - -/////////////////////////////////////////////////////// -void array::Print() - { - for ( int i = 0 ; i < myArray.size() ; i++ ) - { cout << " Telescope : " << i+1 << endl ; myArray.at(i).Print() ; } - } - diff --git a/NPAnalysis/Gaspard/src/must.hh b/NPAnalysis/Gaspard/src/must.hh deleted file mode 100644 index d3fa3a733fc029e7ed403f3a944e9dd68fc390c4..0000000000000000000000000000000000000000 --- a/NPAnalysis/Gaspard/src/must.hh +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef must_h -#define must_h 1 - -#include <vector> -#include <TFile.h> -#include <TH2.h> -#include <TH2F.h> -#include "CLHEP/Vector/ThreeVector.h" -using namespace std ; -using namespace CLHEP ; - -class must -{ -public: - must( double theta , double phi , double distance , double beta_u , double beta_v, double beta_w) ; - must( Hep3Vector C_X1_Y1 , - Hep3Vector C_X128_Y1 , - Hep3Vector C_X1_Y128 , - Hep3Vector C_X128_Y128 , - Hep3Vector TargetPosition ); - - double GetStripPositionX( int X , int Y ) ; - double GetStripPositionY( int X , int Y ) ; - double GetStripPositionZ( int X , int Y ) ; - void Print() ; - -private: - - vector< vector < double > > StripPositionX ; - vector< vector < double > > StripPositionY ; - vector< vector < double > > StripPositionZ ; - -}; - - -class array -{ -public: - array(); - void addTelescope( double theta , double phi , double distance , double beta_u , double beta_v , double beta_w) ; - void addTelescope( Hep3Vector C_X1_Y1 , - Hep3Vector C_X128_Y1 , - Hep3Vector C_X1_Y128 , - Hep3Vector C_X128_Y128 ); - - double GetStripPositionX( int N , int X , int Y ) ; - double GetStripPositionY( int N , int X , int Y ) ; - double GetStripPositionZ( int N , int X , int Y ) ; - double GetNumberOfTelescope() {return NumberOfTelescope;} ; - void Print() ; - -private: - vector< must > myArray ; - int NumberOfTelescope ; - -public: // Histogram - -/*// Hit Density - vector<TH2F*> HitDensity ; - - // Time of Flight Identification - vector<TH2F*> TOF ; - - // EDE Identification - vector<TH2F*> EDE ; - - // Kinematic Line - KinematicLine ; - - // Excitation Energy - ExcitationEnergy ;*/ - -}; - -#endif diff --git a/NPAnalysis/Gaspard/macros/ControlSimu.C b/NPAnalysis/macros/ControlSimu.C similarity index 70% rename from NPAnalysis/Gaspard/macros/ControlSimu.C rename to NPAnalysis/macros/ControlSimu.C index 56f2ee46029f7451fcf69349a615f5cd3b5a17bc..bb7b8ddcbe521156b05f6c42264ec1922d0e8456 100644 --- a/NPAnalysis/Gaspard/macros/ControlSimu.C +++ b/NPAnalysis/macros/ControlSimu.C @@ -1,3 +1,30 @@ +/***************************************************************************** + * Copyright (C) 2009 this file is part of the NPTool Project * + * * + * For the licensing terms see $NPTOOL/Licence/NPTool_Licence * + * For the list of contributors see $NPTOOL/Licence/Contributors * + *****************************************************************************/ + +/***************************************************************************** + * Original Author: N. de Sereville contact address: deserevi@ipno.in2p3.fr * + * * + * Creation Date : 22/07/09 * + * Last update : * + *---------------------------------------------------------------------------* + * Decription: * + * + This macro displays everything concerning the incident beam and the * + * emitted particle from NPSimulation * + * * + * + Use in a ROOT session: * + * .x ControlSimu.C("FileToAnalyse") * + * * + * * + *---------------------------------------------------------------------------* + * Comment: * + * * + * * + *****************************************************************************/ + #include <iostream> #include "TROOT.h" diff --git a/NPAnalysis/Gaspard/macros/GeometricalEfficiency.C b/NPAnalysis/macros/GeometricalEfficiency.C similarity index 50% rename from NPAnalysis/Gaspard/macros/GeometricalEfficiency.C rename to NPAnalysis/macros/GeometricalEfficiency.C index 90ca0e83b863b7b45116682d97a9fafb246068af..5bbc6f5864000c292f58a2741c5f69160e0ed90f 100644 --- a/NPAnalysis/Gaspard/macros/GeometricalEfficiency.C +++ b/NPAnalysis/macros/GeometricalEfficiency.C @@ -1,3 +1,31 @@ +/***************************************************************************** + * Copyright (C) 2009 this file is part of the NPTool Project * + * * + * For the licensing terms see $NPTOOL/Licence/NPTool_Licence * + * For the list of contributors see $NPTOOL/Licence/Contributors * + *****************************************************************************/ + +/***************************************************************************** + * Original Author: N. de Sereville contact address: deserevi@ipno.in2p3.fr * + * * + * Creation Date : 22/07/09 * + * Last update : * + *---------------------------------------------------------------------------* + * Decription: * + * + This macro calculates the geometrical efficiency for a given geometry* + * NPSimulation should have been run with an isotropic source event * + * generator. * + * * + * + Use in a ROOT session: * + * .x GeometricalEfficiency.C("FileToAnalyse") * + * * + * * + *---------------------------------------------------------------------------* + * Comment: * + * * + * * + *****************************************************************************/ + #include <iostream> #include "TROOT.h" diff --git a/NPAnalysis/macros/README b/NPAnalysis/macros/README new file mode 100644 index 0000000000000000000000000000000000000000..de21ad1250c784e67d5ae2eadfa26e9c4ec9841f --- /dev/null +++ b/NPAnalysis/macros/README @@ -0,0 +1,24 @@ +/***************************************************************************** + * Copyright (C) 2009 this file is part of the NPTool Project * + * * + * For the licensing terms see $NPTOOL/Licence/NPTool_Licence * + * For the list of contributors see $NPTOOL/Licence/Contributors * + *****************************************************************************/ + +/***************************************************************************** + * Original Author: N. de Sereville contact address: deserevi@ipno.in2p3.fr * + * * + * Creation Date : 11/09/09 * + * Last update : * + *---------------------------------------------------------------------------* + * Decription: * + * + The ROOT macros found in this directory are independent of the * + * detector set-up and can be run for any detector. * + * * + * * + *---------------------------------------------------------------------------* + * Comment: * + * * + * * + *****************************************************************************/ + diff --git a/NPAnalysis/Gaspard/macros/TestAngleReconstruction.C b/NPAnalysis/macros/TestAngleReconstruction.C similarity index 68% rename from NPAnalysis/Gaspard/macros/TestAngleReconstruction.C rename to NPAnalysis/macros/TestAngleReconstruction.C index 217efe959dae85053ab602d6efdc92ff9b05df2b..b29fc482f77dca795824ee3e2e2ad710f59d939d 100644 --- a/NPAnalysis/Gaspard/macros/TestAngleReconstruction.C +++ b/NPAnalysis/macros/TestAngleReconstruction.C @@ -1,3 +1,31 @@ +/***************************************************************************** + * Copyright (C) 2009 this file is part of the NPTool Project * + * * + * For the licensing terms see $NPTOOL/Licence/NPTool_Licence * + * For the list of contributors see $NPTOOL/Licence/Contributors * + *****************************************************************************/ + +/***************************************************************************** + * Original Author: N. de Sereville contact address: deserevi@ipno.in2p3.fr * + * * + * Creation Date : 22/07/09 * + * Last update : * + *---------------------------------------------------------------------------* + * Decription: * + * + This macro studues the impact of the beam emittance on the angle * + * determination. * + * * + * + Use in a ROOT session: * + * .x TestAngleReconstruction.C("FileToAnalyse") * + * * + * * + *---------------------------------------------------------------------------* + * Comment: * + * + This macro has not been fully tested yet. Be careful * + * * + * * + *****************************************************************************/ + #include <iostream> #include "TROOT.h" @@ -11,7 +39,6 @@ #include "TCanvas.h" #include "TMath.h" -#include "TGaspardTrackerData.h" #include "TInitialConditions.h" #include "TInteractionCoordinates.h" @@ -23,13 +50,9 @@ void TestAngleReconstruction(const char * fname = "mySimul") TString inFileName = fname; if (!inFileName.Contains("root")) inFileName += ".root"; TFile *inFile = new TFile(path + inFileName); - TTree *tree = (TTree*) inFile->Get("EventTree"); + TTree *tree = (TTree*) inFile->Get("SimulatedTree"); // Connect the branches of the TTree and activate then if necessary - // TGaspardTrackerData branch - TGaspardTrackerData *gpdTrkData = 0; - tree->SetBranchAddress("GASPARD", &gpdTrkData); - tree->SetBranchStatus("GASPARD", 0); // TInitialConditions branch TInitialConditions *initCond = 0; tree->SetBranchAddress("InitialConditions", &initCond); diff --git a/NPDocumentation/Gaspard.tex b/NPDocumentation/Gaspard.tex new file mode 100755 index 0000000000000000000000000000000000000000..38974666e8e0a9650e3095cc10732ed1740ec33b --- /dev/null +++ b/NPDocumentation/Gaspard.tex @@ -0,0 +1,27 @@ +\documentclass[a4paper,12pt]{article} +\usepackage[T1]{fontenc} +\usepackage [isolatin]{inputenc} % fontes avec caracteres accentues +\usepackage{graphicx} % inclusion de figures +\usepackage{listings} + +\begin{document} + +\title{\emph{Gaspard Documentation}} +\author{Nicolas de S\'er\'eville} + +\maketitle +\pagebreak +\tableofcontents % la table des matieres +\pagebreak + + +\section{Introduction} +\section{NPSimulation} +\subsection{} +\subsection{Storing the results of the simulation} +\subsection{Adding a new detector shape to Gaspard} + +\section{NPAnalysis} + +\end{document} + diff --git a/NPLib/GASPARD/GaspardTracker.cxx b/NPLib/GASPARD/GaspardTracker.cxx index d9971e51b4cbcb4c8a5b24d90a3be91dc2b0131a..c6afac495de05ac57b9fd2a2dc6e1f795bac21c0 100644 --- a/NPLib/GASPARD/GaspardTracker.cxx +++ b/NPLib/GASPARD/GaspardTracker.cxx @@ -244,9 +244,9 @@ void GaspardTracker::ReadConfiguration(string Path) // with angle method else if ( check_Theta && check_Phi && check_R && check_beta ) { - AddModuleSquare(R , - Theta , + AddModuleSquare(Theta , Phi , + R , beta_u , beta_v , beta_w ); @@ -398,12 +398,12 @@ void GaspardTracker::ReadConfiguration(string Path) // with angle method else if ( check_Theta && check_Phi && check_R && check_beta ) { - AddModuleDummyShape(R , - Theta , - Phi , - beta_u , - beta_v , - beta_w ); + AddModuleDummyShape(Theta, + Phi, + R, + beta_u, + beta_v, + beta_w); } // reset boolean flag for point positioning diff --git a/NPLib/GASPARD/GaspardTracker.h b/NPLib/GASPARD/GaspardTracker.h index 7ffc4f8db5a6098750ffcfe13f7b7d63f9821382..e0d25a08bab1e7316a715f67c2a9dba4fd9df4d3 100644 --- a/NPLib/GASPARD/GaspardTracker.h +++ b/NPLib/GASPARD/GaspardTracker.h @@ -106,14 +106,14 @@ public: double beta_w); // Getters to retrieve the (X,Y,Z) coordinates of a pixel defined by strips (X,Y) - double GetStripPositionX(int N ,int X ,int Y) { return m_StripPositionX[N-1][X-1][Y-1]; }; - double GetStripPositionY(int N ,int X ,int Y) { return m_StripPositionY[N-1][X-1][Y-1]; }; - double GetStripPositionZ(int N ,int X ,int Y) { return m_StripPositionZ[N-1][X-1][Y-1]; }; - double GetNumberOfModule() { return m_NumberOfModule; }; + double GetStripPositionX(int N ,int X ,int Y) { return m_StripPositionX[N-1][X-1][Y-1]; } + double GetStripPositionY(int N ,int X ,int Y) { return m_StripPositionY[N-1][X-1][Y-1]; } + double GetStripPositionZ(int N ,int X ,int Y) { return m_StripPositionZ[N-1][X-1][Y-1]; } + double GetNumberOfModule() { return m_NumberOfModule; } // Get Root input and output objects - TGaspardTrackerData* GetEventData() {return m_EventData;}; - TGaspardTrackerPhysics* GetEventPhysics() {return m_EventPhysics;}; + TGaspardTrackerData* GetEventData() {return m_EventData;} + TGaspardTrackerPhysics* GetEventPhysics() {return m_EventPhysics;} // To be called after a build Physical Event double GetEnergyDeposit(); diff --git a/NPLib/GASPARD/TGaspardTrackerPhysics.cxx b/NPLib/GASPARD/TGaspardTrackerPhysics.cxx index 6bca92aea82e27c4d075f453a5f9370a91a82093..69340326c2729b8bce3648219ee9ec5a21d2e900 100644 --- a/NPLib/GASPARD/TGaspardTrackerPhysics.cxx +++ b/NPLib/GASPARD/TGaspardTrackerPhysics.cxx @@ -50,7 +50,16 @@ void TGaspardTrackerPhysics::BuildSimplePhysicalEvent(TGaspardTrackerData* Data) void TGaspardTrackerPhysics::BuildPhysicalEvent(TGaspardTrackerData* Data) -{ +{ + // indexes for each kind of detector + // this should follow the indexes given in NPSimulation + // 0: Square + // 100: Trapezoid + // 200: Annular + // 1000: DummyShape + const int dim = 4; + int index[dim] = {0, 100, 200, 1000}; + // Check bool Check_FirstStage = false ;bool Check_SecondStage = false ; bool Check_ThirdStage = false ; @@ -79,7 +88,20 @@ void TGaspardTrackerPhysics::BuildPhysicalEvent(TGaspardTrackerData* Data) int detecXT = Data->GetGPDTrkFirstStageFrontTDetectorNbr(0) / det_ref; int detecYE = Data->GetGPDTrkFirstStageBackEDetectorNbr(0) / det_ref; int detecYT = Data->GetGPDTrkFirstStageBackTDetectorNbr(0) / det_ref; - det_ref -= 1000; // only for GaspardDummyShape + // convert detector number in order to it begins at 0 + // this is needed to access the strip position information + // WARNING: this method may not work for an heteregneous detector + // configuration, e.g. Trapezoid + Annular + int good_index = -100; + int diff_ref = 10000; + for (int i = 0; i < dim; i++) { + int diff = abs(det_ref - index[i]); + if (diff < diff_ref) { + diff_ref = diff; + good_index = i; + } + } + det_ref -= index[good_index]; // case of same detector if (detecXE*detecXT*detecYE*detecYT == 1) { @@ -102,9 +124,9 @@ void TGaspardTrackerPhysics::BuildPhysicalEvent(TGaspardTrackerData* Data) // get energy from strips and store it double EnergyStripFront = Data->GetGPDTrkFirstStageFrontEEnergy(0); double EnergyStripBack = Data->GetGPDTrkFirstStageBackEEnergy(0); - double EnergyStrip = 0.5 * (EnergyStripFront + EnergyStripBack); -// double EnergyStrip = EnergyStripFront; -// if (EnergyStripBack > EnergyStrip) EnergyStrip = EnergyStripBack; +// double EnergyStrip = 0.5 * (EnergyStripFront + EnergyStripBack); + double EnergyStrip = EnergyStripFront; +// if (EnergyStripBack > EnergyStrip) EnergyStrip = EnergyStripBack; FirstStage_E.push_back(EnergyStrip); double EnergyTot = EnergyStrip; // get time from strips and store it @@ -136,7 +158,7 @@ void TGaspardTrackerPhysics::BuildPhysicalEvent(TGaspardTrackerData* Data) cout << "Warning: multiplicity in third stage greater than in firststage" << endl; } - // Analysis code here. + // Fill total energy TotalEnergy.push_back(EnergyTot); } else { @@ -154,127 +176,10 @@ void TGaspardTrackerPhysics::BuildPhysicalEvent(TGaspardTrackerData* Data) cout << "\tmultYE: " << multYE << endl; cout << "\tmultYT: " << multYT << endl;*/ } - -/* - // Multiplicity 2 - if( Data->GetMMStripXEMult()==2 && Data->GetMMStripYEMult()==2 && Data->GetMMStripXTMult()==2 && Data->GetMMStripXTMult()==2 ) - { - // Different telescope case - if ( Data->GetMMStripXEDetectorNbr(0) != Data->GetMMStripXEDetectorNbr(1) - && Data->GetMMStripYEDetectorNbr(0) != Data->GetMMStripYEDetectorNbr(1) ) - { - - double EY, EX, TX, TY = 0; - // loop on both event - for (int jj = 0 ; jj < 2 ; jj++) - { - Check_FirstStage = false ;Check_SecondStage = false ;Check_ThirdStage = false ; - - - ModuleNumber.push_back( Data->GetMMStripXEDetectorNbr(jj) ) ; - EX = Data->GetMMStripXEEnergy(jj) ; - FirstStage_X.push_back( Data->GetMMStripXEStripNbr(jj)) ; - - // Get Corresponding time - for(int i = 0 ; i < 2 ; i++) - { - if( Data->GetMMStripXTDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) - && Data->GetMMStripXTStripNbr(i) == Data->GetMMStripXEStripNbr(jj) ) - { TX = Data->GetMMStripXTTime(jj) ; } - } - - // Get Corresponding Y strip - for(int i = 0 ; i < 2 ; i++) - { - if( Data->GetMMStripYEDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) ) - { - FirstStage_Y.push_back( Data->GetMMStripYEStripNbr(i)) ; - EY = Data->GetMMStripXEEnergy(i) ; - TY = Data->GetMMStripXTTime(i) ; - - // if (EX>EY) FirstStage_E.push_back(EX) ; - // else FirstStage_E.push_back(EY) ; - FirstStage_E.push_back(EX); - - - if (TX>TY) FirstStage_T.push_back(TY) ; - else FirstStage_T.push_back(TX) ; - Check_FirstStage = true ; - } - } - - if (Check_FirstStage) - { - // Si(Li) - for (int i = 0 ; i < Data->GetMMSiLiEMult() ; i++) - { - if ( Data->GetMMSiLiEDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) - && Data->GetMMSiLiEEnergy(i) > SecondStage_E_Threshold ) - { - SecondStage_E.push_back(Data->GetMMSiLiEEnergy(i)) ; - SecondStage_N.push_back(Data->GetMMSiLiEPadNbr(i)) ; - - if ( Data->GetMMSiLiTDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) - && Data->GetMMSiLiTPadNbr(i) == Data->GetMMSiLiEPadNbr(i) ) - { - SecondStage_T.push_back(Data->GetMMSiLiTTime(i)) ; - Check_SecondStage = true ; - } - } - - else - { - SecondStage_E.push_back(-1) ; - SecondStage_T.push_back(-1) ; - SecondStage_N.push_back(-1) ; - } - } - - // CsI - for (int i = 0 ; i < Data->GetMMCsIEMult() ; i++) - { - if ( Data->GetMMCsIEDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) - && Data->GetMMCsIEEnergy(i) > ThirdStage_E_Threshold ) - { - ThirdStage_E.push_back(Data->GetMMCsIEEnergy(i)) ; - ThirdStage_N.push_back(Data->GetMMCsIECristalNbr(i)) ; - if ( Data->GetMMCsITDetectorNbr(i) == Data->GetMMStripXEDetectorNbr(jj) - && Data->GetMMCsITCristalNbr(i) == Data->GetMMCsIECristalNbr(i) ) - { - ThirdStage_T.push_back(Data->GetMMCsITTime(i)) ; - Check_ThirdStage = true ; - } - } - - else - { - ThirdStage_E.push_back(-1) ; - ThirdStage_T.push_back(-1) ; - ThirdStage_N.push_back(-1) ; - } - } - - TotalEnergy.push_back(FirstStage_E.at(jj)) ; - if (Check_SecondStage) TotalEnergy.at(jj) += SecondStage_E.at(jj) ; - if (Check_ThirdStage) TotalEnergy.at(jj) += ThirdStage_E.at(jj) ; - } - } - return; - } - - // Same detector case : - if( Data->GetMMStripXEDetectorNbr(0) == Data->GetMMStripXEDetectorNbr(1) - && Data->GetMMStripYEDetectorNbr(0) == Data->GetMMStripYEDetectorNbr(1)) - { - - - return; - } - } - */ } + void TGaspardTrackerPhysics::Clear() { EventMultiplicity= 0; diff --git a/NPLib/InteractionCoordinates/TInteractionCoordinates.cxx b/NPLib/InteractionCoordinates/TInteractionCoordinates.cxx index ac06880b847bbc456cc51c60a6d9a7758e33894f..25e71b4f36ec59f741a4089304621bf14fcd12b9 100644 --- a/NPLib/InteractionCoordinates/TInteractionCoordinates.cxx +++ b/NPLib/InteractionCoordinates/TInteractionCoordinates.cxx @@ -54,9 +54,9 @@ void TInteractionCoordinates::Clear() void TInteractionCoordinates::Dump() { - cout << "XXXXXXXXXXXXX Initial conditions XXXXXXXXXXXXXXXX" << endl; + cout << "XXXXXXXXXXXXX Interaction coordinates XXXXXXXXXXXXXXXX" << endl; - cout << "Vertex position : " << endl; + cout << "Interaction position : " << endl; cout << "\tX : " << fDetected_Position_X[0] << endl; cout << "\tY : " << fDetected_Position_Y[0] << endl; cout << "\tZ : " << fDetected_Position_Z[0] << endl; diff --git a/NPSimulation/include/GaspardTrackerDummyShape.hh b/NPSimulation/include/GaspardTrackerDummyShape.hh index c81f4c5920a4262865aa2e8c4a58ec7d514bbe32..d567d9c1e65e66762dacc876069b1c2de6c16f0b 100644 --- a/NPSimulation/include/GaspardTrackerDummyShape.hh +++ b/NPSimulation/include/GaspardTrackerDummyShape.hh @@ -142,9 +142,10 @@ private: namespace GPDDUMMYSHAPE { // Resolution - const G4double ResoFirstStage = 0 ;// = 52keV of Resolution // Unit is MeV/2.35 -// const G4double ResoFirstStage = 0.022 ;// = 52keV of Resolution // Unit is MeV/2.35 - const G4double ResoSecondStage = 0.055 ;// = 130 keV of resolution // Unit is MeV/2.35 +// const G4double ResoFirstStage = 0 ;// = 52keV of Resolution // Unit is MeV/2.35 + const G4double ResoFirstStage = 0.022 ;// = 52keV of Resolution // Unit is MeV/2.35 + const G4double ResoSecondStage = 0 ;// = 130 keV of resolution // Unit is MeV/2.35 +// const G4double ResoSecondStage = 0.055 ;// = 130 keV of resolution // Unit is MeV/2.35 const G4double ResoThirdStage = 0 ;// = 100 keV of resolution // Unit is MeV/2.35 // const G4double ResoThirdStage = 0.043 ;// = 100 kev of resolution // Unit is MeV/2.35 const G4double ResoTimeGpd = 0.212765957 ;// = 500ps // Unit is ns/2.35 @@ -152,12 +153,19 @@ namespace GPDDUMMYSHAPE // Geometry for the mother volume containing the different layers of your dummy shape module const G4double FaceFront = 5.1*cm; const G4double FaceBack = 5.1*cm; - const G4double Length = 1.5*cm; - const G4double InterStageDistance = 5*mm; +// const G4double Length = 1.5*cm; +// const G4double InterStageDistance = 5*mm; + // for testing the excitation energy reconstruction + const G4double Length = 4*cm; + const G4double InterStageDistance = 15*mm; // First stage const G4double FirstStageFace = 5.0*cm; - const G4double FirstStageThickness = 300*micrometer ; +// const G4double FirstStageThickness = 300*micrometer ; + // for testing the excitation energy reconstruction + const G4double FirstStageThickness = 1.3*cm; +// const G4int NumberOfStrips = 128; + const G4int NumberOfStrips = 20; // Second stage const G4double SecondStageFace = FirstStageFace; diff --git a/NPSimulation/include/GaspardTrackerSquare.hh b/NPSimulation/include/GaspardTrackerSquare.hh index 296e936e4c848bb571dae9e09194bb605814b405..841a605c9aeaddbe94ba5a8a49e9fcc27f7c1c28 100644 --- a/NPSimulation/include/GaspardTrackerSquare.hh +++ b/NPSimulation/include/GaspardTrackerSquare.hh @@ -168,6 +168,7 @@ namespace GPDSQUARE const G4double SiliconFace = 98*mm ; // const G4double VacBoxThickness = 3*cm ; const G4double VacBoxThickness = 0.5*cm ; + const G4int NumberOfStrips = 128; // Second stage const G4double SiLiThickness = 5.1*mm ; // Must be checked diff --git a/NPSimulation/include/GaspardTrackerTrapezoid.hh b/NPSimulation/include/GaspardTrackerTrapezoid.hh index 034d4e0131add716c828cd81fb432d78ceca7db3..2b86902e39d58c4166cdee2a3f0579fecd79b82d 100644 --- a/NPSimulation/include/GaspardTrackerTrapezoid.hh +++ b/NPSimulation/include/GaspardTrackerTrapezoid.hh @@ -170,6 +170,8 @@ namespace GPDTRAP const G4double FirstStageBaseSmall = 29*mm; // const G4double VacBoxThickness = 3*cm ; const G4double VacBoxThickness = 0.5*cm; + const G4int NumberOfStripsX = 128; + const G4int NumberOfStripsY = 128; // Second stage const G4double SiLiThickness = 5.1*mm ; // Must be checked diff --git a/NPSimulation/src/EventGeneratorTransfert.cc b/NPSimulation/src/EventGeneratorTransfert.cc index 569c489fc1633b003b7567abd2375d6f645c4a9a..ac23197ec7b61b62d0c3cb0cb81c66e63c10242f 100644 --- a/NPSimulation/src/EventGeneratorTransfert.cc +++ b/NPSimulation/src/EventGeneratorTransfert.cc @@ -360,7 +360,8 @@ void EventGeneratorTransfert::GenerateEvent(G4Event* anEvent , G4ParticleGun* pa G4double Beam_theta = acos(Zdir / sqrt(Xdir*Xdir + Ydir*Ydir + Zdir*Zdir)) * rad; G4double Beam_phi = atan2(Ydir, Xdir) * rad; - if (Beam_phi < 0) Beam_phi += 2*pi; + if (Beam_phi < 0) Beam_phi += 2*pi; + if (Beam_theta < 1e-6) Beam_phi = 0; // write angles to ROOT file m_InitConditions->SetICIncidentAngleTheta(Beam_theta / deg); diff --git a/NPSimulation/src/GaspardTrackerDummyShape.cc b/NPSimulation/src/GaspardTrackerDummyShape.cc index 952288afb5f54a597ed6667c431366fd0f34f1ef..f8ab37d186e71ba1b3abf02d1239541b962a80a0 100644 --- a/NPSimulation/src/GaspardTrackerDummyShape.cc +++ b/NPSimulation/src/GaspardTrackerDummyShape.cc @@ -939,8 +939,8 @@ void GaspardTrackerDummyShape::InitializeScorers() G4VPrimitiveScorer* DetNbr = new GPDScorerDetectorNumber("DetectorNumber", 0, "FirstStage"); G4VPrimitiveScorer* Energy = new GPDScorerFirstStageEnergy("StripEnergy", 0); G4VPrimitiveScorer* TOF = new PSTOF("StripTime", 0); - G4VPrimitiveScorer* StripPositionX = new GPDScorerFirstStageFrontStripDummyShape("StripIDFront", 0, 128); - G4VPrimitiveScorer* StripPositionY = new GPDScorerFirstStageBackStripDummyShape("StripIDBack", 0, 128); + G4VPrimitiveScorer* StripPositionX = new GPDScorerFirstStageFrontStripDummyShape("StripIDFront", 0, NumberOfStrips); + G4VPrimitiveScorer* StripPositionY = new GPDScorerFirstStageBackStripDummyShape("StripIDBack", 0, NumberOfStrips); G4VPrimitiveScorer* InteractionCoordinatesX = new PSInteractionCoordinatesX("InterCoordX", 0); G4VPrimitiveScorer* InteractionCoordinatesY = new PSInteractionCoordinatesY("InterCoordY", 0); G4VPrimitiveScorer* InteractionCoordinatesZ = new PSInteractionCoordinatesZ("InterCoordZ", 0); diff --git a/NPSimulation/src/GaspardTrackerSquare.cc b/NPSimulation/src/GaspardTrackerSquare.cc index 31f481245d2bf11fee67e971ec718337e29f12c4..307c3ce244231f39c30b5e67dd1144d787da51bb 100644 --- a/NPSimulation/src/GaspardTrackerSquare.cc +++ b/NPSimulation/src/GaspardTrackerSquare.cc @@ -1135,8 +1135,8 @@ void GaspardTrackerSquare::InitializeScorers() G4VPrimitiveScorer* DetNbr = new GPDScorerDetectorNumber("DetectorNumber", 0, "Silicon"); G4VPrimitiveScorer* Energy = new GPDScorerFirstStageEnergy("StripEnergy", 0); G4VPrimitiveScorer* TOF = new PSTOF("StripTime", 0); - G4VPrimitiveScorer* StripPositionX = new GPDScorerFirstStageFrontStripSquare("StripNumberX", 0, 128); - G4VPrimitiveScorer* StripPositionY = new GPDScorerFirstStageBackStripSquare("StripNumberY", 0, 128); + G4VPrimitiveScorer* StripPositionX = new GPDScorerFirstStageFrontStripSquare("StripNumberX", 0, NumberOfStrips); + G4VPrimitiveScorer* StripPositionY = new GPDScorerFirstStageBackStripSquare("StripNumberY", 0, NumberOfStrips); G4VPrimitiveScorer* InteractionCoordinatesX = new PSInteractionCoordinatesX("InterCoordX", 0); G4VPrimitiveScorer* InteractionCoordinatesY = new PSInteractionCoordinatesY("InterCoordY", 0); G4VPrimitiveScorer* InteractionCoordinatesZ = new PSInteractionCoordinatesZ("InterCoordZ", 0); diff --git a/NPSimulation/src/GaspardTrackerTrapezoid.cc b/NPSimulation/src/GaspardTrackerTrapezoid.cc index dacba3debf888b9ad85d9f51fbf180a2414e6d62..714a28c9d23a8980ab38c04e540f7b11bc0f16ea 100644 --- a/NPSimulation/src/GaspardTrackerTrapezoid.cc +++ b/NPSimulation/src/GaspardTrackerTrapezoid.cc @@ -1003,8 +1003,8 @@ void GaspardTrackerTrapezoid::InitializeScorers() G4VPrimitiveScorer* DetNbr = new GPDScorerDetectorNumber("DetectorNumber", 0, "Silicon"); G4VPrimitiveScorer* Energy = new GPDScorerFirstStageEnergy("StripEnergy", 0); G4VPrimitiveScorer* TOF = new PSTOF("StripTime", 0); - G4VPrimitiveScorer* StripPositionX = new GPDScorerFirstStageFrontStripTrapezoid("StripNumberX", 0, 128); - G4VPrimitiveScorer* StripPositionY = new GPDScorerFirstStageBackStripTrapezoid("StripNumberY", 0, 128); + G4VPrimitiveScorer* StripPositionX = new GPDScorerFirstStageFrontStripTrapezoid("StripNumberX", 0, NumberOfStripsX); + G4VPrimitiveScorer* StripPositionY = new GPDScorerFirstStageBackStripTrapezoid("StripNumberY", 0, NumberOfStripsY); G4VPrimitiveScorer* InteractionCoordinatesX = new PSInteractionCoordinatesX("InterCoordX", 0); G4VPrimitiveScorer* InteractionCoordinatesY = new PSInteractionCoordinatesY("InterCoordY", 0); G4VPrimitiveScorer* InteractionCoordinatesZ = new PSInteractionCoordinatesZ("InterCoordZ", 0); diff --git a/TODO b/TODO new file mode 100644 index 0000000000000000000000000000000000000000..032264a661e8f57f2efaa1b02cf5ffbe536184a4 --- /dev/null +++ b/TODO @@ -0,0 +1,41 @@ +/***************************************************************************** + * Copyright (C) 2009 this file is part of the NPTool Project * + * * + * For the licensing terms see $NPTOOL/Licence/NPTool_Licence * + * For the list of contributors see $NPTOOL/Licence/Contributors * + *****************************************************************************/ + +/***************************************************************************** + * Original Author: contact address: * + * * + * Creation Date : 11/09/09 * + * Last update : * + *---------------------------------------------------------------------------* + * Decription: * + * This file describes the features we would like to form part of a next * + * release * + *---------------------------------------------------------------------------* + * Comment: * + * * + * * + *****************************************************************************/ + +TODO for NPTool: +---------------- + + Build a dummy detector as a simple example of how NPTool is working + + Add documentation + + Add a dedicated class to deal with materials (see example from G4 tutorial) + + Split physic list and give the possibility to choose which package to use + + Add support for messengers + + Build NPTool with the Autotool/Automake + + +TODO for AnnularS1 detector: +---------------------------- + + Update the way the scorers are dealt to the new way (no more loop in ReadSensitive) + +TODO for Gaspard: +----------------- + + Add documentation + + Check bug when light and heavy particles are detected in the same event + + Improve analysis in order to deal with heterogeneous detector shapes