Newer
Older
TB_Chris / TbUT / options / python / .svn / text-base / TbUTPedestalRunner.py.svn-base
  1. __author__ = 'ja'
  2. from Gaudi.Configuration import *
  3. from Configurables import ExceptionSvc
  4.  
  5. from Configurables import Kepler
  6.  
  7. from Configurables import TbUT__RawDataReaderAlgorithm as rawDataReader
  8. from Configurables import TbUT__RawDataMonitorAlgorithm as rawDataReaderMoniotor
  9. from Configurables import TbUT__PedestalSubtractorAlgorithm as pedestalSubtractor
  10.  
  11. from Timer import timer
  12.  
  13. class TbUTPedestalRunner:
  14. def __init__(self):
  15. pass
  16.  
  17. @property
  18. def inputData(self):
  19. return self.inputData
  20. @inputData.setter
  21. def inputData(self,value):
  22. self.inputData=value
  23.  
  24. @property
  25. def pedestalOutputData(self):
  26. return self.pedestalOutputData
  27. @pedestalOutputData.setter
  28. def pedestalOutputData(self,value):
  29. expectedDirectory ="$KEPLERROOT/../TbUT/options/UT/"
  30. if not value.startswith(expectedDirectory):
  31. raise AttributeError("The pedestal file have to be stored in directory: "+expectedDirectory)
  32. self.pedestalOutputData=value
  33.  
  34. @property
  35. def eventMax(self):
  36. return self.eventNumber
  37. @eventMax.setter
  38. def eventMax(self,value):
  39. self.eventMax=value
  40.  
  41. @property
  42. def isAType(self):
  43. return self._isAType
  44. @isAType.setter
  45. def isAType(self,value):
  46. self._isAType=value
  47.  
  48. @timer
  49. def runPedestals(self):
  50. self._preparePedestalRun()
  51. config= self._runGaudi
  52. appendPostConfigAction(config)
  53.  
  54.  
  55. def _preparePedestalRun(self):
  56. # dummy aligment just to run Kepler
  57. Kepler().PixelConfigFile = ["eos/lhcb/testbeam/velo/timepix3/July2014/RootFiles/Run1236/Conditions/PixelConfig.dat"]
  58. Kepler().AlignmentFile = "eos/lhcb/testbeam/velo/timepix3/Oct2014/RootFiles/Run2176/Conditions/Alignment2176mille.dat"
  59. Kepler().InputFiles = ['eos/lhcb/testbeam/velo/timepix3/Oct2014/RawData/Run2176/']
  60. Kepler().EvtMax = self.eventMax
  61. Kepler().HistogramFile="MambaPedestal.root" # should be set more correctly
  62.  
  63. def _runGaudi(self):
  64. keplerSeq = GaudiSequencer("KeplerSequencer")
  65. seq_moni = GaudiSequencer("Monitoring")
  66. seq_moni.Members = []
  67. seq_out = GaudiSequencer('Output')
  68. seq_moni.Members = []
  69. seq_tel = GaudiSequencer("Telescope")
  70. seq_tel.Members = []
  71.  
  72. seq_UT_data_processing=GaudiSequencer("UTPedestal")
  73. rawDataReader().isAType=self.isAType
  74. rawDataReader().inputData= self.inputData
  75. pedestalSubtractor().ChannelMaskInputLocation= "$KEPLERROOT/../TbUT/options/UT/MambaMasks.dat"
  76. pedestalSubtractor().PedestalOutputFile=self.pedestalOutputData
  77. pedestalSubtractor().treningEntry=15000
  78.  
  79.  
  80. seq_UT_data_processing.Members =[rawDataReader(), rawDataReaderMoniotor() ,pedestalSubtractor()]
  81. keplerSeq.Members+=[seq_UT_data_processing]
  82.