8# ------------------------------------------------------------------------------------------
10# Script to jointly run JRandomTimesliceWriter and JTriggerProcessor in run-by-run mode.
12# ------------------------------------------------------------------------------------------
14if [ -z $JPP_DIR ]; then
15 echo "Variable JPP_DIR undefined."
19source $JPP_DIR/setenv.sh $JPP_DIR
21set_variable: DEBUG RANDOMEVENT_DEBUG 1
22set_variable: WORKDIR RANDOMEVENT_WORKDIR ./
23set_variable: BACKGROUND_HZ RANDOMEVENT_BACKGROUND_HZ `getK40Rates`
24set_variable: SEED RANDOMEVENT_SEED 0
25set_variable: NUMBER_OF_SLICES RANDOMEVENT_SLICES 10
26set_variable: RECYCLING RANDOMEVENT_RECYCLING "0 0"
27set_variable: FACTOR RANDOMEVENT_FACTOR 1.0
28set_variable: SAMPLER RANDOMEVENT_SAMPLER "1 1000"
30set_variable DAQ_TIMESLICE JDAQTimesliceL0
33 usage "$script <detector file> <detector file> <output file> <DAQ file> <PMT parameters file>"\
34 "\nAuxiliary script to produce random event data."
38 set_variable DETECTORA $1
39 set_variable DETECTORB $2
40 set_variable OUTPUT_FILE $3
41 set_variable DAQ_FILE $4
42 set_variable PMT_FILE $5
44 fatal "Wrong number of arguments."
47JPrintTree -f $DAQ_FILE -@ "type = JDAQSummaryslice" -k number_of_entries | read N
49set_variable RUNBYRUN "file=$DAQ_FILE; sampler=${SAMPLER%% *} $(($N / 2))"
51#################################################################################################
53# The sampler values correspond to N_on N_off, respectively (note that sampler calls JSampler),
55# N_on = number of time slices to read;
56# N_off = number of time slices to skip.
58# The sampler option works as follows.
60# read -on average- N_on consecutive time slices and
61# skip -on average- N_off time slices
62# modulo the number of time slices in the file.
64# The larger N_on, the faster the reading, because this reduces the random accesses
65# of the data taking file to pick up a next time slice.
66# The smaller N_off, the less time slices are skipped.
67# So, N_on = 0 guarantees that all time slices are sampled.
68# Note that if the number of time slices to be produced is small, then too small a value of N_off
69# could create a bias because only the first time slices of the data taking file are then sampled.
70#################################################################################################
72set_variable DIR `mktemp -d $WORKDIR/XXXXXX`
73set_variable PIPE $DIR/pipe.dat
74set_variable PARAMETERS $DIR/trigger_parameters.txt
75set_variable TRIGGER $DIR/trigger_processor.root
76set_variable HEADER $DIR/header.root
80if [[ ! -p $PIPE ]]; then
81 fatal "Error opening $PIPE."
86JRandomTimesliceWriter \
90 -n ${NUMBER_OF_SLICES} \
102JPrintTriggerParameters \
103 -f ${DAQ_FILE} > $PARAMETERS
109 -C ${DAQ_TIMESLICE} \
124# check exit code background process
130if (( $STATUS != 0 )); then
131 error "JRandomTimesliceWriter exit status $STATUS"