Rivet analyses
Kinematic distributions in the decay η′ → ηπ0π0 and π+π−π0
Experiment: BESIII (BEPC)
Inspire ID: 1623555
Status: VALIDATED NOHEPDATA
Authors: - Peter Richardson
References: - Phys.Rev.D 97 (2018) 1, 012003
Beams: * *
Beam energies: ANY
Run details: - Any process producing etaprime mesons
Measurement of kinematic distributions in the decay η′ → ηπ0π0 and π+π−π0.
Source
code:BESIII_2018_I1623555.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/DecayedParticles.hh"
#include "Rivet/Projections/UnstableParticles.hh"
namespace Rivet {
/// @brief eta' -> eta pi0 pi0 or eta pi+ pi-
class BESIII_2018_I1623555 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2018_I1623555);
/// @name Analysis methods
/// @{
/// Book histograms and initialise projections before the run
void init() {
// Initialise and register projections
UnstableParticles ufs = UnstableParticles(Cuts::pid == PID::ETAPRIME);
declare(ufs, "UFS");
DecayedParticles ETA(ufs);
ETA.addStable(PID::PI0);
ETA.addStable(PID::K0S);
ETA.addStable(PID::ETA);
declare(ETA, "ETA");
// histograms
for (unsigned int ix = 0; ix < 4; ++ix) {
for (unsigned int iy = 0; iy < 2; ++iy) {
if (ix < 2)
book(_h[ix][iy], 1 + ix, 1, 1 + iy);
else
book(_h[ix][iy], "TMP/h_" + toString(ix + 1) + "_" + toString(iy + 1),
refData(1 + ix, 1, 1 + iy));
}
}
}
/// Perform the per-event analysis
void analyze(const Event& event) {
static const map<PdgId, unsigned int>& mode1 = {{221, 1}, {111, 2}};
static const map<PdgId, unsigned int>& mode2 = {{221, 1}, {211, 1}, {-211, 1}};
DecayedParticles ETA = apply<DecayedParticles>(event, "ETA");
// loop over particles
for (unsigned int ix = 0; ix < ETA.decaying().size(); ++ix) {
// eta' -> 2pi0 eta
if (ETA.modeMatches(ix, 3, mode1)) {
const Particle& eta = ETA.decayProducts()[ix].at(221)[0];
const Particles& pi0 = ETA.decayProducts()[ix].at(111);
double s1 = (eta.momentum() + pi0[0].momentum()).mass2();
double s2 = (eta.momentum() + pi0[1].momentum()).mass2();
double s3 = (pi0[0].momentum() + pi0[1].momentum()).mass2();
double mOut = eta.mass() + pi0[0].mass() + pi0[1].mass();
double Q = ETA.decaying()[ix].mass() - mOut;
double X = sqrt(3.) / 2. / ETA.decaying()[ix].mass() / Q * fabs(s1 - s2);
double Y = mOut / 2. / Q / pi0[0].mass() / ETA.decaying()[ix].mass()
* (sqr(ETA.decaying()[ix].mass() - eta.mass()) - s3)
- 1.;
_h[1][0]->fill(X);
_h[1][1]->fill(Y);
_h[2][0]->fill(sqrt(s3));
_h[3][0]->fill(sqrt(s1));
_h[3][0]->fill(sqrt(s2));
}
// eta' -> pi+ pi- eta
else if (ETA.modeMatches(ix, 3, mode2)) {
const Particle& eta = ETA.decayProducts()[ix].at(221)[0];
const Particle& pip = ETA.decayProducts()[ix].at(211)[0];
const Particle& pim = ETA.decayProducts()[ix].at(-211)[0];
double s1 = (eta.momentum() + pim.momentum()).mass2();
double s2 = (eta.momentum() + pip.momentum()).mass2();
double s3 = (pim.momentum() + pip.momentum()).mass2();
double mOut = eta.mass() + pip.mass() + pim.mass();
double Q = ETA.decaying()[ix].mass() - mOut;
double X = sqrt(3.) / 2. / ETA.decaying()[ix].mass() / Q * (s1 - s2);
double Y = mOut / 2. / Q / pip.mass() / ETA.decaying()[ix].mass()
* (sqr(ETA.decaying()[ix].mass() - eta.mass()) - s3)
- 1.;
_h[0][0]->fill(X);
_h[0][1]->fill(Y);
_h[2][1]->fill(sqrt(s3));
_h[3][1]->fill(sqrt(s1));
_h[3][1]->fill(sqrt(s2));
}
}
}
/// Normalise histograms etc., after the run
void finalize() {
vector<double> phsp[2][2] = {
{{0.4958173595002211, 1.9619294234849218, 2.769343347436134, 3.3754760296363586, 3.878496706355459,
4.314870895705234, 4.70312212702334, 5.054215323586935, 5.375279853746009, 5.671257584168677,
5.9457370820689865, 6.201417631268466, 6.44038618211146, 6.664291971724481, 6.874461576204892,
7.071977500668689, 7.257733504274686, 7.432474552616055, 7.596826304190006, 7.751317284426186,
7.896395833035851, 8.032443239272407, 8.15978404588282, 8.278694215122778, 8.389407655537537,
8.492121473687217, 8.587000220318588, 8.674179332711457, 8.753767925627045, 8.825851046861633,
8.89049148607537, 8.947731204719013, 8.997592438695575, 9.040078512568408, 9.075174393713954,
9.102847006109055, 9.123045315893089, 9.135700194014767, 9.140724054787638, 9.13801026269368,
9.127432292951557, 9.108842623839646, 9.082071330112504, 9.046924336557808, 9.003181278149844,
8.950592897494763, 8.888877890152871, 8.81771908233236, 8.73675879108212, 8.645593171181584,
8.543765290652805, 8.430756591127544, 8.305976269528442, 8.168747947286356, 8.018292746910289,
7.853707531862115, 7.673936516314864, 7.477733601051388, 7.26361143821108, 7.029771003081123,
6.774001658321787, 6.493534946280308, 6.184822709548511, 5.843185002115959, 5.462219359013247,
5.03273598213602, 4.540644424927434, 3.962141200519649, 3.2500824294265236, 2.274198460941213},
{1.3100886831082426, 2.59729040074684, 3.381299983575231, 4.000787719010948,
4.524937634762839, 4.983978373623454, 5.3944278031342705, 5.7664948628407044,
6.107010795600696, 6.4208084604346265, 6.711450584339649, 6.981647651964704,
7.233513384923498, 7.468728930123908, 7.688652731356644, 7.894396548261923,
8.08687954469034, 8.266867695860503, 8.435003085521664, 8.591826066910466,
8.737792275150909, 8.87328585137746, 8.998629828980688, 9.114094358145204,
9.219903257387287, 9.31623925009379, 9.403248151226878, 9.481042202232233,
9.549702702777214, 9.609282050887044, 9.65980527467064, 9.701271116566254,
9.733652713050626, 9.756897897684288, 9.770929142161672, 9.775643137844083,
9.770910008327416, 9.756572131216842, 9.732442533692973, 9.698302810793034,
9.653900496532554, 9.598945794679436, 9.533107546305716, 9.456008272606084,
9.367218080231398, 9.266247147243595, 9.152536412939227, 9.025445962449908,
8.884240409151237, 8.728070306173185, 8.555948217222312, 8.366717471550364,
8.15901069111041, 7.931193686998973, 7.681287872309445, 7.4068601618098855,
7.10486189676173, 6.771384421838216, 6.40127126802985, 5.987467571923839,
5.519847572730394, 4.982887990977129, 4.3503709370253265, 3.5703872094268094,
2.4995596481282525}},
{{0.629013798471671, 2.1866118268994468, 3.0368605864518217, 3.6771490374606355,
4.207007718753613, 4.66452836989242, 5.069326043954977, 5.433115314702656,
5.763565023040947, 6.066021922820969, 6.344389357111023, 6.601618652129766,
6.8400036740352945, 7.061367217314588, 7.26718418933565, 7.458665984819544,
7.636820030022579, 7.8024928814423395, 7.95640210521801, 8.099160303672743,
8.231293520219943, 8.353255538761486, 8.46543913064336, 8.568184994935699,
8.661788929350681, 8.74650762487693, 8.82256337558689, 8.890147922266685,
8.949425595529279, 9.000535884920497, 9.043595531165272, 9.078700216339863,
9.105925909443517, 9.12532991118698, 9.136951630805799, 9.14081311859039,
9.13691937002785, 9.125258410513581, 9.105801163130566, 9.078501095666466,
9.043293636510745, 9.000095341996824, 8.94880278973171, 8.889291163010668,
8.821412479942126, 8.744993406613599, 8.659832575438015, 8.565697306248044,
8.462319596663876, 8.34939120675572, 8.226557606697057, 8.093410478498992,
7.949478354280492, 7.794214818859097, 7.626983480150643, 7.4470385789742775,
7.253499607649825, 7.045317527593014, 6.821228932575126, 6.5796924547567555,
6.318798205008482, 6.036134778147875, 5.728586585466067, 5.392010752627947,
5.020692096532121, 4.606354301328156, 4.136181095725286, 3.5882580110647293,
2.918423656686351, 1.9999831254556695},
{0.23873578916690366, 2.0500489551803267, 3.1201857892092946, 3.8789686604099263,
4.493437017697335, 5.017527030470675, 5.477296385866756, 5.887761534500594,
6.258527506968923, 6.596182009973793, 6.905475510266001, 7.189965315739698,
7.452394570462295, 7.694928593219781, 7.919309232207209, 8.126959552432252,
8.319057099733737, 8.496586547202293, 8.660378387673369, 8.811137925405763,
8.949467363242505, 9.075882871818438, 9.190827942723814, 9.294683942100447,
9.387778521184131, 9.470392361301753, 9.542764605201127, 9.605097236829916,
9.657558606430447, 9.70028624956067, 9.733389112310816, 9.756949267063849,
9.771023181187681, 9.775642583275978, 9.770814956656556, 9.756523676842061,
9.732727797572638, 9.699361478358194, 9.65633303426016, 9.603523575310243,
9.540785187582555, 9.467938589449417, 9.384770173568707, 9.29102831578889,
9.186418793789159, 9.070599107145938, 8.943171421166314, 8.803673761129039,
8.651568949209869, 8.48623058428439, 8.306925084850821, 8.11278839862622,
7.902795347561311, 7.6757185844345175, 7.4300725389000055, 7.16403506942705,
6.875334930613836, 6.561084820602421, 6.217523820876327, 5.839600487397429,
5.420255818696847, 4.949088517083736, 4.409586318075515, 3.772390577191644,
2.973878032379262, 1.7830364647510994, 0.05380912975709777}}};
// normalize histograms
for (unsigned int ix = 0; ix < 4; ++ix) {
for (unsigned int iy = 0; iy < 2; ++iy) {
normalize(_h[ix][iy]);
}
}
// last two plots convert to scatter and normalize to phase space volume in bin
double step = 0.002;
for (unsigned int ix = 0; ix < 2; ++ix) {
for (unsigned int iy = 0; iy < 2; ++iy) {
// convert to scatter
Estimate1DPtr tmp;
book(tmp, 3 + ix, 1, 1 + iy);
barchart(_h[ix + 2][iy], tmp);
// divide by phase space volume
for (auto& b : tmp->bins()) {
b.scale(1. / phsp[ix][iy][b.index() - 1] / step);
}
}
}
}
/// @}
/// @name Histograms
/// @{
Histo1DPtr _h[4][2];
/// @}
};
RIVET_DECLARE_PLUGIN(BESIII_2018_I1623555);
}