The beam-beam kick is located on an integration node of type t%cas=case0, i.e., on a regular integration step. There cannot beam-beam kick on patches or fake fringe fields nodes. Furthermore, if beam-beam patches are necessary, it is advisable to call the routines of section Sec. (3.3) to fill in the geometrical information on each node. (It can be located on a type t%cas=caset. There are special types which replace a case0 type with a Taylor map.)
fk=.00000005d0 sx=.0004d0 sy=.0004d0 loc=0 s=3.00d0 call s_locate_beam_beam(als,s,loc,t,f) if(found) then t%bb%fk=fk t%bb%sx=sx t%bb%sy=sy write(6,*) t%a ! node entrance position write(6,*) t%ent(1,1:3) ! node entrance e_1 vector write(6,*) t%ent(2,1:3) ! node entrance e_2 vector write(6,*) t%ent(3,1:3) ! node entrance e_3 vector write(6,*) " s variable of node and following node " write(6,*) t%s(1),t%next%s(1) endif
The routine s_locate_beam_beam is a cheap routine below the dignity of a true user of PTC. It is the kind of rubish one would find in typical tracking code. In normal tracking code, the distance `` '' along the ``ideal design orbit'' is a good locator of position. PTC makes a total mockery of this concept, or more precisely, of the people of still think that we need an ideal orbit to track a particle. Nevertheless, for standard lattice, i.e., no patch or tiny patches needed (say the LHC), the -variable is still relevant.
The routine can also accept ``loc'' which is the integer index of the integration node where the beam-beam kick is located.
N.B. If nothing else is done, the beam-beam kick is placed at the entrance of the node. The call FIND_PATCH(t%a,t%ent,o ,mid,D,ANG) needs to be invoked to place the beam-beam kick