Processing math: 100%
rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BABAR_2005_I686354

π+π mass distribution in Y(4260)J/ψπ+π
Experiment: BABAR (PEP-II)
Inspire ID: 686354
Status: VALIDATED NOHEPDATA
Authors:
  • Peter Richardson
References:
  • Phys.Rev.Lett. 95 (2005) 142001
Beams: * *
Beam energies: ANY
Run details:
  • Any process producing psi(4230) for decays

Mass distribution in Y(4260)J/ψπ+π decays (Y(4260) is now ψ(4230)). The background subtracted data were read from figure 3 in the paper. There is no consensus as to the nature of the ψ(4230) cˉc state and therefore we taken its PDG code to be 9030443, i.e. the first unused code for an undetermined spin one cˉc state. This can be changed using the PID option if a different code is used by the event generator performing the simulation.

Source code: BABAR_2005_I686354.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 Y(4260) -> pi+ pi_ J/psi
10  class BABAR_2005_I686354 : public Analysis {
11  public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(BABAR_2005_I686354);
15
16
17    /// @name Analysis methods
18    /// @{
19
20    /// Book histograms and initialise projections before the run
21    void init() {
22      _pid = getOption<int>("PID", 9030443);
23      // projections
24      UnstableParticles ufs = UnstableParticles(Cuts::abspid==_pid);
25      declare(ufs, "UFS");
26      DecayedParticles PSI(ufs);
27      PSI.addStable(443);
28      declare(PSI, "PSI");
29      // histograms
30      book(_h,1,1,1);
31    }
32
33
34    /// Perform the per-event analysis
35    void analyze(const Event& event) {
36      static const map<PdgId,unsigned int> & mode = { { 211,1}, {-211,1}, { 443,1}};
37      DecayedParticles PSI = apply<DecayedParticles>(event, "PSI");
38      for(unsigned int ix=0;ix<PSI.decaying().size();++ix) {
39	if (!PSI.modeMatches(ix,3,mode)) continue;
40	const Particle & pip  = PSI.decayProducts()[ix].at( 211)[0];
41	const Particle & pim  = PSI.decayProducts()[ix].at(-211)[0];
42	double mpipi = (pip.momentum()+pim.momentum()).mass();
43	_h->fill(mpipi);
44      }
45    }
46
47    /// Normalise histograms etc., after the run
48    void finalize() {
49      normalize(_h,1.,false);
50    }
51
52    /// @}
53
54
55    /// @name Histograms
56    /// @{
57    int _pid;
58    Histo1DPtr _h;
59    /// @}
60
61
62  };
63
64
65  RIVET_DECLARE_PLUGIN(BABAR_2005_I686354);
66
67}