Rivet analyses referenceCLEOII_1994_I361356Spectra of $\Sigma_c^0$ and $\Sigma_c^{++}$ produced in $\Upsilon(4S)$ decaysExperiment: CLEOII (CESR) Inspire ID: 361356 Status: VALIDATED Authors:
Beam energies: ANY Run details:
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();
60 }
61 else {
62 _h_Sigma_0->fill(mom);
63 _b_Sigma_0->fill();
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 CounterPtr _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}
|