Jpp  18.2.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JEvtReweightGSeaGenParameterScan.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author bjung
4 #
5 version=1.0
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Utility script to evaluate gSeaGen reweightings
11 #
12 # ------------------------------------------------------------------------------------------
13 
14 
15 if [ -z $JPP_DIR ]; then
16  echo "Variable JPP_DIR undefined."
17  exit
18 fi
19 
20 source $JPP_DIR/setenv.sh $JPP_DIR
21 source $JPP_DIR/software/scripts/qlib.sh
22 
23 
25 
26 set_variable: DEBUG REWEIGHTING_DEBUG 2
27 
28 set_variable+ BATCH_PROCESSING REWEIGHTING_BATCH_PROCESSING 1
29 set_variable+ BATCH_LOGGING REWEIGHTING_BATCH_LOGGING 1
30 set_variable: QUEUE_SIZE REWEIGHTING_QUEUE_SIZE 3
31 set_variable: QUEUE_NAME REWEIGHTING_QUEUE_NAME ${TMPDIR:-/tmp}/queue
32 set_variable: JOB_SIZE REWEIGHTING_JOB_SIZE 1
33 
34 set_variable: TEST_TYPE1D REWEIGHTING_TEST_TYPE1D 0
35 set_variable: TEST_TYPE1D_PARAMETERS REWEIGHTING_TEST_TYPE1D_PARAMETERS "0.05 \"WWCHI2/NDF\""
36 set_variable: TEST_TYPE2D REWEIGHTING_TEST_TYPE2D 4
37 set_variable: TEST_TYPE2D_PARAMETERS REWEIGHTING_TEST_TYPE2D_PARAMETERS "0.05 0.05"
38 
39 set_variable: SCRATCHDIR REWEIGHTING_SCRATCHDIR ${TMPDIR:-/tmp}
40 
41 set_variable: N_TRIGGERED_HITS_RANGE REWEIGHTING_N_TRIGGERED_HITS_RANGE "20 $((2**31))"
42 set_variable: CONTAINMENT_VOLUME REWEIGHTING_CONTAINMENT_VOLUME "0.0 0.0 $((2**31)) -$((2**31)) $((2**31))"
43 set_variable: COSTH_RANGE REWEIGHTING_COSTH_RANGE "-1.0 1.0"
44 set_variable: ENERGY_RANGE REWEIGHTING_ENERGY_RANGE "0.0 $((2.0**31))"
45 
46 set_variable: RECOTYPE REWEIGHTING_RECOTYPE "track"
47 
48 set_variable DEFAULT_OSCPARAMETERS_FILE ${JPP_DATA}/oscillation_parameters_NO.txt
51 
52 
53 if do_usage $*; then
54  usage "$script <detector file> <input file>+ <reweighting file> <oscillation probability table> [default oscillation parameter file [oscillation parameter grid file [working directory]]]\n" \
55  "Note that if more than one input file is given all optional parameters need to be specified."
56 fi
57 
58 case $# in
64  set_array INPUT_FILES $2;
66  *) set_variable DETX_FILE ${argv[1]}
67  set_array INPUT_FILES ${argv[2,-6]}
69  set_variable OSCPROBTABLE ${argv[-4]}
72  set_variable WORKDIR ${argv[-1]}
73 esac
74 
75 
76 # Recursive function to process parameter files
77 #
78 # \param prefix prefix
79 # \param label neutrino label
80 # \param formula reweighting formula
81 # \param parameters_file parameter file
82 #
83 process_parameters() {
84 
85  local prefix=$1
86  local labels=$2
87  local formula=$3
88  local parameters_file=$4
89 
90  shift 4
91 
92  while read line; do
93 
94  if [[ ${line:0:1} == \# ]]; then continue; fi
95 
96  pars=( $(echo $line | cut -d' ' -f1-) )
97 
98  unset parstr
99 
100  for (( i=1; i<=${#pars}; ++i )); do
101  local parstr="${parstr} p$((i-1))=${pars[$i]};"
102  done
103 
104  local reweighting_input=$(printf "\t%s=\"${formula};${parstr}\"" ${(z)labels})
105 
106  if (( $# )); then
107  process_parameters "${prefix}${reweighting_input}" "$@"
108  else
109  printf '%b\n' "${prefix}${reweighting_input}"
110  fi
111  done < ${parameters_file}
112 }
113 
114 
115 # Function to write job identifier to file
116 #
117 # \param output_file output file
118 #
119 write_jobID() {
120 
121  local output_file=$1
122 
123  if (( ${+BATCH_PROCESSING} )); then
124 
125  if [[ -z $EXEC_FILE ]]; then fatal "write_jobID(): Variable EXEC_FILE undefined"; fi
126 
127  if ( is_CCNikhef ); then
128  local jobid=$(qstat -u $USER -f | grep -B1 "${EXEC_FILE:t:r}.${USER}" | grep -oP "Job Id: [0-9]+" | tail -1 | cut -d' ' -f3)
129  else
130  local jobid=$(ps | grep "${EXEC_FILE:t:r}" | tail -1 | tr -s ' ' | cut -d' ' -f2)
131  fi
132 
133  echo ${jobid} >> ${output_file}
134  fi
135 }
136 
137 
138 # Set neutrino labels
139 
140 typeset -A NULABELS
141 set_array NULABELS \
142  -16 "anutau" \
143  -14 "anumu" \
144  -12 "anue" \
145  12 "nue" \
146  14 "numu" \
147  16 "nutau"
148 
149 
150 # Initialise local batch processor
151 
152 if [[ ${BATCH_PROCESSING} == 1 ]]; then
153 
154  if ( is_CCNikhef ); then
155 
156  echo "Submitting reweighting and histogram comparison jobs to nikhef-stbc batch queue: ${QUEUE_NAME}..."
157 
158  if [[ ${SCRATCHDIR} == "/tmp" ]]; then
159  fatal "Please specify a valid directory for local \'scratch\' files other than \"${TMPDIR:-/tmp}\""
160  fi
161 
162  elif ( is_CCLyon ); then
163 
164  fatal "No batch-processing option available yet for CC-Lyon."
165 
166  else
167 
168  echo "Submitting reweighting and histogram comparison jobs to local batch queue: ${QUEUE_NAME}..."
169 
170  $JPP_DIR/examples/scripts/mkqueue.sh ${QUEUE_NAME} ${QUEUE_SIZE} "start"
171  fi
172 fi
173 
174 
175 # Retrieve MC files
176 
177 set_array MC_MERGE_FILES $(find ${WORKDIR} -maxdepth 1 -name "*.merge.root")
178 set_variable MC_MERGE_FILELIST ${WORKDIR}/merged.files
179 
180 if (( ${#MC_MERGE_FILES} != 0 )); then
181 
182  echo "----------------------------"
183  printf '%s\n' ${MC_MERGE_FILES[@]}
184  echo "----------------------------"
185 
186  echo "Remove the above regular files? (y/n)"
187 
188  read REMOVE_MC_MERGE_FILES
189 
190  if [[ ${REMOVE_MC_MERGE_FILES} == "y" || ${REMOVE_MC_MERGE_FILES} == "Y" ||
191  ${REMOVE_MC_MERGE_FILES} == "yes" || ${REMOVE_MC_MERGE_FILES} == "Yes" || ${REMOVE_MC_MERGE_FILES} == "YES" ]]; then
192 
193  rm -f ${MC_MERGE_FILES[@]} ${MC_MERGE_FILELIST}
194  else
195  printf '%s\n' ${MC_MERGE_FILES[@]} > ${MC_MERGE_FILELIST}
196  fi
197 fi
198 
199 
200 # Divide into DAQ- and MC-files
201 
202 echo "Dividing into DAQ- and MC-files..."
203 
204 set_variable INPUT_MC_FILELIST ${WORKDIR}/MC.files
205 set_variable INPUT_DAQ_FILELIST ${WORKDIR}/DAQ.files
206 
207 rm -f ${INPUT_MC_FILELIST} ${INPUT_DAQ_FILELIST}
208 touch ${INPUT_MC_FILELIST} ${INPUT_DAQ_FILELIST}
209 
210 for INPUT_FILE in ${INPUT_FILES[@]}; do
211 
212  if [[ "$(JPrintHeader -f ${INPUT_FILE} -k simul --)" != " 0" ]]; then # MC-file
213  set_variable OUTPUT_FILE ${INPUT_MC_FILELIST}
214  else # DAQ-files
215  set_variable OUTPUT_FILE ${INPUT_DAQ_FILELIST}
216  fi
217 
218  if [[ ${INPUT_FILE:e} == "files" ]]; then
220  else
221  echo ${INPUT_FILE} >> ${OUTPUT_FILE}
222  fi
223 done
224 
225 set_variable N_MC_FILES $(cat $INPUT_MC_FILELIST | wc -l)
226 set_variable N_DAQ_FILES $(cat $INPUT_DAQ_FILELIST | wc -l)
227 
228 if (( $N_MC_FILES == 0 )); then
229  fatal "No MC input files specified!"
230 fi
231 
232 
233 # Initialize job ID file
234 
235 set_variable JOBID_FILE ${SCRATCHDIR}/reweighting.jobIDs.txt
236 rm -f $JOBID_FILE
237 touch $JOBID_FILE
238 
239 
240 # Merge MC-files
241 
242 if (( ${#MC_MERGE_FILES} == 0 )); then
243 
245 
246  $JPP_DIR/examples/JAAnet/JSortEvt \
247  -f ${INPUT_MC_FILELIST} \
248  -o ${WORKDIR}/\%.merge.root \
249  -d ${DEBUG} --! ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
250 
251  timer_stop
252  timer_print ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
253 
254  set_array MC_MERGE_FILES $(find ${WORKDIR} -maxdepth 1 -name "*.merge.root")
255 fi
256 
257 
258 if (( N_DAQ_FILES > 0 )); then
259 
260  set_array INPUT_REFERENCE_FILES $(cat ${INPUT_DAQ_FILELIST})
261  set_array INPUT_REWEIGHTING_FILES ${MC_MERGE_FILES[@]}
262 else
263 
264  configure_job \
265  ${SCRATCHDIR}/split_events.job\%.sh 1
266 
267  exec 3> ${EXEC_FILE}
268 
269  cat <<EOF >&3
270 #!/bin/zsh
271 
272 source ${JPP_DIR}/setenv.sh ${JPP_DIR} > /dev/null
273 EOF
274 
275  for MC_MERGE_FILE in ${MC_MERGE_FILES[@]}; do
276 
278  $(JPrintTree -f ${MC_MERGE_FILE} -d ${DEBUG} -- | tr -s ' ' | grep "E Evt" | cut -d' ' -f3)
279  set_variable N1 $(( N_EVENTS / 2 ))
280  set_variable N2 $(( N_EVENTS - N1 ))
281 
282  set_variable INPUT_REFERENCE_FILE ${MC_MERGE_FILE:r}.part1.root
284 
285  cat <<EOF >&3
286 
288 
289 if [[ ! -f ${INPUT_REFERENCE_FILE} || ! -f ${INPUT_REWEIGHTING_FILE} ]]; then
290 
291  rm -f ${INPUT_REFERENCE_FILE} ${INPUT_REWEIGHTING_FILE}
292 
293  \${JPP_DIR}/examples/JAAnet/JSplitEvt \
294  -f ${MC_MERGE_FILE} \
295  -o "${INPUT_REFERENCE_FILE} ${INPUT_REWEIGHTING_FILE}" \
296  -d ${DEBUG} --
297 fi
298 
299 timer_stop
300 timer_print ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
301 
302 ${SUBMIT_JOB+rm -f ${EXEC_FILE}}
303 EOF
304 
305  set_array INPUT_REFERENCE_FILES \
306  ${INPUT_REFERENCE_FILES[@]} ${INPUT_REFERENCE_FILE}
307  set_array INPUT_REWEIGHTING_FILES \
308  ${INPUT_REWEIGHTING_FILES[@]} ${INPUT_REWEIGHTING_FILE}
309  done
310 
311  exec 3>&-
312 
313  submit_job \
314  ${EXEC_FILE} ${(z)${BATCH_PROCESSING:+${QUEUE_NAME} ${SCRATCHDIR}}}
315 
316  write_jobID ${JOBID_FILE}
317 
319 fi
320 
321 
322 # Process reference files and create histogram comparison steering file
323 
324 set_variable REFERENCE_POSTFIT_FILE ${WORKDIR}/reference.postfit.root
325 set_variable STEERING_FILE ${WORKDIR}/steeringfile.txt
326 
327 if ( ! reuse_file ${REFERENCE_POSTFIT_FILE} ); then
328 
329  rm -f $STEERING_FILE
330  touch $STEERING_FILE
331 
332  set_array PREREQUISITES $(cat $JOBID_FILE)
333 
334  configure_job \
335  ${SCRATCHDIR}/${REFERENCE_POSTFIT_FILE:t:r}.job\%.sh 1
336 
337  exec 3> ${EXEC_FILE}
338 
339  cat <<EOF >&3
340 #!/bin/zsh
341 
342 source ${JPP_DIR}/setenv.sh ${JPP_DIR} > /dev/null
343 
344 timer_start
345 
346 JAAPostfit \\
347  -f "${INPUT_REFERENCE_FILES[*]}" \\
348  -o ${REFERENCE_POSTFIT_FILE} \\
349  -a ${DETX_FILE} \\
350  -P ${OSCPROBTABLE} \\
352  -@atmospheric="${(k)NULABELS}" \\
353  -%energyRange="${ENERGY_RANGE}" \\
354  -%coszenithRange="${COSTH_RANGE}" \\
355  -%containmentVolume="${CONTAINMENT_VOLUME}" \\
356  -%triggeredHitsRange="${N_TRIGGERED_HITS_RANGE}" \\
357  -R ${RECOTYPE} -W \\
358  -d ${DEBUG} --! ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
359 
360 timer_stop
361 timer_print ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
362 
363 set_array NAMES \$(JPrintName -f ${REFERENCE_POSTFIT_FILE}:.)
364 
365 for NAME in \${NAMES[@]}; do
366 
368  \$(JPrintResult \
369  -f ${REFERENCE_POSTFIT_FILE}:^\${NAME}\$ \
370  -F "GetNcells / ((GetNbinsX+2)*(GetNbinsY+2))" \
371  -O "%f" --)
372 
373  if [[ \${NAME} != "META" && \${NAME} != "TObject" ]]; then
374 
375  if (( BINFRAC > 1.0 )); then
376  warning "Cannot perform comparison test for histogram \${NAME} with >2 dimensions; skip."
377  elif (( BINFRAC < 1.0 )); then
378  echo "\${NAME}\$ ${TEST_TYPE1D} ${TEST_TYPE1D_PARAMETERS}" >> ${STEERING_FILE}
379  else
380  echo "\${NAME}\$ ${TEST_TYPE2D} ${TEST_TYPE2D_PARAMETERS}" >> ${STEERING_FILE}
381  fi
382  fi
383 done
384 
385 rm -f ${EXEC_FILE}
386 EOF
387 
388  exec 3>&-
389 
390  submit_job \
391  ${EXEC_FILE} ${(z)${BATCH_PROCESSING:+${QUEUE_NAME} ${SCRATCHDIR} $PREREQUISITES[@]}}
392 
393  write_jobID ${JOBID_FILE}
394 
396 fi
397 
398 
399 # Process MC-files with standard weights
400 
401 set_variable DEFAULT_POSTFIT_FILE ${WORKDIR}/default.postfit.root
402 set_variable DEFAULT_COMPARISON_FILE ${DEFAULT_POSTFIT_FILE:r}.comparison.root
403 
404 if ( ! reuse_file ${DEFAULT_COMPARISON_FILE} ); then
405 
406  echo "Submitting default histogram comparison jobs"
407 
408  configure_job \
409  ${SCRATCHDIR}/${DEFAULT_COMPARISON_FILE:t:r}.job\%.sh 1
410 
411  exec 3> ${EXEC_FILE}
412 
413  cat <<EOF >&3
414 #!/bin/zsh
415 
416 source ${JPP_DIR}/setenv.sh ${JPP_DIR} > /dev/null
417 
418 EOF
419 
420  unset DEFAULT_POSTFIT_FILES
421 
422  for (( i=1; i<=${#INPUT_REWEIGHTING_FILES}; ++i )); do
423 
424  set_variable INPUT_FILE ${INPUT_REWEIGHTING_FILES[$i]}
425  set_variable POSTFIT_FILE ${INPUT_FILE:r}.postfit.root
426 
427  rm -f ${POSTFIT_FILE} ${COMPARISON_FILE}
428 
429  cat <<EOF >&3
430 timer_start
431 
432 JAAPostfit \\
433  -f ${INPUT_FILE} \\
434  -o ${POSTFIT_FILE} \\
435  -a ${DETX_FILE} \\
436  -P ${OSCPROBTABLE} \\
438  -@atmospheric="${(k)NULABELS}" \\
439  -%energyRange="${ENERGY_RANGE}" \\
440  -%coszenithRange="${COSTH_RANGE}" \\
441  -%containmentVolume="${CONTAINMENT_VOLUME}" \\
442  -%triggeredHitsRange="${N_TRIGGERED_HITS_RANGE}" \\
443  -R ${RECOTYPE} -W \\
444  -d ${DEBUG} --! ${BATCH_LOGGING:+&>> ${LOG_FILE}}
445 
446 timer_stop
447 timer_print ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
448 EOF
449 
450  set_array DEFAULT_POSTFIT_FILES \
451  ${DEFAULT_POSTFIT_FILES[@]} ${POSTFIT_FILE}
452  done
453 
454  cat <<EOF >&3
455 
456 hadd -v 0 -f ${DEFAULT_POSTFIT_FILE} ${DEFAULT_POSTFIT_FILES[@]}
457 
458 timer_start
459 
460 JZebraMantis \\
461  -a ${REFERENCE_POSTFIT_FILE} \\
462  -b ${DEFAULT_POSTFIT_FILE} \\
463  -s ${STEERING_FILE} \\
464  -o ${DEFAULT_COMPARISON_FILE} \\
465  -t ${DEFAULT_COMPARISON_FILE:r}.txt \\
466  -d ${DEBUG} --! ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
467 
468 timer_stop
469 timer_print ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
470 
471 rm -f ${EXEC_FILE}
472 EOF
473 
474  exec 3>&-
475 
476  submit_job \
477  ${EXEC_FILE} ${(z)${BATCH_PROCESSING:+${QUEUE_NAME} ${SCRATCHDIR} ${REFERENCE_POSTFIT_JOBID}}}
478 
479  write_jobID ${JOBID_FILE}
480 
481  echo ${EXEC_FILE}
482 
484 fi
485 
486 
487 # Parse reweighting inputs
488 
489 unset NUTYPES
490 unset PARINPUTS
491 
492 while IFS=$'\t' read TYPES FORMULA PARAMETER_FILE; do
493 
494  for TYPE in ${(z)TYPES}; do
495  set_array LABELS \
496  ${LABELS[@]} ${NULABELS[$TYPE]}
497  done
498 
499  set_array NUTYPES \
500  ${NUTYPES[@]} ${TYPES[@]}
501 
502  set_array PARINPUTS \
503  ${PARINPUTS[@]} "${LABELS}" "${FORMULA}" "${PARAMETER_FILE}"
504 
506 
507 set_variable PARINPUTS_FILE ${SCRATCHDIR}/parametersets.${RANDOM}.txt
508 
509 process_parameters ' ' ${PARINPUTS[@]} > ${PARINPUTS_FILE}
510 
511 
512 # Compile oscillation parameters files
513 
514 if [[ ! -z $OSCPARAMETERS_GRID_FILE ]]; then
515 
516  $JPP_DIR/examples/JOscProb/JWriteOscParametersGrid \
518  -o ${WORKDIR}/oscillation_parameters.\%.txt \
519  -w '%' \
520  -d ${DEBUG} --
521 fi
522 
523 set_variable OSCPARAMETERS_FILE_LIST ${WORKDIR}/oscillation_parameters.files
524 
525 echo ${DEFAULT_OSCPARAMETERS_FILE} > ${OSCPARAMETERS_FILE_LIST}
526 ls ${WORKDIR}/oscillation_parameters.*.txt >> ${OSCPARAMETERS_FILE_LIST}
527 
528 
529 # Process MC-files with redefined weights
530 
531 set_array PREREQUISITES $(cat $JOBID_FILE)
532 
533 set_variable META_FILE ${WORKDIR}/comparisonResults.meta.txt
534 set_variable JOBID_FILE ${WORKDIR}/reweighting.jobIDs.txt
535 
536 rm -f ${META_FILE} ${JOBID_FILE}
537 
538 integer n=1
539 
540 while read -u 3 LINE; do
541 
542  echo "Submitting reweighting job ${n}"
543 
544  IFS=$'\t' read -r -A PARINPUTS <<< "${LINE}"
545 
546  while read -u 4 OSCPARAMETERS_FILE; do
547 
548  set_variable REWEIGHTED_POSTFIT_FILE ${WORKDIR}/reweighting.${n}.postfit.root
549  set_variable REWEIGHTED_COMPARISON_FILE ${REWEIGHTED_POSTFIT_FILE:r}.comparison.root
550 
551  configure_job \
552  ${SCRATCHDIR}/reweighting.job\%.sh ${JOB_SIZE}
553 
554  if (( ${+START_JOB} )); then
555 
556  exec 5> ${EXEC_FILE}
557 
558  cat <<EOF >&5
559 #!/bin/zsh
560 
561 source ${JPP_DIR}/setenv.sh ${JPP_DIR} > /dev/null
562 EOF
563  fi
564 
565  for (( j=1; j<=${#INPUT_REWEIGHTING_FILES}; ++j )); do
566 
567  set_variable INPUT_FILE ${INPUT_REWEIGHTING_FILES[$j]}
568  set_variable REWEIGHTED_FILE ${INPUT_FILE:r}.reweighting.${n}.root
569  set_variable POSTFIT_FILE ${REWEIGHTED_FILE:r}.postfit.root
570 
571  set_array POSTFIT_FILES \
572  ${POSTFIT_FILES[@]} ${POSTFIT_FILE}
573 
574  cat <<EOF >&5
575 
576 set_array PRIMARIES \\
577  \$(JPrintHeader -f ${INPUT_FILE} -k primary -- | cut -d'=' -f2)
578 
579 set_array PRIMARIES \\
580  \${PRIMARIES[@]} \\
581  \$(JPrintHeader -f ${INPUT_FILE} -k flux -- | cut -d' ' -f3)
582 
583 unset DO_REWEIGHTING
584 
585 for PRIMARY in \${PRIMARIES[@]}; do
586  if [[ "${NUTYPES[@]}" =~ "\${PRIMARY}" ]]; then
587  set_variable DO_REWEIGHTING
588  break
589  fi
590 done
591 
592 if (( \${+DO_REWEIGHTING} )); then
593 
594  timer_start
595 
596  JEvtReweightGSeaGen \\
597  -f ${INPUT_FILE} \\
598  -o ${REWEIGHTED_FILE} \\
599  -P ${OSCPROBTABLE} \\
600  -@ ${OSCPARAMETERS_FILE} \\
601 $(printf ' -#%s \\\n' ${PARINPUTS[@]})
602  -d ${DEBUG} --! ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
603 
604  timer_stop
605  timer_print ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
606 
607  timer_start
608 
609  JAAPostfit \\
610  -f ${REWEIGHTED_FILE} \\
611  -o ${POSTFIT_FILE} \\
612  -a ${DETX_FILE} \\
613  -%energyRange="${ENERGY_RANGE}" \\
614  -%coszenithRange="${COSTH_RANGE}" \\
615  -%containmentVolume="${CONTAINMENT_VOLUME}" \\
616  -%triggeredHitsRange="${N_TRIGGERED_HITS_RANGE}" \\
617  -R ${RECOTYPE} -W \\
618  -d ${DEBUG} --! ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
619 
620  timer_stop
621  timer_print ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
622 
623 else # This file does not correspond to any of the given primaries
624 
625  ln -fv ${INPUT_FILE} ${REWEIGHTED_FILE}
626  ln -fv ${INPUT_FILE:r}.postfit.root ${POSTFIT_FILE}
627 fi
628 
629 rm -f ${REWEIGHTED_FILE}
630 EOF
631  done
632 
633  cat <<EOF >&5
634 
635 hadd -v 0 -f ${REWEIGHTED_POSTFIT_FILE} ${POSTFIT_FILES[@]}
636 
637 timer_start
638 
639 JZebraMantis \\
640  -a ${REFERENCE_POSTFIT_FILE} \\
641  -b ${REWEIGHTED_POSTFIT_FILE} \\
642  -s ${STEERING_FILE} \\
643  -o ${REWEIGHTED_COMPARISON_FILE} \\
644  -t ${REWEIGHTED_COMPARISON_FILE:r}.txt \\
645  -d ${DEBUG} --! ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
646 
647 timer_stop
648 timer_print ${BATCH_LOGGING:+&>> ${LOG_FILE} 2>&1}
649 
650 ${SUBMIT_JOB+#rm -f ${EXEC_FILE}}
651 EOF
652 
653  if (( ${+SUBMIT_JOB} )); then
654 
655  exec 5>&-
656 
657  submit_job \
658  ${EXEC_FILE} ${(z)${BATCH_PROCESSING:+${QUEUE_NAME} ${SCRATCHDIR} ${PREREQUISITES[@]}}}
659 
660  write_jobID ${JOBID_FILE}
661 
662  unset POSTFIT_FILES
663  fi
664 
665  echo "${REWEIGHTED_COMPARISON_FILE:r}.txt\t${OSCPARAMETERS_FILE}\t${PARINPUTS[*]}" >> ${META_FILE}
666 
667  (( ++n ))
668 
669  done 4< ${OSCPARAMETERS_FILE_LIST}
670 
671 done 3< ${PARINPUTS_FILE}
672 
673 rm -f ${PARINPUTS_FILE}
674 
676 
677 set_variable IFS ${IFS0}
then rm f $STEERING_FILE touch $STEERING_FILE set_array PREREQUISITES(cat $JOBID_FILE) configure_job $
data_type w[N+1][M+1]
Definition: JPolint.hh:823
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
then usage $script< detector file >< inputfiles > n Note that if more than one input file is specified
Definition: JTuneHV.sh:36
std::istream & read(std::istream &in, JTestSummary &summary, const char delimiter= ' ')
Read test summary.
then usage $script[< detector identifier >< run range >]< QA/QCfile > nExample script to produce data quality plots nWhen a detector identifier and run range are data are downloaded from the database nand subsequently stored in the given QA QC file
Definition: JDataQuality.sh:19
version
Definition: JEditTuneHV.sh:5
&set_variable OSCPROBTABLE
then JLigier sh continue fi cat
Definition: JDAQDriver.sh:51
then echo Enter input within $TIMEOUT_S seconds echo n User name
Definition: JCookie.sh:42
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
data_type r[M+1]
Definition: JPolint.hh:824
then usage $script< input file > nFor possible input files
Definition: JMechanics.sh:23
&set_variable PARAMETER_FILE
then
Definition: datalogs.sh:31
reset_job_config()
Definition: qlib.sh:164
do set_variable MC_MERGE_FILE
&set_variable DEFAULT_OSCPARAMETERS_FILE
&set_variable PRIMARY
Definition: JMuonPostfit.sh:46
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
const JPolynome f1(1.0, 2.0, 3.0)
Function.
const int n
Definition: JPolint.hh:742
then timer_start(JRandomTimesliceWriter-a ${DETECTOR}-o ${PIPE}-n ${NUMBER_OF_SLICES}-P ${PMT_FILE}-d ${DEBUG}-S ${SEED}-B"$BACKGROUND_HZ"-N"$RECYCLING"--!&&for((i=0;$i!=10;++i));do;echo 'EOF' > $PIPE;usleep 100000;done &&rm-f $PIPE)&JTimesliceReprocessor-a $
then set_array INPUT_REFERENCE_FILES(cat ${INPUT_DAQ_FILELIST}) set_array INPUT_REWEIGHTING_FILES $
then rm
Definition: sftpput.zsh:30
do set_variable BINFRAC(JPrintResult-f ${REFERENCE_POSTFIT_FILE}:^\${NAME}\$-F"GetNcells / ((GetNbinsX+2)*(GetNbinsY+2))"-O"%f"--) if[[\$
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:21
then JCalibrateToT a
Definition: JTuneHV.sh:113
set_variable DETX_FILE
Q DAQ
Definition: JDataQuality.sh:59
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
then awk F
* usage
do set_variable N_EVENTS(JPrintTree-f ${MC_MERGE_FILE}-d ${DEBUG}--|tr-s ' '|grep"E Evt"|cut-d' '-f3) set_variable N1 $((N_EVENTS/2)) set_variable N2 $((N_EVENTS-N1)) set_variable INPUT_REFERENCE_FILE $
then fatal No MC input files specified fi set_variable JOBID_FILE
&set_variable OUTPUT_FILE
set_variable INPUT_FILE
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR source $JPP_DIR software scripts qlib sh set_variable IFS0
skip elif((BINFRAC< 1.0))
then usage $script< input file >[option[primary[working directory]]] nWhere option can be LINE
Definition: JMuonPostfit.sh:40
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable TRIPOD $argv[2] set_variable TX $argv[3] set_variable TY $argv[4] if[[!-f $DETECTOR]]
Definition: JFootprint.sh:28
do sput $STRING $FLOOR sget MODULE INPUT_FILES
Definition: JCanberra.sh:77
&set_variable FORMULA
part1 root set_variable INPUT_REWEIGHTING_FILE
then JCookie sh JDataQuality D $DETECTOR_ID R
Definition: JDataQuality.sh:41
do grep(chi2\[.\]\|gradient\)" $INPUT_FILE > $WORKDIR/stage.txt awk 'BEGIN
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
&set_variable OSCPARAMETERS_GRID_FILE
then echo Submitting reweighting and histogram comparison jobs to nikhef stbc batch queue
double f3(const double x, const double y, const double z)
3D function.
Definition: JPolynome3D.cc:23
int j
Definition: JPolint.hh:748
fi set_array MC_MERGE_FILES(find ${WORKDIR}-maxdepth 1-name"*.merge.root") if(($
data_type v[N+1][M+1]
Definition: JPolint.hh:822
double u[N+1]
Definition: JPolint.hh:821
then echo
Definition: JQAQC.sh:90
static JNullStream null
Null I/O stream.
Definition: JNullStream.hh:51
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:46
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
set_variable REWEIGHTING_INPUTS_FILE
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:62
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62
do alias $i