TCA depends crucially on recording the absolute time in the n-tuple. The standard way absolute times are stored in the event data structure is as 3 integers: Julian date, Universal secs, Universal nsecs. However with standard (row-wise) n-tuples, each variable is stored in a single precision variable which limits accuracy to about 7 decimal digits. This is sufficient for the first two words (date and sec) but falls down on the last (nsec). So TCA uses a new time format: N-TUPLE TIME consisting of the 4 real numbers:-
The DQF NTIME is used to store time in this format e.g.:-
time_jdy ntime ev+$kev_jdy; time_sec reserved ; time_msec reserved ; time_nsec reserved ;while the DQF NTIME_DIFFERENCE is used to compute differences in nsec e.g.:-
dtime ntime_difference time_jdy_1, time_jdy_2;This DQF could be used to define a time gate which would appear to make the symbolic command $TCA_TIME_GATE superfluous. However, if TCA is extended to deal with multiplicities of 3 or higher, it will be easier to deal with a single time gate centered on the primary, rather than a number of time gates defined between pairs of members of the association. There is one case where you do need to place a cut using NTIME_DIFFERENCE. The time gate has to overlap the primary so if you require that the secondary occurs between say 100 and 300 nsec AFTER the primary then the time gate must be set:-
$TCA_TIME_GATE 0 300and the constraint fine tuned with the TCAR line:-
dtime ntime_difference time_jdy_2, time_jdy_1: 100 300;
Every input n-tuple that TCA processes has to have n-tuple time recorded in it. TCA assumes that the first variable name to containing the string 'TIME' is that variable.