def user_SetParameter(self, parameter, value, datasets, level, fastjet, delphes, delfes): # algorithm if parameter == "package": # Switch off the clustering if value == "none": test = True for dataset in datasets: if not test: break for file in dataset.filenames: if file.endswith('lhe') or \ file.endswith('lhe.gz') or \ file.endswith('hep') or \ file.endswith('hep.gz') or \ file.endswith('hepmc') or \ file.endswith('hepmc.gz'): test = False break if not test: logging.error("some datasets contain partonic/hadronic file format. "+\ "Fast-simulation package cannot be switched off.") return # Switch on the clustering elif value in ["fastjet", "delphes", "delfes"]: # Only in reco mode if level != MA5RunningType.RECO: logging.error( "fast-simulation algorithm is only available in RECO mode" ) return # Fastjet ? if value == 'fastjet' and not fastjet: logging.error( "fastjet library is not installed. Clustering algorithms are not available." ) return # Delphes ? if value == 'delphes' and not delphes: logging.error( "delphes library is not installed. This fast-simulation package is not available." ) return # Delfes ? if value == 'delfes' and not delfes: logging.error( "delfes library is not installed. This fast-simulation package is not available." ) return test = True for dataset in datasets: if not test: break for file in dataset.filenames: if file.endswith('lhco') or \ file.endswith('lhco.gz') or \ file.endswith('root'): test = False break if not test: logging.error( "some datasets contain reconstructed file format. Fast-simulation cannot be switched on." ) return if value == "fastjet": self.package = "fastjet" self.clustering = ClusteringConfiguration() self.delphes = 0 self.delfes = 0 elif value == "delphes": self.package = "delphes" self.clustering = 0 self.delphes = DelphesConfiguration() self.delfes = 0 elif value == "delfes": self.package = "delfes" self.clustering = 0 self.delphes = 0 self.delfes = DelfesConfiguration() elif value == "none": self.package = "none" self.clustering = 0 self.delphes = 0 self.delfes = 0 else: logging.error("parameter called '" + value + "' is not found.") return # other rejection if no algo specified if self.package == "none": logging.error("'fastsim' has no parameter called '" + parameter + "'") return # other if self.package == "fastjet": return self.clustering.user_SetParameter(parameter, value, datasets, level) elif self.package == "delphes": return self.delphes.user_SetParameter(parameter, value, datasets, level) elif self.package == "delfes": return self.delfes.user_SetParameter(parameter, value, datasets, level)
def user_SetParameter(self, parameter, value, datasets, level, fastjet, delphes, delfes): # algorithm if parameter == "package": # Switch off the clustering if value == "none": test = True for dataset in datasets: if not test: break for file in dataset.filenames: if ( file.endswith("lhe") or file.endswith("lhe.gz") or file.endswith("hep") or file.endswith("hep.gz") or file.endswith("hepmc") or file.endswith("hepmc.gz") ): test = False break if not test: logging.error( "some datasets contain partonic/hadronic file format. " + "Fast-simulation package cannot be switched off." ) return # Switch on the clustering elif value in ["fastjet", "delphes", "delfes"]: # Only in reco mode if level != MA5RunningType.RECO: logging.error("fast-simulation algorithm is only available in RECO mode") return # Fastjet ? if value == "fastjet" and not fastjet: logging.error("fastjet library is not installed. Clustering algorithms are not available.") return # Delphes ? if value == "delphes" and not delphes: logging.error("delphes library is not installed. This fast-simulation package is not available.") return # Delfes ? if value == "delfes" and not delfes: logging.error("delfes library is not installed. This fast-simulation package is not available.") return test = True for dataset in datasets: if not test: break for file in dataset.filenames: if file.endswith("lhco") or file.endswith("lhco.gz") or file.endswith("root"): test = False break if not test: logging.error( "some datasets contain reconstructed file format. Fast-simulation cannot be switched on." ) return if value == "fastjet": self.package = "fastjet" self.clustering = ClusteringConfiguration() self.delphes = 0 self.delfes = 0 elif value == "delphes": self.package = "delphes" self.clustering = 0 self.delphes = DelphesConfiguration() self.delfes = 0 elif value == "delfes": self.package = "delfes" self.clustering = 0 self.delphes = 0 self.delfes = DelfesConfiguration() elif value == "none": self.package = "none" self.clustering = 0 self.delphes = 0 self.delfes = 0 else: logging.error("parameter called '" + value + "' is not found.") return # other rejection if no algo specified if self.package == "none": logging.error("'fastsim' has no parameter called '" + parameter + "'") return # other if self.package == "fastjet": return self.clustering.user_SetParameter(parameter, value, datasets, level) elif self.package == "delphes": return self.delphes.user_SetParameter(parameter, value, datasets, level) elif self.package == "delfes": return self.delfes.user_SetParameter(parameter, value, datasets, level)
class FastsimConfiguration: userVariables = {"package": ["fastjet", "delphes", "delfes", "none"]} def __init__(self): self.clustering = 0 self.delphes = 0 self.delfes = 0 self.package = "none" def Display(self): self.user_DisplayParameter("package") if self.package == "fastjet": self.clustering.Display() elif self.package == "delphes": self.delphes.Display() elif self.package == "delfes": self.delfes.Display() def user_DisplayParameter(self, parameter): if parameter == "package": logging.info(" fast-simulation package : " + self.package) return if self.package == "fastjet": self.clustering.user_DisplayParameter(parameter) elif self.package == "delphes": self.delphes.user_DisplayParameter(parameter) elif self.package == "delfes": self.delfes.user_DisplayParameter(parameter) def SampleAnalyzerConfigString(self): if self.package == "fastjet": mydict = {} mydict.update(self.clustering.SampleAnalyzerConfigString()) return mydict elif self.package == "delphes": mydict = {} mydict.update(self.delphes.SampleAnalyzerConfigString()) return mydict elif self.package == "delfes": mydict = {} mydict.update(self.delfes.SampleAnalyzerConfigString()) return mydict else: return {} def user_SetParameter(self, parameter, value, datasets, level, fastjet, delphes, delfes): # algorithm if parameter == "package": # Switch off the clustering if value == "none": test = True for dataset in datasets: if not test: break for file in dataset.filenames: if file.endswith('lhe') or \ file.endswith('lhe.gz') or \ file.endswith('hep') or \ file.endswith('hep.gz') or \ file.endswith('hepmc') or \ file.endswith('hepmc.gz'): test = False break if not test: logging.error("some datasets contain partonic/hadronic file format. "+\ "Fast-simulation package cannot be switched off.") return # Switch on the clustering elif value in ["fastjet", "delphes", "delfes"]: # Only in reco mode if level != MA5RunningType.RECO: logging.error( "fast-simulation algorithm is only available in RECO mode" ) return # Fastjet ? if value == 'fastjet' and not fastjet: logging.error( "fastjet library is not installed. Clustering algorithms are not available." ) return # Delphes ? if value == 'delphes' and not delphes: logging.error( "delphes library is not installed. This fast-simulation package is not available." ) return # Delfes ? if value == 'delfes' and not delfes: logging.error( "delfes library is not installed. This fast-simulation package is not available." ) return test = True for dataset in datasets: if not test: break for file in dataset.filenames: if file.endswith('lhco') or \ file.endswith('lhco.gz') or \ file.endswith('root'): test = False break if not test: logging.error( "some datasets contain reconstructed file format. Fast-simulation cannot be switched on." ) return if value == "fastjet": self.package = "fastjet" self.clustering = ClusteringConfiguration() self.delphes = 0 self.delfes = 0 elif value == "delphes": self.package = "delphes" self.clustering = 0 self.delphes = DelphesConfiguration() self.delfes = 0 elif value == "delfes": self.package = "delfes" self.clustering = 0 self.delphes = 0 self.delfes = DelfesConfiguration() elif value == "none": self.package = "none" self.clustering = 0 self.delphes = 0 self.delfes = 0 else: logging.error("parameter called '" + value + "' is not found.") return # other rejection if no algo specified if self.package == "none": logging.error("'fastsim' has no parameter called '" + parameter + "'") return # other if self.package == "fastjet": return self.clustering.user_SetParameter(parameter, value, datasets, level) elif self.package == "delphes": return self.delphes.user_SetParameter(parameter, value, datasets, level) elif self.package == "delfes": return self.delfes.user_SetParameter(parameter, value, datasets, level) def user_GetParameters(self): if self.package == "fastjet": table = FastsimConfiguration.userVariables.keys() table.extend(self.clustering.user_GetParameters()) elif self.package == "delphes": table = FastsimConfiguration.userVariables.keys() table.extend(self.delphes.user_GetParameters()) elif self.package == "delfes": table = FastsimConfiguration.userVariables.keys() table.extend(self.delfes.user_GetParameters()) else: table = ["package"] return table def user_GetValues(self, variable): table = [] if self.package == "fastjet": try: table.extend(FastsimConfiguration.userVariables[variable]) except: pass try: table.extend(self.clustering.user_GetValues(variable)) except: pass elif self.package == "delphes": try: table.extend(FastsimConfiguration.userVariables[variable]) except: pass try: table.extend(self.delphes.user_GetValues(variable)) except: pass elif self.package == "delfes": try: table.extend(FastsimConfiguration.userVariables[variable]) except: pass try: table.extend(self.delfes.user_GetValues(variable)) except: pass else: if variable == "package": table.extend(FastsimConfiguration.userVariables["package"]) return table
class FastsimConfiguration: userVariables = {"package": ["fastjet", "delphes", "delfes", "none"]} def __init__(self): self.clustering = 0 self.delphes = 0 self.delfes = 0 self.package = "none" def Display(self): self.user_DisplayParameter("package") if self.package == "fastjet": self.clustering.Display() elif self.package == "delphes": self.delphes.Display() elif self.package == "delfes": self.delfes.Display() def user_DisplayParameter(self, parameter): if parameter == "package": logging.info(" fast-simulation package : " + self.package) return if self.package == "fastjet": self.clustering.user_DisplayParameter(parameter) elif self.package == "delphes": self.delphes.user_DisplayParameter(parameter) elif self.package == "delfes": self.delfes.user_DisplayParameter(parameter) def SampleAnalyzerConfigString(self): if self.package == "fastjet": mydict = {} mydict.update(self.clustering.SampleAnalyzerConfigString()) return mydict elif self.package == "delphes": mydict = {} mydict.update(self.delphes.SampleAnalyzerConfigString()) return mydict elif self.package == "delfes": mydict = {} mydict.update(self.delfes.SampleAnalyzerConfigString()) return mydict else: return {} def user_SetParameter(self, parameter, value, datasets, level, fastjet, delphes, delfes): # algorithm if parameter == "package": # Switch off the clustering if value == "none": test = True for dataset in datasets: if not test: break for file in dataset.filenames: if ( file.endswith("lhe") or file.endswith("lhe.gz") or file.endswith("hep") or file.endswith("hep.gz") or file.endswith("hepmc") or file.endswith("hepmc.gz") ): test = False break if not test: logging.error( "some datasets contain partonic/hadronic file format. " + "Fast-simulation package cannot be switched off." ) return # Switch on the clustering elif value in ["fastjet", "delphes", "delfes"]: # Only in reco mode if level != MA5RunningType.RECO: logging.error("fast-simulation algorithm is only available in RECO mode") return # Fastjet ? if value == "fastjet" and not fastjet: logging.error("fastjet library is not installed. Clustering algorithms are not available.") return # Delphes ? if value == "delphes" and not delphes: logging.error("delphes library is not installed. This fast-simulation package is not available.") return # Delfes ? if value == "delfes" and not delfes: logging.error("delfes library is not installed. This fast-simulation package is not available.") return test = True for dataset in datasets: if not test: break for file in dataset.filenames: if file.endswith("lhco") or file.endswith("lhco.gz") or file.endswith("root"): test = False break if not test: logging.error( "some datasets contain reconstructed file format. Fast-simulation cannot be switched on." ) return if value == "fastjet": self.package = "fastjet" self.clustering = ClusteringConfiguration() self.delphes = 0 self.delfes = 0 elif value == "delphes": self.package = "delphes" self.clustering = 0 self.delphes = DelphesConfiguration() self.delfes = 0 elif value == "delfes": self.package = "delfes" self.clustering = 0 self.delphes = 0 self.delfes = DelfesConfiguration() elif value == "none": self.package = "none" self.clustering = 0 self.delphes = 0 self.delfes = 0 else: logging.error("parameter called '" + value + "' is not found.") return # other rejection if no algo specified if self.package == "none": logging.error("'fastsim' has no parameter called '" + parameter + "'") return # other if self.package == "fastjet": return self.clustering.user_SetParameter(parameter, value, datasets, level) elif self.package == "delphes": return self.delphes.user_SetParameter(parameter, value, datasets, level) elif self.package == "delfes": return self.delfes.user_SetParameter(parameter, value, datasets, level) def user_GetParameters(self): if self.package == "fastjet": table = FastsimConfiguration.userVariables.keys() table.extend(self.clustering.user_GetParameters()) elif self.package == "delphes": table = FastsimConfiguration.userVariables.keys() table.extend(self.delphes.user_GetParameters()) elif self.package == "delfes": table = FastsimConfiguration.userVariables.keys() table.extend(self.delfes.user_GetParameters()) else: table = ["package"] return table def user_GetValues(self, variable): table = [] if self.package == "fastjet": try: table.extend(FastsimConfiguration.userVariables[variable]) except: pass try: table.extend(self.clustering.user_GetValues(variable)) except: pass elif self.package == "delphes": try: table.extend(FastsimConfiguration.userVariables[variable]) except: pass try: table.extend(self.delphes.user_GetValues(variable)) except: pass elif self.package == "delfes": try: table.extend(FastsimConfiguration.userVariables[variable]) except: pass try: table.extend(self.delfes.user_GetValues(variable)) except: pass else: if variable == "package": table.extend(FastsimConfiguration.userVariables["package"]) return table