class ForQuiverService(object): """ Uses SortService, LoadPulsesService, RepackService to post process a cmp.h5 file so that the file can be used by quiver directly. """ @property def name(self): """Name of ForQuiverService.""" return "ForQuiverService" def __init__(self, fileNames, options): """Initialize a ForQuiverService object. Input: fileNames : pbalign file names options : pbalign options """ self.fileNames = fileNames self.options = options self._loadpulsesService = LoadPulsesService( self.fileNames.pulseFileName, self.fileNames.outputFileName, self.options) self._sortService = SortService( self.fileNames.outputFileName, self.options) self._repackService = RepackService( self.fileNames.outputFileName, self.fileNames.outputFileName + ".TMP") def run(self): """ Run the ForQuiver service.""" logging.info(self.name + ": Sort.") self._sortService.checkAvailability() self._sortService.run() logging.info(self.name + ": LoadPulses.") self._loadpulsesService.checkAvailability() self._loadpulsesService.run() logging.info(self.name + ": Repack.") self._repackService.checkAvailability() self._repackService.run()