Newer
Older
TB_Chris / TbUT / options / python / .svn / text-base / TbUTClusterizator.py.svn-base
  1. __author__ = 'ja'
  2.  
  3.  
  4. from Gaudi.Configuration import *
  5. from Configurables import Kepler
  6.  
  7. from Configurables import TbUT__RawDataReaderAlgorithm as rawDataReader
  8. from Configurables import TbUT__RawDataMonitorAlgorithm as rawDataMonitor
  9. from Configurables import TbUT__PedestalSubtractorAlgorithm as pedestalSubtractor
  10. from Configurables import TbUT__PedestalSubtractorDataMonitorAlgorithm as pedestalMonitor
  11. from Configurables import TbUT__CommonModeSubtractorAlgorithm as CMS
  12. from Configurables import TbUT__CommonModeSubtractorDataMonitorAlgorithm as CMSMonitor
  13. from Configurables import TbUT__ClusterCreatorAlgorithm as ClusterCreator
  14. from Configurables import TbUT__ClusterCreatorDataMonitorAlgorithm as ClusterCreatorMonitor
  15. from Configurables import TbUT__NTupleCreator as nTupleCreator
  16.  
  17. from Timer import timer
  18.  
  19. class TbUTClusterizator:
  20. def __init__(self):
  21. self.isAType=True
  22.  
  23. @property
  24. def eventNumberDisplay(self):
  25. return self.eventNumberDisplay
  26. @eventNumberDisplay.setter
  27. def eventNumberDisplay(self,value):
  28. self.eventNumberDisplay=value
  29.  
  30. @property
  31. def pedestalInputData(self):
  32. return self.pedestalInputData
  33. @pedestalInputData.setter
  34. def pedestalInputData(self,value):
  35. self.pedestalInputData=value
  36. @property
  37. def eventMax(self):
  38. return self.eventNumber
  39. @eventMax.setter
  40. def eventMax(self,value):
  41. self.eventMax=value
  42.  
  43. @property
  44. def isAType(self):
  45. return self.isAType
  46. @isAType.setter
  47. def isAType(self, value):
  48. self.isAType=value
  49.  
  50. @property
  51. def sensorType(self):
  52. return self.sensorType
  53. @sensorType.setter
  54. def sensorType(self, value):
  55. self.sensorType=value
  56.  
  57. @property
  58. def inputData(self):
  59. return self.inputData
  60. @inputData.setter
  61. def inputData(self,value):
  62. self.inputData=value
  63.  
  64. @timer
  65. def runClusterization(self):
  66. self._prepareStandaloneClusterization()
  67. config=self._runClusterization
  68. appendPostConfigAction(config)
  69.  
  70.  
  71.  
  72. def _prepareStandaloneClusterization(self):
  73. # dummy aligment just to run Kepler
  74. Kepler().PixelConfigFile = ["eos/lhcb/testbeam/velo/timepix3/July2014/RootFiles/Run1236/Conditions/PixelConfig.dat"]
  75. Kepler().AlignmentFile = "eos/lhcb/testbeam/velo/timepix3/Oct2014/RootFiles/Run2176/Conditions/Alignment2176mille.dat"
  76. Kepler().InputFiles = ['eos/lhcb/testbeam/velo/timepix3/Oct2014/RawData/Run2176/']
  77. Kepler().EvtMax = self.eventMax
  78. outputName=self.inputData[:-4]+".root"
  79. outputName=outputName[outputName.rfind("/")+1:]
  80. Kepler().HistogramFile=outputName
  81. outputTupleName=self.inputData[:-4]+"_Tuple.root"
  82. outputTupleName=outputTupleName[outputTupleName.rfind("/")+1:]
  83. Kepler().TupleFile=outputTupleName
  84.  
  85.  
  86. def _runClusterization(self):
  87. keplerSeq = GaudiSequencer("KeplerSequencer")
  88. seq_moni = GaudiSequencer("Monitoring")
  89. seq_moni.Members = []
  90. seq_out = GaudiSequencer('Output')
  91. seq_moni.Members = []
  92. seq_tel = GaudiSequencer("Telescope")
  93. seq_tel.Members = []
  94.  
  95. seq_UT_data_processing=GaudiSequencer("UT")
  96.  
  97. rawDataReader().inputData=self.inputData
  98. rawDataReader().isAType=self.isAType
  99. rawDataMonitor().displayEventNumber=self.eventNumberDisplay
  100. pedestalSubtractor().ChannelMaskInputLocation= "$KEPLERROOT/../TbUT/options/UT/Masks_DTypeSensor.dat"
  101. pedestalSubtractor().PedestalInputFile=self.pedestalInputData
  102. pedestalSubtractor().FollowingOption='file'
  103. pedestalSubtractor().treningEntry=1
  104. pedestalMonitor().displayEventNumber=self.eventNumberDisplay
  105. CMS().ChannelMaskInputLocation= "$KEPLERROOT/../TbUT/options/UT/Masks_DTypeSensor.dat"
  106. CMS().NoiseOutputFile="$KEPLERROOT/../TbUT/options/UT/noise_Mamba.dat"
  107. CMSMonitor().displayEventNumber=self.eventNumberDisplay
  108. ClusterCreator().NoiseInputFile="$KEPLERROOT/../TbUT/options/UT/noise_Mamba.dat"
  109. ClusterCreator().LowThreshold=2.5
  110. ClusterCreator().HighThreshold=3
  111. ClusterCreator().sensorType=self.sensorType
  112. ClusterCreatorMonitor().displayEventNumber=self.eventNumberDisplay
  113. ClusterCreatorMonitor().sensorType=self.sensorType
  114. nTupleCreator().StoreEventNumber=900000
  115. nTupleCreator().WriteRaw=False
  116. nTupleCreator().WriteHeader=True
  117. nTupleCreator().WritePedestal=False
  118. nTupleCreator().WriteCMS=False
  119. seq_UT_data_processing.Members = [rawDataReader(), rawDataMonitor() ,pedestalSubtractor(),pedestalMonitor(), CMS(),
  120. CMSMonitor(), ClusterCreator(),ClusterCreatorMonitor(),nTupleCreator()]
  121. keplerSeq.Members+=[seq_UT_data_processing]