Jpp  19.1.0-rc.1
the software that should make you happy
JEventProcessor.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mlincetto
4 #
5 version=1.0
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Utility script to jointly run JEventTimesliceWriter and JTriggerProcessor.
11 #
12 # ------------------------------------------------------------------------------------------
13 
14 if [ -z $JPP_DIR ]; then
15  echo "Variable JPP_DIR undefined."
16  exit
17 fi
18 
19 source $JPP_DIR/setenv.sh $JPP_DIR
20 
21 set_variable: DEBUG EVENTPROCESSOR_DEBUG 1
22 set_variable WORKDIR ./
23 set_variable PIPE $WORKDIR/pipe.dat
24 set_variable INPUT_FILE $WORKDIR/sirene.root
25 set_variable OUTPUT_FILE $WORKDIR/trigger_processor.root
26 set_variable DETECTOR $JPP_DATA/km3net_reference.detx
27 set_variable TRIGGER $JPP_DATA/trigger_parameters_arca.txt
28 set_variable PMT_FILE $JPP_DATA/PMT_parameters.txt
29 set_variable: BACKGROUND_HZ EVENTPROCESSOR_BACKGROUND_HZ ${BACKGROUND_HZ:-0}
30 set_variable: SEED EVENTPROCESSOR_SEED 0
31 set_variable: FACTOR EVENTPROCESSOR_FACTOR ${FACTOR:-1.0}
32 set_variable: RATE EVENTPROCESSOR_RATE 0.0
33 
34 if do_usage $*; then
35  usage "$script [detector file [output file [trigger file [PMT parameters file]]]]"
36 fi
37 
38 case $# 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;;
44 esac
45 
46 set_variable INPUT_FILE_ROOT $WORKDIR/$(basename ${INPUT_FILE} ".evt").root
47 
48 print_variable DETECTOR INPUT_FILE OUTPUT_FILE TRIGGER PMT_FILE BACKGROUND_HZ SEED FACTOR
49 check_input_file $DETECTOR $INPUT_FILE $TRIGGER $PMT_FILE
50 check_output_file $OUTPUT_FILE
51 
52 FILE_TYPE=$(file -b --mime-type $INPUT_FILE)
53 
54 rm -f $PIPE
55 mkfifo $PIPE
56 
57 if [[ -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}
101 else
102  fatal "Error opening ${INPUT_FILE}."
103 fi