示例#1
0
	                                )

	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)
示例#2
0
				                          "' 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)
示例#3
0
	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)
示例#4
0
    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()