Dalitz Plot Analysis

In this example we will look at the decay of and incorporate the rho meson resonances into the phase space and ultimately produce a Dalitz plot.

Firstly we need to include our libraries which we will use for GooFit

#include <goofit/Application.h>
#include <goofit/FitManager.h>
#include <goofit/PDFs/GooPdf.h>
#include <goofit/PDFs/basic/PolynomialPdf.h>
#include <goofit/PDFs/combine/AddPdf.h>
#include <goofit/PDFs/combine/ProdPdf.h>
#include <goofit/PDFs/physics/Amp3Body.h> //3 Body Amplitude Object
#include <goofit/PDFs/physics/DalitzPlotter.h>
#include <goofit/PDFs/physics/DalitzVetoPdf.h>
#include <goofit/PDFs/physics/ResonancePdf.h> //General Resonancce Object
#include <goofit/UnbinnedDataSet.h>
#include <goofit/Variable.h>
#include <goofit/utilities/Style.h>

cpp

#include <goofit/Application.h>
#include <goofit/FitManager.h>
#include <goofit/PDFs/GooPdf.h>
#include <goofit/PDFs/basic/PolynomialPdf.h>
#include <goofit/PDFs/combine/AddPdf.h>
#include <goofit/PDFs/combine/ProdPdf.h>
#include <goofit/PDFs/physics/Amp3Body.h> //3 Body Amplitude Object
#include <goofit/PDFs/physics/DalitzPlotter.h>
#include <goofit/PDFs/physics/DalitzVetoPdf.h>
#include <goofit/PDFs/physics/ResonancePdf.h> //General Resonancce Object
#include <goofit/UnbinnedDataSet.h>
#include <goofit/Variable.h>
#include <goofit/utilities/Style.h>

python

from goofit import * # one line to import all goofit libraries!
import pandas as pd
import sys
import matplotlib.pyplot as plt

Next we define the masses of our particles.

Variable fixedRhoMass("rho_mass", 0.7758, 0.01, 0.7, 0.8); //mass of rho meson we want to fit
Variable fixedRhoWidth("rho_width", 0.1503, 0.01, 0.1, 0.2); //rho meson Breit-Wigner width to fit

// Masses of particles in GeV
const fptype _mD0       = 1.86484;
const fptype _mD02      = _mD0 * _mD0;
const fptype _mD02inv   = 1. / _mD02;
const fptype piPlusMass = 0.13957018;
const fptype piZeroMass = 0.1349766;

// We use these masses to make Variable objects which will used for PDF fitting
Variable motherM("motherM", _mD0);
Variable chargeM("chargeM", piPlusMass);
Variable neutrlM("neutrlM", piZeroMass);
Variable massSum("massSum", _mD0 *_mD0 + 2 * piPlusMass * piPlusMass + piZeroMass * piZeroMass); // = 3.53481                                                                                                      
Variable constantOne("constantOne", 1);
Variable constantZero("constantZero", 0);

cpp

Variable fixedRhoMass("rho_mass", 0.7758, 0.01, 0.7, 0.8); //mass of rho meson we want to fit
Variable fixedRhoWidth("rho_width", 0.1503, 0.01, 0.1, 0.2); //rho meson Breit-Wigner width to fit

// Masses of particles in GeV
const fptype _mD0       = 1.86484;
const fptype _mD02      = _mD0 * _mD0;
const fptype _mD02inv   = 1. / _mD02;
const fptype piPlusMass = 0.13957018;
const fptype piZeroMass = 0.1349766;

// We use these masses to make Variable objects which will used for PDF fitting
Variable motherM("motherM", _mD0);
Variable chargeM("chargeM", piPlusMass);
Variable neutrlM("neutrlM", piZeroMass);
Variable massSum("massSum", _mD0 *_mD0 + 2 * piPlusMass * piPlusMass + piZeroMass * piZeroMass); // = 3.53481                                                                                                      
Variable constantOne("constantOne", 1);
Variable constantZero("constantZero", 0);

python

_mD0       = 1.86484     # masses given in GeV
_mD02      = _mD0 * _mD0
_mD02inv   = 1. / _mD02
piPlusMass = 0.13957018
piZeroMass = 0.1349766

# We still make Variable objects similar to the C++ syntax
# This is part of a function
constantOne  = Variable("constantOne", 1)
constantZero = Variable("constantZero", 0)

fixedRhoMass = Variable("rho_mass", 0.7758, 0.01, 0.7, 0.8)
fixedRhoWidth = Variable("rho_width", 0.1503, 0.01, 0.1, 0.2)

For this example we will produce a Dalitz plot in the m12-m13 plane from toy data. Before fitting our resonances we first "set up" the decay.

results matching ""

    No results matching ""