source: trunk/Mars/datacenter/scripts/runsimtel@ 10083

Last change on this file since 10083 was 9541, checked in by Daniela Dorner, 15 years ago
*** empty log message ***
  • Property svn:executable set to *
File size: 4.4 KB
Line 
1#!/bin/sh
2#
3# ========================================================================
4#
5# *
6# * This file is part of CheObs, the Modular Analysis and Reconstruction
7# * Software. It is distributed to you in the hope that it can be a useful
8# * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
9# * It is distributed WITHOUT ANY WARRANTY.
10# *
11# * Permission to use, copy, modify and distribute this software and its
12# * documentation for any purpose is hereby granted without fee,
13# * provided that the above copyright notice appears in all copies and
14# * that both that copyright notice and this permission notice appear
15# * in supporting documentation. It is provided "as is" without express
16# * or implied warranty.
17# *
18#
19#
20# Author(s): Daniela Dorner 01/2009 <mailto:daniela.dorner@unige.ch>
21#
22# Copyright: CheObs Software Development, 2000-2009
23#
24#
25# ========================================================================
26#
27# This script runs corsika and simtelarray.
28#
29
30source `dirname $0`/sourcefile
31printprocesslog "INFO starting $0"
32program=corsikasimtel
33column=fCorsikaSimTelarray
34
35# todo:
36# evtl trennung v corsika u simtel
37
38set -C
39
40simdir=/home/dorner/cta_mc
41
42export CORSIKA_PATH=$simdir/corsika-6735/run/
43export SIM_TELARRAY_PATH=$simdir/sim_telarray
44export MCDATA_PATH=$mcpath
45export CORSIKA_DATA="${MCDATA_PATH}/corsika"
46export SIM_TELARRAY_DATA="${MCDATA_PATH}/simtel"
47
48# printing input card to stdout
49function printinputcard()
50{
51 # Run number
52 echo "RUNNR "$run
53 # Number of simulated events
54 echo "NSHOW "$numevts
55 # Seed values for simulation
56 echo "SEED "$run" 0 0 "
57 echo "SEED "$run" 0 0 "
58 echo "SEED "$run" 0 0 "
59 echo "SEED "$run" 0 0 "
60 # output directory
61 echo "DIRECT "$outpath"/ "
62 inputcardpart=$setuppath/INPUTS_CTA_ULTRA3_${primparticle}_part
63 cat $inputcardpart
64}
65
66
67# get hostname
68prodhost=`echo $HOSTNAME | sed -e 's/compute-0-//' -e 's/[.]local//'`
69
70diskusage=( `df $mcpath | grep $mcpath` )
71# continue only if more than 90 GB are left on /state/cta
72if [ ${diskusage[3]} -lt 90000000 ]
73then
74 printprocesslog "WARN less than 90 GB left on /state/cta on node $prodhost "
75 finish
76else
77 printprocesslog "INFO still ${diskusage[3]} left on /state/cta on node $prodhost "
78fi
79
80
81# get sequence #
82gettodo "1"
83run=${primaries[0]}
84
85# lock sequ
86lockfile=$lockpath/lock-$table-$column-$run.txt
87checklock
88
89printprocesslog "INFO starting $program for run $run"
90
91# get values for inputcard
92query="SELECT fParticleTypeName FROM MCRunData LEFT JOIN ParticleType using (fParticleTypeKEY) where fMCRunNumber="$run
93primparticle=`sendquery`
94query="SELECT fNumEvents FROM MCRunData where fMCRunNumber="$run
95numevts=`sendquery`
96
97# path and logs
98outpath=$mcpath"/corsika/"`printf %06d $run`
99logfile=$outpath/$program"-"`printf %06d $run`".log"
100inputcard=$outpath/$program"-"`printf %06d $run`".card"
101makedir $outpath
102
103# insert host into db
104query="UPDATE MCRunProcessStatus set fProductionHostKEY=$prodhost where fMCRunNumber="$run
105if ! sendquery $query
106then
107 printprocesslog "inserting host failed"
108 finish
109fi
110
111setstatus "start"
112
113cd $CORSIKA_PATH
114
115printprocesslog "INFO create inputcard for run $run"
116
117#
118# starting corsika with pipe to simtelarray
119# in the inputcard the path to the script is defined:
120# ${SIM_TELARRAY_PATH}/run_sim_cta-ultra3 (i.e. run_sim_hessarray_generic)
121# in this script a setup file is chosen:
122# multicfg="multi/multi_${cfg}.cfg"
123# in multi/multi_cta-ultra3.cfg one can choose whether to store
124# the corsika files:
125# gzip > ${CORSIKA_DATA}/run${CORSIKA_RUN}.corsika.gz
126# and multi/multi_cta-ultra3.cfg starts the script
127# ${SIM_TELARRAY_PATH}/cta-ultra2_run.sh (i.e. generic_run.sh)
128# in which e.g. path and file name are set
129#
130printinputcard >| $inputcard
131#./corsika < $inputcard >| $logfile 2>&1
132./corsika6735Linux_QGSJET_urqmd < $inputcard >| $logfile 2>&1
133check1=$?
134
135case $check1 in
136 0) printprocesslog "INFO finished corsika and simtelarray without error (check1=$check1) "
137 if ! grep 'END OF RUN' $logfile
138 then
139 printprocesslog "ERROR could not find 'END OF RUN' in $logfile => unknown error for run $run"
140 com=$Fcorsikasimtel
141 check=2
142 else
143 printprocesslog "INFO $program finished successfully for mc run number $run"
144 fi
145 ;;
146 *) printprocesslog "ERROR $program failed for mc run number $run (check1=$check1)"
147 com=$Fcorsikasimtel
148 check=$check1
149 ;;
150esac
151
152setstatus "stop"
153
154finish
155
Note: See TracBrowser for help on using the repository browser.