def __init__(self, m, K0, Eex2, Eex3, targetCharge2, targetCharge3, MagneticFieldB, axes,c='b'): #print targetMass, targetCharge KINEMATICS.__init__(self,m=m, K0=K0, Eex2=Eex2, Eex3=Eex3) self.LineObj2 = axes.plot([0],[0],c=c) self.LineObj3 = axes.plot([0],[0],c=c) self.targetCharge2 = targetCharge2 self.targetCharge3 = targetCharge3 self.MagneticFieldB = MagneticFieldB
def reset_models(self,phi1,phi2): Ne20 = AtomicMassTable.GetElement(10,20) H1 = AtomicMassTable.GetElement(1,1) Ne21 = AtomicMassTable.GetElement(10,21) H2 = AtomicMassTable.GetElement(1,2) He4 = AtomicMassTable.GetElement(2,4) Na23 = AtomicMassTable.GetElement(11,23) Ti48 = AtomicMassTable.GetElement(22,48) Au197 = AtomicMassTable.GetElement(79,197) K0=38.5 P1 = KINEMATICS(m=[Ne20[3],H2[3],Ne21[3],H1[3]], K0= K0,Eex2=2.8,Eex3=0) P2 = KINEMATICS(m=[Ne20[3],H2[3],Ne21[3],H1[3]], K0= K0,Eex2=4.73,Eex3=0) P3 = KINEMATICS(m=[Ne20[3],H2[3],Ne21[3],H1[3]], K0= K0,Eex2=6.26,Eex3=0) tm = TrajectoryManager() #tm.InitlalTrajectoriesWithFile() phirange = [] resolution = 0.5 if phi1<0: range1 = numpy.linspace(phi1+360,360,int(math.fabs(phi1)/resolution)) range2 = numpy.linspace(0,phi2,int(math.fabs(phi2)/resolution)) phirange = list(range1)+list(range2) else: phirange = list( numpy.linspace(phi1,phi2,int(math.fabs(phi2-phi1)/resolution)) ) for j in phirange: # for i in range(73,95): for i in range(73,95): P1.calculate(math.radians(i),math.radians(j)) #print j, P1.philab3, P1.thetalab3 tm.AddTrajectory(1, P1.thetalab3, P1.philab3+180 , P1.K3 ,H1[3], H1[2],2) # for i in range(68,95): for i in range(68,95): P2.calculate(math.radians(i),math.radians(j)) tm.AddTrajectory(2, P2.thetalab3, P2.philab3 +180, P2.K3 ,H1[3], H1[2],2) # for i in range(60,95): for i in range(60,95): P3.calculate(math.radians(i),math.radians(j)) tm.AddTrajectory(3, P3.thetalab3, P3.philab3+180 , P3.K3 ,H1[3], H1[2],2) self.tm = tm
root.quit() root.destroy() Ne20 = AtomicMassTable.GetElement(10, 20) H1 = AtomicMassTable.GetElement(1, 1) Ne21 = AtomicMassTable.GetElement(10, 21) H2 = AtomicMassTable.GetElement(1, 2) Ne20_mass = Ne20[3] H1_mass = H1[3] Ne21_mass = Ne21[3] H2_mass = H2[3] Kr = KINEMATICS() Kr.m[0] = Ne20_mass Kr.m[1] = H2_mass Kr.m[2] = Ne21_mass Kr.m[3] = H1_mass Kr.K0 = 100 Kr.Eex2 = 0 Kr.Eex3 = 0 lab2 = [] K2 = [] def ReturnLines(theta=30): degree = math.pi / 180
import matplotlib.pyplot as plt import functools import numpy Ne20 = AtomicMassTable.GetElement(10,20) H1 = AtomicMassTable.GetElement(1,1) Ne21 = AtomicMassTable.GetElement(10,21) H2 = AtomicMassTable.GetElement(1,2) He4 = AtomicMassTable.GetElement(2,4) Na23 = AtomicMassTable.GetElement(11,23) Ti48 = AtomicMassTable.GetElement(22,48) Au197 = AtomicMassTable.GetElement(79,197) from PosManager import TrajectoryManager, Trajectory K0=40 P1 = KINEMATICS(m=[Ne20[3],H2[3],Ne21[3],H1[3]], K0= K0,Eex2=2.8,Eex3=0) P2 = KINEMATICS(m=[Ne20[3],H2[3],Ne21[3],H1[3]], K0= K0,Eex2=4.73,Eex3=0) P3 = KINEMATICS(m=[Ne20[3],H2[3],Ne21[3],H1[3]], K0= K0,Eex2=6.26,Eex3=0) tm = TrajectoryManager() #tm.InitlalTrajectoriesWithFile() import random for j in numpy.linspace(-0.1,0.1,50): for i in range(90,92): P1.calculate(math.radians(i),math.radians(j)) #print j, P1.philab3, P1.thetalab3 tm.AddTrajectory(1, P1.thetalab3, P1.philab3 , P1.K3 ,H1[3], H1[2],2) for i in range(63,94): P2.calculate(math.radians(i),math.radians(j)) tm.AddTrajectory(2, P2.thetalab3, P2.philab3 , P2.K3 ,H1[3], H1[2],2) for i in range(50,95):