diff --git a/analyses/pluginMC/MC_Eta_Decay.cc b/analyses/pluginMC/MC_Eta_Decay.cc new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_Eta_Decay.cc @@ -0,0 +1,247 @@ +// -*- C++ -*- +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/UnstableParticles.hh" + +namespace Rivet { + + + /// @brief Add a short analysis description here + class MC_Eta_Decay : public Analysis { + public: + + /// Constructor + DEFAULT_RIVET_ANALYSIS_CTOR(MC_Eta_Decay); + + + /// @name Analysis methods + //@{ + + /// Book histograms and initialise projections before the run + void init() { + + // Initialise and register projections + declare(UnstableParticles(), "UFS"); + + // Book histograms + double meta[2]={547.45, 957.78}; + for(unsigned int ix=0;ix<2;++ix) { + ostringstream title; title << "_" << ix; + _mgammagamma .push_back(bookHisto1D("mgammagamma" +title.str(),200,0.,meta[ix]) ); + _mpi0gamma .push_back(bookHisto1D("mpi0gamma" +title.str(),200,0.,meta[ix])) ; + _mpipgamma .push_back(bookHisto1D("mpipgamma" +title.str(),200,0.,meta[ix])); + _mpimgamma .push_back(bookHisto1D("mpimgamma" +title.str(),200,0.,meta[ix])); + _photonenergy.push_back(bookHisto1D("photonenergy"+title.str(),200,0.,meta[ix])); + _mpippim .push_back(bookHisto1D("mpippim" +title.str(),200,0.,meta[ix])); + _dpippim .push_back(bookHisto1D("dpippim" +title.str(),200,200.,meta[ix])); + _dpi0pi0 .push_back(bookHisto1D("dpi0pi0" +title.str(),200,200.,meta[ix])); + _dpi0pip .push_back(bookHisto1D("dpi0pip" +title.str(),200,200.,meta[ix])); + _dpi0pim .push_back(bookHisto1D("dpi0pim" +title.str(),200,200.,meta[ix])); + } + _dpi0pi0.push_back(bookHisto1D("dpi0pi0_2",200,200.,500. )); + _dpippim.push_back(bookHisto1D("dpippim_2",200,200.,500. )); + _dpipeta=bookHisto1D("dpipeta",200,500.,meta[1]) ; + _dpimeta=bookHisto1D("dpimeta",200,500.,meta[1]) ; + _dpi0eta=bookHisto1D("dpi0eta",200,500.,meta[1]) ; + } + + void findDecayProducts(const Particle & mother, + unsigned int & nstable, + Particles& pip, Particles& pim, + Particles& pi0, Particles& eta, + Particles& gamma) { + for(const Particle & p : mother.children()) { + int id = p.pdgId(); + if ( id == PID::ETA ) { + eta.push_back(p); + ++nstable; + } + else if ( id == PID::PHOTON ) { + gamma.push_back(p); + ++nstable; + } + else if (id == PID::PIPLUS) { + pip.push_back(p); + ++nstable; + } + else if (id == PID::PIMINUS) { + pim.push_back(p); + ++nstable; + } + else if (id == PID::PI0 ) { + pi0.push_back(p); + ++nstable; + } + else if (id == PID::K0S || id == PID::K0L || + id == PID::KPLUS || id == PID::KMINUS) + ++nstable; + else if ( !p.children().empty() ) { + findDecayProducts(p,nstable,pip,pim,pi0,eta,gamma); + } + else + ++nstable; + } + } + + /// Perform the per-event analysis + void analyze(const Event& event) { + double weight = event.weight(); + // Loop over f_1 mesons + for(const Particle& meson : apply(event, "UFS"). + particles(Cuts::pid==221||Cuts::pid==331)) { + unsigned int nstable(0); + Particles pip, pim, pi0, eta, gamma; + findDecayProducts(meson,nstable,pip, pim, pi0, eta, gamma); + unsigned int imeson = meson.pdgId()==221 ? 0 : 1; + // pi0 gamma gamma + if(nstable==3 && pi0.size()==1 && gamma.size()==2) { + _mgammagamma[imeson]->fill((gamma[0].momentum()+gamma[1].momentum()).mass()/MeV,weight); + _mpi0gamma [imeson]->fill(( pi0[0].momentum()+gamma[0].momentum()).mass()/MeV,weight); + _mpi0gamma [imeson]->fill(( pi0[0].momentum()+gamma[1].momentum()).mass()/MeV,weight); + } // pi+pi-gamma analysis + else if(nstable==3 && pip.size()==1 && pim.size()==1 && gamma.size()==1) { + FourMomentum ptemp = pip[0].momentum()+pim[0].momentum(); + double mpipi = ptemp.mass(); + _mpippim[imeson]->fill(mpipi/MeV,weight); + double egamma = 0.5*(meson.mass()*meson.mass()-mpipi*mpipi)/meson.mass(); + _photonenergy[imeson]->fill(egamma/MeV,weight); + _mpipgamma[imeson]->fill((pip[0].momentum()+gamma[0].momentum()).mass()/MeV,weight); + _mpimgamma[imeson]->fill((pim[0].momentum()+gamma[0].momentum()).mass()/MeV,weight); + } + else if(nstable==3&& pi0.size()==3) { + _dpi0pi0[imeson]->fill((pi0[0].momentum()+pi0[1].momentum()).mass()/MeV,weight); + _dpi0pi0[imeson]->fill((pi0[0].momentum()+pi0[2].momentum()).mass()/MeV,weight); + _dpi0pi0[imeson]->fill((pi0[1].momentum()+pi0[2].momentum()).mass()/MeV,weight); + } + else if(nstable==3&& pip.size()==1&&pim.size()==1&&pi0.size()==1) { + _dpi0pip[imeson]->fill((pi0[0].momentum()+pip[0].momentum()).mass()/MeV,weight); + _dpi0pim[imeson]->fill((pi0[0].momentum()+pim[0].momentum()).mass()/MeV,weight); + _dpippim[imeson]->fill((pip[0].momentum()+pim[0].momentum()).mass()/MeV,weight); + } + else if(nstable==3&& pi0.size()==2&&eta.size()==1) { + _dpi0pi0[2]->fill((pi0[0].momentum()+pi0[1].momentum()).mass()/MeV,weight); + _dpi0eta ->fill((pi0[0].momentum()+eta[0].momentum()).mass()/MeV,weight); + _dpi0eta ->fill((pi0[1].momentum()+eta[0].momentum()).mass()/MeV,weight); + } + else if(nstable==3&& pip.size()==1&&pim.size()==1&&eta.size()==1) { + _dpippim[2]->fill((pip[0].momentum()+pim[0].momentum()).mass()/MeV,weight); + _dpipeta ->fill((pip[0].momentum()+eta[0].momentum()).mass()/MeV,weight); + _dpimeta ->fill((pim[0].momentum()+eta[0].momentum()).mass()/MeV,weight); + } + } + } + + + /// Normalise histograms etc., after the run + void finalize() { + + // normalize to unity + for(unsigned int ix=0;ix<2;++ix) { + normalize(_mgammagamma[ix]); + normalize(_mpi0gamma[ix]); + normalize(_mpipgamma[ix]); + normalize(_mpimgamma[ix]); + normalize(_mpippim[ix]); + normalize(_photonenergy[ix]); + normalize(_dpippim[ix]); + normalize(_dpi0pi0[ix]); + normalize(_dpi0pip[ix]); + normalize(_dpi0pim[ix]); + } + normalize(_dpi0pi0[2]); + normalize(_dpippim[2]); + normalize(_dpipeta); + normalize(_dpimeta); + normalize(_dpi0eta); + } + //@} + + + /** + * Histograms for the decay \f$\eta\to\pi^0\gamma\gamma\f$ + */ + //@{ + /** + * Histogram for the mass of \f$\gamma\gamma\f$ + */ + vector _mgammagamma; + + /** + * Histogrma for the mass of \f$\pi^0\gamma\f$ + */ + vector _mpi0gamma; + //@} + + /** + * Histograms for the decay \f$\eta\to\pi^+\pi^-\gamma\f$ + */ + //@{ + /** + * Histogram for the mass of \f$\pi^+\gamma\f$ + */ + vector _mpipgamma; + + /** + * Histogram for the mass of \f$\pi^-\gamma\f$ + */ + vector _mpimgamma; + + /** + * Histogram for the mass of \f$\pi^+\pi^-\f$ + */ + vector _mpippim; + + /** + * Histogram for the photon energy + */ + vector _photonenergy; + //@} + + /** + * Histograms for the decay \f$\eta\pi\pi\pi\f$ and \f$\eta'\to\eta\pi\pi\f$. + */ + //@{ + /** + * Histogram for the mass of \f$\pi^+\pi^-\f$ + */ + vector _dpippim; + + /** + * Histogram for the mass of \f$\pi^0\pi^0\f$ + */ + vector _dpi0pi0; + + /** + * Histogram for the mass of \f$\pi^0\pi^+\f$ + */ + vector _dpi0pip; + + /** + * Histogram for the mass of \f$\pi^0\pi^-\f$ + */ + vector _dpi0pim; + + /** + * Histogram for the mass of \f$\pi^+\eta\f$ + */ + Histo1DPtr _dpipeta; + + /** + * Histogram for the mass of \f$\pi^-\eta\f$ + */ + Histo1DPtr _dpimeta; + + /** + * Histogram for the mass of \f$\pi^0\eta\f$ + */ + Histo1DPtr _dpi0eta; + //@} + + + }; + + + // The hook for the plugin system + DECLARE_RIVET_PLUGIN(MC_Eta_Decay); + + +} diff --git a/analyses/pluginMC/MC_Eta_Decay.info b/analyses/pluginMC/MC_Eta_Decay.info new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_Eta_Decay.info @@ -0,0 +1,9 @@ +Name: MC_Eta_Decay +Summary: Analysis of Kinematic distributions in $\eta$ and $\eta^\prime$ meson decays +Status: VALIDATED +Authors: + - Peter Richardson +RunInfo: Any type of process producing eta/eta prime mesons +NeedCrossSection: no +Description: + ' Analysis of Kinematic distributions in $\eta$ and $\eta^\prime$ meson decays. The mass distributions in the decays $\eta,\eta^\prime\to \gamma\pi^+\pi^-$, $\gamma\gamma\pi^0$, $\pi^0\pi^0\pi^0$, $\pi^+\pi^-\pi^0$ and $\eta^\prime\to\pi^+\pi^-\eta$, $\pi^0\pi^0\eta$ are produced. Based on an +old Herwig++ internal analysis.' diff --git a/analyses/pluginMC/MC_Eta_Decay.plot b/analyses/pluginMC/MC_Eta_Decay.plot new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_Eta_Decay.plot @@ -0,0 +1,134 @@ +BEGIN PLOT /MC_Eta_Decay/dpi0eta +Title=Distribution of the $\eta\pi^0$ mass in the decay $\eta^\prime\to\eta\pi^0\pi^0$ +XLabel=$m_{\eta\pi^0}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\eta\pi^0}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/dpi0pi0_2 +Title=Distribution of the $\pi^0\pi^0$ mass in the decay $\eta^\prime\to\eta\pi^0\pi^0$ +XLabel=$m_{\pi^0\pi^0}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^0\pi^0}$ [${\rm MeV}^{-1}$] +END PLOT + +BEGIN PLOT /MC_Eta_Decay/dpipeta +Title=Distribution of the $\eta\pi^+$ mass in the decay $\eta^\prime\to\eta\pi^+\pi^-$ +XLabel=$m_{\eta\pi^+}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\eta\pi^+}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/dpimeta +Title=Distribution of the $\eta\pi^-$ mass in the decay $\eta^\prime\to\eta\pi^+\pi^-$ +XLabel=$m_{\eta\pi^-}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\eta\pi^-}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/dpippim_2 +Title=Distribution of the $\pi^+\pi^-$ mass in the decay $\eta^\prime\to\eta\pi^+\pi^-$ +XLabel=$m_{\pi^+\pi^-}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^+\pi^-}$ [${\rm MeV}^{-1}$] +END PLOT + +BEGIN PLOT /MC_Eta_Decay/mpipgamma_0 +Title=Distribution of the $\gamma\pi^+$ mass in the decay $\eta\to\gamma\pi^+\pi^-$ +XLabel=$m_{\gamma\pi^+}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\gamma\pi^+}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/mpimgamma_0 +Title=Distribution of the $\gamma\pi^-$ mass in the decay $\eta\to\gamma\pi^+\pi^-$ +XLabel=$m_{\gamma\pi^-}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\gamma\pi^-}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/mpippim_0 +Title=Distribution of the $\pi^+\pi^-$ mass in the decay $\eta\to\gamma\pi^+\pi^-$ +XLabel=$m_{\pi^+\pi^-}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^+\pi^-}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/photonenergy_0 +Title=Distribution of the photon energy in the decay $\eta\to\gamma\pi^+\pi^-$ +XLabel=$E_\gamma$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} E_\gamma$ [${\rm MeV}^{-1}$] +END PLOT + +BEGIN PLOT /MC_Eta_Decay/mpipgamma_1 +Title=Distribution of the $\gamma\pi^+$ mass in the decay $\eta^\prime\to\gamma\pi^+\pi^-$ +XLabel=$m_{\gamma\pi^+}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\gamma\pi^+}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/mpimgamma_1 +Title=Distribution of the $\gamma\pi^-$ mass in the decay $\eta^\prime\to\gamma\pi^+\pi^-$ +XLabel=$m_{\gamma\pi^-}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\gamma\pi^-}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/mpippim_1 +Title=Distribution of the $\pi^+\pi^-$ mass in the decay $\eta^\prime\to\gamma\pi^+\pi^-$ +XLabel=$m_{\pi^+\pi^-}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^+\pi^-}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/photonenergy_1 +Title=Distribution of the photon energy in the decay $\eta^\prime\to\gamma\pi^+\pi^-$ +XLabel=$E_\gamma$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} E_\gamma$ [${\rm MeV}^{-1}$] +END PLOT + + +BEGIN PLOT /MC_Eta_Decay/mgammagamma_1 +Title=Distribution of the $\gamma\gamma$ mass in the decay $\eta^\prime\to\gamma\gamma\pi^0$ +XLabel=$m_{\gamma\gamma}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\gamma\gamma}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/mpi0gamma_1 +Title=Distribution of the $\gamma\pi^0$ mass in the decay $\eta^\prime\to\gamma\gamma\pi^0$ +XLabel=$m_{\gamma\pi^0}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\gamma\pi^0}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/mgammagamma_0 +Title=Distribution of the $\gamma\gamma$ mass in the decay $\eta\to\gamma\gamma\pi^0$ +XLabel=$m_{\gamma\gamma}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\gamma\gamma}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/mpi0gamma_0 +Title=Distribution of the $\gamma\pi^0$ mass in the decay $\eta\to\gamma\gamma\pi^0$ +XLabel=$m_{\gamma\pi^0}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\gamma\pi^0}$ [${\rm MeV}^{-1}$] +END PLOT + +BEGIN PLOT /MC_Eta_Decay/dpi0pi0_0 +Title=Distribution of the $\pi\pi^0$ mass in the decay $\eta\to\pi^0\pi^0\pi^0$ +XLabel=$m_{\pi^0\pi^0}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^0\pi^0}$ [${\rm MeV}^{-1}$] +END PLOT + +BEGIN PLOT /MC_Eta_Decay/dpi0pi0_1 +Title=Distribution of the $\pi\pi^0$ mass in the decay $\eta^\prime\to\pi^0\pi^0\pi^0$ +XLabel=$m_{\pi^0\pi^0}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^0\pi^0}$ [${\rm MeV}^{-1}$] +END PLOT + +BEGIN PLOT /MC_Eta_Decay/dpi0pip_0 +Title=Distribution of the $\pi^+\pi^0$ mass in the decay $\eta\to\pi^+\pi^-\pi^0$ +XLabel=$m_{\pi^+\pi^0}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^+\pi^0}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/dpi0pim_0 +Title=Distribution of the $\pi^-\pi^0$ mass in the decay $\eta\to\pi^+\pi^-\pi^0$ +XLabel=$m_{\pi^-\pi^0}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^-\pi^0}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/dpippim_0 +Title=Distribution of the $\pi^+\pi^-$ mass in the decay $\eta\to\pi^+\pi^-\pi^0$ +XLabel=$m_{\pi^+\pi^-}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^+\pi^-}$ [${\rm MeV}^{-1}$] +END PLOT + +BEGIN PLOT /MC_Eta_Decay/dpi0pip_1 +Title=Distribution of the $\pi^+\pi^0$ mass in the decay $\eta^\prime\to\pi^+\pi^-\pi^0$ +XLabel=$m_{\pi^+\pi^0}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^+\pi^0}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/dpi0pim_1 +Title=Distribution of the $\pi^-\pi^0$ mass in the decay $\eta^\prime\to\pi^+\pi^-\pi^0$ +XLabel=$m_{\pi^-\pi^0}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^-\pi^0}$ [${\rm MeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Eta_Decay/dpippim_1 +Title=Distribution of the $\pi^+\pi^-$ mass in the decay $\eta^\prime\to\pi^+\pi^-\pi^0$ +XLabel=$m_{\pi^+\pi^-}$ [MeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\pi^+\pi^-}$ [${\rm MeV}^{-1}$] +END PLOT \ No newline at end of file diff --git a/analyses/pluginMC/MC_F1_Decay.cc b/analyses/pluginMC/MC_F1_Decay.cc new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_F1_Decay.cc @@ -0,0 +1,185 @@ +// -*- C++ -*- +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/UnstableParticles.hh" + +namespace Rivet { + + + /// @brief Add a short analysis description here + class MC_F1_Decay : public Analysis { + public: + + /// Constructor + DEFAULT_RIVET_ANALYSIS_CTOR(MC_F1_Decay); + + + /// @name Analysis methods + //@{ + + /// Book histograms and initialise projections before the run + void init() { + + // Initialise and register projections + declare(UnstableParticles(),"UFS"); + + // eta pi0 pi0 mode + _h_eta0_etapi0 = bookHisto1D("eta0_etapi0" , 70, 0.66, 1.36); + _h_eta0_pi0pi0 = bookHisto1D("eta0_pi0pi0" , 80, 0.2, 1.0); + _h_eta0_etapi0pi0 = bookHisto1D("eta0_etapi0pi0", 70, 1.0, 1.7); + // eta pi+pi- mode + _h_eta1_etapip = bookHisto1D("eta1_etapip" , 70, 0.66, 1.36); + _h_eta1_etapim = bookHisto1D("eta1_etapim" , 70, 0.66, 1.36); + _h_eta1_pippim = bookHisto1D("eta1_pippim" , 80, 0.2, 1.0); + _h_eta1_etapippim = bookHisto1D("eta1_etapippim", 70, 1.0, 1.7); + // pi+pi-2pi0 + _h_4pi0_pi0pi0 = bookHisto1D("4pi0_pi0pi0" , 80, 0.2, 1.0); + _h_4pi0_pippi0 = bookHisto1D("4pi0_pippi0" , 80, 0.2, 1.0); + _h_4pi0_pimpi0 = bookHisto1D("4pi0_pimpi0" , 80, 0.2, 1.0); + _h_4pi0_pippim = bookHisto1D("4pi0_pippim" , 80, 0.2, 1.0); + _h_4pi0_pippimpi0 = bookHisto1D("4pi0_pippimpi0",100, 0.4, 1.4); + _h_4pi0_pippi0pi0 = bookHisto1D("4pi0_pippi0pi0",100, 0.4, 1.4); + _h_4pi0_pimpi0pi0 = bookHisto1D("4pi0_pimpi0pi0",100, 0.4, 1.4); + _h_4pi0_4pi = bookHisto1D("4pi0_4pi" , 70, 1.0, 1.7); + // 2pi+ 2pi- mode + _h_4pi1_pippip = bookHisto1D("4pi1_pippip" , 80, 0.2, 1.0); + _h_4pi1_pimpim = bookHisto1D("4pi1_pimpim" , 80, 0.2, 1.0); + _h_4pi1_pippim = bookHisto1D("4pi1_pippim" , 80, 0.2, 1.0); + _h_4pi1_pimpimpip = bookHisto1D("4pi1_pimpimpip",100, 0.4, 1.4); + _h_4pi1_pippippim = bookHisto1D("4pi1_pippippim",100, 0.4, 1.4); + _h_4pi1_4pi = bookHisto1D("4pi1_4pi" , 70, 1.0, 1.7); + } + + void findDecayProducts(const Particle & mother, + unsigned int & nstable, + Particles& pip, Particles& pim, + Particles& pi0, Particles& eta) { + for(const Particle & p : mother.children()) { + int id = p.pdgId(); + if ( id == PID::ETA ) { + eta.push_back(p); + ++nstable; + } + else if (id == PID::PIPLUS) { + pip.push_back(p); + ++nstable; + } + else if (id == PID::PIMINUS) { + pim.push_back(p); + ++nstable; + } + else if (id == PID::PI0 ) { + pi0.push_back(p); + ++nstable; + } + else if (id == PID::K0S || id == PID::K0L || + id == PID::KPLUS || id == PID::KMINUS) + ++nstable; + else if ( !p.children().empty() ) { + findDecayProducts(p,nstable,pip,pim,pi0,eta); + } + else + ++nstable; + } + } + + /// Perform the per-event analysis + void analyze(const Event& event) { + // Loop over f_1 mesons + for(const Particle& f1 : apply(event, "UFS").particles(Cuts::abspid==20223)) { + unsigned int nstable(0); + Particles pip, pim, pi0, eta; + findDecayProducts(f1,nstable,pip, pim, pi0, eta); + // pi+ pi- pi0 pi0 + if(nstable==4 && pip.size()==1 && pim.size()==1 && pi0.size()==2) { + _h_4pi0_pi0pi0->fill((pi0[0].momentum()+pi0[1].momentum()).mass(),1.); + _h_4pi0_pippi0->fill((pip[0].momentum()+pi0[0].momentum()).mass(),1.); + _h_4pi0_pippi0->fill((pip[0].momentum()+pi0[1].momentum()).mass(),1.); + _h_4pi0_pimpi0->fill((pim[0].momentum()+pi0[0].momentum()).mass(),1.); + _h_4pi0_pimpi0->fill((pim[0].momentum()+pi0[1].momentum()).mass(),1.); + _h_4pi0_pippim->fill((pip[0].momentum()+pim[0].momentum()).mass(),1.); + _h_4pi0_pippimpi0->fill((pip[0].momentum()+pim[0].momentum()+pi0[0].momentum()).mass(),1.); + _h_4pi0_pippimpi0->fill((pip[0].momentum()+pim[0].momentum()+pi0[1].momentum()).mass(),1.); + _h_4pi0_pippi0pi0->fill((pi0[0].momentum()+pi0[1].momentum()+pip[0].momentum()).mass(),1.); + _h_4pi0_pimpi0pi0->fill((pi0[0].momentum()+pi0[1].momentum()+pim[0].momentum()).mass(),1.); + _h_4pi0_4pi->fill((pi0[0].momentum()+pi0[1].momentum()+pim[0].momentum()+pip[0].momentum()).mass(),1.); + } + else if(nstable==4 && pip.size()==2 && pim.size()==2) { + _h_4pi1_pippip ->fill((pip[0].momentum()+pip[1].momentum()).mass(),1.); + _h_4pi1_pimpim ->fill((pim[0].momentum()+pim[1].momentum()).mass(),1.); + _h_4pi1_pippim ->fill((pip[0].momentum()+pim[0].momentum()).mass(),1.); + _h_4pi1_pippim ->fill((pip[0].momentum()+pim[1].momentum()).mass(),1.); + _h_4pi1_pippim ->fill((pip[1].momentum()+pim[0].momentum()).mass(),1.); + _h_4pi1_pippim ->fill((pip[1].momentum()+pim[1].momentum()).mass(),1.); + _h_4pi1_pimpimpip->fill((pim[0].momentum()+pim[1].momentum()+pip[0].momentum()).mass(),1.); + _h_4pi1_pimpimpip->fill((pim[0].momentum()+pim[1].momentum()+pip[1].momentum()).mass(),1.); + _h_4pi1_pippippim->fill((pip[0].momentum()+pip[1].momentum()+pim[0].momentum()).mass(),1.); + _h_4pi1_pippippim->fill((pip[0].momentum()+pip[1].momentum()+pim[1].momentum()).mass(),1.); + _h_4pi1_4pi ->fill((pip[0].momentum()+pip[1].momentum()+ + pim[0].momentum()+pim[1].momentum()).mass(),1.); + } + else if(nstable==3 && eta.size()==1 && pip.size()==1 && pim.size()==1) { + _h_eta1_etapip ->fill((eta[0].momentum()+pip[0].momentum()).mass(),1.); + _h_eta1_etapim ->fill((eta[0].momentum()+pim[0].momentum()).mass(),1.); + _h_eta1_pippim ->fill((pim[0].momentum()+pip[0].momentum()).mass(),1.); + _h_eta1_etapippim->fill((eta[0].momentum()+pim[0].momentum()+pip[0].momentum()).mass(),1.); + } + else if(nstable==3 && eta.size()==1 && pi0.size()==2 ) { + _h_eta0_etapi0 ->fill((eta[0].momentum()+pi0[0].momentum()).mass(),1.); + _h_eta0_etapi0 ->fill((eta[0].momentum()+pi0[1].momentum()).mass(),1.); + _h_eta0_pi0pi0 ->fill((pi0[0].momentum()+pi0[1].momentum()).mass(),1.); + _h_eta0_etapi0pi0->fill((eta[0].momentum()+pi0[0].momentum()+pi0[1].momentum()).mass(),1.); + } + } + } + + + /// Normalise histograms etc., after the run + void finalize() { + + normalize(_h_eta0_etapi0 ); + normalize(_h_eta0_pi0pi0 ); + normalize(_h_eta0_etapi0pi0); + + normalize(_h_eta1_etapip); + normalize(_h_eta1_etapim); + normalize(_h_eta1_pippim); + normalize(_h_eta1_etapippim); + + normalize(_h_4pi0_pi0pi0); + normalize(_h_4pi0_pippi0); + normalize(_h_4pi0_pimpi0); + normalize(_h_4pi0_pippim); + normalize(_h_4pi0_pippimpi0); + normalize(_h_4pi0_pippi0pi0); + normalize(_h_4pi0_pimpi0pi0); + normalize(_h_4pi0_4pi); + + normalize(_h_4pi1_pippip); + normalize(_h_4pi1_pimpim); + normalize(_h_4pi1_pippim); + normalize(_h_4pi1_pimpimpip); + normalize(_h_4pi1_pippippim); + normalize(_h_4pi1_4pi); + } + + //@} + + + // @name Histograms + //@{ + Histo1DPtr _h_eta0_etapi0,_h_eta0_pi0pi0,_h_eta0_etapi0pi0; + Histo1DPtr _h_eta1_etapip,_h_eta1_etapim,_h_eta1_pippim,_h_eta1_etapippim; + Histo1DPtr _h_4pi0_pi0pi0,_h_4pi0_pippi0,_h_4pi0_pimpi0,_h_4pi0_pippim,_h_4pi0_pippimpi0,_h_4pi0_pippi0pi0, + _h_4pi0_pimpi0pi0,_h_4pi0_4pi; + Histo1DPtr _h_4pi1_pippip,_h_4pi1_pimpim,_h_4pi1_pippim,_h_4pi1_pimpimpip,_h_4pi1_pippippim,_h_4pi1_4pi; + //@} + + + }; + + + // The hook for the plugin system + DECLARE_RIVET_PLUGIN(MC_F1_Decay); + + +} diff --git a/analyses/pluginMC/MC_F1_Decay.info b/analyses/pluginMC/MC_F1_Decay.info new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_F1_Decay.info @@ -0,0 +1,9 @@ +Name: MC_F1_Decay +Summary: Analysis of Kinematic distributions of $f_1$ meson decays +Status: VALIDATED +Authors: + - Peter Richardson +RunInfo: Any type of process producing f_1 mesons +NeedCrossSection: no +Description: + 'Simple analysis of kinematic distributions in f_1 meson decays.' diff --git a/analyses/pluginMC/MC_F1_Decay.plot b/analyses/pluginMC/MC_F1_Decay.plot new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_F1_Decay.plot @@ -0,0 +1,131 @@ +BEGIN PLOT /MC_F1_Decay/eta0_etapi0 +Title=$\eta\pi^0$ mass distribution in $f_1\to \eta\pi^0\pi^0$ +XLabel=$m_{\eta\pi^0}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\eta\pi^0}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/eta0_etapi0pi0 +Title=$\eta\pi^0\pi^0$ mass distribution in $f_1\to \eta\pi^0\pi^0$ +XLabel=$m_{\eta\pi^0\pi^0}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\eta\pi^0\pi^0}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/eta0_pi0pi0 +Title=$\pi^0\pi^0$ mass distribution in $f_1\to \eta\pi^0\pi^0$ +XLabel=$m_{\pi^0\pi^0}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^0\pi^0}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT + +BEGIN PLOT /MC_F1_Decay/eta1_etapip +Title=$\eta\pi^+$ mass distribution in $f_1\to \eta\pi^+\pi^-$ +XLabel=$m_{\eta\pi^+}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\eta\pi^+}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/eta1_etapippim +Title=$\eta\pi^+\pi^-$ mass distribution in $f_1\to \eta\pi^+\pi^-$ +XLabel=$m_{\eta\pi^+\pi^-}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\eta\pi^+\pi^-}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/eta1_etapim +Title=$\eta\pi^-$ mass distribution in $f_1\to \eta\pi^+\pi^-$ +XLabel=$m_{\eta\pi^-}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\eta\pi^-}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/eta1_pippim +Title=$\pi^+\pi^-$ mass distribution in $f_1\to \eta\pi^+\pi^-$ +XLabel=$m_{\pi^+\pi^-}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^+\pi^-}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT + + +BEGIN PLOT /MC_F1_Decay/4pi1_pippim +Title=$\pi^+\pi^-$ mass distribution in $f_1\to 2\pi^+2\pi^-$ +XLabel=$m_{\pi^+\pi^-}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^+\pi^-}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/4pi1_pippip +Title=$\pi^+\pi^+$ mass distribution in $f_1\to 2\pi^+2\pi^-$ +XLabel=$m_{\pi^+\pi^+}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^+\pi^+}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/4pi1_pimpim +Title=$\pi^-\pi^-$ mass distribution in $f_1\to 2\pi^+2\pi^-$ +XLabel=$m_{\pi^-\pi^-}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^-\pi^-}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/4pi1_pippippim +Title=$\pi^+\pi^+\pi^-$ mass distribution in $f_1\to 2\pi^+2\pi^-$ +XLabel=$m_{\pi^+\pi^+\pi^-}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^+\pi^+\pi^-}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/4pi1_pimpimpip +Title=$\pi^-\pi^-\pi^+$ mass distribution in $f_1\to 2\pi^+2\pi^-$ +XLabel=$m_{\pi^-\pi^-\pi^+}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^-\pi^-\pi^+}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/4pi1_4pi +Title=$2\pi^-2\pi^+$ mass distribution in $f_1\to 2\pi^+2\pi^-$ +XLabel=$m_{2\pi^-2\pi^+}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{2\pi^-2\pi^+}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT + +BEGIN PLOT /MC_F1_Decay/4pi0_pippim +Title=$\pi^+\pi^-$ mass distribution in $f_1\to \pi^+\pi^-2\pi^0$ +XLabel=$m_{\pi^+\pi^-}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^+\pi^-}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/4pi0_pippi0 +Title=$\pi^+\pi^0$ mass distribution in $f_1\to \pi^+\pi^-2\pi^0$ +XLabel=$m_{\pi^+\pi^0}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^+\pi^0}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/4pi0_pimpi0 +Title=$\pi^-\pi^0$ mass distribution in $f_1\to \pi^+\pi^-2\pi^0$ +XLabel=$m_{\pi^-\pi^0}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^-\pi^0}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/4pi0_pi0pi0 +Title=$\pi^0\pi^0$ mass distribution in $f_1\to \pi^+\pi^-2\pi^0$ +XLabel=$m_{\pi^0\pi^0}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^0\pi^0}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT + +BEGIN PLOT /MC_F1_Decay/4pi0_pippimpi0 +Title=$\pi^-\pi^+\pi^0$ mass distribution in $f_1\to \pi^+\pi^-2\pi^0$ +XLabel=$m_{\pi^-\pi^+\pi^0}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^-\pi^+\pi^0}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/4pi0_pippi0pi0 +Title=$\pi^+2\pi^0$ mass distribution in $f_1\to \pi^+\pi^-2\pi^0$ +XLabel=$m_{\pi^+2\pi^0}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^+2\pi^0}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/4pi0_pimpi0pi0 +Title=$\pi^-2\pi^0$ mass distribution in $f_1\to \pi^+\pi^-2\pi^0$ +XLabel=$m_{\pi^-2\pi^0}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^-2\pi^0}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT +BEGIN PLOT /MC_F1_Decay/4pi0_4pi +Title=$\pi^-\pi^+2\pi^0$ mass distribution in $f_1\to \pi^+\pi^-2\pi^0$ +XLabel=$m_{\pi^-\pi^+2\pi^0}$ [GeV] +YLabel=$1/\Gamma{\rm d}\Gamma/{\rm d} m_{\pi^-\pi^+2\pi^0}$ [${\rm GeV}^{-1}$] +LogY=0 +END PLOT diff --git a/analyses/pluginMC/MC_Meson_Meson_Leptons_Decay.cc b/analyses/pluginMC/MC_Meson_Meson_Leptons_Decay.cc new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_Meson_Meson_Leptons_Decay.cc @@ -0,0 +1,241 @@ +// -*- C++ -*- +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/UnstableParticles.hh" +#include "Rivet/Tools/ParticleIdUtils.hh" + +namespace Rivet { + + + /// @brief Add a short analysis description here + class MC_Meson_Meson_Leptons_Decay : public Analysis { + public: + + /// Constructor + DEFAULT_RIVET_ANALYSIS_CTOR(MC_Meson_Meson_Leptons_Decay); + + + /// @name Analysis methods + //@{ + + /// Book histograms and initialise projections before the run + void init() { + + // Initialise and register projections + declare(UnstableParticles(),"UFS"); + + } + + void findDecayProducts(const Particle & mother, + unsigned int & nstable, + Particles& lp, Particles& lm, + Particles& scalar, + Particles& vector) { + for(const Particle & p : mother.children()) { + int id = p.pdgId(); + if ( id == PID::EMINUS || id == PID::MUON ) { + lm.push_back(p); + ++nstable; + } + else if (id == PID::EPLUS || id == PID::ANTIMUON) { + lp.push_back(p); + ++nstable; + } + else if (abs(id)%10==1 && PID::isMeson(id)) { + scalar.push_back(p); + ++nstable; + } + else if ((abs(id)%10==3 && PID::isMeson(id)) || + id==PID::PHOTON ) { + vector.push_back(p); + ++nstable; + } + else if ( !p.children().empty() ) { + findDecayProducts(p,nstable,lp,lm,scalar,vector); + } + else + ++nstable; + } + } + + /// Perform the per-event analysis + void analyze(const Event& event) { + // loop over unstable particles + for(const Particle& iMeson : apply(event, "UFS").particles()) { + // only consider scalar/vector mesons + long pid = iMeson.pdgId(); + if(!PID::isMeson(pid)) continue; + if(abs(pid)%10!=3 and abs(pid)%10!=1 ) continue; + Particles lp,lm,scalar,vector; + unsigned int nstable(0); + findDecayProducts(iMeson,nstable,lp,lm,scalar,vector); + if(nstable!=3 || lp.size()!=1 || lm.size()!=1 || lp[0].pdgId()!=-lm[0].pdgId()) continue; + if(scalar.size()==1) { + // check if we already have this decay + unsigned int ix=0; bool found(false); + while(!found&&ix<_incomingV.size()) { + if(_incomingV[ix]==pid && _outgoingP[ix]==scalar[0].pdgId() && + _outgoingf_V[ix]==lm[0].pdgId()) { + found=true; + } + else { + ++ix; + } + } + // create a new graph if needed + if(!found) { + ix=_incomingV.size(); + _incomingV.push_back(pid); + _outgoingP.push_back(scalar[0].pdgId()); + _outgoingf_V.push_back(lm[0].pdgId()); + ostringstream title; + title << "h_" << abs(pid); + if(pid>0) title << "p"; + else title << "m"; + title << "_" << abs(scalar[0].pdgId()); + if(scalar[0].pdgId()>0) title << "p"; + else title << "m"; + title << "_" << lm[0].pdgId() << "_"; + _mff_V .push_back(bookHisto1D(title.str()+"mff" , 200, 0., iMeson.mass())); + _mPf .push_back(bookHisto1D(title.str()+"mPf" , 200, 0., iMeson.mass())); + _mPfbar.push_back(bookHisto1D(title.str()+"mPfbar", 200, 0., iMeson.mass())); + } + // add the results to the histogram + _mff_V [ix]->fill((lm [0].momentum()+lp[0].momentum()).mass(),event.weight()); + _mPf [ix]->fill((scalar[0].momentum()+lm[0].momentum()).mass(),event.weight()); + _mPfbar[ix]->fill((scalar[0].momentum()+lp[0].momentum()).mass(),event.weight()); + } + else if(vector.size()==1) { + // check if we already have this decay + unsigned int ix=0; bool found(false); + while(!found&&ix<_incoming_P.size()) { + if(_incoming_P[ix]==pid && _outgoingV[ix]==vector[0].pdgId() && + _outgoingf_P[ix]==lm[0].pdgId()) { + found=true; + } + else { + ++ix; + } + } + // create a new graph if needed + if(!found) { + ix=_incoming_P.size(); + _incoming_P.push_back(pid); + _outgoingV.push_back(vector[0].pdgId()); + _outgoingf_P.push_back(lm[0].pdgId()); + ostringstream title; + title << "h2_" << abs(pid); + if(pid>0) title << "p"; + else title << "m"; + title << "_" << abs(vector[0].pdgId()); + if(vector[0].pdgId()>0) title << "p"; + else title << "m"; + title << "_" << lm[0].pdgId() << "_"; + _mff_P .push_back(bookHisto1D(title.str()+"mff" , 200, 0., iMeson.mass())); + _mVf .push_back(bookHisto1D(title.str()+"mVf" , 200, 0., iMeson.mass())); + _mVfbar.push_back(bookHisto1D(title.str()+"mVfbar", 200, 0., iMeson.mass())); + } + // add the results to the histogram + _mff_P [ix]->fill((lm [0].momentum()+lp[0].momentum()).mass(),event.weight()); + _mVf [ix]->fill((vector[0].momentum()+lm[0].momentum()).mass(),event.weight()); + _mVfbar[ix]->fill((vector[0].momentum()+lp[0].momentum()).mass(),event.weight()); + } + } + } + + /// Normalise histograms etc., after the run + void finalize() { + + // normalize to unity V->P + for(unsigned int ix=0;ix<_mff_V.size();++ix) { + normalize(_mff_V); + normalize(_mPf); + normalize(_mPfbar); + } + // normalize to unity P->V + for(unsigned int ix=0;ix<_mff_P.size();++ix) { + normalize(_mff_P); + normalize(_mVf); + normalize(_mVfbar); + } + + } + + //@} + + + + /// @name Histograms for V -> P + //@{ + /** + * PDG codes of the incoming particles + */ + vector _incomingV; + + /** + * PDG codes of the outgoing pseudoscalar mesons + */ + vector _outgoingP; + + /** + * PDG codes of the outgoing fermion + */ + vector _outgoingf_V; + + /** + * Histograms for the mass of the fermion-antifermion pair + */ + vector _mff_V; + + /** + * Histograms for the masses of the pseudoscalar and the fermion + */ + vector _mPf; + + /** + * Histograms for the masses of the pseudoscalar and the antifermion + */ + vector _mPfbar; + //@} + + /// @name Histograms P->V + //@{ + /** + * PDG codes of the incoming_P particles + */ + vector _incoming_P; + + /** + * PDG codes of the outgoing vector mesons + */ + vector _outgoingV; + + /** + * PDG codes of the outgoing fermion + */ + vector _outgoingf_P; + + /** + * Histograms for the mass of the fermion-antifermion pair + */ + vector _mff_P; + + /** + * Histograms for the masses of the vector and the fermion + */ + vector _mVf; + + /** + * Histograms for the masses of the vector and the antifermion + */ + vector _mVfbar; + //@} + + + }; + + + // The hook for the plugin system + DECLARE_RIVET_PLUGIN(MC_Meson_Meson_Leptons_Decay); + + +} diff --git a/analyses/pluginMC/MC_Meson_Meson_Leptons_Decay.info b/analyses/pluginMC/MC_Meson_Meson_Leptons_Decay.info new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_Meson_Meson_Leptons_Decay.info @@ -0,0 +1,9 @@ +Name: MC_Meson_Meson_Leptons_Decay +Summary: MC analyis of $V\to P \ell^+\ell^-$ and $P\to V \ell^+\ell^-$ decays +Status: VALIDATED +Authors: + - Peter Richardson +RunInfo: Any process producing vector or scalar meson decays +NeedCrossSection: no +Description: + 'A Monte Carlo analysis for the decay of vector mesons to a pseudoscalar meson, or a pseudoscalar meson to a vector meson, and an $e^+e^-$ or $\mu^+\mu^-$ pair. All such decays are automatically identified. Based on old Herwig++ internal analysis.' diff --git a/analyses/pluginMC/MC_Meson_Meson_Leptons_Decay.plot b/analyses/pluginMC/MC_Meson_Meson_Leptons_Decay.plot new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_Meson_Meson_Leptons_Decay.plot @@ -0,0 +1,368 @@ +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/d01-x01-y01 +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_.*_13_mff +XLabel=$m_{\mu^+\mu^-}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\mu^+\mu^-}$ [${\rm GeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_.*_13_mPf +XLabel=$m_{P\mu^-}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{P\mu^-}$ [${\rm GeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_.*_13_mPfbar +XLabel=$m_{P\mu^+}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{P\mu^+}$ [${\rm GeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_.*_11_mff +XLabel=$m_{e^+e^-}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{e^+e^-}$ [${\rm GeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_.*_11_mPf +XLabel=$m_{Pe^-}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{Pe^-}$ [${\rm GeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_.*_11_mPfbar +XLabel=$m_{Pe^+}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{Pe^+}$ [${\rm GeV}^{-1}$] +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_223p_111p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $\omega\to\pi^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_223p_111p_13_mPf +Title=$\pi^0\mu^-$ mass distribution in the decay $\omega\to\pi^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_223p_111p_13_mPfbar +Title=$\pi^0\mu^+$ mass distribution in the decay $\omega\to\pi^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_223p_111p_11_mff +Title=$e^+e^-$ mass distribution in the decay $\omega\to\pi^0e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_223p_111p_11_mPf +Title=$\pi^0e^-$ mass distribution in the decay $\omega\to\pi^0e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_223p_111p_11_mPfbar +Title=$\pi^0e^+$ mass distribution in the decay $\omega\to\pi^0e^+e^-$ +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_111p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $\phi\to\pi^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_111p_13_mPf +Title=$\pi^0\mu^-$ mass distribution in the decay $\phi\to\pi^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_111p_13_mPfbar +Title=$\pi^0\mu^+$ mass distribution in the decay $\phi\to\pi^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_111p_11_mff +Title=$e^+e^-$ mass distribution in the decay $\phi\to\pi^0e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_111p_11_mPf +Title=$\pi^0e^-$ mass distribution in the decay $\phi\to\pi^0e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_111p_11_mPfbar +Title=$\pi^0e^+$ mass distribution in the decay $\phi\to\pi^0e^+e^-$ +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_221p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $\phi\to\eta\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_221p_13_mPf +Title=$\eta\mu^-$ mass distribution in the decay $\phi\to\eta\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_221p_13_mPfbar +Title=$\eta\mu^+$ mass distribution in the decay $\phi\to\eta\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_221p_11_mff +Title=$e^+e^-$ mass distribution in the decay $\phi\to\eta e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_221p_11_mPf +Title=$\eta e^-$ mass distribution in the decay $\phi\to\eta e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_333p_221p_11_mPfbar +Title=$\eta e^+$ mass distribution in the decay $\phi\to\eta e^+e^-$ +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_221p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $\psi(2S)\to\eta\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_221p_13_mPf +Title=$\eta\mu^-$ mass distribution in the decay $\psi(2S)\to\eta\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_221p_13_mPfbar +Title=$\eta\mu^+$ mass distribution in the decay $\psi(2S)\to\eta\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_221p_11_mff +Title=$e^+e^-$ mass distribution in the decay $\psi(2S)\to\eta e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_221p_11_mPf +Title=$\eta e^-$ mass distribution in the decay $\psi(2S)\to\eta e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_221p_11_mPfbar +Title=$\eta e^+$ mass distribution in the decay $\psi(2S)\to\eta e^+e^-$ +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_111p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $\psi(2S)\to\pi^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_111p_13_mPf +Title=$\pi^0\mu^-$ mass distribution in the decay $\psi(2S)\to\pi^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_111p_13_mPfbar +Title=$\pi^0\mu^+$ mass distribution in the decay $\psi(2S)\to\pi^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_111p_11_mff +Title=$e^+e^-$ mass distribution in the decay $\psi(2S)\to\pi^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_111p_11_mPf +Title=$\pi^0 e^-$ mass distribution in the decay $\psi(2S)\to\pi^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h_100443p_111p_11_mPfbar +Title=$\pi^0 e^+$ mass distribution in the decay $\psi(2S)\to\pi^0 e^+e^-$ +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_.*_13_mff +XLabel=$m_{\mu^+\mu^-}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{\mu^+\mu^-}$ [${\rm GeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_.*_13_mVf +XLabel=$m_{V\mu^-}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{V\mu^-}$ [${\rm GeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_.*_13_mVfbar +XLabel=$m_{V\mu^+}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{V\mu^+}$ [${\rm GeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_.*_11_mff +XLabel=$m_{e^+e^-}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{e^+e^-}$ [${\rm GeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_.*_11_mVf +XLabel=$m_{Ve^-}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{Ve^-}$ [${\rm GeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_.*_11_mVfbar +XLabel=$m_{Ve^+}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d} m_{Ve^+}$ [${\rm GeV}^{-1}$] +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $\eta\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_13_mVf +Title=$\gamma\mu^-$ mass distribution in the decay $\eta\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_13_mVfbar +Title=$\gamma\mu^+$ mass distribution in the decay $\eta\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_11_mff +Title=$e^+e^-$ mass distribution in the decay $\eta\to\gamma e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_11_mVf +Title=$\gamma e^-$ mass distribution in the decay $\eta\to\gamma e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_11_mVfbar +Title=$\gamma e^+$ mass distribution in the decay $\eta\to\gamma e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $\eta\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_13_mVf +Title=$\gamma\mu^-$ mass distribution in the decay $\eta\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_13_mVfbar +Title=$\gamma\mu^+$ mass distribution in the decay $\eta\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_11_mff +Title=$e^+e^-$ mass distribution in the decay $\eta\to\gamma e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_11_mVf +Title=$\gamma e^-$ mass distribution in the decay $\eta\to\gamma e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_221p_22p_11_mVfbar +Title=$\gamma e^+$ mass distribution in the decay $\eta\to\gamma e^+e^-$ +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_111p_22p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $\pi^0\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_111p_22p_13_mVf +Title=$\gamma\mu^-$ mass distribution in the decay $\pi^0\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_111p_22p_13_mVfbar +Title=$\gamma\mu^+$ mass distribution in the decay $\pi^0\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_111p_22p_11_mff +Title=$e^+e^-$ mass distribution in the decay $\pi^0\to\gamma e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_111p_22p_11_mVf +Title=$\gamma e^-$ mass distribution in the decay $\pi^0\to\gamma e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_111p_22p_11_mVfbar +Title=$\gamma e^+$ mass distribution in the decay $\pi^0\to\gamma e^+e^-$ +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_331p_22p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $\eta^\prime\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_331p_22p_13_mVf +Title=$\gamma\mu^-$ mass distribution in the decay $\eta^\prime\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_331p_22p_13_mVfbar +Title=$\gamma\mu^+$ mass distribution in the decay $\eta^\prime\to\gamma\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_331p_22p_11_mff +Title=$e^+e^-$ mass distribution in the decay $\eta^\prime\to\gamma e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_331p_22p_11_mVf +Title=$\gamma e^-$ mass distribution in the decay $\eta^\prime\to\gamma e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_331p_22p_11_mVfbar +Title=$\gamma e^+$ mass distribution in the decay $\eta^\prime\to\gamma e^+e^-$ +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431p_213p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $D_s^+\to\rho^+\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431p_213p_13_mVf +Title=$\rho^+\mu^-$ mass distribution in the decay $D_s^+\to\rho^+\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431p_213p_13_mVfbar +Title=$\rho^+\mu^+$ mass distribution in the decay $D_s^+\to\rho^+\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431p_213p_11_mff +Title=$e^+e^-$ mass distribution in the decay $D_s^+\to\rho^+ e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431p_213p_11_mVf +Title=$\rho^+e^-$ mass distribution in the decay $D_s^+\to\rho^+ e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431p_213p_11_mVfbar +Title=$\rho^+e^+$ mass distribution in the decay $D_s^+\to\rho^+ e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431m_213m_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $D_s^-\to\rho^-\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431m_213m_13_mVf +Title=$\rho^-\mu^-$ mass distribution in the decay $D_s^-\to\rho^-\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431m_213m_13_mVfbar +Title=$\rho^-\mu^+$ mass distribution in the decay $D_s^-\to\rho^-\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431m_213m_11_mff +Title=$e^+e^-$ mass distribution in the decay $D_s^-\to\rho^- e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431m_213m_11_mVf +Title=$\rho^-e^-$ mass distribution in the decay $D_s^-\to\rho^- e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_431m_213m_11_mVfbar +Title=$\rho^-e^+$ mass distribution in the decay $D_s^-\to\rho^- e^+e^-$ +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521p_323p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $B^+\to{K^*}^+\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521p_323p_13_mVf +Title=${K^*}^+\mu^-$ mass distribution in the decay $B^+\to{K^*}^+\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521p_323p_13_mVfbar +Title=${K^*}^+\mu^+$ mass distribution in the decay $B^+\to{K^*}^+\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521p_323p_11_mff +Title=$e^+e^-$ mass distribution in the decay $B^+\to{K^*}^+ e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521p_323p_11_mVf +Title=${K^*}^+e^-$ mass distribution in the decay $B^+\to{K^*}^+ e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521p_323p_11_mVfbar +Title=${K^*}^+e^+$ mass distribution in the decay $B^+\to{K^*}^+ e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521m_323m_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $B^-\to{K^*}^-\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521m_323m_13_mVf +Title=${K^*}^-\mu^-$ mass distribution in the decay $B^-\to{K^*}^-\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521m_323m_13_mVfbar +Title=${K^*}^-\mu^+$ mass distribution in the decay $B^-\to{K^*}^-\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521m_323m_11_mff +Title=$e^+e^-$ mass distribution in the decay $B^-\to{K^*}^- e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521m_323m_11_mVf +Title=${K^*}^-e^-$ mass distribution in the decay $B^-\to{K^*}^- e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_521m_323m_11_mVfbar +Title=${K^*}^-e^+$ mass distribution in the decay $B^-\to{K^*}^- e^+e^-$ +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511p_313p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $B^0\to{K^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511p_313p_13_mVf +Title=${K^*}^0\mu^-$ mass distribution in the decay $B^0\to{K^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511p_313p_13_mVfbar +Title=${K^*}^0\mu^+$ mass distribution in the decay $B^0\to{K^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511p_313p_11_mff +Title=$e^+e^-$ mass distribution in the decay $B^0\to{K^*}^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511p_313p_11_mVf +Title=${K^*}^0e^-$ mass distribution in the decay $B^0\to{K^*}^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511p_313p_11_mVfbar +Title=${K^*}^0e^+$ mass distribution in the decay $B^0\to{K^*}^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511m_313m_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $\bar{B}^0\to{\bar{K}^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511m_313m_13_mVf +Title=${\bar{K}^*}^0\mu^-$ mass distribution in the decay $\bar{B}^0\to{\bar{K}^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511m_313m_13_mVfbar +Title=${\bar{K}^*}^0\mu^+$ mass distribution in the decay $\bar{B}^0\to{\bar{K}^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511m_313m_11_mff +Title=$e^+e^-$ mass distribution in the decay $\bar{B}^0\to{\bar{K}^*}^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511m_313m_11_mVf +Title=${\bar{K}^*}^0e^-$ mass distribution in the decay $\bar{B}^0\to{\bar{K}^*}^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_511m_313m_11_mVfbar +Title=${\bar{K}^*}^0e^+$ mass distribution in the decay $\bar{B}^0\to{\bar{K}^*}^0 e^+e^-$ +END PLOT + +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421m_313p_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $\bar{D}^0\to{K^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421m_313p_13_mVf +Title=${K^*}^0\mu^-$ mass distribution in the decay $\bar{D}^0\to{K^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421m_313p_13_mVfbar +Title=${K^*}^0\mu^+$ mass distribution in the decay $\bar{D}^0\to{K^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421m_313p_11_mff +Title=$e^+e^-$ mass distribution in the decay $\bar{D}^0\to{K^*}^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421m_313p_11_mVf +Title=${K^*}^0e^-$ mass distribution in the decay $\bar{D}^0\to{K^*}^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421m_313p_11_mVfbar +Title=${K^*}^0e^+$ mass distribution in the decay $\bar{D}^0\to{K^*}^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421p_313m_13_mff +Title=$\mu^+\mu^-$ mass distribution in the decay $D^0\to{\bar{K}^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421p_313m_13_mVf +Title=${\bar{K}^*}^0\mu^-$ mass distribution in the decay $D^0\to{\bar{K}^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421p_313m_13_mVfbar +Title=${\bar{K}^*}^0\mu^+$ mass distribution in the decay $D^0\to{\bar{K}^*}^0\mu^+\mu^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421p_313m_11_mff +Title=$e^+e^-$ mass distribution in the decay $D^0\to{\bar{K}^*}^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421p_313m_11_mVf +Title=${\bar{K}^*}^0e^-$ mass distribution in the decay $D^0\to{\bar{K}^*}^0 e^+e^-$ +END PLOT +BEGIN PLOT /MC_Meson_Meson_Leptons_Decay/h2_421p_313m_11_mVfbar +Title=${\bar{K}^*}^0e^+$ mass distribution in the decay $D^0\to{\bar{K}^*}^0 e^+e^-$ +END PLOT diff --git a/analyses/pluginMC/MC_Onium_PiPi_Decay.cc b/analyses/pluginMC/MC_Onium_PiPi_Decay.cc new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_Onium_PiPi_Decay.cc @@ -0,0 +1,152 @@ +// -*- C++ -*- +#include "Rivet/Analysis.hh" +#include "Rivet/Projections/UnstableParticles.hh" + +namespace Rivet { + + + /// @brief Add a short analysis description here + class MC_Onium_PiPi_Decay : public Analysis { + public: + + /// Constructor + DEFAULT_RIVET_ANALYSIS_CTOR(MC_Onium_PiPi_Decay); + + + /// @name Analysis methods + //@{ + + /// Book histograms and initialise projections before the run + void init() { + + // Initialise and register projections + declare(UnstableParticles(),"UFS"); + + } + + void findDecayProducts(const Particle & mother, + unsigned int & nstable, + Particles& pip, Particles& pim, + Particles& pi0, Particles & onium) { + for(const Particle & p : mother.children()) { + int id = p.pdgId(); + if ( id == PID::PIMINUS) { + pim.push_back(p); + ++nstable; + } + else if (id == PID::PIPLUS) { + pim.push_back(p); + ++nstable; + } + else if (id == PID::PI0) { + pi0.push_back(p); + ++nstable; + } + else if (abs(id)%1000==443 || abs(id)%1000==553) { + onium.push_back(p); + ++nstable; + } + else if ( !p.children().empty() ) { + findDecayProducts(p,nstable,pip,pim,pi0,onium); + } + else + ++nstable; + } + } + + /// Perform the per-event analysis + void analyze(const Event& event) { + double weight = event.weight(); + // loop over unstable particles + for(const Particle& vMeson : apply(event, "UFS").particles()) { + int id = vMeson.pdgId(); + if(id%1000!=443 && id%1000!=553) continue; + unsigned int nstable(0); + Particles pip, pim, pi0, onium; + findDecayProducts(vMeson,nstable,pip,pim,pi0,onium); + // check for onium + if(onium.size() !=1 || nstable !=3) continue; + // check for pipi + if( ! ((pip.size()==1 && pim.size() ==1) || pi0.size()==2)) continue; + // check if histos already made + unsigned int iloc=0; bool found(false); + while(!found&&iloc<_incoming.size()) { + if(_incoming[iloc]==vMeson.pdgId()&&_outgoing[iloc]==onium[0].pdgId()) found=true; + else ++iloc; + } + // if histos not made, make them + if(!found) { + double twompi = 0.378; + double upp = vMeson.mass()-onium[0].mass(); + iloc=_incoming.size(); + _incoming.push_back(vMeson.pdgId()); + _outgoing.push_back(onium[0].pdgId()); + ostringstream title; + title << "h_" << vMeson.pdgId() << "_" << onium[0].pdgId() << "_"; + _mpipi.push_back(make_pair(bookHisto1D(title.str()+"mpippim",200,twompi/GeV,upp/GeV), + bookHisto1D(title.str()+"mpi0pi0",200,twompi/GeV,upp/GeV))); + _hel .push_back(make_pair(bookHisto1D(title.str()+"hpippim",200,-1.,1.), + bookHisto1D(title.str()+"hpi0pi0",200, 0.,1.))); + } + // boost to rest frame of the pion pair + FourMomentum q = vMeson.momentum()-onium[0].momentum(); + LorentzTransform boost = LorentzTransform::mkFrameTransformFromBeta(q.betaVec()); + FourMomentum qp = onium[0].momentum(); + FourMomentum ppi= pip.size()==1 ? pip[0].momentum() : pi0[0].momentum(); + qp = boost.transform(qp); + ppi = boost.transform(ppi); + double cX=-ppi.p3().unit().dot(qp.p3().unit()); + if(pi0.size()==2) { + _mpipi[iloc].second->fill(q.mass(),weight); + _hel [iloc].second->fill(abs(cX),weight); + } + else { + _mpipi[iloc].first->fill(q.mass(),weight); + _hel [iloc].first->fill(cX,weight); + } + } + } + + + /// Normalise histograms etc., after the run + void finalize() { + + // normalize to unity + for(unsigned int ix=0;ix<_mpipi.size();++ix) { + normalize(_mpipi[ix].first ); + normalize(_mpipi[ix].second); + normalize(_hel[ix].first ); + normalize(_hel[ix].second); + } + } + + //@} + + /** + * Incoming onium states + */ + vector _incoming; + + /** + * Outgoing onium states + */ + vector _outgoing; + + /** + * Histograms for the \f$\pi^+\pi^-\f$ masses + */ + vector > _mpipi; + + /** + * Histmgrams for the helicity angles + */ + vector > _hel; + + }; + + + // The hook for the plugin system + DECLARE_RIVET_PLUGIN(MC_Onium_PiPi_Decay); + + +} diff --git a/analyses/pluginMC/MC_Onium_PiPi_Decay.info b/analyses/pluginMC/MC_Onium_PiPi_Decay.info new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_Onium_PiPi_Decay.info @@ -0,0 +1,10 @@ +Name: MC_Onium_PiPi_Decay +Summary: Analysis of kinematics in $\mathcal{O}\to\mathcal{O}^\prime\pi\pi$ decays +Status: VALIDATED +Authors: + - Peter Richardson +RunInfo: Any type of process producing bottom or charmonium mesons +NeedCrossSection: no +Description: + 'Analysis of the kinematics in the decay of bottom and charmonium resonances to lighter resonances and $\pi\pi$' + \ No newline at end of file diff --git a/analyses/pluginMC/MC_Onium_PiPi_Decay.plot b/analyses/pluginMC/MC_Onium_PiPi_Decay.plot new file mode 100644 --- /dev/null +++ b/analyses/pluginMC/MC_Onium_PiPi_Decay.plot @@ -0,0 +1,108 @@ +BEGIN PLOT /MC_Onium_PiPi_Decay/h_.*_mpi0pi0 +XLabel=$m_{\pi^0\pi^0}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d}m_{\pi^0\pi^0}$ [${\rm GeV}^{-1}$] +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_.*_mpippim +XLabel=$m_{\pi^+\pi^-}$ [GeV] +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d}m_{\pi^+\pi^-}$ [${\rm GeV}^{-1}$] +END PLOT + +BEGIN PLOT /MC_Onium_PiPi_Decay/h_.*_hpi0pi0 +XLabel=$\cos\chi$ +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d}\cos\chi$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_.*_hpippim +XLabel=$\cos\chi$ +YLabel=$1/\Gamma{\rm d} \Gamma/{\rm d}\cos\chi$ +END PLOT + +BEGIN PLOT /MC_Onium_PiPi_Decay/h_100443_443_mpi0pi0 +Title=$m_{\pi^0\pi^0}$ in the decay $\psi(2S)\to J/\psi\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_100443_443_mpippim +Title=$m_{\pi^+\pi^-}$ in the decay $\psi(2S)\to J/\psi\pi^+\pi^-$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_100443_443_hpi0pi0 +Title=Helicity angle in the decay $\psi(2S)\to J/\psi\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_100443_443_hpippim +Title=Helicity angle in the decay $\psi(2S)\to J/\psi\pi^+\pi^-$ +END PLOT + +BEGIN PLOT /MC_Onium_PiPi_Decay/h_30443_443_mpi0pi0 +Title=$m_{\pi^0\pi^0}$ in the decay $\psi(3770)\to J/\psi\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_30443_443_mpippim +Title=$m_{\pi^+\pi^-}$ in the decay $\psi(3770)\to J/\psi\pi^+\pi^-$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_30443_443_hpi0pi0 +Title=Helicity angle in the decay $\psi(3770)\to J/\psi\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_30443_443_hpippim +Title=Helicity angle in the decay $\psi(3770)\to J/\psi\pi^+\pi^-$ +END PLOT + +BEGIN PLOT /MC_Onium_PiPi_Decay/h_100553_553_mpi0pi0 +Title=$m_{\pi^0\pi^0}$ in the decay $\Upsilon(2S)\to \Upsilon\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_100553_553_mpippim +Title=$m_{\pi^+\pi^-}$ in the decay $\Upsilon(2S)\to \Upsilon\pi^+\pi^-$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_100553_553_hpi0pi0 +Title=Helicity angle in the decay $\Upsilon(2S)\to \Upsilon\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_100553_553_hpippim +Title=Helicity angle in the decay $\Upsilon(2S)\to \Upsilon\pi^+\pi^-$ +END PLOT + +BEGIN PLOT /MC_Onium_PiPi_Decay/h_200553_553_mpi0pi0 +Title=$m_{\pi^0\pi^0}$ in the decay $\Upsilon(3S)\to \Upsilon\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_200553_553_mpippim +Title=$m_{\pi^+\pi^-}$ in the decay $\Upsilon(3S)\to \Upsilon\pi^+\pi^-$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_200553_553_hpi0pi0 +Title=Helicity angle in the decay $\Upsilon(3S)\to \Upsilon\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_200553_553_hpippim +Title=Helicity angle in the decay $\Upsilon(3S)\to \Upsilon\pi^+\pi^-$ +END PLOT + +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_553_mpi0pi0 +Title=$m_{\pi^0\pi^0}$ in the decay $\Upsilon(4S)\to \Upsilon\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_553_mpippim +Title=$m_{\pi^+\pi^-}$ in the decay $\Upsilon(4S)\to \Upsilon\pi^+\pi^-$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_553_hpi0pi0 +Title=Helicity angle in the decay $\Upsilon(4S)\to \Upsilon\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_553_hpippim +Title=Helicity angle in the decay $\Upsilon(4S)\to \Upsilon\pi^+\pi^-$ +END PLOT + +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_100553_mpi0pi0 +Title=$m_{\pi^0\pi^0}$ in the decay $\Upsilon(4S)\to \Upsilon(2S)\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_100553_mpippim +Title=$m_{\pi^+\pi^-}$ in the decay $\Upsilon(4S)\to \Upsilon(2S)\pi^+\pi^-$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_100553_hpi0pi0 +Title=Helicity angle in the decay $\Upsilon(4S)\to \Upsilon(2S)\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_100553_hpippim +Title=Helicity angle in the decay $\Upsilon(4S)\to \Upsilon(2S)\pi^+\pi^-$ +END PLOT + +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_200553_mpi0pi0 +Title=$m_{\pi^0\pi^0}$ in the decay $\Upsilon(4S)\to \Upsilon(3S)\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_200553_mpippim +Title=$m_{\pi^+\pi^-}$ in the decay $\Upsilon(4S)\to \Upsilon(3S)\pi^+\pi^-$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_200553_hpi0pi0 +Title=Helicity angle in the decay $\Upsilon(4S)\to \Upsilon(3S)\pi^0\pi^0$ +END PLOT +BEGIN PLOT /MC_Onium_PiPi_Decay/h_300553_200553_hpippim +Title=Helicity angle in the decay $\Upsilon(4S)\to \Upsilon(3S)\pi^+\pi^-$ +END PLOT \ No newline at end of file