1 | #!/bin/sh
|
---|
2 | #
|
---|
3 | # ========================================================================
|
---|
4 | #
|
---|
5 | # *
|
---|
6 | # * This file is part of MARS, the MAGIC 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 appear 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 12/2005 <mailto:dorner@astro.uni-wuerzburg.de>
|
---|
21 | # Author(s): Daniel Hoehne-Moench 01/2009 <mailto:hoehne@astro.uni-wuerzburg.de>
|
---|
22 | #
|
---|
23 | # Copyright: MAGIC Software Development, 2000-2009
|
---|
24 | #
|
---|
25 | #
|
---|
26 | # ========================================================================
|
---|
27 | #
|
---|
28 | # The script is building two sequences per directory and epoch. One for
|
---|
29 | # training and one for testing. The relevant parameters are taken from
|
---|
30 | # the MC database.
|
---|
31 | #
|
---|
32 |
|
---|
33 | source `dirname $0`/sourcefile
|
---|
34 | printprocesslog "INFO starting $0"
|
---|
35 | program=mcsequences
|
---|
36 |
|
---|
37 | set -C
|
---|
38 |
|
---|
39 | # check if script is already running
|
---|
40 | lockfile=$lockpath/lock-$program.txt
|
---|
41 | checklock
|
---|
42 |
|
---|
43 | # find montecarlo directories, build two sequences per directory and write sequence files
|
---|
44 | printprocesslog "INFO building two sequences per mcdirectory and epoch, one for training and one for testing"
|
---|
45 |
|
---|
46 | getdbsetup
|
---|
47 |
|
---|
48 | dirs=`find $mcrawpath -type d`
|
---|
49 | for dir in ${dirs[@]}
|
---|
50 | do
|
---|
51 | cont=`echo $dir | cut -d/ -f7`
|
---|
52 | #cont=`echo $dir | cut -d/ -f10`
|
---|
53 | if [ "$cont" == "" ]
|
---|
54 | then
|
---|
55 | continue
|
---|
56 | fi
|
---|
57 | printprocesslog "INFO dir: "$dir
|
---|
58 |
|
---|
59 | epochs=`ls -l $mcpath/camera | cut -c 52-80`
|
---|
60 | for epoch in ${epochs[@]}
|
---|
61 | do
|
---|
62 | printprocesslog "INFO epoch: "$epoch
|
---|
63 | calfile=`find $dir -lname *${epoch}/*.root | grep "_C_"`
|
---|
64 | pedfile=`find $dir -lname *${epoch}/*.root | grep "_P_"`
|
---|
65 |
|
---|
66 | calrun=`echo $calfile | cut -d_ -f2`
|
---|
67 | pedrun=`echo $pedfile | cut -d_ -f2`
|
---|
68 |
|
---|
69 | modes=("Gamma" "GammaW1" "GammaW2" "GammaFW" "GammaDiff" "GammaHE" "GammaHEW1" "GammaHEW2" "GammaHEFW" "GammaHEDiff" "ProtonDiff" "ProtonHEDiff" "MuonDiff" "MuonHEDiff" "GammaSUM" "GammaW1SUM" "GammaW2SUM" "GammaFWSUM" "GammaDiffSUM" "GammaHESUM" "GammaHEW1SUM" "GammaHEW2SUM" "GammaHEFWSUM" "GammaHEDiffSUM" "ProtonDiffSUM" "ProtonHEDiffSUM" "MuonDiffSUM" "MuonHEDiffSUM")
|
---|
70 | for mode in ${modes[@]}
|
---|
71 | do
|
---|
72 | datruns=`find $dir -lname *${epoch}/*.root | grep ${mode}_ | grep "_D_" | cut -d_ -f2 | tr "\n" " "`
|
---|
73 | if [ "$datruns" != "" ]
|
---|
74 | then
|
---|
75 | num=`echo $datruns | wc -w`
|
---|
76 | train=`expr $num / 5`
|
---|
77 | test=`expr $num - $train`
|
---|
78 | last=`expr $num \* 9`
|
---|
79 | train2=`expr $train \* 9`
|
---|
80 | firstrun=`echo $datruns | cut -c 0-8`
|
---|
81 | trainruns=`echo $datruns | cut -c 0-$train2`
|
---|
82 | trainruns2=`echo $trainruns | sed -e 's/ /,/g'`
|
---|
83 | testruns=`echo $datruns | cut -c $train2-$last`
|
---|
84 | testruns2=`echo $testruns | sed -e 's/ /,/g'`
|
---|
85 | firstruntrain=`echo $trainruns | cut -c 0-8`
|
---|
86 | firstruntest=`echo $testruns | cut -c 0-8`
|
---|
87 |
|
---|
88 | date=`echo $dir | cut -c 28-37 | sed -e 's/\//-/g'`
|
---|
89 | #date=`echo $dir | cut -c 57-66 | sed -e 's/\//-/g'`
|
---|
90 | zbin=`echo $date | cut -c 3,4`
|
---|
91 |
|
---|
92 |
|
---|
93 | #training runs
|
---|
94 | for trainrun in ${trainruns[@]}
|
---|
95 | do
|
---|
96 | trainupdate=" update MCRunData set fSequenceFirst=\"$firstruntrain\" where fRunNumber=\"$trainrun\" "
|
---|
97 | mysql -ss -u $user --password=$pw --host=$ho $db -e " $trainupdate "
|
---|
98 | done
|
---|
99 |
|
---|
100 | trainquery1=" select fSpectrumKEY, fPSFKEY, fAmplFadcKEY, fAtmosphericModelKEY, fObservationModeKEY, fMCParticleKEY, fReflectorVersionKEY, fCorsikaVersionKEY, fCameraVersionKEY, fViewConeAngleOKEY, fAddSpotSizeKEY, fTriggerFlagKEY from MCRunData where fRunNumber=\"$firstruntrain\" "
|
---|
101 | trainquery2=" select sum(fNumEvents), sum(fNumTriggers), sum(fNumSumTriggers) from MCRunData where fRunNumber in ($trainruns2) "
|
---|
102 | trainvalues=`mysql -ss -u $user --password=$pw --host=$ho $db -e " $trainquery1 "`
|
---|
103 | trainvalues2=`mysql -ss -u $user --password=$pw --host=$ho $db -e " $trainquery2 "`
|
---|
104 | trainspec=`echo $trainvalues | cut -d" " -f1`
|
---|
105 | trainpsf=`echo $trainvalues | cut -d" " -f2`
|
---|
106 | trainamplfadc=`echo $trainvalues | cut -d" " -f3`
|
---|
107 | traintrainatmo=`echo $trainvalues | cut -d" " -f4`
|
---|
108 | trainobs=`echo $trainvalues | cut -d" " -f5`
|
---|
109 | trainpart=`echo $trainvalues | cut -d" " -f6`
|
---|
110 | trainrefl=`echo $trainvalues | cut -d" " -f7`
|
---|
111 | traincors=`echo $trainvalues | cut -d" " -f8`
|
---|
112 | traincam=`echo $trainvalues | cut -d" " -f9`
|
---|
113 | trainview=`echo $trainvalues | cut -d" " -f10`
|
---|
114 | trainass=`echo $trainvalues | cut -d" " -f11`
|
---|
115 | traintrig=`echo $trainvalues | cut -d" " -f12`
|
---|
116 | trainevents=`echo $trainvalues2 | cut -d" " -f1`
|
---|
117 | traintriggers=`echo $trainvalues2 | cut -d" " -f2`
|
---|
118 | trainsumtriggers=`echo $trainvalues2 | cut -d" " -f3`
|
---|
119 | trainquery3=" select fSequenceFirst from MCSequenceProcessStatus where fSequenceFirst=\"$firstruntrain\" "
|
---|
120 | trainquery4=" select fSequenceFirst from MCSequences where fSequenceFirst=\"$firstruntrain\" "
|
---|
121 | traincheck3=`mysql -ss -u $user --password=$pw --host=$ho $db -e " $trainquery3 "`
|
---|
122 | traincheck4=`mysql -ss -u $user --password=$pw --host=$ho $db -e " $trainquery4 "`
|
---|
123 | traininsert1=" insert MCSequenceProcessStatus set fSequenceFirst=\"$firstruntrain\", fSequenceFileWritten=Now() "
|
---|
124 | traininsert2=" insert MCSequences set fSequenceFirst=\"$firstruntrain\", fPriority=\"$firstruntrain\", fRunStart=\"$date\", fNumEvents=\"$trainevents\", fNumTriggers=\"$traintriggers\", fNumSumTriggers=\"$trainsumtriggers\", fZBin=\"$zbin\", fSpectrumKEY=\"$trainspec\", fPSFKEY=\"$trainpsf\", fAddSpotSizeKEY=\"$trainass\", fAmplFadcKEY=\"$trainamplfadc\", fAtmosphericModelKEY=\"$trainatmo\", fObservationModeKEY=\"$trainobs\", fMCParticleKEY=\"$trainpart\", fReflectorVersionKEY=\"$trainrefl\", fCorsikaVersionKEY=\"$traincors\", fCameraVersionKEY=\"$traincam\", fViewConeAngleOKEY=\"$trainview\", fTriggerFlagKEY=\"$traintrig\", fTestTrainKEY=2 "
|
---|
125 | trainupdate2=" update MCSequences set fRunStart=\"$date\", fNumEvents=\"$trainevents\", fNumTriggers=\"$traintriggers\", fNumSumTriggers=\"$trainsumtriggers\", fZBin=\"$zbin\", fSpectrumKEY=\"$trainspec\", fPSFKEY=\"$trainpsf\", fAddSpotSizeKEY=\"$trainass\", fAmplFadcKEY=\"$trainamplfadc\", fAtmosphericModelKEY=\"$trainatmo\", fObservationModeKEY=\"$trainobs\", fMCParticleKEY=\"$trainpart\", fReflectorVersionKEY=\"$trainrefl\", fCorsikaVersionKEY=\"$traincors\", fCameraVersionKEY=\"$traincam\", fViewConeAngleOKEY=\"$trainview\", fTriggerFlagKEY=\"$traintrig\", fTestTrainKEY=2 where fSequenceFirst=\"$firstruntrain\" "
|
---|
126 | if [ "$traincheck3" == "" ]
|
---|
127 | then
|
---|
128 | mysql -ss -u $user --password=$pw --host=$ho $db -e " $traininsert1 "
|
---|
129 | fi
|
---|
130 | if [ "$traincheck4" == "" ]
|
---|
131 | then
|
---|
132 | mysql -ss -u $user --password=$pw --host=$ho $db -e " $traininsert2 "
|
---|
133 | else
|
---|
134 | mysql -ss -u $user --password=$pw --host=$ho $db -e " $trainupdate2 "
|
---|
135 | fi
|
---|
136 |
|
---|
137 | trainno=`echo $firstruntrain | cut -c 0-4`
|
---|
138 | trainsequpath=$mcsequpath/$trainno
|
---|
139 | makedir $trainsequpath
|
---|
140 | trainsequfile=$trainsequpath/sequence$firstruntrain.txt
|
---|
141 | printprocesslog "INFO writing train sequencefile $trainsequfile"
|
---|
142 |
|
---|
143 | echo "Sequence: $firstruntrain" >| $trainsequfile
|
---|
144 | echo "Night: $date" >> $trainsequfile
|
---|
145 | echo "Epoch: $epoch" >> $trainsequfile
|
---|
146 | echo "Mode: $mode" >> $trainsequfile
|
---|
147 | echo "" >> $trainsequfile
|
---|
148 | echo "CalRuns: $calrun" >> $trainsequfile
|
---|
149 | echo "PedRuns: $pedrun" >> $trainsequfile
|
---|
150 | echo "DatRuns: $trainruns" >> $trainsequfile
|
---|
151 | echo "" >> $trainsequfile
|
---|
152 | echo "MonteCarlo: Yes" >> $trainsequfile
|
---|
153 | echo "Training sequence" >> $trainsequfile
|
---|
154 | echo "" >> $trainsequfile
|
---|
155 |
|
---|
156 |
|
---|
157 | #test runs
|
---|
158 | for testrun in ${testruns[@]}
|
---|
159 | do
|
---|
160 | testupdate=" update MCRunData set fSequenceFirst=\"$firstruntest\" where fRunNumber=\"$testrun\" "
|
---|
161 | mysql -ss -u $user --password=$pw --host=$ho $db -e " $testupdate "
|
---|
162 | done
|
---|
163 |
|
---|
164 | testquery1=" select fSpectrumKEY, fPSFKEY, fAmplFadcKEY, fAtmosphericModelKEY, fObservationModeKEY, fMCParticleKEY, fReflectorVersionKEY, fCorsikaVersionKEY, fCameraVersionKEY, fViewConeAngleOKEY, fAddSpotSizeKEY, fTriggerFlagKEY from MCRunData where fRunNumber=\"$firstruntest\" "
|
---|
165 | testquery2=" select sum(fNumEvents), sum(fNumTriggers), sum(fNumSumTriggers) from MCRunData where fRunNumber in ($testruns2) "
|
---|
166 | testvalues=`mysql -ss -u $user --password=$pw --host=$ho $db -e " $testquery1 "`
|
---|
167 | testvalues2=`mysql -ss -u $user --password=$pw --host=$ho $db -e " $testquery2 "`
|
---|
168 | testspec=`echo $testvalues | cut -d" " -f1`
|
---|
169 | testpsf=`echo $testvalues | cut -d" " -f2`
|
---|
170 | testamplfadc=`echo $testvalues | cut -d" " -f3`
|
---|
171 | testatmo=`echo $testvalues | cut -d" " -f4`
|
---|
172 | testobs=`echo $testvalues | cut -d" " -f5`
|
---|
173 | testpart=`echo $testvalues | cut -d" " -f6`
|
---|
174 | testrefl=`echo $testvalues | cut -d" " -f7`
|
---|
175 | testcors=`echo $testvalues | cut -d" " -f8`
|
---|
176 | testcam=`echo $testvalues | cut -d" " -f9`
|
---|
177 | testview=`echo $testvalues | cut -d" " -f10`
|
---|
178 | testass=`echo $testvalues | cut -d" " -f11`
|
---|
179 | testtrig=`echo $testvalues | cut -d" " -f12`
|
---|
180 | testevents=`echo $testvalues2 | cut -d" " -f1`
|
---|
181 | testtriggers=`echo $testvalues2 | cut -d" " -f2`
|
---|
182 | testsumtriggers=`echo $testvalues2 | cut -d" " -f3`
|
---|
183 | testquery3=" select fSequenceFirst from MCSequenceProcessStatus where fSequenceFirst=\"$firstruntest\" "
|
---|
184 | testquery4=" select fSequenceFirst from MCSequences where fSequenceFirst=\"$firstruntest\" "
|
---|
185 | testcheck3=`mysql -ss -u $user --password=$pw --host=$ho $db -e " $testquery3 "`
|
---|
186 | testcheck4=`mysql -ss -u $user --password=$pw --host=$ho $db -e " $testquery4 "`
|
---|
187 | testinsert1=" insert MCSequenceProcessStatus set fSequenceFirst=\"$firstruntest\", fSequenceFileWritten=Now() "
|
---|
188 | testinsert2=" insert MCSequences set fSequenceFirst=\"$firstruntest\", fPriority=\"$firstruntest\", fRunStart=\"$date\", fNumEvents=\"$testevents\", fNumTriggers=\"$testtriggers\", fNumSumTriggers=\"$testsumtriggers\", fZBin=\"$zbin\", fSpectrumKEY=\"$testspec\", fPSFKEY=\"$testpsf\", fAddSpotSizeKEY=\"$testass\", fAmplFadcKEY=\"$testamplfadc\", fAtmosphericModelKEY=\"$testatmo\", fObservationModeKEY=\"$testobs\", fMCParticleKEY=\"$testpart\", fReflectorVersionKEY=\"$testrefl\", fCorsikaVersionKEY=\"$testcors\", fCameraVersionKEY=\"$testcam\", fViewConeAngleOKEY=\"$testview\", fTriggerFlagKEY=\"$testtrig\", fTestTrainKEY=3 "
|
---|
189 | testupdate2=" update MCSequences set fRunStart=\"$date\", fNumEvents=\"$testevents\", fNumTriggers=\"$testtriggers\", fNumSumTriggers=\"$testsumtriggers\", fZBin=\"$zbin\", fSpectrumKEY=\"$testspec\", fPSFKEY=\"$testpsf\", fAddSpotSizeKEY=\"$testass\", fAmplFadcKEY=\"$testamplfadc\", fAtmosphericModelKEY=\"$testatmo\", fObservationModeKEY=\"$testobs\", fMCParticleKEY=\"$testpart\", fReflectorVersionKEY=\"$testrefl\", fCorsikaVersionKEY=\"$testcors\", fCameraVersionKEY=\"$testcam\", fViewConeAngleOKEY=\"$testview\", fTriggerFlagKEY=\"$testtrig\", fTestTrainKEY=3 where fSequenceFirst=\"$firstruntest\" "
|
---|
190 | if [ "$testcheck3" == "" ]
|
---|
191 | then
|
---|
192 | mysql -ss -u $user --password=$pw --host=$ho $db -e " $testinsert1 "
|
---|
193 | fi
|
---|
194 | if [ "$testcheck4" == "" ]
|
---|
195 | then
|
---|
196 | mysql -ss -u $user --password=$pw --host=$ho $db -e " $testinsert2 "
|
---|
197 | else
|
---|
198 | mysql -ss -u $user --password=$pw --host=$ho $db -e " $testupdate2 "
|
---|
199 | fi
|
---|
200 |
|
---|
201 | testno=`echo $firstruntest | cut -c 0-4`
|
---|
202 | testsequpath=$mcsequpath/$testno
|
---|
203 | makedir $testsequpath
|
---|
204 | testsequfile=$testsequpath/sequence$firstruntest.txt
|
---|
205 | printprocesslog "INFO writing test sequencefile $testsequfile"
|
---|
206 |
|
---|
207 | echo "Sequence: $firstruntest" >| $testsequfile
|
---|
208 | echo "Night: $date" >> $testsequfile
|
---|
209 | echo "Epoch: $epoch" >> $testsequfile
|
---|
210 | echo "Mode: $mode" >> $testsequfile
|
---|
211 | echo "" >> $testsequfile
|
---|
212 | echo "CalRuns: $calrun" >> $testsequfile
|
---|
213 | echo "PedRuns: $pedrun" >> $testsequfile
|
---|
214 | echo "DatRuns: $testruns" >> $testsequfile
|
---|
215 | echo "" >> $testsequfile
|
---|
216 | echo "MonteCarlo: Yes" >> $testsequfile
|
---|
217 | echo "Test sequence" >> $testsequfile
|
---|
218 | echo "" >> $testsequfile
|
---|
219 | fi
|
---|
220 | done
|
---|
221 | done
|
---|
222 | done
|
---|
223 |
|
---|
224 | finish
|
---|
225 |
|
---|