File indexing completed on 2024-04-06 12:08:15
0001
0002 if(-e ../../SiPixelMonitorClient/test/sipixel_monitorelement_backup.xml) then
0003 cp ../../SiPixelMonitorClient/test/sipixel_monitorelement_backup.xml ../../SiPixelMonitorClient/test/sipixel_monitorelement_config.xml
0004 endif
0005
0006 if(-e ../../SiPixelMonitorClient/test/sipixel_monitorelement_skeleton_backup.xml) then
0007 cp ../../SiPixelMonitorClient/test/sipixel_monitorelement_skeleton_backup.xml ../../SiPixelMonitorClient/test/sipixel_monitorelement_skeleton.xml
0008 endif
0009
0010 set all_flag = "false"
0011 set default_flag = "false"
0012 set physics_flag = "false"
0013 set calib_flag = "false"
0014 set opt_flag = "true"
0015 set var_flag = ( 0 0 0 0 0 0 0 0 0 0 )
0016 if( !(-d ../../../DQM/SiPixelMonitorClient/test)) then
0017 echo "Please check out the DQM/SiPixelMonitorClient package"
0018 endif
0019
0020 if($
0021 cd ../../../DQM/SiPixelMonitorClient/test
0022 cp sipixel_monitorelement_config.xml sipixel_monitorelement_backup.xml
0023 cp sipixel_monitorelement_skeleton.xml sipixel_monitorelement_skeleton_backup.xml
0024 set num_args = $
0025
0026 set i = 2
0027
0028
0029 while ($i <= $num_args)
0030 set monlist = $argv[$i]
0031 switch($monlist)
0032 case All:
0033 set all_flag = "true"
0034 cp sipixel_monitorelement_config_all.xml sipixel_monitorelement_config.xml
0035 breaksw
0036 case RawData:
0037 set reglist = "me_parts/rawdataMEs.txt"
0038 set grandlist = "me_parts/rawdataMEs.txt"
0039 set regspot = "RAWDATA"
0040 set grandspot = "RAWDATA"
0041 set var_flag[1] = 1
0042
0043 breaksw
0044 case Digi:
0045 set reglist = "me_parts/digiMEs.txt"
0046 set grandlist = "me_parts/digiMEs.txt"
0047 set regspot = "DIGIS"
0048 set grandspot = "DIGIS"
0049 set var_flag[2] = 1
0050
0051 breaksw
0052 case Cluster:
0053 set reglist = "me_parts/clusterMEs.txt"
0054 set grandlist = "me_parts/clusterMEs.txt"
0055 set regspot = "CLUSTERS"
0056 set grandspot = "CLUSTERS"
0057 set var_flag[3] = 1
0058 breaksw
0059 case RecHit:
0060 set reglist = "me_parts/rechitMEs.txt"
0061 set grandlist = "me_parts/rechitMEs.txt"
0062 set regspot = "RECHITS"
0063 set grandspot = "RECHITS"
0064 set var_flag[4] = 1
0065 breaksw
0066 case Track:
0067 set reglist = "me_parts/trackMEs.txt"
0068 set grandlist = "me_parts/grandtrackMEs.txt"
0069 set regspot = "REGTRACKS"
0070 set grandspot = "GRANDTRACKS"
0071 set var_flag[5] = 1
0072 breaksw
0073 case Gain:
0074 set reglist = "me_parts/gainMEs.txt"
0075 set grandlist = "me_parts/grandgainMEs.txt"
0076 set regspot = "REGGAIN"
0077 set grandspot = "GRANDGAIN"
0078 set var_flag[6] = 1
0079 set var_flag[7] = 1
0080 breaksw
0081 case SCurve:
0082 set reglist = "me_parts/scurveMEs.txt"
0083 set grandlist = "me_parts/grandscurveMEs.txt"
0084 set regspot = "REGSCURVE"
0085 set grandspot = "GRANDSCURVE"
0086 set var_flag[6] = 1
0087 set var_flag[8] = 1
0088 breaksw
0089 case PixelAlive:
0090 set reglist = "me_parts/pixelMEs.txt"
0091 set grandlist = "me_parts/grandpixelMEs.txt"
0092 set regspot = "REGPIXEL"
0093 set grandspot = "GRANDPIXEL"
0094 set var_flag[6] = 1
0095 set var_flag[9] = 1
0096 breaksw
0097 case Physics:
0098 set physics_flag = "true"
0099 cp sipixel_monitorelement_config_physicsdata.xml sipixel_monitorelement_config.xml
0100 breaksw
0101 case Calibration:
0102 set calib_flag = "true"
0103 cp sipixel_monitorelement_config_calibrations.xml sipixel_monitorelement_config.xml
0104 breaksw
0105 default:
0106 echo "${monlist} is not a valid monitor element choice. Valid options are Physics or Calibration."
0107 breaksw
0108 endsw
0109 if( $physics_flag != "true" && $calib_flag != "true" ) then
0110
0111 sed "/$regspot/ r $reglist" < sipixel_monitorelement_skeleton.xml > temp.xml
0112 cp temp.xml sipixel_monitorelement_skeleton.xml
0113 rm temp.xml
0114 if($grandspot != $regspot) then
0115 sed "/$grandspot/ r $grandlist" < sipixel_monitorelement_skeleton.xml > temp.xml
0116 cp temp.xml sipixel_monitorelement_skeleton.xml
0117 rm temp.xml
0118 endif
0119 endif
0120 @ i = $i + 1
0121 end
0122
0123 if ($all_flag == "false" && $calib_flag == "false" && $physics_flag == "false" ) then
0124 cp sipixel_monitorelement_skeleton.xml sipixel_monitorelement_config.xml
0125 foreach me_name (RAWDATA DIGIS CLUSTERS GRANDTRACKS RECHITS GRANDGAIN GRANDSCURVE GRANDPIXEL REGTRACKS REGGAIN REGSCURVE REGPIXEL)
0126 sed "/$me_name/d" < sipixel_monitorelement_config.xml > temp.xml
0127 cp temp.xml sipixel_monitorelement_config.xml
0128 rm temp.xml
0129
0130 end
0131
0132 endif
0133
0134 cd ../../SiPixelCommon/test
0135
0136 else
0137 set opt_flag = "false"
0138 echo "No option specified! Please choose Calibration or Physics"
0139 endif
0140
0141 if ( $opt_flag == "true" ) then
0142 set xx = 2
0143 set depth = 0
0144 while ( $xx < 6 )
0145 if ( $var_flag[$xx] == 1 ) then
0146 set depth = $xx
0147 endif
0148 @ xx = $xx + 1
0149 end
0150
0151 set runscript = "runme.csh"
0152 set filelist = $argv[1]
0153 set file_counter = 1
0154 foreach filename ( `more $filelist` )
0155
0156 if(-e Run_offline_DQM_${file_counter}_cfg.py) then
0157 rm Run_offline_DQM_${file_counter}_cfg.py
0158 endif
0159
0160 set rsys = "rfio:"
0161 set osys = "file:"
0162 set iscastor = `echo $filename | grep -o /castor/cern.ch`
0163 set isdata = `echo $filename | grep -o /store/data`
0164 set calibtype = `echo $filename | grep -o -e "PixelAlive" -e "SCurve" -e "GainCalibration"`
0165 set file_extension = `echo $filename | grep -o -e ".dmp" -e ".root" -e ".dat"`
0166 set endrun = `echo $filename | grep -o -e "_[0-9]\{2,\}\."`
0167 set runnumber = `echo $endrun | grep -o -e ".*[^\.]"`
0168 set rundefault = "_default"
0169
0170
0171
0172 if($calibtype == "PixelAlive" || $calibtype == "SCurve" || $calibtype == "GainCalibration") then
0173 set tagnumber = $calibtype$runnumber
0174 else if ($calib_flag == "true") then
0175 set tagnumber = "PixelAlive_default"
0176 else
0177 set tagnumber = ""
0178 endif
0179
0180
0181 if( $iscastor == "/castor/cern.ch" ) then
0182 set filetorun = $rsys$filename
0183 else if ( $isdata == "/store/data" ) then
0184 set filetorun = $filename
0185 else
0186 set filetorun = $osys$filename
0187 endif
0188
0189 if( $physics_flag == "true" ) then
0190 sed "s#FILENAME#$filetorun#" < client_template_physics_cfg.py > Run_offline_DQM_${file_counter}_cfg.py
0191 else if ($calib_flag == "true" ) then
0192 sed "s#FILENAME#$filetorun#" < client_template_calib_cfg.py > Run_offline_DQM_${file_counter}_cfg.py
0193 else
0194 sed "s#FILENAME#$filetorun#" < client_template_cfg.py > Run_offline_DQM_${file_counter}_cfg.py
0195 endif
0196
0197 if( $all_flag == "true" ) then
0198 rm Run_offline_DQM_${file_counter}_cfg.py
0199 sed "s#FILENAME#$filetorun#" < client_template_all_cfg.py > Run_offline_DQM_${file_counter}_cfg.py
0200 sed "s#CALIBRATIONTAG#$tagnumber#" < Run_offline_DQM_${file_counter}_cfg.py > temp_cfg.py
0201 cp temp_cfg.py Run_offline_DQM_${file_counter}_cfg.py
0202 rm temp_cfg.py
0203 endif
0204
0205 sed "s#CALIBRATIONTAG#$tagnumber#" < Run_offline_DQM_${file_counter}_cfg.py > temp_cfg.py
0206 cp temp_cfg.py Run_offline_DQM_${file_counter}_cfg.py
0207 rm temp_cfg.py
0208
0209 if( $file_extension == ".dat" ) then
0210 echo ".dat files are not supported actively by this script, but a config file will be generated anyway"
0211 sed 's/DAT//' < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0212 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0213 rm temp.xml
0214 set source_type = "NewEventStreamFileReader"
0215 set first_param = " max_event_size = cms.int32(7000000),"
0216 set second_param = " max_queue_depth = cms.int32(5),"
0217 set converter = "datconverter,"
0218 sed "/siPixelDigis/ i\ $converter" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0219 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0220 rm temp.xml
0221
0222 else
0223 sed '/^DAT/d' < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0224 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0225 rm temp.xml
0226
0227 endif
0228
0229 if( $file_extension == ".dmp" ) then
0230 set source_type = PixelSLinkDataInputSource
0231 set first_param = " fedid = cms.untracked.int32(-1)"
0232 set second_param = "runNumber = cms.untracked.int32(-1)"
0233 endif
0234 set has_calibdigis = "false"
0235 set has_digis = "false"
0236 set has_clusters = "false"
0237 set has_rechits = "false"
0238 if( $file_extension == ".root" ) then
0239 set source_type = PoolSource
0240 set first_param = ""
0241 set second_param = ""
0242 edmEventSize -v $filename >& es.log
0243 set has_calibdigis = `grep -m 1 -o -e "siPixelCalibDigis" es.log`
0244 if( $has_calibdigis == "siPixelCalibDigis" ) then
0245 set has_calibdigis = "true"
0246 else
0247 set has_calibdigis = "false"
0248 endif
0249
0250
0251 set has_digis = `grep -m 1 -o -e "siPixelDigis" es.log`
0252 if( $has_digis == "siPixelDigis" ) then
0253 set has_digis = "true"
0254 else
0255 set has_digis = "false"
0256 endif
0257
0258
0259 set has_clusters = ` grep -m 1 -o -e "siPixelClusters" es.log`
0260 if( $has_clusters == "siPixelClusters" ) then
0261 set has_clusters = "true"
0262 else
0263 set has_clusters = "false"
0264 endif
0265
0266
0267 set has_rechits = `grep -m 1 -o -e "siPixelRecHits" es.log`
0268 if( $has_rechits == "siPixelRecHits" ) then
0269 set has_rechits = "true"
0270 else
0271 set has_rechits = "false"
0272 endif
0273 rm es.log
0274 endif
0275
0276 if( $all_flag == "true" || $default_flag == "true" ) then
0277 if( $has_digis == "true" ) then
0278 sed "/siPixelDigis,/d" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0279 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0280 rm temp.xml
0281 endif
0282 if( $has_clusters == "true" ) then
0283 sed "/siPixelClusters,/d" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0284 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0285 rm temp.xml
0286 endif
0287 if( $has_rechits == "true" ) then
0288 sed "/siPixelRecHits,/d" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0289 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0290 rm temp.xml
0291 endif
0292 if( $has_calibdigis == "true" ) then
0293 sed "/siPixelCalibDigis,/d" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0294 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0295 rm temp.xml
0296 endif
0297 endif
0298 if( $depth > 1 || $var_flag[6] == 1 ) then
0299 if( $depth > 2 ) then
0300 if( $depth > 3) then
0301 if( $has_rechits != "true" ) then
0302 sed "s/RECSPOT/process.siPixelRecHits*/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0303 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0304 rm temp.xml
0305 endif
0306 endif
0307 if( $has_clusters != "true" ) then
0308 sed "s/CLUSPOT/process.siPixelClusters*/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0309 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0310 rm temp.xml
0311 endif
0312 endif
0313 if( $has_digis != "true" ) then
0314 sed "s/DIGISPOT/process.siPixelDigis*/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0315 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0316 rm temp.xml
0317 endif
0318 endif
0319
0320
0321 if( $calib_flag == "true") then
0322 if( $has_calibdigis != "true" ) then
0323 sed "s/CDSPOT/process.siPixelCalibDigis*/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0324 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0325 rm temp.xml
0326
0327 endif
0328 set calibration_tag = "CRZT210_V1P::All"
0329 sed "s/GLOBALCALIB/$calibtype/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0330 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0331 rm temp.xml
0332
0333 else if( $var_flag[6] != 1 ) then
0334 set calibration_tag = "CRUZET4_V5P::All"
0335 set connect_string = "frontier://FrontierProd/CMS_COND_21X_GLOBALTAG"
0336 sed '/^CALIB/d' < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0337 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0338 rm temp.xml
0339 sed 's/PHYS//' < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0340 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0341 rm temp.xml
0342
0343 endif
0344
0345 sed "s/GTAG/$calibration_tag/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0346 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0347 rm temp.xml
0348
0349
0350 if( $var_flag[1] == 1 ) then
0351 sed "s/RAWMONSPOT/process.RAWmonitor*/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0352 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0353 rm temp.xml
0354 endif
0355 if( $var_flag[2] == 1 ) then
0356 sed "s/DIGMONSPOT/process.DIGImonitor*/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0357 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0358 rm temp.xml
0359 endif
0360 if( $var_flag[3] == 1 ) then
0361 sed "s/CLUMONSPOT/process.CLUmonitor*/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0362 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0363 rm temp.xml
0364 endif
0365 if( $var_flag[4] == 1 ) then
0366 sed "s/RECMONSPOT/process.RECmonitor*/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0367 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0368 rm temp.xml
0369 endif
0370 if( $var_flag[7] == 1 ) then
0371 sed "s/GAINSPOT/process.siPixelGainCalibrationAnalysis*/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0372 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0373 rm temp.xml
0374 endif
0375 if( $var_flag[8] == 1 ) then
0376 sed "s/SCURVESPOT/process.siPixelSCurveAnalysis*/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0377 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0378 rm temp.xml
0379 endif
0380 if( $var_flag[9] == 1 ) then
0381 sed "s/PIXELSPOT/process.siPixelIsAliveCalibration*/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0382 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0383 rm temp.xml
0384 endif
0385
0386 foreach mon_name (DIGISPOT CLUSPOT RECSPOT CDSPOT SCURVESPOT GAINSPOT PIXELSPOT RAWMONSPOT DIGMONSPOT CLUMONSPOT RECMONSPOT)
0387 sed "s/$mon_name//" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0388 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0389 rm temp.xml
0390
0391 end
0392
0393
0394
0395
0396
0397 sed "s/SOURCETYPE/$source_type/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0398 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0399 rm temp.xml
0400 sed "s/ONEPARAM/$first_param/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0401 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0402 rm temp.xml
0403 sed "s/TWOPARAM/$second_param/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0404 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0405 rm temp.xml
0406 set logname = "DQM_text_output_"
0407 set logfile = $logname$file_counter
0408 sed "s/TEXTFILE/$logfile/" < Run_offline_DQM_${file_counter}_cfg.py > temp.xml
0409 cp temp.xml Run_offline_DQM_${file_counter}_cfg.py
0410 rm temp.xml
0411 echo "created file Run_offline_DQM_${file_counter}_cfg.py to run on file ${filename}"
0412 @ file_counter = $file_counter + 1
0413
0414 end
0415
0416 endif