) parser.add_argument("inputFileName", type=str, metavar="inputFile", help="path to fit result") parser.add_argument("outputFileName", type=str, metavar="outputFile", help="path to output file") parser.add_argument("-c", type=str, metavar="configFileName", dest="configFileName", default="./rootpwa.config", help="path to config file (default: './rootpwa.config')") parser.add_argument("-b", type=int, metavar="#", dest="integralBin", default=0, help="integral bin id of fit (default: 0)") parser.add_argument("-s", action="store_true", dest="ranWithHesse", default=False, help="indicates that the fit result contains an analytically calculated covariance matrix") parser.add_argument("-C", "--cauchyPriors", help="use half-Cauchy priors (default: false)", action="store_true") parser.add_argument("-P", "--cauchyPriorWidth", type=float, metavar ="WIDTH", default=0.5, help="width of half-Cauchy prior (default: 0.5)") parser.add_argument("-A", type=int, metavar="#", dest="accEventsOverride", default=0, help="number of input events to normalize acceptance to (default: use number of events from normalization integral file)") parser.add_argument("--noAcceptance", help="do not take acceptance into account (default: false)", action="store_true") parser.add_argument("-v", "--verbose", help="verbose; print debug output (default: false)", action="store_true") args = parser.parse_args() config = pyRootPwa.rootPwaConfig() if not config.initialize(args.configFileName): pyRootPwa.utils.printErr("loading config file '" + args.configFileName + "' failed. Aborting...") sys.exit(1) pyRootPwa.core.particleDataTable.readFile(config.pdgFileName) fileManager = pyRootPwa.loadFileManager(config.fileManagerPath) if not fileManager: pyRootPwa.utils.printErr("loading the file manager failed. Aborting...") sys.exit(1) if args.integralBin < 0: pyRootPwa.utils.printErr("bin < 0 (" + str(args.integralBin) + "). Aborting...") sys.exit(1) elif args.integralBin >= len(fileManager.binList): pyRootPwa.utils.printErr("bin out of range (" + str(args.integralBin) + ">=" + str(len(fileManager.binList)) + "). Aborting...") sys.exit(1)
"' not found. Not using X mass histogram.") else: rootFile = pyRootPwa.ROOT.TFile.Open(rootFilePath, "READ") xMassHistogram = rootFile.Get(histogramPath) if not xMassHistogram or xMassHistogram.ClassName() != "TH1D": pyRootPwa.utils.printWarn("X mass histogram '" + histogramPath + "' not found in root file '" + rootFilePath + "'. Not using X mass histogram.") xMassHistogram = None if xMassHistogram is not None: massSliceHistogram = xMassHistogram.Clone("mass_slice") massSliceHistogram.Reset() pyRootPwa.utils.printInfo("X mass histogram found. Switching root to batch mode.") pyRootPwa.ROOT.gROOT.SetBatch(True) pyRootPwa.config = pyRootPwa.rootPwaConfig(arguments.configFileName) pyRootPwa.core.particleDataTable.readFile(pyRootPwa.config.pdgFileName) waveDesc = pyRootPwa.core.waveDescription() waveDesc.parseKeyFile(arguments.templateFile) (result, topology) = waveDesc.constructDecayTopology(True) if not result: pyRootPwa.utils.printErr("could not construct topology. Aborting...") sys.exit(5) isobarCombinations = list(itertools.combinations(range(topology.nmbDecayVertices()), 2)) for i in range(len(isobarCombinations)): vertex1 = topology.isobarDecayVertices()[isobarCombinations[i][0]] vertex2 = topology.isobarDecayVertices()[isobarCombinations[i][1]] fsParts1 = topology.getFsPartIndicesConnectedToVertex(vertex1)
printingCounter = multiprocessing.Array('i', [0]*5) pyRootPwa.utils.printErr = pyRootPwa.utils.printErrClass(printingCounter) pyRootPwa.utils.printWarn = pyRootPwa.utils.printWarnClass(printingCounter) pyRootPwa.utils.printSucc = pyRootPwa.utils.printSuccClass(printingCounter) pyRootPwa.utils.printInfo = pyRootPwa.utils.printInfoClass(printingCounter) pyRootPwa.utils.printDebug = pyRootPwa.utils.printDebugClass(printingCounter) printErr = pyRootPwa.utils.printErr printWarn = pyRootPwa.utils.printWarn printSucc = pyRootPwa.utils.printSucc printInfo = pyRootPwa.utils.printInfo printDebug = pyRootPwa.utils.printDebug pyRootPwa.core.particleDataTable.instance.readFile(args.particleDataTableFileName) config = pyRootPwa.rootPwaConfig(args.configFileName) if config.outputFileFormat == "root": # read integral matrix from ROOT file integralFile = pyRootPwa.ROOT.TFile.Open(args.integralFile) integral = pyRootPwa.core.ampIntegralMatrix(integralFile.Get("integral")) integralFile.Close() else: # read integral matrix from ASCII file integral = pyRootPwa.core.ampIntegralMatrix() if not integral.readAscii(args.integralFile): printErr("Cannot read normalization integral from file '" + args.integralFile + "'. Aborting...") sys.exit(1) nmbNormEvents = integral.nmbEvents() overrideMass = (args.massLowerBinBoundary is not None) or (args.massBinWidth is not None)
pyRootPwa.utils.printWarn = pyRootPwa.utils.printWarnClass(printingCounter) pyRootPwa.utils.printSucc = pyRootPwa.utils.printSuccClass(printingCounter) pyRootPwa.utils.printInfo = pyRootPwa.utils.printInfoClass(printingCounter) pyRootPwa.utils.printDebug = pyRootPwa.utils.printDebugClass( printingCounter) printErr = pyRootPwa.utils.printErr printWarn = pyRootPwa.utils.printWarn printSucc = pyRootPwa.utils.printSucc printInfo = pyRootPwa.utils.printInfo printDebug = pyRootPwa.utils.printDebug pyRootPwa.core.particleDataTable.instance.readFile( args.particleDataTableFileName) config = pyRootPwa.rootPwaConfig(args.configFileName) if config.outputFileFormat == "root": # read integral matrix from ROOT file integralFile = pyRootPwa.ROOT.TFile.Open(args.integralFile) integral = pyRootPwa.core.ampIntegralMatrix( integralFile.Get("integral")) integralFile.Close() else: # read integral matrix from ASCII file integral = pyRootPwa.core.ampIntegralMatrix() if not integral.readAscii(args.integralFile): printErr("Cannot read normalization integral from file '" + args.integralFile + "'. Aborting...") sys.exit(1) nmbNormEvents = integral.nmbEvents()