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);

}