rivet is hosted by Hepforge, IPPP Durham

## Rivet analyses reference

### CLEOII_1997_I442910

Spectra of $\Xi_c^0$ and $\Xi_c^+$ produced in $\Upsilon(4S)$ decays
Experiment: CLEOII (CESR)
Inspire ID: 442910
Status: VALIDATED
Authors:
• Peter Richardson
References:
• Phys.Rev.Lett. 79 (1997) 3599-3603
Beams: * *
Beam energies: ANY
Run details:
• Any process producing Upsilon(4S), originally e+e-

Spectra of $\Xi_c^0$ and $\Xi_c^+$ produced in $\Upsilon(4S)$ decays measured by the CLEO collaboration. The simluation is normalised to the integrated result in the paper.

Source code: CLEOII_1997_I442910.cc
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/UnstableParticles.hh" namespace Rivet { /// @brief Xi_c0 Xi_c+ spectrum in upsilon(4s) decays class CLEOII_1997_I442910 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(CLEOII_1997_I442910); /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // projections declare(UnstableParticles(), "UFS"); // book histos book(_h_Xi_c0 ,1,1,1); book(_h_Xi_cPlus,2,1,1); } void findDecayProducts(Particle parent, Particles & Xic) { for(const Particle & p : parent.children()) { int id = abs(p.pid()); if(id==4132 || id==4232) { Xic.push_back(p); } else if(!p.children().empty()) { findDecayProducts(p,Xic); } } } /// Perform the per-event analysis void analyze(const Event& event) { // Find the upsilons for (const Particle& p : apply(event, "UFS").particles(Cuts::pid==300553)) { // Find the decay products we want Particles Xic; findDecayProducts(p, Xic); if(Xic.empty()) continue; LorentzTransform boost; if (p.p3().mod() > 1*MeV) boost = LorentzTransform::mkFrameTransformFromBeta(p.momentum().betaVec()); for(const Particle & xi : Xic) { double Emax = sqrt(0.25*sqr(p.mass())-sqr(xi.mass())); double xp = boost.transform(xi.momentum()).vector3().mod()/Emax; if(xi.abspid()==4132) _h_Xi_c0->fill(xp); else _h_Xi_cPlus->fill(xp); } } } /// Normalise histograms etc., after the run void finalize() { // normalize to the data as norm in hepdata is weird normalize(_h_Xi_c0 ,0.144); normalize(_h_Xi_cPlus,0.453); } //@} /// @name Histograms //@{ Histo1DPtr _h_Xi_c0, _h_Xi_cPlus; //@} }; DECLARE_RIVET_PLUGIN(CLEOII_1997_I442910); }