By including the DESCRIBE DSSPRG in the FLANLI program, SPRING is called within the frame work of FULL and the generated parton information stored in the TBS bank can be accessed by the subsequent module for hadronization, detector simulation, and analysis.
In the DESCRIBE DSSPRG, the subroutines SPGPAR, SPRNIN, SPJBTM, and SPCALL are defined for the parameter reading, run initialization, job termination and event generation, respectively.
The calling sequence of the subroutine SPGPAR is,
The default SPGPAR is a dummy routine and does nothing, except to quit after reading the string ``EXIT'''. If user needs to read parameter, he should override the SPGPAR. The original SPRING requires two input data from FORTRAN unit number 5, namely number of events to generate and CPU time limit. Since the FULL steering takes care of these parameter, these two input data are not required any more.
The SPRNIN is called at the run initialization.
It stores the run information in the bank Spring of
the Begin_run record, then calls the SPBEGN for SPRING
initialization. As a result, we can not generate events with multiple
run number in a single job, but this will not hurt any one.
During the SPRING initialization, the subroutine SPINIT is called.
The calling sequence of SPINIT is same as the original
BASES/SPRING. In the SPINIT, user should declare the
function name of the integrand and maximum number of retry
for event generation, by calling the subroutine SPFUNC.
User can also store his own information at the beginning of the run
in the SPINIT.
The example of SPINIT is shown in the Fig. 1.
The subroutine SPJBTM is prepared to terminate SPRING at end run. Since the standard termination subroutine of SPRING , SPTERM, is called from SPJBTM, user can do their own termination task for SPRING in the SPTERM.
For every event, the subroutine SPEVNT is called.
The SPEVNT should prepared parton four momentum
according to the phase space information stored in the
BASES commons, and the result should be stored in the
bank ``Spring:Parton_List'' of the event record so that
they can be hadronized and used for detector simulation
by the other FULL module.
The calling sequence of SPEVNT is,
where NRET is a INTEGER*4 variable. If NRET is negative, the FULL modules following thereafter are not executed and the event is discarded. On the otherhand the SPEVNT in the library on the FACOM MSP system, namely those in a file T#FP.GENLIB.LOAD, does not require the argument NRET. Please note the difference in the calling sequence.