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)