rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

MC_DECAY_F1

Analysis of kinematic distributions of $f_1$ meson decays
Experiment: ()
Status: VALIDATED
Authors:
  • Peter Richardson
No references listed
Beams: * *
Beam energies: ANY
Run details:
  • Any type of process producing f_1 mesons

Simple analysis of kinematic distributions in f_1 meson decays.

Source code: MC_DECAY_F1.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/UnstableParticles.hh"
  4
  5namespace Rivet {
  6
  7
  8  /// @brief Analysis of kinematic distributions of $f_1$ meson decays
  9  class MC_DECAY_F1 : public Analysis {
 10  public:
 11
 12    /// Constructor
 13    RIVET_DEFAULT_ANALYSIS_CTOR(MC_DECAY_F1);
 14
 15
 16    /// @name Analysis methods
 17    /// @{
 18
 19    /// Book histograms and initialise projections before the run
 20    void init() {
 21
 22      // Initialise and register projections
 23      declare(UnstableParticles(),"UFS");
 24
 25      // eta pi0 pi0 mode
 26      book(_h_eta0_etapi0, "eta0_etapi0"   , 70, 0.66, 1.36);
 27      book(_h_eta0_pi0pi0, "eta0_pi0pi0"   , 80, 0.2, 1.0);
 28      book(_h_eta0_etapi0pi0, "eta0_etapi0pi0", 70, 1.0, 1.7);
 29      // eta pi+pi- mode
 30      book(_h_eta1_etapip, "eta1_etapip"   , 70, 0.66, 1.36);
 31      book(_h_eta1_etapim, "eta1_etapim"   , 70, 0.66, 1.36);
 32      book(_h_eta1_pippim, "eta1_pippim"   , 80, 0.2, 1.0);
 33      book(_h_eta1_etapippim, "eta1_etapippim", 70, 1.0, 1.7);
 34      // pi+pi-2pi0
 35      book(_h_4pi0_pi0pi0, "4pi0_pi0pi0"   , 80, 0.2, 1.0);
 36      book(_h_4pi0_pippi0, "4pi0_pippi0"   , 80, 0.2, 1.0);
 37      book(_h_4pi0_pimpi0, "4pi0_pimpi0"   , 80, 0.2, 1.0);
 38      book(_h_4pi0_pippim, "4pi0_pippim"   , 80, 0.2, 1.0);
 39      book(_h_4pi0_pippimpi0, "4pi0_pippimpi0",100, 0.4, 1.4);
 40      book(_h_4pi0_pippi0pi0, "4pi0_pippi0pi0",100, 0.4, 1.4);
 41      book(_h_4pi0_pimpi0pi0, "4pi0_pimpi0pi0",100, 0.4, 1.4);
 42      book(_h_4pi0_4pi, "4pi0_4pi"      , 70, 1.0, 1.7);
 43      // 2pi+ 2pi- mode
 44      book(_h_4pi1_pippip, "4pi1_pippip"   , 80, 0.2, 1.0);
 45      book(_h_4pi1_pimpim, "4pi1_pimpim"   , 80, 0.2, 1.0);
 46      book(_h_4pi1_pippim, "4pi1_pippim"   , 80, 0.2, 1.0);
 47      book(_h_4pi1_pimpimpip, "4pi1_pimpimpip",100, 0.4, 1.4);
 48      book(_h_4pi1_pippippim, "4pi1_pippippim",100, 0.4, 1.4);
 49      book(_h_4pi1_4pi, "4pi1_4pi"      , 70, 1.0, 1.7);
 50    }
 51
 52    void findDecayProducts(const Particle & mother,
 53                           unsigned int & nstable,
 54                           Particles& pip, Particles& pim,
 55			   Particles& pi0, Particles& eta) {
 56      for(const Particle & p : mother.children()) {
 57        int id = p.pid();
 58        if ( id == PID::ETA ) {
 59	  eta.push_back(p);
 60	  ++nstable;
 61	}
 62         else if (id == PID::PIPLUS) {
 63           pip.push_back(p);
 64           ++nstable;
 65         }
 66         else if (id == PID::PIMINUS) {
 67           pim.push_back(p);
 68           ++nstable;
 69         }
 70	 else if (id == PID::PI0 ) {
 71           pi0.push_back(p);
 72	   ++nstable;
 73	 }
 74	 else if (id == PID::K0S   || id == PID::K0L ||
 75		  id == PID::KPLUS || id == PID::KMINUS)
 76	   ++nstable;
 77	 else if ( !p.children().empty() ) {
 78	   findDecayProducts(p,nstable,pip,pim,pi0,eta);
 79	 }
 80	 else
 81	   ++nstable;
 82      }
 83    }
 84
 85    /// Perform the per-event analysis
 86    void analyze(const Event& event) {
 87      // Loop over f_1 mesons
 88      for(const Particle& f1 : apply<UnstableParticles>(event, "UFS").particles(Cuts::abspid==20223)) {
 89	unsigned int nstable(0);
 90	Particles  pip, pim, pi0, eta;
 91	findDecayProducts(f1,nstable,pip, pim, pi0, eta);
 92	// pi+ pi- pi0 pi0
 93	if(nstable==4 && pip.size()==1 && pim.size()==1 && pi0.size()==2) {
 94	  _h_4pi0_pi0pi0->fill((pi0[0].momentum()+pi0[1].momentum()).mass(),1.);
 95	  _h_4pi0_pippi0->fill((pip[0].momentum()+pi0[0].momentum()).mass(),1.);
 96	  _h_4pi0_pippi0->fill((pip[0].momentum()+pi0[1].momentum()).mass(),1.);
 97	  _h_4pi0_pimpi0->fill((pim[0].momentum()+pi0[0].momentum()).mass(),1.);
 98	  _h_4pi0_pimpi0->fill((pim[0].momentum()+pi0[1].momentum()).mass(),1.);
 99	  _h_4pi0_pippim->fill((pip[0].momentum()+pim[0].momentum()).mass(),1.);
100	  _h_4pi0_pippimpi0->fill((pip[0].momentum()+pim[0].momentum()+pi0[0].momentum()).mass(),1.);
101	  _h_4pi0_pippimpi0->fill((pip[0].momentum()+pim[0].momentum()+pi0[1].momentum()).mass(),1.);
102	  _h_4pi0_pippi0pi0->fill((pi0[0].momentum()+pi0[1].momentum()+pip[0].momentum()).mass(),1.);
103	  _h_4pi0_pimpi0pi0->fill((pi0[0].momentum()+pi0[1].momentum()+pim[0].momentum()).mass(),1.);
104	  _h_4pi0_4pi->fill((pi0[0].momentum()+pi0[1].momentum()+pim[0].momentum()+pip[0].momentum()).mass(),1.);
105	}
106	else if(nstable==4 && pip.size()==2 && pim.size()==2) {
107	  _h_4pi1_pippip   ->fill((pip[0].momentum()+pip[1].momentum()).mass(),1.);
108	  _h_4pi1_pimpim   ->fill((pim[0].momentum()+pim[1].momentum()).mass(),1.);
109	  _h_4pi1_pippim   ->fill((pip[0].momentum()+pim[0].momentum()).mass(),1.);
110	  _h_4pi1_pippim   ->fill((pip[0].momentum()+pim[1].momentum()).mass(),1.);
111	  _h_4pi1_pippim   ->fill((pip[1].momentum()+pim[0].momentum()).mass(),1.);
112	  _h_4pi1_pippim   ->fill((pip[1].momentum()+pim[1].momentum()).mass(),1.);
113	  _h_4pi1_pimpimpip->fill((pim[0].momentum()+pim[1].momentum()+pip[0].momentum()).mass(),1.);
114	  _h_4pi1_pimpimpip->fill((pim[0].momentum()+pim[1].momentum()+pip[1].momentum()).mass(),1.);
115	  _h_4pi1_pippippim->fill((pip[0].momentum()+pip[1].momentum()+pim[0].momentum()).mass(),1.);
116	  _h_4pi1_pippippim->fill((pip[0].momentum()+pip[1].momentum()+pim[1].momentum()).mass(),1.);
117	  _h_4pi1_4pi      ->fill((pip[0].momentum()+pip[1].momentum()+
118				   pim[0].momentum()+pim[1].momentum()).mass(),1.);
119	}
120	else if(nstable==3 && eta.size()==1 && pip.size()==1 && pim.size()==1) {
121	  _h_eta1_etapip   ->fill((eta[0].momentum()+pip[0].momentum()).mass(),1.);
122	  _h_eta1_etapim   ->fill((eta[0].momentum()+pim[0].momentum()).mass(),1.);
123	  _h_eta1_pippim   ->fill((pim[0].momentum()+pip[0].momentum()).mass(),1.);
124	  _h_eta1_etapippim->fill((eta[0].momentum()+pim[0].momentum()+pip[0].momentum()).mass(),1.);
125	}
126	else if(nstable==3 && eta.size()==1 && pi0.size()==2 ) {
127	  _h_eta0_etapi0   ->fill((eta[0].momentum()+pi0[0].momentum()).mass(),1.);
128	  _h_eta0_etapi0   ->fill((eta[0].momentum()+pi0[1].momentum()).mass(),1.);
129	  _h_eta0_pi0pi0   ->fill((pi0[0].momentum()+pi0[1].momentum()).mass(),1.);
130	  _h_eta0_etapi0pi0->fill((eta[0].momentum()+pi0[0].momentum()+pi0[1].momentum()).mass(),1.);
131	}
132      }
133    }
134
135
136    /// Normalise histograms etc., after the run
137    void finalize() {
138
139      normalize(_h_eta0_etapi0   );
140      normalize(_h_eta0_pi0pi0   );
141      normalize(_h_eta0_etapi0pi0);
142
143      normalize(_h_eta1_etapip);
144      normalize(_h_eta1_etapim);
145      normalize(_h_eta1_pippim);
146      normalize(_h_eta1_etapippim);
147
148      normalize(_h_4pi0_pi0pi0);
149      normalize(_h_4pi0_pippi0);
150      normalize(_h_4pi0_pimpi0);
151      normalize(_h_4pi0_pippim);
152      normalize(_h_4pi0_pippimpi0);
153      normalize(_h_4pi0_pippi0pi0);
154      normalize(_h_4pi0_pimpi0pi0);
155      normalize(_h_4pi0_4pi);
156
157      normalize(_h_4pi1_pippip);
158      normalize(_h_4pi1_pimpim);
159      normalize(_h_4pi1_pippim);
160      normalize(_h_4pi1_pimpimpip);
161      normalize(_h_4pi1_pippippim);
162      normalize(_h_4pi1_4pi);
163    }
164
165    /// @}
166
167
168    // @name Histograms
169    /// @{
170    Histo1DPtr _h_eta0_etapi0,_h_eta0_pi0pi0,_h_eta0_etapi0pi0;
171    Histo1DPtr _h_eta1_etapip,_h_eta1_etapim,_h_eta1_pippim,_h_eta1_etapippim;
172    Histo1DPtr _h_4pi0_pi0pi0,_h_4pi0_pippi0,_h_4pi0_pimpi0,_h_4pi0_pippim,_h_4pi0_pippimpi0,_h_4pi0_pippi0pi0,
173      _h_4pi0_pimpi0pi0,_h_4pi0_4pi;
174    Histo1DPtr _h_4pi1_pippip,_h_4pi1_pimpim,_h_4pi1_pippim,_h_4pi1_pimpimpip,_h_4pi1_pippippim,_h_4pi1_4pi;
175    /// @}
176
177
178  };
179
180
181  RIVET_DECLARE_PLUGIN(MC_DECAY_F1);
182
183}