1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
|
# --------------------------------------------- EcnaSystemScriptPython ----------------------------------------------
#
# Script for ECNA cmsRun python file building with RunNumber, Analysis name, Nb of samples,
# First evt#, Last evt#, SM or Dee number, python file name (without extension) and path as arguments
#
# Syntax of call: csh EcnaSystemScriptPython \
# RUN_NUMBER \"ANALYSIS_NAME\" \"NB_OF_SAMPLES\"
# $1 $2 $3
# \"FIRST_EVT\" \"LAST_EVT\" \"NB_OF_EVTS\" \"SM_OR_DEE\" \"SM_OR_DEE_NUMBER\"
# $4 $5 $6 $7 $8
# PYTHON_FILE_NAME_WITHOUT_EXTENSION PATH
# $9 $10
#
# Example of call:
# csh EcnaSystemScriptPython 80875 AdcPed6 "10" "1" "150" "150" "SM" "12" \
# EcnaPython_80875_AdcPed6_10_1_50_SM12\
# cmssw/CMSSW_2_1_19/CalibCalorimetry/EcalCorrelatedNoiseAnalysisModules/data \
# 150 EcnaPythonSource_Run_80875
#
# Update: 29/07/11
#
#--------------------------------------------------------------------------------------------------------------------
echo "*EcnaSystemScriptPython> Script for ECNA cmsRun python file building started."
set userdir = $HOME
pwd
if( !(-d ${10}) ) then
set localdir = $PWD
else
set localdir = ${10}
endif
#.... .......
cd ${localdir}
pwd
if( !(-f SourceForPython_R${1}) ) then
echo "*EcnaSystemScriptPython> File SourceForPython_R${1} not found."
echo " No python file can be created."
else
#-------------------------------------------------------- Copy EcnaSystemPythonModuleInsert_1
if( -f cna_one_line_tempo_insert_1 ) then
\rm cna_one_line_tempo_insert_1
endif
cp EcnaSystemPythonModuleInsert_1.py cna_one_line_tempo_insert_1
#-------------------------------------------------------- Build PythonModuleSource
if( -f cna_one_line_tempo_source_A ) then
\rm cna_one_line_tempo_source_A
endif
if( -f cna_one_line_tempo_source_a ) then
\rm cna_one_line_tempo_source_a
endif
if( -f cna_one_line_tempo_source_b ) then
\rm cna_one_line_tempo_source_b
endif
if( -f cna_one_line_tempo_source_c ) then
\rm cna_one_line_tempo_source_c
endif
if( -f cna_one_line_tempo_source_d ) then
\rm cna_one_line_tempo_source_d
endif
if( -f cna_one_line_tempo_source_e ) then
\rm cna_one_line_tempo_source_e
endif
if( -f cna_one_line_tempo_source_f ) then
\rm cna_one_line_tempo_source_f
endif
if( -f cna_one_line_tempo_source_g ) then
\rm cna_one_line_tempo_source_g
endif
if( -f cna_one_line_tempo_source_h ) then
\rm cna_one_line_tempo_source_h
endif
# if( -f cna_one_line_tempo_source_i ) then
# \rm cna_one_line_tempo_source_i
# endif
#--------------------------- Source for Python
echo " " > cna_one_line_tempo_source_A
echo "#-------------- Source" > cna_one_line_tempo_source_a
echo 'process.source = cms.Source("PoolSource",' > cna_one_line_tempo_source_b
echo " fileNames = cms.untracked.vstring(" > cna_one_line_tempo_source_c
more SourceForPython_R${1} > cna_one_line_tempo_source_d
echo " )," > cna_one_line_tempo_source_e
echo " duplicateCheckMode = cms.untracked.string('noDuplicateCheck')" > cna_one_line_tempo_source_f
echo " )" > cna_one_line_tempo_source_g
echo "process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1))" > cna_one_line_tempo_source_h
# echo "process.SkipEvent = cms.untracked.PSet( input = cms.untracked.vstring('ProductNotFound'))" > cna_one_line_tempo_source_i
#-------------------------------------------------------- Copy EcnaSystemPythonModuleInsert_2 ("simul" if RunNumber < 10000)
if( -f cna_one_line_tempo_insert_2 ) then
\rm cna_one_line_tempo_insert_2
endif
if( ${1} < 10000) then
cp EcnaSystemPythonModuleInsert_2_simul.py cna_one_line_tempo_insert_2
else
cp EcnaSystemPythonModuleInsert_2_data.py cna_one_line_tempo_insert_2
endif
#-------------------------------------------------------- Build PythonModuleGettingParameters
if( -f cna_one_line_tempo_getpar_a ) then
\rm cna_one_line_tempo_getpar_a
endif
if( -f cna_one_line_tempo_getpar_b ) then
\rm cna_one_line_tempo_getpar_b
endif
if( -f cna_one_line_tempo_getpar_c ) then
\rm cna_one_line_tempo_getpar_c
endif
if( -f cna_one_line_tempo_getpar_d ) then
\rm cna_one_line_tempo_getpar_d
endif
if( -f cna_one_line_tempo_getpar_E ) then
\rm cna_one_line_tempo_getpar_E
endif
if( -f cna_one_line_tempo_getpar_e ) then
\rm cna_one_line_tempo_getpar_e
endif
if( -f cna_one_line_tempo_getpar_F ) then
\rm cna_one_line_tempo_getpar_F
endif
if( -f cna_one_line_tempo_getpar_f ) then
\rm cna_one_line_tempo_getpar_f
endif
if( -f cna_one_line_tempo_getpar_z ) then
\rm cna_one_line_tempo_getpar_z
endif
echo " #-------------- Getting Parameters" > cna_one_line_tempo_getpar_a
echo " sAnalysisName = cms.string(${2})," > cna_one_line_tempo_getpar_b
echo " sNbOfSamples = cms.string(${3})," > cna_one_line_tempo_getpar_c
echo " sFirstReqEvent = cms.string(${4})," > cna_one_line_tempo_getpar_d
echo " sLastReqEvent = cms.string(${5})," > cna_one_line_tempo_getpar_E
echo " sReqNbOfEvts = cms.string(${6})," > cna_one_line_tempo_getpar_e
echo " sStexName = cms.string(${7})," > cna_one_line_tempo_getpar_F
echo " sStexNumber = cms.string(${8}) " > cna_one_line_tempo_getpar_f
echo " )" > cna_one_line_tempo_getpar_z
#-------------------------------------------------------- Copy EcnaSystemPythonModuleInsert_3
if( -f cna_one_line_tempo_insert_3 ) then
\rm cna_one_line_tempo_insert_3
endif
cp EcnaSystemPythonModuleInsert_3.py cna_one_line_tempo_insert_3
#----------------------------------------------------------------------------------------------------------------
# Remove old python file (name: ${9}.py = ${10}EcnaPython_${2}_S1_${3}_R${1}_${4}_${5}_${6}${7}${8}.py) if it exists
# and build the new file with cat command
#----------------------------------------------------------------------------------------------------------------
if ( -f ${9}.py ) then
\rm ${9}.py
endif
cat cna_one_line_tempo_insert_1 \
cna_one_line_tempo_source_A \
cna_one_line_tempo_source_a \
cna_one_line_tempo_source_b \
cna_one_line_tempo_source_c \
cna_one_line_tempo_source_d \
cna_one_line_tempo_source_e \
cna_one_line_tempo_source_f \
cna_one_line_tempo_source_g \
cna_one_line_tempo_source_h \
# cna_one_line_tempo_source_i \
cna_one_line_tempo_insert_2 \
cna_one_line_tempo_getpar_a \
cna_one_line_tempo_getpar_b \
cna_one_line_tempo_getpar_c \
cna_one_line_tempo_getpar_d \
cna_one_line_tempo_getpar_E \
cna_one_line_tempo_getpar_e \
cna_one_line_tempo_getpar_F \
cna_one_line_tempo_getpar_f \
cna_one_line_tempo_getpar_z \
cna_one_line_tempo_insert_3 > ${9}.py
#-------------------------------------------------------- remove the flag file if it exists and build a new flag file
if( -f EcnaPythonFlagFile ) then
\rm EcnaPythonFlagFile
endif
echo "Flag file for ECNA python file management. Used by TCnaGui. Can be removed by user (with option Clean in TCnaGui or directly) ONLY AFTER all submitted jobs have been finished." > EcnaPythonFlagFile
#-------------------------------------------------------- Remove the tempo files
\rm cna_one_line_tempo_insert_1
\rm cna_one_line_tempo_source_A
\rm cna_one_line_tempo_source_a
\rm cna_one_line_tempo_source_b
\rm cna_one_line_tempo_source_c
\rm cna_one_line_tempo_source_d
\rm cna_one_line_tempo_source_e
\rm cna_one_line_tempo_source_f
\rm cna_one_line_tempo_source_g
\rm cna_one_line_tempo_source_h
# \rm cna_one_line_tempo_source_i
\rm cna_one_line_tempo_insert_2
\rm cna_one_line_tempo_getpar_a
\rm cna_one_line_tempo_getpar_b
\rm cna_one_line_tempo_getpar_c
\rm cna_one_line_tempo_getpar_d
\rm cna_one_line_tempo_getpar_E
\rm cna_one_line_tempo_getpar_e
\rm cna_one_line_tempo_getpar_F
\rm cna_one_line_tempo_getpar_f
\rm cna_one_line_tempo_getpar_z
\rm cna_one_line_tempo_insert_3
endif
echo "*EcnaSystemScriptPython> End of execution."
|