rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BESIII_2018_I1623555

Kinematic distributions in the decay $\eta^\prime\to\eta\pi^0\pi^0$ and $\pi^+\pi^-\pi^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 $\eta^\prime\to\eta\pi^0\pi^0$ and $\pi^+\pi^-\pi^0$.

Source code: BESIII_2018_I1623555.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/UnstableParticles.hh"
  4#include "Rivet/Projections/DecayedParticles.hh"
  5
  6namespace Rivet {
  7
  8
  9  /// @brief  eta' -> eta pi0 pi0 or eta pi+ pi-
 10  class BESIII_2018_I1623555 : public Analysis {
 11  public:
 12
 13    /// Constructor
 14    RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2018_I1623555);
 15
 16
 17    /// @name Analysis methods
 18    /// @{
 19
 20    /// Book histograms and initialise projections before the run
 21    void init() {
 22      // Initialise and register projections
 23      UnstableParticles ufs = UnstableParticles(Cuts::pid==PID::ETAPRIME);
 24      declare(ufs, "UFS");
 25      DecayedParticles ETA(ufs);
 26      ETA.addStable(PID::PI0);
 27      ETA.addStable(PID::K0S);
 28      ETA.addStable(PID::ETA);
 29      declare(ETA, "ETA");
 30      // histograms
 31      for(unsigned int ix=0;ix<4;++ix) {
 32	for(unsigned int iy=0;iy<2;++iy) {
 33	  if(ix<2)
 34	    book(_h[ix][iy],1+ix,1,1+iy);
 35	  else
 36	    book(_h[ix][iy],"TMP/h_"+toString(ix+1)+"_"+toString(iy+1),refData(1+ix,1,1+iy));
 37	}
 38      }
 39    }
 40
 41
 42    /// Perform the per-event analysis
 43    void analyze(const Event& event) {
 44      static const map<PdgId,unsigned int> & mode1 = { {221,1}, { 111,2} };
 45      static const map<PdgId,unsigned int> & mode2 = { {221,1}, { 211,1}, {-211,1} };
 46      DecayedParticles ETA = apply<DecayedParticles>(event, "ETA");
 47      // loop over particles
 48      for(unsigned int ix=0;ix<ETA.decaying().size();++ix) {
 49	// eta' -> 2pi0 eta
 50	if ( ETA.modeMatches(ix,3,mode1) ) {
 51	  const Particle &  eta = ETA.decayProducts()[ix].at(221)[0];
 52	  const Particles & pi0 = ETA.decayProducts()[ix].at(111);
 53	  double s1 = (eta   .momentum()+pi0[0].momentum()).mass2();
 54	  double s2 = (eta   .momentum()+pi0[1].momentum()).mass2();
 55	  double s3 = (pi0[0].momentum()+pi0[1].momentum()).mass2();
 56	  double mOut = eta.mass()+pi0[0].mass()+pi0[1].mass();
 57	  double Q = ETA.decaying()[ix].mass()-mOut;
 58	  double X = sqrt(3.)/2./ETA.decaying()[ix].mass()/Q*fabs(s1-s2);
 59	  double Y = mOut/2./Q/pi0[0].mass()/ETA.decaying()[ix].mass()*
 60	    (sqr(ETA.decaying()[ix].mass()-eta.mass())-s3)-1.;
 61	  _h[1][0]->fill(X);
 62	  _h[1][1]->fill(Y);
 63	  _h[2][0]->fill(sqrt(s3));
 64	  _h[3][0]->fill(sqrt(s1));
 65	  _h[3][0]->fill(sqrt(s2));
 66	}
 67	// eta' -> pi+ pi- eta
 68	else if ( ETA.modeMatches(ix,3,mode2) ) {
 69	  const Particle & eta = ETA.decayProducts()[ix].at( 221)[0];
 70	  const Particle & pip = ETA.decayProducts()[ix].at( 211)[0];
 71	  const Particle & pim = ETA.decayProducts()[ix].at(-211)[0];
 72	  double s1 = (eta.momentum()+pim.momentum()).mass2();
 73	  double s2 = (eta.momentum()+pip.momentum()).mass2();
 74	  double s3 = (pim.momentum()+pip.momentum()).mass2();
 75	  double mOut = eta.mass()+pip.mass()+pim.mass();
 76	  double Q = ETA.decaying()[ix].mass()-mOut;
 77	  double X = sqrt(3.)/2./ETA.decaying()[ix].mass()/Q*(s1-s2);
 78	  double Y = mOut/2./Q/pip.mass()/ETA.decaying()[ix].mass()*
 79	    (sqr(ETA.decaying()[ix].mass()-eta.mass())-s3)-1.;
 80	  _h[0][0]->fill(X);
 81	  _h[0][1]->fill(Y);
 82	  _h[2][1]->fill(sqrt(s3));
 83	  _h[3][1]->fill(sqrt(s1));
 84	  _h[3][1]->fill(sqrt(s2));
 85	}
 86      }
 87    }
 88
 89
 90    /// Normalise histograms etc., after the run
 91    void finalize() {
 92      vector<double> phsp[2][2] = {{{0.4958173595002211,1.9619294234849218,2.769343347436134,3.3754760296363586,3.878496706355459,4.314870895705234,4.70312212702334,
 93				     5.054215323586935,5.375279853746009,5.671257584168677,5.9457370820689865,6.201417631268466,6.44038618211146,6.664291971724481,
 94				     6.874461576204892,7.071977500668689,7.257733504274686,7.432474552616055,7.596826304190006,7.751317284426186,7.896395833035851,
 95				     8.032443239272407,8.15978404588282,8.278694215122778,8.389407655537537,8.492121473687217,8.587000220318588,8.674179332711457,
 96				     8.753767925627045,8.825851046861633,8.89049148607537,8.947731204719013,8.997592438695575,9.040078512568408,9.075174393713954,
 97				     9.102847006109055,9.123045315893089,9.135700194014767,9.140724054787638,9.13801026269368,9.127432292951557,9.108842623839646,
 98				     9.082071330112504,9.046924336557808,9.003181278149844,8.950592897494763,8.888877890152871,8.81771908233236,8.73675879108212,
 99				     8.645593171181584,8.543765290652805,8.430756591127544,8.305976269528442,8.168747947286356,8.018292746910289,7.853707531862115,
100				     7.673936516314864,7.477733601051388,7.26361143821108,7.029771003081123,6.774001658321787,6.493534946280308,6.184822709548511,
101				     5.843185002115959,5.462219359013247,5.03273598213602,4.540644424927434,3.962141200519649,3.2500824294265236,2.274198460941213},
102				    {1.3100886831082426,2.59729040074684,3.381299983575231,4.000787719010948,4.524937634762839,4.983978373623454,5.3944278031342705,
103				     5.7664948628407044,6.107010795600696,6.4208084604346265,6.711450584339649,6.981647651964704,7.233513384923498,7.468728930123908,
104				     7.688652731356644,7.894396548261923,8.08687954469034,8.266867695860503,8.435003085521664,8.591826066910466,8.737792275150909,
105				     8.87328585137746,8.998629828980688,9.114094358145204,9.219903257387287,9.31623925009379,9.403248151226878,9.481042202232233,
106				     9.549702702777214,9.609282050887044,9.65980527467064,9.701271116566254,9.733652713050626,9.756897897684288,9.770929142161672,
107				     9.775643137844083,9.770910008327416,9.756572131216842,9.732442533692973,9.698302810793034,9.653900496532554,9.598945794679436,
108				     9.533107546305716,9.456008272606084,9.367218080231398,9.266247147243595,9.152536412939227,9.025445962449908,8.884240409151237,
109				     8.728070306173185,8.555948217222312,8.366717471550364,8.15901069111041,7.931193686998973,7.681287872309445,7.4068601618098855,
110				     7.10486189676173,6.771384421838216,6.40127126802985,5.987467571923839,5.519847572730394,4.982887990977129,4.3503709370253265,
111				     3.5703872094268094,2.4995596481282525}},
112				   {{0.629013798471671,2.1866118268994468,3.0368605864518217,3.6771490374606355,4.207007718753613,4.66452836989242,5.069326043954977,
113				     5.433115314702656,5.763565023040947,6.066021922820969,6.344389357111023,6.601618652129766,6.8400036740352945,7.061367217314588,
114				     7.26718418933565,7.458665984819544,7.636820030022579,7.8024928814423395,7.95640210521801,8.099160303672743,8.231293520219943,
115				     8.353255538761486,8.46543913064336,8.568184994935699,8.661788929350681,8.74650762487693,8.82256337558689,8.890147922266685,
116				     8.949425595529279,9.000535884920497,9.043595531165272,9.078700216339863,9.105925909443517,9.12532991118698,9.136951630805799,
117				     9.14081311859039,9.13691937002785,9.125258410513581,9.105801163130566,9.078501095666466,9.043293636510745,9.000095341996824,
118				     8.94880278973171,8.889291163010668,8.821412479942126,8.744993406613599,8.659832575438015,8.565697306248044,8.462319596663876,
119				     8.34939120675572,8.226557606697057,8.093410478498992,7.949478354280492,7.794214818859097,7.626983480150643,7.4470385789742775,
120				     7.253499607649825,7.045317527593014,6.821228932575126,6.5796924547567555,6.318798205008482,6.036134778147875,5.728586585466067,
121				     5.392010752627947,5.020692096532121,4.606354301328156,4.136181095725286,3.5882580110647293,2.918423656686351,1.9999831254556695},
122				    { 0.23873578916690366,2.0500489551803267,3.1201857892092946,3.8789686604099263,4.493437017697335,5.017527030470675,5.477296385866756,
123				      5.887761534500594,6.258527506968923,6.596182009973793,6.905475510266001,7.189965315739698,7.452394570462295,7.694928593219781,
124				      7.919309232207209,8.126959552432252,8.319057099733737,8.496586547202293,8.660378387673369,8.811137925405763,8.949467363242505,
125				      9.075882871818438,9.190827942723814,9.294683942100447,9.387778521184131,9.470392361301753,9.542764605201127,9.605097236829916,
126				      9.657558606430447,9.70028624956067,9.733389112310816,9.756949267063849,9.771023181187681,9.775642583275978,9.770814956656556,
127				      9.756523676842061,9.732727797572638,9.699361478358194,9.65633303426016,9.603523575310243,9.540785187582555,9.467938589449417,
128				      9.384770173568707,9.29102831578889,9.186418793789159,9.070599107145938,8.943171421166314,8.803673761129039,8.651568949209869,
129				      8.48623058428439,8.306925084850821,8.11278839862622,7.902795347561311,7.6757185844345175,7.4300725389000055,7.16403506942705,
130				      6.875334930613836,6.561084820602421,6.217523820876327,5.839600487397429,5.420255818696847,4.949088517083736,4.409586318075515,
131				      3.772390577191644,2.973878032379262,1.7830364647510994,0.05380912975709777}}};
132
133      // normalize histograms
134      for(unsigned int ix=0;ix<4;++ix) {
135        for(unsigned int iy=0;iy<2;++iy) {
136          normalize(_h[ix][iy]);
137        }
138      }
139      // last two plots  convert to scatter and normalize to phase space volume in bin
140      double step = 0.002;
141      for(unsigned int ix=0;ix<2;++ix) {
142        for(unsigned int iy=0;iy<2;++iy) {
143          // convert to scatter
144          Estimate1DPtr tmp;
145          book(tmp,3+ix,1,1+iy);
146          barchart(_h[ix+2][iy],tmp);
147          // divide by phase space volume
148          for (auto& b : tmp->bins()) {
149            b.scale(1./phsp[ix][iy][b.index()-1]/step);
150          }
151        }
152      }
153    }
154
155    /// @}
156
157
158    /// @name Histograms
159    /// @{
160    Histo1DPtr _h[4][2];
161    /// @}
162
163
164  };
165
166
167  RIVET_DECLARE_PLUGIN(BESIII_2018_I1623555);
168
169}