Jpp  18.5.2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JMakePDF.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 # utility script to produce PDF and CDF tables.
6 script=${0##*/}
7 
8 
9 # ------------------------------------------------------------------------------------------
10 #
11 # Utility script to produce PDF and CDF tables.
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 >& /dev/null
21 
23 set_variable WORKDIR $JPP_DATA
28 set_variable BACKGROUND
29 set_variable WGET
30 set_variable RMAX_M 999
33 set_variable: TTS_NS PHYSICS_TTS_NS 2.0
34 set_variable EXECUTOR "nohup"
35 
36 #
37 # Method to print usage of script.
38 #
39 function __usage__()
40 {
42 
43  usage "$script\n"\
44  "-d <debug level> \n"\
45  "-W <working directory PDF and CDF tables> \n"\
46  "-P create PDF tables \n"\
47  "-M merge PDF tables \n"\
48  "-C convert PDF tables to CDF tables \n"\
49  "-c clean PDF tables \n"\
50  "-B parallel running of jobs in background \n"\
51  "-E execute command to be evaluated (standard: nohup, example: echo, using -B as well) \n"\
52  "-w download files from GIT server (e.g. \"http://sftp.km3net.de/data/latest/\") \n"\
53  "-R <maximal distance between muon and PMT> \n"\
54  "Note that the elongated EM shower PDF is created at option -M. \n"\
55  "Script to generate the PDF/CDFs and merge them; \n"\
56  "standard example: JMakePDF.sh -W \${JPP_DATA} -PMCc \n"\
57  "print all necessary programs: JMakePDF.sh -W \${JPP_DATA} -E \"echo\" -PMCB"
58 }
59 
60 #
61 # Parse command line options.
62 #
63 while getopts "d:W:PMCcBE:w:hA:S:R:" option; do
64  case "$option" in
70  c) set_variable CLEAN 1;;
71  B) set_variable BACKGROUND \&;;
72  E) set_variable EXECUTOR $OPTARG;;
74  h) __usage__;;
77  R) set_variable RMAX_M $OPTARG;;
78  esac
79 done
80 
81 # check whether script is already running
82 
83 BUFFER=`get_pid $script`
84 BUFFER=${BUFFER/${$}/}
85 
86 if [[ -n "${BUFFER/ */}" ]]; then
87  notice "${script} already running <${BUFFER}>"
88  exit 0
89 fi
90 
91 check_variable ROOTSYS JPP_DIR WORKDIR
92 
93 mkdir -p $WORKDIR
94 
95 if [[ ! -d $WORKDIR ]]; then
96  fatal "Directory $WORKDIR does not exist."
97 fi
98 
99 status "Start $script"
100 
101 
102 if [[ -n $WGET ]]; then
103  cd $WORKDIR
104  (rm -f *.dat) >& /dev/null
105  wget -A dat,txt,root,evt.gz -r -l 1 -nd -q $WGET
106 fi
107 
108 
109 if (( $MAKE_PDF )); then
110 
111  check_process JMakePDF JMakePDG pgrep
112 
113  if (( 1 )); then
114 
115  if [[ ! -f $WORKDIR/J1p.dat ]]; then
116  eval $EXECUTOR JMakePDF -F1 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J1p.dat -d $DEBUG $BACKGROUND
117  fi
118  if [[ ! -f $WORKDIR/J2p.dat ]]; then
119  eval $EXECUTOR JMakePDF -F2 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J2p.dat -d $DEBUG $BACKGROUND
120  fi
121 
122  for R in 0.1 0.3 0.5 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 \
123  11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 \
124  22.0 24.0 26.0 28.0 30.0 32.0 34.0 36.0 38.0 40.0 42.0 44.0 46.0 48.0 50.0 \
125  55.0 60.0 65.0 70.0 75.0 80.0 85.0 90.0 95.0 100.0 110.0 120.0 130.0 140.0 150.0 \
126  170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0; do
127 
128  if (( $R <= $RMAX_M )); then
129 
130  if [[ ! -f $WORKDIR/J3p.dat ]]; then
131  eval $EXECUTOR JMakePDF -F3 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J3p-$R.dat -d $DEBUG $BACKGROUND
132  fi
133  if [[ ! -f $WORKDIR/J4p.dat ]]; then
134  eval $EXECUTOR JMakePDF -F4 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J4p-$R.dat -d $DEBUG $BACKGROUND
135  fi
136  fi
137  done
138 
139  if [[ ! -f $WORKDIR/J5p.dat ]]; then
140  eval $EXECUTOR JMakePDF -F5 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J5p.dat -d $DEBUG $BACKGROUND
141  fi
142 
143  for R in 0.1 0.3 0.5 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 \
144  11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.0 20.0 \
145  22.0 24.0 26.0 28.0 30.0 32.0 34.0 36.0 38.0 40.0 42.0 44.0 46.0 48.0 50.0 \
146  55.0 60.0 65.0 70.0 75.0 80.0 85.0 90.0 95.0 100.0 110.0 120.0 130.0 140.0 150.0 \
147  170.0 190.0 210.0 230.0 250.0; do
148 
149  if (( $R <= $RMAX_M )); then
150 
151  if [[ ! -f $WORKDIR/J6p.dat ]]; then
152  eval $EXECUTOR JMakePDF -F6 -A $absorptionLengthFactor -S $scatteringLengthFactor -R $R -o $WORKDIR/J6p-$R.dat -d $DEBUG $BACKGROUND
153  fi
154  fi
155  done
156 
157  let "DMAX_M = ${RMAX_M}*1.5"
158 
159  for D in 0.1 0.5 1.0 5.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 \
160  120.0 150.0 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0; do
161 
162  if (( $D <= $DMAX_M )); then
163  if [[ ! -f $WORKDIR/J12p.dat ]]; then
164  eval $EXECUTOR JMakePDG -F12 -A $absorptionLengthFactor -S $scatteringLengthFactor -D $D -o $WORKDIR/J12p-$D.dat -d $DEBUG $BACKGROUND
165  fi
166  fi
167  done
168 
169  if [[ ! -f $WORKDIR/J13p.dat ]]; then
170  eval $EXECUTOR JMakePDG -F13 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J13p.dat -d $DEBUG $BACKGROUND
171  fi
172 
173  let "DMAX_M = ${RMAX_M}*1.5"
174 
175  for D in 0.1 0.5 1.0 5.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 \
176  120.0 150.0 170.0 190.0 210.0 230.0 250.0 270.0 290.0 310.0 \
177  340.0 370.0 400.0 430.0 460.0 490.0 520.0 550.0 600.0 650.0 700.0 750.0 800.0; do
178 
179  if (( $D <= $DMAX_M )); then
180  if [[ ! -f $WORKDIR/J14p.dat ]]; then
181  eval $EXECUTOR JMakePDG -F14 -A $absorptionLengthFactor -S $scatteringLengthFactor -D $D -o $WORKDIR/J14p-$D.dat -d $DEBUG $BACKGROUND
182  fi
183  fi
184  done
185 
186  if [[ ! -f $WORKDIR/J23p.dat ]]; then
187  eval $EXECUTOR JMakePD0 -F23 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J23p.dat -d $DEBUG $BACKGROUND
188  fi
189  if [[ ! -f $WORKDIR/J24p.dat ]]; then
190  eval $EXECUTOR JMakePD0 -F24 -A $absorptionLengthFactor -S $scatteringLengthFactor -o $WORKDIR/J24p.dat -d $DEBUG $BACKGROUND
191  fi
192 
193  if [[ "$BACKGROUND" != "" ]]; then
194  wait
195  fi
196  fi
197 fi
198 
199 
200 if (( $MERGE_PDF )); then
201 
202  check_process JMergePDF pgrep
203 
204  if [[ ! -f $WORKDIR/J3p.dat ]]; then
205 
206  FILE_LIST=(`echo $WORKDIR/J3p-*.dat`)
207 
208  eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J3p.dat -d $DEBUG $BACKGROUND
209  fi
210 
211  if [[ ! -f $WORKDIR/J4p.dat ]]; then
212 
213  FILE_LIST=(`echo $WORKDIR/J4p-*.dat`)
214 
215  eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J4p.dat -d $DEBUG $BACKGROUND
216  fi
217 
218  if [[ ! -f $WORKDIR/J6p.dat ]]; then
219 
220  FILE_LIST=(`echo $WORKDIR/J6p-*.dat`)
221 
222  eval $EXECUTOR JMergePDF -f${^FILE_LIST} -o $WORKDIR/J6p.dat -d $DEBUG $BACKGROUND
223  fi
224 
225  if [[ ! -f $WORKDIR/J12p.dat ]]; then
226 
227  FILE_LIST=(`echo $WORKDIR/J12p-*.dat`)
228 
229  eval $EXECUTOR JMergePDG -f${^FILE_LIST} -o $WORKDIR/J12p.dat -d $DEBUG $BACKGROUND
230  fi
231 
232  if [[ ! -f $WORKDIR/J14p.dat ]]; then
233 
234  FILE_LIST=(`echo $WORKDIR/J14p-*.dat`)
235 
236  eval $EXECUTOR JMergePDG -f${^FILE_LIST} -o $WORKDIR/J14p.dat -d $DEBUG $BACKGROUND
237  fi
238 
239  if [[ "$BACKGROUND" != "" ]]; then
240  wait
241  fi
242 
243  if [[ ! -f $WORKDIR/J113p.dat ]]; then
244 
245  eval $EXECUTOR JMakePDE -F $WORKDIR/J%p.dat -o $WORKDIR/J113p.dat -T $TTS_NS -d $DEBUG $BACKGROUND
246  fi
247 
248  if [[ "$BACKGROUND" != "" ]]; then
249  wait
250  fi
251 fi
252 
253 
254 if (( $MAKE_CDF )); then
255 
256  check_process JMakeCDF JMakeCDG pgrep
257 
258  if [[ ! -f $WORKDIR/I1p.dat ]]; then
259  eval $EXECUTOR JMakeCDF -f $WORKDIR/J1p.dat -e 1e-5 -o $WORKDIR/I1p.dat -d $DEBUG $BACKGROUND
260  fi
261  if [[ ! -f $WORKDIR/I2p.dat ]]; then
262  eval $EXECUTOR JMakeCDF -f $WORKDIR/J2p.dat -e 1e-4 -o $WORKDIR/I2p.dat -d $DEBUG $BACKGROUND
263  fi
264  if [[ ! -f $WORKDIR/I5p.dat ]]; then
265  eval $EXECUTOR JMakeCDF -f $WORKDIR/J5p.dat -e 1e-5 -o $WORKDIR/I5p.dat -d $DEBUG $BACKGROUND
266  fi
267  if [[ ! -f $WORKDIR/I6p.dat ]]; then
268  eval $EXECUTOR JMakeCDF -f $WORKDIR/J6p.dat -e 1e-5 -o $WORKDIR/I6p.dat -d $DEBUG $BACKGROUND
269  fi
270  if [[ ! -f $WORKDIR/I12p.dat ]]; then
271  eval $EXECUTOR JMakeCDG -f $WORKDIR/J12p.dat -e 1e-5 -o $WORKDIR/I12p.dat -d $DEBUG $BACKGROUND
272  fi
273  if [[ ! -f $WORKDIR/I13p.dat ]]; then
274  eval $EXECUTOR JMakeCDG -f $WORKDIR/J13p.dat -e 1e-5 -o $WORKDIR/I13p.dat -d $DEBUG $BACKGROUND
275  fi
276  if [[ ! -f $WORKDIR/I14p.dat ]]; then
277  eval $EXECUTOR JMakeCDG -f $WORKDIR/J14p.dat -e 1e-5 -o $WORKDIR/I14p.dat -d $DEBUG $BACKGROUND
278  fi
279 
280  if [[ "$BACKGROUND" != "" ]]; then
281  wait
282  fi
283 fi
284 
285 if (( $CLEAN )); then
286  if ( rm -f $WORKDIR/J*p-*.dat ); then; fi
287 fi
288 
289 status "End $script"
const JPolynome F1
Integral.
Definition: JQuadrature.cc:34
data_type w[N+1][M+1]
Definition: JPolint.hh:867
do case $option in d set_variable DEBUG $OPTARG
Definition: JMakePDF.sh:65
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Definition: JMuonPostfit.sh:40
esac done BUFFER
Definition: JMakePDF.sh:83
then usage $script< directory A >< directoryB > nIn each there should be a file detector datx and tripod txt
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
Definition: JDataQuality.sh:76
double absorptionLengthFactor
Scaling of absorption and scattering length.
Definition: JDrawPD0.cc:24
exit
Definition: JPizza.sh:36
data_type r[M+1]
Definition: JPolint.hh:868
P set_variable MAKE_PDF
Definition: JMakePDF.sh:66
then
Definition: datalogs.sh:31
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
static const double C
Physics constants.
const int n
Definition: JPolint.hh:786
then rm
Definition: sftpput.zsh:30
h __usage__
Definition: JMakePDF.sh:73
do set_variable OUTPUT_DIRECTORY $WORKDIR T
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
then awk F
* usage
c set_variable CLEAN
Definition: JMakePDF.sh:69
$WORKDIR ev_configure_dqsimulator txt echo process $DQ_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DQ_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
then JCookie sh JDataQuality D $DETECTOR_ID R
Definition: JDataQuality.sh:41
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
double scatteringLengthFactor
Definition: JDrawPD0.cc:25
then echo
Definition: JQAQC.sh:96
then usage $script(input file)+< output file >" fi if (( $ fatal "Wrong number of arguments." fi set_array INPUT_FILES $argv[1
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
do echo Generating $dir eval D
Definition: JDrawLED.sh:53
do JPlot2D f $WORKDIR canberra[${EMITTER}] root
Definition: JCanberra.sh:136
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
C set_variable MAKE_CDF
Definition: JMakePDF.sh:68
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:62
esac done
Definition: JAddHDE.sh:21
M set_variable MERGE_PDF
Definition: JMakePDF.sh:67
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62