diff --git a/geant3/paw/geant_position.kumac b/geant3/paw/geant_position.kumac new file mode 100644 index 0000000..bf74dc9 --- /dev/null +++ b/geant3/paw/geant_position.kumac @@ -0,0 +1,178 @@ +* +* quicky KUMAC to get position of e+ hits from GEANT simulations +* +* TP, 09-May-1998, PSI +* +* [1] Geant Runnumber; for histogram titles +* +*---------------------------------------------------------------------- +* + if ( [1] .eq. ' ' .or. [1] .eq. '?' .or. [1] .eq. '!') then + mess + mess Missing GEANT RunNumber as parameter. + mess Needed for Histogram titles. + mess + mess Syntax: + mess + mess gean_position RunNo + mess + exitm + endif + runno = [1] + file = geant_[1].rz + rFile = geant_[1].root +* +* cuts for e+ and e- and gammas +* + cut $20 btest(int(partcode),0).and.btest(int(partcode),4) |require gamma in both detec. + cut $21 btest(int(partcode),1).and.btest(int(partcode),5) |require e+ in both detec. + cut $22 btest(int(partcode),2).and.btest(int(partcode),6) |require e- in both detec. +* + cut $11 p0>30. + cut $10 desci>0.and.desco>0 + cut $1 de_left_i>0.and.de_left_o>0 + cut $2 de_top_i>0.and.de_top_o>0 + cut $3 de_rite_i>0.and.de_rite_o>0 + cut $4 de_bot_i>0.and.de_bot_o>0 +* +cut $5 btest(int(volno),0).and.btest(int(volno),4) | bits for left in and out +cut $6 btest(int(volno),1).and.btest(int(volno),5) | bits for top in and out +cut $7 btest(int(volno),2).and.btest(int(volno),6) | bits for right in and out +cut $8 btest(int(volno),3).and.btest(int(volno),7) | bits for bottom in and out +* + 1d 1 'GEANT '//[runno]//' volno, dE gt 0' 256 -.5 255.5 + 1d 2 'GEANT '//[runno]//' volno, dE gt 0, e+ bit or e- bit required' 256 -.5 255.5 + 1d 3 'GEANT '//[runno]//' volno, dE ge 0, only gammas' 256 -.5 255.5 + 1d 4 'GEANT '//[runno]//' volno, dE gt 0, only gammas' 256 -.5 255.5 + 1d 5 'GEANT '//[runno]//' volno, volno gt 0' 256 -.5 255.5 +goto fine + 1d 1604 'GEANT '//[runno]//' only left, de gt 0, 50ns bins' 220 0. 11000. + 1d 1606 'GEANT '//[runno]//' only top, de gt 0, 50ns bins' 220 0. 11000. + 1d 1607 'GEANT '//[runno]//' only right, de gt 0, 50ns bins' 220 0. 11000. + 1d 1608 'GEANT '//[runno]//' only bottom, de gt 0, 50ns bins' 220 0. 11000. + 1d 1504 'GEANT '//[runno]//' left , de gt 0, 50ns bins' 220 0. 11000. + 1d 1506 'GEANT '//[runno]//' top , de gt 0, 50ns bins' 220 0. 11000. + 1d 1507 'GEANT '//[runno]//' right, de gt 0, 50ns bins' 220 0. 11000. + 1d 1508 'GEANT '//[runno]//' bottom, de gt 0, 50ns bins' 220 0. 11000. + 1d 1404 'GEANT '//[runno]//' left , e+ or e- bit, de gt 0, 50ns bins' 220 0. 11000. + 1d 1406 'GEANT '//[runno]//' top , e+ or e- bit, de gt 0, 50ns bins' 220 0. 11000. + 1d 1407 'GEANT '//[runno]//' right , e+ or e- bit, de gt 0, 50ns bins' 220 0. 11000. + 1d 1408 'GEANT '//[runno]//' bottom, e+ or e- bit, de gt 0, 50ns bins' 220 0. 11000. + 1d 1704 'GEANT '//[runno]//' left , only gamma, de ge 0, 50ns bins' 220 0. 11000. + 1d 1706 'GEANT '//[runno]//' top , only gamma, de ge 0, 50ns bins' 220 0. 11000. + 1d 1707 'GEANT '//[runno]//' right , only gamma, de ge 0, 50ns bins' 220 0. 11000. + 1d 1708 'GEANT '//[runno]//' bottom, only gamma, de ge 0, 50ns bins' 220 0. 11000. + + mess NTPlot left id=1404 + nt/pl 111.tsci $1.and.$5.and.($21.or.$22) -1404 + mess NTPlot top id=1406 + nt/pl 111.tsci $2.and.$6.and.($21.or.$22) -1406 + mess NTPlot rite id=1407 + nt/pl 111.tsci $3.and.$7.and.($21.or.$22) -1407 + mess NTPlot bot id=1408 + nt/pl 111.tsci $4.and.$8.and.($21.or.$22) -1408 + + mess NTPlot left id=1504 + nt/pl 111.tsci $1.and.$5 -1504 + mess NTPlot top id=1506 + nt/pl 111.tsci $2.and.$6 -1506 + mess NTPlot rite id=1507 + nt/pl 111.tsci $3.and.$7 -1507 + mess NTPlot bot id=1508 + nt/pl 111.tsci $4.and.$8 -1508 + + mess NTPlot left=1604 + nt/pl 111.tsci volno=17.and.$10 -1604 + mess NTPlot top =1606 + nt/pl 111.tsci volno=34.and.$10 -1606 + mess NTPlot right=1607 + nt/pl 111.tsci volno=68.and.$10 -1607 + mess NTPlot bottom=1608 + nt/pl 111.tsci volno=136.and.$10 -1608 + +* goto cont +* +fine: + 1d 1001 'GEANT '//[runno]//' zsci, de gt 0, ' 112 -14.0 14.0 + 1d 1002 'GEANT '//[runno]//' zsci, e+ or e- bit, de gt 0, ' 112 -14.0 14.0 + 1d 1003 'GEANT '//[runno]//' zsci, only gammas, ' 112 -14.0 14.0 +* 1d 406 'GEANT '//[runno]//' top , e+ or e- bit, de gt 0, 1ns bins' 11000 0.5 11000.5 +* 1d 407 'GEANT '//[runno]//' right , e+ or e- bit, de gt 0, 1ns bins' 11000 0.5 11000.5 +* 1d 408 'GEANT '//[runno]//' bottom, e+ or e- bit, de gt 0, 1ns bins' 11000 0.5 11000.5 +* 1d 504 'GEANT '//[runno]//' left , de gt 0, 1ns bins' 11000 0.5 11000.5 +* 1d 506 'GEANT '//[runno]//' top , de gt 0, 1ns bins' 11000 0.5 11000.5 +* 1d 507 'GEANT '//[runno]//' right, de gt 0, 1ns bins' 11000 0.5 11000.5 +* 1d 508 'GEANT '//[runno]//' bottom, de gt 0, 1ns bins' 11000 0.5 11000.5 +* 1d 604 'GEANT '//[runno]//' only left, de gt 0, 1ns bins' 11000 0.5 11000.5 +* 1d 606 'GEANT '//[runno]//' only top, de gt 0, 1ns bins' 11000 0.5 11000.5 +* 1d 607 'GEANT '//[runno]//' only right, de gt 0, 1ns bins' 11000 0.5 11000.5 +* 1d 608 'GEANT '//[runno]//' only bottom, de gt 0, 1ns bins' 11000 0.5 11000.5 +* 1d 704 'GEANT '//[runno]//' left , only gamma, de ge 0, 1ns bins' 11000 0.5 11000.5 +* 1d 706 'GEANT '//[runno]//' top , only gamma, de ge 0, 1ns bins' 11000 0.5 11000.5 +* 1d 707 'GEANT '//[runno]//' right , only gamma, de ge 0, 1ns bins' 11000 0.5 11000.5 +* 1d 708 'GEANT '//[runno]//' bottom, only gamma, de ge 0, 1ns bins' 11000 0.5 11000.5 +* +* +mess Plot 1001=zsci dE>0 +nt/pl 111.zsci $10 -1001 + +mess Plot 1002=zsci dE>0 and e+ or e- bit reuqired +nt/pl 111.zsci $10.and.($21.or.$22) -1002 + +mess Plot 1003=zsci dE>=0, only gammas +nt/pl 111.zsci volno>0.and.partcode=17 -1003 + +*mess NTPlot left id=404 +*nt/pl 111.tsci $1.and.$5.and.($21.or.$22) -404 +*mess NTPlot top id=406 +*nt/pl 111.tsci $2.and.$6.and.($21.or.$22) -406 +*mess NTPlot rite id=407 +*nt/pl 111.tsci $3.and.$7.and.($21.or.$22) -407 +*mess NTPlot bot id=408 +*nt/pl 111.tsci $4.and.$8.and.($21.or.$22) -408 + +*mess NTPlot left id=504 +*nt/pl 111.tsci $1.and.$5 -504 +*mess NTPlot top id=506 +*nt/pl 111.tsci $2.and.$6 -506 +*mess NTPlot rite id=507 +*nt/pl 111.tsci $3.and.$7 -507 +*mess NTPlot bot id=508 +*t/pl 111.tsci $4.and.$8 -508 + +*mess NTPlot left=604 +*nt/pl 111.tsci volno=17.and.$10 -604 +*mess NTPlot top =606 +*nt/pl 111.tsci volno=34.and.$10 -606 +*mess NTPlot right=607 +*nt/pl 111.tsci volno=68.and.$10 -607 +*mess NTPlot bottom=608 +*nt/pl 111.tsci volno=136.and.$10 -608 + +*mess NTPlot left id=704 +*nt/pl 111.tsci partcode=17.and.$5 -704 +*mess NTPlot top id=706 +*nt/pl 111.tsci partcode=17.and.$6 -706 +*mess NTPlot rite id=707 +*nt/pl 111.tsci partcode=17.and.$7 -707 +*mess NTPlot bot id=708 +*nt/pl 111.tsci partcode=17.and.$8 -708 + +*close 0 +*hi/file 20 [file] ! n +*hrou 0 +*close 20 +*mess +*mess Histograms written to [file] +*mess +* +*sh h2root [file] +* +*mess +*mess Histogram file [file] converted to root format. +*mess +* +*sh rm -vf [file] +*sh mv -v [rfile] ../data + + diff --git a/geant3/src/lemsr/gukine.F b/geant3/src/lemsr/gukine.F index fa92a57..05914f0 100644 --- a/geant3/src/lemsr/gukine.F +++ b/geant3/src/lemsr/gukine.F @@ -123,6 +123,19 @@ c py0 = p0 * sintheta * cosphi pz0 = p0 * sintheta * sinphi c +c quick and dirty, introduce long. polarization in -z +c rotate spin in z direction by 180 degree around y axis +c +c pz0 = -p0 * costheta +c px0 = -p0 * sintheta * cosphi +c py0 = p0 * sintheta * sinphi +c +c quick and dirty, introduce long. polarization in +z +c +c pz0 = p0 * costheta +c px0 = p0 * sintheta * cosphi +c py0 = p0 * sintheta * sinphi + endif c c-------------------------