Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
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):