Newer
Older
TB_Chris / Kepler / GangaPlugin / Lib / .svn / text-base / TbEosUpload.py.svn-base
  1.  
  2.  
  3. from Ganga.GPIDev.Schema import *
  4. from Ganga.GPIDev.Base import GangaObject
  5. from Ganga.GPIDev.Schema import *
  6. from Ganga.GPIDev.Adapters.IPostProcessor import IPostProcessor
  7. import os
  8.  
  9. class TbEosUpload(IPostProcessor):
  10.  
  11. _schema = IPostProcessor._schema.inherit_copy()
  12. _schema.datadict['files'] = SimpleItem(defvalue=[], doc='Files to upload')
  13. _schema.datadict['prefix'] = SimpleItem(defvalue="",doc='Prefix to uploaded file')
  14. _category = 'postprocessor'
  15. _name = 'TbEosUpload'
  16. _exportmethods = ['execute']
  17.  
  18.  
  19. def execute(self,job,newstatus):
  20. eos_cp="/afs/cern.ch/project/eos/installation/0.3.15/bin/eos.select cp"
  21. counter=0
  22. for run in job.splitter.Files.keys():
  23. j=job.subjobs(counter)
  24. if j.status == 'completed':
  25. rootpath = "/eos/lhcb/testbeam/velo/timepix3/%s/RootFiles/Run%d/" %( job.splitter.Month, run )
  26. if 'Alignment' in self.files:
  27. source="%sAlignment_out.dat" %( j.outputdir )
  28. if os.path.isfile( source ):
  29. sink="%sConditions/%sAlignment%dmille.dat" %(rootpath, self.prefix, run )
  30. os.system(eos_cp+" "+source+" "+sink+" "+">/dev/null")
  31. else : print source + " does not exist"
  32. if 'Tuple' in self.files:
  33. source="%sKepler-tuple.root" %( j.outputdir )
  34. sink="%sOutput/%sKepler-tuple-%d.root" %(rootpath, self.prefix, run )
  35. os.system(eos_cp+" "+source+" "+sink+" "+">/dev/null")
  36. if 'Histograms' in self.files:
  37. source="%sKepler-histos.root" %( j.outputdir )
  38. sink="%sOutput/%sKepler-histos-%d.root" %(rootpath,self.prefix, run )
  39. os.system(eos_cp+" "+source+" "+sink+" "+">/dev/null")
  40. if 'TimingConfig' in self.files:
  41. source="%sTimingConfig.dat" %( j.outputdir )
  42. sink = "%sConditions/%sTimingConfig.dat" %(rootpath,self.prefix)
  43. os.system(eos_cp+" "+source+" "+sink+" "+">/dev/null")
  44. counter = counter + 1
  45. return True