Rivet analyses referenceCLEOII_1997_I442910Spectra of $\Xi_c^0$ and $\Xi_c^+$ produced in $\Upsilon(4S)$ decaysExperiment: CLEOII (CESR) Inspire ID: 442910 Status: VALIDATED Authors:
Beam energies: ANY Run details:
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// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/UnstableParticles.hh"
4
5namespace Rivet {
6
7
8 /// @brief Xi_c0 Xi_c+ spectrum in upsilon(4s) decays
9 class CLEOII_1997_I442910 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(CLEOII_1997_I442910);
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(_h_Xi_c0 ,1,1,1);
25 book(_h_Xi_cPlus,2,1,1);
26 }
27
28 void findDecayProducts(Particle parent, Particles & Xic) {
29 for(const Particle & p : parent.children()) {
30 int id = abs(p.pid());
31 if(id==4132 || id==4232) {
32 Xic.push_back(p);
33 }
34 else if(!p.children().empty()) {
35 findDecayProducts(p,Xic);
36 }
37 }
38 }
39
40 /// Perform the per-event analysis
41 void analyze(const Event& event) {
42 // Find the upsilons
43 for (const Particle& p : apply<UnstableParticles>(event, "UFS").particles(Cuts::pid==300553)) {
44 // Find the decay products we want
45 Particles Xic;
46 findDecayProducts(p, Xic);
47 if(Xic.empty()) continue;
48 LorentzTransform boost;
49 if (p.p3().mod() > 1*MeV)
50 boost = LorentzTransform::mkFrameTransformFromBeta(p.momentum().betaVec());
51
52 for(const Particle & xi : Xic) {
53 double Emax = sqrt(0.25*sqr(p.mass())-sqr(xi.mass()));
54 double xp = boost.transform(xi.momentum()).vector3().mod()/Emax;
55 if(xi.abspid()==4132)
56 _h_Xi_c0->fill(xp);
57 else
58 _h_Xi_cPlus->fill(xp);
59 }
60 }
61 }
62
63
64 /// Normalise histograms etc., after the run
65 void finalize() {
66 // normalize to the data as norm in hepdata is weird
67 normalize(_h_Xi_c0 ,0.144);
68 normalize(_h_Xi_cPlus,0.453);
69
70 }
71
72 /// @}
73
74 /// @name Histograms
75 /// @{
76 Histo1DPtr _h_Xi_c0, _h_Xi_cPlus;
77 /// @}
78
79 };
80
81
82 RIVET_DECLARE_PLUGIN(CLEOII_1997_I442910);
83
84}
|