Using P1D class for data manipulation (with uncertainties)
Code: "points_oper.py". Programming language: Python
DMelt Version 1. Last modified: 12/08/2015. License: Pro
https://datamelt.org/code/cache/points_oper_7548.py
To run this script using the DMelt IDE,
copy the above URL link to the menu [File]→[Read script from URL] of the DMelt IDE.
from java.awt import Color,Font
from java.util import Random
from jhplot import HPlot,P1D
from math import sqrt;
c1 = HPlot("Canvas",900,250,3, 1)
c1.setGTitle("x-sections", Color.blue) #put title
c1.visible(1)
c1.setAutoRange()
c1.setLegendFont( Font("Lucida Sans", Font.BOLD, 12) )
c1.setTicFont(Font("Lucida Sans", Font.BOLD, 10) )
c1.setNameX("P_{T} / M")
c1.setNameY("d /p")
p1= P1D("d/p T.M.")
p1.add(0.35,2.46,0.33)
p1.add(0.45,1.02,0.19)
p1.add(0.55,1.32,0.12)
p1.add(0.65,1.28,0.01)
p1.setColor(Color.red)
p1.operScale(1,0.001)
p1.setErrAll(1)
c1.setMarginLeft(90)
c1.draw(p1)
s1= P1D("d/p S.C.")
s1.setSymbol(5)
s1.add(0.36,2.64,0.48)
s1.add(0.46,1.23,0.29)
s1.add(0.56,1.44,0.39)
s1.add(0.66,1.02,0.28)
s1.operScale(1,0.001)
s1.setColor(Color.blue)
s1.setErrAll(1)
c1.draw(s1)
c1.cd(2,1)
c1.setMarginLeft(90)
c1.setAutoRange()
p2= P1D("d x-section T.M.")
p2.add(0.35,3.29,0.43)
p2.add(0.45,1.39,0.26)
p2.add(0.55,1.16,0.28)
p2.add(0.65,0.43,0.10)
p2.operScale(1,0.01)
p2.setColor(Color.red)
c1.setNameX("P_{T} / M")
c1.setNameY("1/σγd^{3}σ/d^{3}(p/M)")
p2.setErrAll(1)
c1.draw(p2)
s2= P1D("d/p S.C.")
s2.add(0.36,3.57,0.65)
s2.add(0.46,1.71,0.34)
s2.add(0.56,1.24,0.39)
s2.add(0.66,0.92,0.12)
s2.operScale(1,0.00001)
s2.setSymbol(5)
s2.setColor(Color.blue)
c1.draw(s2)
# calculate B2
c1.cd(3,1)
c1.setMarginLeft(90)
Mp=0.938272
Md = 1.87561339
fac=(Mp**4) / (Md**2)
print fac
p3=p1.copy()
p3.oper(p1,"p/d squared", "*")
p3.operScale(1,fac)
p3.oper(p2,"B_{2}, T.M.","/")
c1.setRange(0.1,10.,0.0,0.2)
p3.setErrAll(1)
c1.draw(p3)
s1.oper(s1,"p/d squared", "*")
s1.operScale(1,fac)
s1.oper(s2,"B_{2}, S.C.","/")
c1.setNameX("P_{T}/M")
c1.setNameY("B_{2} (GeV^{2})")
c1.setRange(0.3,0.7,-0.01,0.1)
c1.draw(s1)
You see the box below because you did not login.