In some tracking codes, there is a ``fiducial particle'' that is assumed to travel along the ideal trajectory or orbit, with the ideal momentum, and at the ideal phase. There is no fiducial particle in elegant. Instead, elements are fiducialized in elegant. Fiducializing an element means determining the momentum and arrival time (or phase) of the reference particle. This is particularly important in simulations of linacs.
If the reference momentum does not change and no time-dependent elements
are involved, then fiducialization is irrelevant.  All elements are
fiducialized at the central momentum defined in run_setup.
A number of commands have parameters for controlling fiducialization:
always_change_p0 parameter of run_setup causes
	elegant to re-establish the central momentum after each
	element when fiducializing.  This may be more convenient than
	setting the CHANGE_P0 parameter on the elements themselves.
	However, it can have unexpected consequences, such as changing the
	central momentum to match changes in beam momentum due to synchrotron
	radiation.
run_control has three parameters that affect fiducialization,
	which come into play when multi-step runs are made.  Typically, these
	are runs that involve variation of elements, addition of errors,
	or loading of multiple sets of parameters.
	
reset_rf_for_each_step -- If nonzero, the rf phases are 
	re-established
	for each beam tracked.  If this is 1 (the default), 
	the time reference is discarded after each bunch is tracked.
	This means that bunch-to-bunch phasing errors due to time-of-flight 
	differences would be lost.  
first_is_fiducial -- The first bunch seen is taken to
	establish the fiducial phases and momentum profile.  If one is simulating,
	for example, successive beams in a fixed accelerator, this should be set
	to 1.  Otherwise, the momentum reference is discarded after each bunch
	is tracked.
restrict_fiducialization -- If nonzero, then momentum profile
	fiducialization occurs only after elements that are known to possibily
	change the momentum. It would not occur, for example, after a scraper that
	changes the average beam momentum by removing a low-momentum tail.
	
bunched_beam command has a first_is_fiducial parameter
	that is convenient for use with the first_is_fiducial mode
	established by run_control.  If nonzero, this parameter causes
	elegant to generate a first bunch with only one particle.
	This is very useful if one wants to track with many particles but doesn't
	want to waste time fidicializing with a many-particle bunch.