Jpp
JTriggerEfficiencyRunByRun.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 script=${0##*/}
6 
7 # ------------------------------------------------------------------------------------------
8 #
9 # Example script to run JTriggerEfficiency in run-by-run mode.
10 #
11 # ------------------------------------------------------------------------------------------
12 
13 if [ -z $JPP_DIR ]; then
14  echo "Variable JPP_DIR undefined."
15  exit
16 fi
17 
18 source $JPP_DIR/setenv.sh $JPP_DIR
19 
20 set_variable DEBUG ${TRIGGEREFFICIENCY_DEBUG:-1}
21 set_variable WORKDIR ./
22 set_variable INPUT_FILE $WORKDIR/sirene.root
23 set_variable OUTPUT_FILE $WORKDIR/trigger_efficiency+runbyrun.root
24 set_variable DETECTORA $JPP_DATA/km3net_reference.detx
25 set_variable DETECTORB $JPP_DATA/km3net_reference.detx
26 set_variable DAQ_FILE $WORKDIR/summary.root
27 set_variable PMT_FILE $JPP_DATA/PMT_parameters.txt
28 set_variable BACKGROUND_HZ ${TRIGGEREFFICIENCY_BACKGROUND_HZ:-${BACKGROUND_HZ:-5e3 500 50 5 0.5}}
29 set_variable SEED ${TRIGGEREFFICIENCY_SEED:-0}
30 set_variable TURBOT ${TRIGGEREFFICIENCY_TURBOT:-}
31 set_variable NUMBER_OF_TIMESLICES ${TRIGGEREFFICIENCY_NUMBER_OF_TIMESLICES:-0}
32 set_variable FACTOR ${TRIGGEREFFICIENCY_FACTOR:-${FACTOR:-1.0}}
33 set_variable OPTION ${TRIGGEREFFICIENCY_TRIGGERED_EVENTS_ONLY+-O}
34 
35 if ( do_usage $* ); then
36  usage "$script <detector file> <detector file> (input file)+ <output file> <DAQ file> [PMT parameters file]"\
37  "\nNote that if more than one input file is specified, all other arguments must be provided."
38 fi
39 
40 case $# in
41  6) set_variable PMT_FILE $6;&
42  5) set_variable DAQ_FILE $5;
43  set_variable OUTPUT_FILE $4;
44  set_variable INPUT_FILE $3;
45  set_variable DETECTORB $2;
46  set_variable DETECTORA $1;;
47  4) fatal "Wrong number of arguments.";;
48  3) fatal "Wrong number of arguments.";;
49  2) fatal "Wrong number of arguments.";;
50  1) fatal "Wrong number of arguments.";;
51  0) fatal "Wrong number of arguments.";;
52  *) set_variable DETECTORA $argv[1]
53  set_variable DETECTORB $argv[2]
54  set_variable INPUT_FILE $argv[3,-4]
55  set_variable OUTPUT_FILE $argv[-3]
56  set_variable DAQ_FILE $argv[-2]
57  set_variable PMT_FILE $argv[-1];;
58 esac
59 
60 RUNBYRUN="file=$DAQ_FILE; sampler=25 250; range_Hz=1e3 1e5"
61 
62 print_variable DETECTORA DETECTORB INPUT_FILE OUTPUT_FILE RUNBYRUN PMT_FILE
63 check_input_file $DETECTORA $DETECTORB $INPUT_FILE $DAQ_FILE $PMT_FILE
64 check_output_file $OUTPUT_FILE
65 
66 if [[ -n $TURBOT ]]; then
67 
68  if [[ ! -f $TURBOT ]]; then
69 
70  timer_start
71 
72  JTurbot \
73  -a ${DETECTORB} \
74  -f ${DAQ_FILE} \
75  -P ${TURBOT} \
76  -d ${DEBUG} \
77  -N ${NUMBER_OF_TIMESLICES} \
78  --!
79 
80  timer_stop
81  timer_print
82 
83  fi
84 
85 else
86 
87  set_variable TURBOT " "
88 fi
89 
90 timer_start
91 
92 JTriggerEfficiency \
93  -a ${DETECTORA} \
94  -b ${DETECTORB} \
95  -f ${INPUT_FILE} \
96  -o ${OUTPUT_FILE} \
97  -P ${PMT_FILE} \
98  -P ${TURBOT} \
99  -P "QE=${FACTOR}" \
100  ${OPTION} \
101  -S ${SEED} \
102  -B "$BACKGROUND_HZ" \
103  -r "${RUNBYRUN}" \
104  -d ${DEBUG} \
105  --!
106 
107 timer_stop
108 timer_print
109 
110 JPrintMeta \
111  -f ${OUTPUT_FILE}
112 
113 JPrintTree \
114  -f ${OUTPUT_FILE}
115 
116 JTriggerMonitor \
117  -f ${OUTPUT_FILE}