diff --git a/DDG4/python/DDSim/DD4hepSimulation.py b/DDG4/python/DDSim/DD4hepSimulation.py index f63b49f41be55181b3192ca448b3105be77735f3..24e3ee0f225fd10fb8db86ecdc5ffc0a5a2e3897 100644 --- a/DDG4/python/DDSim/DD4hepSimulation.py +++ b/DDG4/python/DDSim/DD4hepSimulation.py @@ -223,8 +223,10 @@ class DD4hepSimulation(object): self._dumpSteeringFile = parsed.dumpSteeringFile self.compactFile = ConfigHelper.makeList(parsed.compactFile) + self.__checkFilesExist(self.compactFile, fileType='compact') self.inputFiles = parsed.inputFiles self.inputFiles = self.__checkFileFormat(self.inputFiles, POSSIBLEINPUTFILES) + self.__checkFilesExist(self.inputFiles, fileType='input') self.outputFile = parsed.outputFile self.__checkFileFormat(self.outputFile, ('.root', '.slcio')) self.runType = parsed.runType @@ -539,6 +541,19 @@ class DD4hepSimulation(object): field.delta_one_step = self.field.delta_one_step field.largest_step = self.field.largest_step + def __checkFilesExist(self, fileNames, fileType=''): + """Make sure all files in the given list exist, add to errorMessage otherwise. + + + :param list fileNames: list of files to check for existence + :param str fileType: type if file, for nicer error message + """ + if isinstance(fileNames, str): + fileNames = [fileNames] + for fileName in fileNames: + if not os.path.exists(fileName): + self._errorMessages.append(f"ERROR: The {fileType}file '{fileName}' does not exist") + def __checkFileFormat(self, fileNames, extensions): """check if the fileName is allowed, note that the filenames are case sensitive, and in case of hepevt we depend on this to identify short and long versions of the content