Jpp test-rotations-new
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`
54
55JConvertDetectorFormat -a ${DETECTORA} -o ${DETECTORA_2}
56JConvertDetectorFormat -a ${DETECTORB} -o ${DETECTORB_2}
57
58
59# Procedure to determine optical modules with out-sync-problem.
60# The given detector file is accordingly updated.
61
62if [[ "$DISABLE_TURBOT" != "Y" ]]; then
63
64 JTurbot \
65 -f ${DAQ_FILE} \
66 -a ${DETECTORA_2} \
67 -A \
68 -d ${DEBUG} \
69 -N ${NUMBER_OF_TIMESLICES} \
70 --!
71
72 CHECK_EXIT_CODE
73
74 timer_lap
75fi
76
77
78# Procedure to determine Jpp version used during data taking as default handling of UDP packet losses has changed.
79# The given detector file is accordingly updated.
80
81JPrintMeta -f ${DAQ_FILE} -k GIT | read DAQ_VERSION
82
83echo ${(s/./)DAQ_VERSION} | read DAQ_MAJOR DAQ_MINOR DAQ_PATCH
84
85if [[ "$DAQ_MAJOR" != [0-9][0-9]* ]] || (( $DAQ_MAJOR <= 12 )); then # Jpp-version dependence
86
87 notice "Set UDP counter and trailer disable."
88
89 JEditDetector \
90 -a ${DETECTORB_2} \
91 -P "-1 -1 set UDP_COUNTER_DISABLE" \
92 -P "-1 -1 set UDP_TRAILER_DISABLE" \
93 -o ${DETECTORB_2}
94
95 CHECK_EXIT_CODE
96fi
97
98
99JTriggerEfficiency \
100 -a ${DETECTORA_2} \
101 -b ${DETECTORB_2} \
102 -f"${INPUT_FILES[*]}" \
103 -o ${OUTPUT_FILE} \
104 -P ${PMT_FILE} \
105 -P "QE=${FACTOR}" \
106 ${OPTION} \
107 -S ${SEED} \
108 -B "$BACKGROUND_HZ" \
109 -r "${RUNBYRUN}" \
110 -d ${DEBUG} \
111 --!
112
113CHECK_EXIT_CODE
114
115timer_lap
116
117
118JPrintMeta \
119 -f ${OUTPUT_FILE}
120
121JPrintTree \
122 -f ${OUTPUT_FILE}
123
124JTriggerMonitor \
125 -f ${OUTPUT_FILE} \
126 -o /dev/null
127
128
129rm -f ${DETECTORA_2}
130rm -f ${DETECTORB_2}