Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JEventProcessor.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mlincetto
4#
5version=1.0
6script=${0##*/}
7
8# ------------------------------------------------------------------------------------------
9#
10# Utility script to jointly run JEventTimesliceWriter and JTriggerProcessor.
11#
12# ------------------------------------------------------------------------------------------
13
14if [ -z $JPP_DIR ]; then
15 echo "Variable JPP_DIR undefined."
16 exit
17fi
18
19source $JPP_DIR/setenv.sh $JPP_DIR
20
21set_variable: DEBUG EVENTPROCESSOR_DEBUG 1
22set_variable WORKDIR ./
23set_variable PIPE $WORKDIR/pipe.dat
24set_variable INPUT_FILE $WORKDIR/sirene.root
25set_variable OUTPUT_FILE $WORKDIR/trigger_processor.root
26set_variable DETECTOR $JPP_DATA/km3net_reference.detx
27set_variable TRIGGER $JPP_DATA/trigger_parameters_arca.txt
28set_variable PMT_FILE $JPP_DATA/PMT_parameters.txt
29set_variable: BACKGROUND_HZ EVENTPROCESSOR_BACKGROUND_HZ ${BACKGROUND_HZ:-0}
30set_variable: SEED EVENTPROCESSOR_SEED 0
31set_variable: FACTOR EVENTPROCESSOR_FACTOR ${FACTOR:-1.0}
32set_variable: RATE EVENTPROCESSOR_RATE 0.0
33
34if do_usage $*; then
35 usage "$script [detector file [output file [trigger file [PMT parameters file]]]]"
36fi
37
38case $# in
39 5) set_variable PMT_FILE $5;&
40 4) set_variable TRIGGER $4;&
41 3) set_variable OUTPUT_FILE $3;&
42 2) set_variable INPUT_FILE $2;&
43 1) set_variable DETECTOR $1;;
44esac
45
46set_variable INPUT_FILE_ROOT $WORKDIR/$(basename ${INPUT_FILE} ".evt").root
47
48print_variable DETECTOR INPUT_FILE OUTPUT_FILE TRIGGER PMT_FILE BACKGROUND_HZ SEED FACTOR
49check_input_file $DETECTOR $INPUT_FILE $TRIGGER $PMT_FILE
50check_output_file $OUTPUT_FILE
51
52FILE_TYPE=$(file -b --mime-type $INPUT_FILE)
53
54rm -f $PIPE
55mkfifo $PIPE
56
57if [[ -f $INPUT_FILE ]]; then
58
59 timer_start
60
61 if [[ $FILE_TYPE != "application/octet-stream" ]]; then
62 JConvert \
63 -f ${INPUT_FILE} \
64 -o ${INPUT_FILE_ROOT} \
65 --!
66 else
67 INPUT_FILE_ROOT=${INPUT_FILE};
68 fi
69
70 JEventTimesliceWriter \
71 -a ${DETECTOR} \
72 -f ${INPUT_FILE_ROOT} \
73 -o ${PIPE} \
74 -P ${PMT_FILE} \
75 -P "QE=${FACTOR}" \
76 -d ${DEBUG} \
77 -S ${SEED} \
78 -B "$BACKGROUND_HZ" \
79 -r ${RATE} \
80 --! &
81
82 JTriggerProcessor \
83 -a ${DETECTOR} \
84 -f ${PIPE} \
85 -@ ${TRIGGER} \
86 -o ${OUTPUT_FILE} \
87 -d ${DEBUG} \
88 --!
89
90 rm -f $PIPE
91
92 if [[ $FILE_TYPE != "application/octet-stream" ]]; then
93 rm -f $INPUT_FILE_ROOT
94 fi
95
96 timer_stop
97 timer_print
98
99 JPrintTree \
100 -f ${OUTPUT_FILE}
101else
102 fatal "Error opening ${INPUT_FILE}."
103fi