365 def run(self, absent=False):
366 ntFileName = self.getFileName(
'-nt.root',
'BeamSpotNt')
367 dataQualityDbFileName = self.getFileName(
'-dqflags.db')
369 if os.path.exists(
'/'.
join([self.taskDir,dataQualityDbFileName])):
370 self.logExec(
'cd %s; rm -f %s' % (self.taskDir,dataQualityDbFileName))
372 if os.path.exists(
'/'.
join([self.taskDir,ntFileName])):
373 cmd =
'cd %s; dqBeamSpot.py -b %s -o %s %s' % (self.taskDir,
'-a' if absent
else '',dataQualityDbFileName,ntFileName)
374 status = self.logExec(cmd,doPrint=
True,abortOnError=
False)
377 raise PostProcessingError(
'ERROR in postprocessing step DQBeamSpot while executing:\n\n%s\n' % (cmd),self.executedSteps)
380 self.addResult(dataQualityDbFileName)
382 dataQualityTxtFileName = dataQualityDbFileName.replace(
'.db',
'.txt')
383 cmd =
'grep -c "ID_BS_NOBEAMSPOT" %s/%s' % (self.taskDir, dataQualityTxtFileName)
384 status,out = subprocess.getstatusoutput(cmd)
390 raise PostProcessingError(
'ERROR in postprocessing step DQBeamSpot while executing:\n\n%s\n' % (cmd),self.executedSteps)
393 link=
'<a class="ok" href="../files?u=%s/%s/%s-dqflags.txt">DQFlags</a>' % (self.dsName,self.taskName,self.baseNameStep)
395 link=
'<a class="bad" href="../files?u=%s/%s/%s-dqflags.txt">DQFlags</a>' % (self.dsName,self.taskName,self.baseNameStep)
397 resultLinks = self.taskDict[
'RESULTLINKS']
398 if resultLinks.find(link)==-1:
399 resultLinks =
' '.
join([resultLinks, link])
402 self.taskman.setValue(self.dsName,self.taskName,
'RESULTLINKS',resultLinks)
404 raise PostProcessingError(
'ERROR: No ntuple file %s - did BeamSpotNt step run?\n' % ntFileName,self.executedSteps)