Jpp test-rotations-old-533-g2bdbdb559
the software that should make you happy
Loading...
Searching...
No Matches
software/JTrigger/JTriggerEfficiencyRunByRun.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mdejong
4#
5script=${0##*/}
6
7# ------------------------------------------------------------------------------------------
8#
9# Script to run JTriggerEfficiency in run-by-run mode.
10#
11# ------------------------------------------------------------------------------------------
12
13if [ -z $JPP_DIR ]; then
14 echo "Variable JPP_DIR undefined."
15 exit
16fi
17
18source $JPP_DIR/setenv.sh $JPP_DIR
19
20set_variable: DEBUG TRIGGEREFFICIENCY_DEBUG 1
21set_variable: WORKDIR TRIGGEREFFICIENCY_WORKDIR ./
22set_variable: BACKGROUND_HZ TRIGGEREFFICIENCY_BACKGROUND_HZ `getK40Rates`
23set_variable: SEED TRIGGEREFFICIENCY_SEED 0
24set_variable: NUMBER_OF_TIMESLICES TRIGGEREFFICIENCY_NUMBER_OF_TIMESLICES 0
25set_variable: FACTOR TRIGGEREFFICIENCY_FACTOR 1.0
26set_variable: SAMPLER TRIGGEREFFICIENCY_SAMPLER "100 1000"
27set_variable+ OPTION TRIGGEREFFICIENCY_TRIGGERED_EVENTS_ONLY -O
28set_variable+ DISABLE_TURBOT TRIGGEREFFICIENCY_DISABLE_TURBOT Y
29
30if do_usage $*; then
31 usage "$script <detector file> <detector file> (input file)+ <output file> <DAQ file> <PMT parameters file>"\
32 "\nAuxiliary script to trigger Monte Carlo events."
33fi
34
35if (( $# >= 6 )); then
36 set_variable PMT_FILE $argv[-1]
37 set_variable DAQ_FILE $argv[-2]
38 set_variable OUTPUT_FILE $argv[-3]
39 set_array INPUT_FILES $argv[3,-4]
40 set_variable DETECTORB $argv[2]
41 set_variable DETECTORA $argv[1]
42else
43 fatal "Wrong number of arguments."
44fi
45
46timer_start
47
48JPrintTree -f $DAQ_FILE -@ "type = JDAQSummaryslice" -k number_of_entries | read N
49
50set_variable RUNBYRUN "file=$DAQ_FILE; sampler=${SAMPLER%% *} $(($N / 2))"
51
52set_variable DETECTORA_2 `mktemp $WORKDIR/${${DETECTORA:t}:r}_XXXXXX.datx`
53set_variable DETECTORB_2 `mktemp $WORKDIR/${${DETECTORB:t}:r}_XXXXXX.datx`
54set_variable PMT_FILE_2 `mktemp $WORKDIR/PMT_XXXXXX.txt`
55
56JConvertDetectorFormat -a ${DETECTORA} -o ${DETECTORA_2}
57JConvertDetectorFormat -a ${DETECTORB} -o ${DETECTORB_2}
58
59
60# Procedure to determine optical modules with out-sync-problem.
61# The given detector file is accordingly updated.
62
63if [[ "$DISABLE_TURBOT" != "Y" ]]; then
64
65 JTurbot \
66 -f ${DAQ_FILE} \
67 -a ${DETECTORA_2} \
68 -A \
69 -d ${DEBUG} \
70 -N ${NUMBER_OF_TIMESLICES} \
71 --!
72
73 CHECK_EXIT_CODE
74
75 timer_lap
76fi
77
78
79# Procedure to determine Jpp version used during data taking as default handling of UDP packet losses has changed.
80# The given detector file is accordingly updated.
81
82JPrintMeta -f ${DAQ_FILE} -k GIT | read DAQ_VERSION
83
84echo ${(s/./)DAQ_VERSION} | read DAQ_MAJOR DAQ_MINOR DAQ_PATCH
85
86if [[ "$DAQ_MAJOR" != [0-9][0-9]* ]] || (( $DAQ_MAJOR <= 12 )); then # Jpp-version dependence
87
88 notice "Set UDP counter and trailer disable."
89
90 JEditDetector \
91 -a ${DETECTORB_2} \
92 -P "-1 -1 set UDP_COUNTER_DISABLE" \
93 -P "-1 -1 set UDP_TRAILER_DISABLE" \
94 -o ${DETECTORB_2}
95
96 CHECK_EXIT_CODE
97fi
98
99
100JEditPMTParameters \
101 -P ${PMT_FILE} \
102 -o ${PMT_FILE_2} \
103 -Q "0 $((1.0 / $FACTOR))" \
104 -d ${DEBUG} \
105 --!
106
107
108JTriggerEfficiency \
109 -a ${DETECTORA_2} \
110 -b ${DETECTORB_2} \
111 -f"${INPUT_FILES[*]}" \
112 -o ${OUTPUT_FILE} \
113 -P ${PMT_FILE_2} \
114 -P "QE=${FACTOR}" \
115 ${OPTION} \
116 -S ${SEED} \
117 -B "$BACKGROUND_HZ" \
118 -r "${RUNBYRUN}" \
119 -d ${DEBUG} \
120 --!
121
122CHECK_EXIT_CODE
123
124timer_lap
125
126
127JPrintMeta \
128 -f ${OUTPUT_FILE}
129
130JPrintTree \
131 -f ${OUTPUT_FILE}
132
133JTriggerMonitor \
134 -f ${OUTPUT_FILE} \
135 -o /dev/null
136
137
138rm -f ${DETECTORA_2}
139rm -f ${DETECTORB_2}
140rm -f ${PMT_FILE_2}