Esempio n. 1
0
print "initial syncPart (px,py,pz) =", (syncPart.px(), syncPart.py(),
                                        syncPart.pz())

length = grid2D_Ez.getMaxX() - grid2D_Ez.getMinX()

tracker = RungeKuttaTracker(length)
#-------------------------------------------------------------------------------
# for the symmetric fields (if zSimmetric == +1) the grid2D has only z = 0,z_max
#-------------------------------------------------------------------------------
if (fieldSource.getSymmetry() == 1):
    tracker.entrancePlane(0, 0, -1., -grid2D_Ez.getMaxX())
else:
    tracker.entrancePlane(0, 0, -1., grid2D_Ez.getMinX())
tracker.exitPlane(0, 0, 1., -grid2D_Ez.getMaxX())
tracker.spatialEps(0.0000001)
tracker.stepsNumber(60)

print "Entrance plane (a,b,c,d)=", tracker.entrancePlane()
print "Exit     plane (a,b,c,d)=", tracker.exitPlane()
print "Length[m]=", tracker.length()

b1 = Bunch()
b.copyBunchTo(b1)

nParts = 10
s_start = grid2D_Ez.getMinX()
if (fieldSource.getSymmetry() == 1):
    s_start = -grid2D_Ez.getMaxX()
s_end = grid2D_Ez.getMaxX()
s_step = (s_end - s_start) / nParts
Esempio n. 2
0
b.addParticle(0., 0., 0., 0., 0., 0.)
b.compress()

syncPart = b.getSyncParticle()
syncPart.kinEnergy(1.0)
print "synch. part. m=", syncPart.mass()
print "synch. part. p=", syncPart.momentum()

fS = FieldSource()
extEff = ExternalEffects()
print "ExternalEffects name=", extEff.name()

tracker = RungeKuttaTracker(2.0)
print "Entrance plane (a,b,c,d)=", tracker.entrancePlane()
print "Exit     plane (a,b,c,d)=", tracker.exitPlane()
print "Spatial Eps[m]=", tracker.spatialEps(0.0001)
print "Length[m]=", tracker.length()
print "steps number=", tracker.stepsNumber()
print "tracker.isOutside(0,0,2)=", tracker.isOutside(0, 0, 2)
print "tracker.isAfterEntrance(0,0,2)=", tracker.isAfterEntrance(0, 0, 2)
print "tracker.isBeforeExit(0,0,2)=", tracker.isBeforeExit(0, 0, 2)

print "Start tracking."
tracker.trackBunch(b, fS, extEff)
print "Stop tracking."

print "time step=", tracker.timeStep()
print "steps number=", tracker.stepsNumber()
print "Stop."

sys.exit(1)
b.compress()

print "initial syncPart (px,py,pz) =",(syncPart.px(),syncPart.py(),syncPart.pz())

length = grid2D_Ez.getMaxX()-grid2D_Ez.getMinX()

tracker = RungeKuttaTracker(length)
#-------------------------------------------------------------------------------
# for the symmetric fields (if zSimmetric == +1) the grid2D has only z = 0,z_max
#-------------------------------------------------------------------------------
if(fieldSource.getSymmetry() == 1):
	tracker.entrancePlane(0,0,-1.,-grid2D_Ez.getMaxX())
else:
	tracker.entrancePlane(0,0,-1.,grid2D_Ez.getMinX())
tracker.exitPlane(0,0,1.,-grid2D_Ez.getMaxX())
tracker.spatialEps(0.0000001)
tracker.stepsNumber(60)

print "Entrance plane (a,b,c,d)=",tracker.entrancePlane()
print "Exit     plane (a,b,c,d)=",tracker.exitPlane()
print "Length[m]=",tracker.length()
	
b1 = Bunch()
b.copyBunchTo(b1)

nParts = 10
s_start = grid2D_Ez.getMinX()
if(fieldSource.getSymmetry() == 1):
	s_start = - grid2D_Ez.getMaxX()
s_end = grid2D_Ez.getMaxX()
s_step = (s_end - s_start)/nParts

syncPart = b.getSyncParticle()
syncPart.kinEnergy(1.0)
print "synch. part. m=",syncPart.mass()
print "synch. part. p=",syncPart.momentum()


fS = FieldSource()
extEff = ExternalEffects()
print "ExternalEffects name=",extEff.name()

tracker = RungeKuttaTracker(2.0)
print "Entrance plane (a,b,c,d)=",tracker.entrancePlane()
print "Exit     plane (a,b,c,d)=",tracker.exitPlane()
print "Spatial Eps[m]=",tracker.spatialEps(0.0001)
print "Length[m]=",tracker.length()
print "steps number=",tracker.stepsNumber()
print "tracker.isOutside(0,0,2)=",tracker.isOutside(0,0,2)
print "tracker.isAfterEntrance(0,0,2)=",tracker.isAfterEntrance(0,0,2)
print "tracker.isBeforeExit(0,0,2)=",tracker.isBeforeExit(0,0,2)

print "Start tracking."
tracker.trackBunch(b,fS,extEff)
print "Stop tracking."

print "time step=",tracker.timeStep()
print "steps number=",tracker.stepsNumber()
print "Stop."

sys.exit(1)