The test command file contains the description of actions to be applied to
the acquired data on an event by event basis. Using the names assigned in
file.ACQ for each CAMAC word, it is possible to generate test or
condition flags for further data treatment. At that point one can perform not
only statistical tests, but computations based on the incoming data through
user callable routines within the test definition file. Three groups of
commands are available in the test file:
Test condition commands: A condition flag in SusiQ is created by
each test condition, with the exception of PASSALL which is a predefined
condition always set to .TRUE. by Susiq for each event read in. For each newly
created test condition, a scalar is associated with it to keep track of the
statistic of the success of that test.
Computation commands: Some basic data manipulations are provided
directly within the test file. These commands provide some common functions and
avoid the necessity of writing user-specific routines in FORTRAN for simple
operations.
Branching commands: The structure of the test file is built on
blocks. The block delimiter is the '*'. This allows jumps on condition from one
block to another. Histogram incrementation will always be performed after the
exit of the test section.
Syntax |
Description |
Test Conditions |
|
GATE flag ACQvar ll hl mask |
flag = .TRUE. if ll<=ACQvar.AND.mask<=hl |
GATE flag EQUvar ll hl |
flag = TRUE. if ll<=EQUvar<=hl |
ANYB flag ACQvar mask |
flag = TRUE. if (ACQvar .AND. mask) # 0 |
ALLB flag ACQvar mask |
flag = TRUE. if (ACQvar .AND. mask) = mask |
AND flag flag1 flag2 ... |
flag = .TRUE. if (flag1 .AND. flag2 .AND. ...) |
OR flag flag1 flag2 ... |
flag = .TRUE. if (flag1 .OR. flag2 .OR. ...) |
XOR flag flag1 flag2 ... |
flag = .TRUE. if (flag1 .XOR. flag2 .XOR. ...) |
BOX flag ACQvar1/EQUvar1 (xvar) ACQvar2/EQUvar2 (yvar) Box_file |
flag = .TRUE. if (xvar,yvar) circonscribed by defined shape stored in Box_file |
Computation commands |
|
USER1 |
Call user routine |
USER2 |
Call user routine |
USER3 |
Call user routine |
PION |
Call user routine |
PROT |
Call user routine |
USER4 EQUvar ACQvar I[alpha] |
Call user routine, passing EQUvar, ACQvar, I[alpha] as parameters |
USER5 EQUvar ACQvar [alpha] |
Call user routine, passing EQUvar, ACQvar, [alpha] as parameters |
SCAL EQUvar ACQ/EQUvar [alpha] [beta] |
EQUvar = [alpha]*AQC/EQUvar + [beta] |
DELY [Sigma] [Delta] ACQvar1 ACQvar2 [alpha]1 [alpha]2 [beta] |
[Sigma] = ACQvar1 + ACQvar2, [Delta] = ([alpha]1*ACQvar1 - [alpha]2*ACQvar2) + [beta] |
Branching commands |
|
* |
End block descriptor. This delimits the block number.The block number 1 is delimited by the "=" sign in the first column and the first "*" or the "**". It always has to be put after a JUMP or REJE command |
JUMP flag block# |
Jump to block# if flag=.TRUE. |
REJE flag |
reject
(disregard) further test commands |
** |
End_of_test descriptor. This close the test file and must always be present as the last line of the file. |
Glossary |
|
ACQvar... |
Predefined variable name from file.ACQ |
EQUvar.. |
.
Page: 15(Pre)defined variable name from file.EQU