rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CLEOII_1994_I361356

Spectra of $\Sigma_c^0$ and $\Sigma_c^{++}$ produced in $\Upsilon(4S)$ decays
Experiment: CLEOII (CESR)
Inspire ID: 361356
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Rev.Lett. 73 (1994) 1472-1476
Beams: * *
Beam energies: ANY
Run details:
  • Any process producing Upsilon(4S), originally e+e-

Spectra of $\Sigma_c^0$ and $\Sigma_c^{++}$ produced in $\Upsilon(4S)$ decays measured by the CLEO collaboration.

Source code: CLEOII_1994_I361356.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/UnstableParticles.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief Sigma_c 0,++ spectra
 9  class CLEOII_1994_I361356 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(CLEOII_1994_I361356);
14
15
16    /// @name Analysis methods
17    /// @{
18
19    /// Book histograms and initialise projections before the run
20    void init() {
21      // projections
22      declare(UnstableParticles(), "UFS");
23      // book histos
24      book(_b_Sigma_pp,1,1,1);
25      book(_b_Sigma_0 ,1,1,2);
26      book(_h_Sigma_pp,2,1,1);
27      book(_h_Sigma_0 ,2,1,2);
28      book(_c_ups,"TMP/c_ups");
29    }
30
31    void findDecayProducts(Particle parent, Particles & Sigma) {
32      for(const Particle & p : parent.children()) {
33        int id = abs(p.pid());
34	if(id==4112 || id==4222) {
35	  Sigma.push_back(p);
36	}
37	else if(!p.children().empty()) {
38	  findDecayProducts(p,Sigma);
39	}
40      }
41    }
42
43    /// Perform the per-event analysis
44    void analyze(const Event& event) {
45      // Find the upsilons
46      for (const Particle& p : apply<UnstableParticles>(event, "UFS").particles(Cuts::pid==300553)) {
47	_c_ups->fill();
48        // Find the decay products we want
49	Particles Sigma;
50        findDecayProducts(p, Sigma);
51	if(Sigma.empty()) continue;
52        LorentzTransform boost;
53        if (p.p3().mod() > 1*MeV)
54          boost = LorentzTransform::mkFrameTransformFromBeta(p.momentum().betaVec());
55	for(const Particle & sig : Sigma) {
56	  double mom = boost.transform(sig.momentum()).vector3().mod();
57	  if(sig.abspid()==4222) {
58	    _h_Sigma_pp->fill(mom);
59	    _b_Sigma_pp->fill(0.5);
60	  }
61	  else {
62	    _h_Sigma_0->fill(mom);
63	    _b_Sigma_0->fill(0.5);
64	  }
65	}
66      }
67    }
68
69    /// Normalise histograms etc., after the run
70    void finalize() {
71      scale(_h_Sigma_0 , 0.5/ *_c_ups);
72      scale(_h_Sigma_pp, 0.5/ *_c_ups);
73      scale(_b_Sigma_0 , 0.5/ *_c_ups);
74      scale(_b_Sigma_pp, 0.5/ *_c_ups);
75    }
76
77    /// @}
78
79
80    /// @name Histograms
81    /// @{
82    Histo1DPtr _h_Sigma_0, _h_Sigma_pp;
83    Histo1DPtr _b_Sigma_0, _b_Sigma_pp;
84    CounterPtr _c_ups;
85    /// @}
86
87
88  };
89
90
91  RIVET_DECLARE_PLUGIN(CLEOII_1994_I361356);
92
93}