Next: DRIFT
Up: Commands
 Previous: PPINT
 
  
    Define the time step loop of tracking.  Tracking is done
   by a pair of commands instead of one single command in order
   to allow users to take action such as print, plot, insert test
   particles, etc, at arbitrary time steps. 
PUSH  Time=(
,
,
)  ;
 
        
 any commands 
  
 
       ENDPUSH  ; 
    
,
-   Start and end time (multiplied by velocity of
                light) of tracking  (meter). 
 
                Note the spelling of Time which contains lower case
                alphabet in contrast to other operand keywords
                consisting of upper case letters only.
                In fact, Time is a pre-defined variable name.
                  
                Therefore, you can, for example, print its current value
                during PUSH loop
                by PRINT  Time, FORMAT=
.
     
-         Number of time steps. (
)
 
Actual control of the loop is done in the following way.
-  Before the first time step, all the particles are made to drift
      to 
 (by straight lines).
 -   At the PUSH command of j-th loop (
), 
     the time variable Time is
      set to 
 where 
.
 -   Execute commands between PUSH and ENDPUSH.
 -   Control comes to ENDPUSH.
       If 
, make tracking (beam-beam,
       beamstrahlung, laser interaction etc) for the time step
       
.
 -   If 
, returns to PUSH.
 
Note that the commands between PUSH and ENDPUSH are executed
 times.
If 
, the actions taken are to drift all particles to
 and to do commands between PUSH and ENDPUSH once.
If 
, CAIN stops at PUSH with an error
message rather than at ENDPUSH.
 
Toshiaki Tauchi 
Thu Dec  3 17:27:26 JST 1998