Jpp  18.5.2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
examples/JTrigger/JTriggerEfficiencyRunByRun.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 version=1.0
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Utility script to test JTriggerEfficiency in run-by-run mode.
11 #
12 # ------------------------------------------------------------------------------------------
13 
14 
15 if [ -z $JPP_DIR ]; then
16  echo "Variable JPP_DIR undefined."
17  exit
18 fi
19 
20 
21 source $JPP_DIR/setenv.sh $JPP_DIR
22 
23 
26 set_variable INPUT_FILE $JPP_DATA/sirene.root
27 set_variable DETECTOR $JPP_DATA/km3net_reference.detx
28 set_variable TRIGGER $JPP_DATA/trigger_parameters_arca.txt
29 set_variable BACKGROUND_HZ 5.0e3
30 set_variable FRAME_DURATION_NS 100.0e6
32 
33 
34 if do_usage $*; then
35  usage "$script [input file [working directory]]"
36 fi
37 
38 case $# in
39  2) set_variable WORKDIR $2;&
41 esac
42 
43 set_variable DETECTOR_OUT_OF_SYNC $WORKDIR/detector_out_of_sync.detx
44 set_variable DAQ_FILE_OUT_OF_SYNC $WORKDIR/trigger_efficiency_out_of_sync.root
45 set_variable OUTPUT_FILE $WORKDIR/trigger_efficiency.root
46 set_variable TRIGGEREFFICIENCY_TURBOT $WORKDIR/turbot.detx
47 set_variable TRIGGEREFFICIENCY_TRIGGERED_EVENTS_ONLY Y
48 
49 
50 function clean()
51 {
52  rm -f $DETECTOR_OUT_OF_SYNC
53  rm -f $DAQ_FILE_OUT_OF_SYNC
54  rm -f $OUTPUT_FILE
55  rm -f $TRIGGEREFFICIENCY_TURBOT
56 }
57 
58 
59 clean
60 
61 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
62 eval `JPrintDetector -a $DETECTOR -O SUMMARY`
63 
65 set_variable MODULE `getModule -a $DETECTOR -L "$STRING 10"`
66 
67 
68 # distort detector file
69 
70 JEditDetector \
71  -a $DETECTOR \
72  -o $DETECTOR_OUT_OF_SYNC \
73  -M "$MODULE add $FRAME_DURATION_NS"
74 
75 # generate fake raw data file, with distorted detector file.
76 # make sure to write summary data for JTriggerEfficiency and
77 # L2 data for JTurbot (inside JTriggerEfficiencyRunByRun.sh).
78 
79 JTriggerEfficiency \
80  -a ${DETECTOR_OUT_OF_SYNC} \
81  -f ${INPUT_FILE} \
82  -o ${DAQ_FILE_OUT_OF_SYNC} \
83  -@ ${TRIGGER} \
84  -@ "writeL0 = 0;" \
85  -@ "writeL1 = 0;" \
86  -@ "writeL2 = 1;" \
87  -@ "writeSN = 0;" \
88  -@ "writeSummary = 1;" \
89  -d ${DEBUG} \
90  -B "$BACKGROUND_HZ" \
91  --!
92 
93 rm -f $OUTPUT_FILE
94 
95 $JPP_BIN/JTriggerEfficiencyRunByRun.sh \ $DETECTOR \ $DETECTOR \ $INPUT_FILE \ $OUTPUT_FILE \ $DAQ_FILE_OUT_OF_SYNC
96 
97 for (( PMT = 0; $PMT != $NUMBER_OF_PMTS; ++PMT )); do
98 
99  set_variable RESULT `getPMTStatus -a $TRIGGEREFFICIENCY_TURBOT -P "$MODULE $PMT" | sed -n 's/.*OUT_OF_SYNC *\([0-1]\)/\1/p'`
100 
101  echo "PMT ($MODULE,$PMT) has OUT_OF_SYNC $RESULT"
102 
103  if (( $RESULT != 1 )); then
104  fatal "PMT ($MODULE,$PMT) has OUT_OF_SYNC $RESULT != 1"
105  fi
106 done
107 
108 set_array RESULT `$JPP_DIR/examples/JTrigger/JDAQHit -f $OUTPUT_FILE | grep "^ *$MODULE "`
109 
110 printf "Module %10d: %8d %8d\n" $MODULE $RESULT[2] $RESULT[3]
111 
112 if (( ${#RESULT} >= 3 )); then
113 
114  if (( $RESULT[2] >= 20 )); then
115  fatal "Module $MODULE has too many trigger hits $RESULT[2]"
116  fi
117 
118  if (( $RESULT[3] <= 20 )); then
119  fatal "Module $MODULE has too few snapshot hits $RESULT[3]"
120  fi
121 else
122 
123  fatal "Module $MODULE has no data."
124 fi
125 
126 clean
127 
clean eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY set_variable STRING
version
Definition: JEditTuneHV.sh:5
static const JPBS_t PMT(3, 4, 2, 3)
PBS of photo-multiplier tube (PMT)
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
Definition: JDataQuality.sh:76
usr share Modules init zsh export TMPDIR
exit
Definition: JPizza.sh:36
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTORXY_TXT $WORKDIR $DETECTORXY_TXT tail read X Y CHI2 RMS printf optimum n $X $Y $CHI2 $RMS awk v Y
then
Definition: datalogs.sh:31
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
const int n
Definition: JPolint.hh:786
then rm
Definition: sftpput.zsh:30
then JCalibrateToT a
Definition: JTuneHV.sh:113
case $OPTION in clean clean
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR
Definition: JLegolas.sh:20
* usage
&set_variable OUTPUT_FILE
set_variable INPUT_FILE
set_array INPUT_FILES argv[2,$((START_INDEX_STRING-1))] set_array STRINGS
do grep(chi2\[.\]\|gradient\)" $INPUT_FILE > $WORKDIR/stage.txt awk 'BEGIN
bool getPMTStatus(const JStatus &status)
Test status of PMT.
fi set_variable FILENAME $WORKDIR
Definition: datalogs.sh:34
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:48
then set_variable MODULE getModule a $DETECTOR L $STRING $FLOOR JEditDetector a $DETECTOR M $MODULE add $X o $DETECTOR else echo No update of detector $DETECTOR
set_variable DETECTOR
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
then echo
Definition: JQAQC.sh:96
const JModule & getModule(const JDetector &detector, const JModuleLocation &location)
find module with a given string and floor number
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:62
esac done
Definition: JAddHDE.sh:21
&set_variable TRIGGER
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62