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
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)