Rivet analyses referenceCLEO_2006_I733995Anti-deuteron production in $\Upsilon$ decaysExperiment: CLEO (CESR) Inspire ID: 733995 Status: VALIDATED NOHEPDATA Authors:
Beam energies: ANY Run details:
Measurement of the anti-deuteron spectrum in $\Upsilon(1S)$ decays. The data are taken from table 2 in the paper. Source code: CLEO_2006_I733995.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/UnstableParticles.hh"
4
5namespace Rivet {
6
7
8 /// @brief anti-deuteron spectrum in upslion decays
9 class CLEO_2006_I733995 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(CLEO_2006_I733995);
14
15
16 /// @name Analysis methods
17 /// @{
18
19 /// Book histograms and initialise projections before the run
20 void init() {
21 // Initialise and register projections
22 declare(UnstableParticles(), "UFS");
23 // histograms
24 book(_h_p,1,1,1);
25 book(_w_ups,"TMP/w_ups");
26 }
27
28 /// Recursively walk the decay tree to find decay products of @a p
29 void findDecayProducts(Particle mother, Particles& deut) {
30 // deuteron id code
31 static const long id = -1000010020;
32 for (const Particle& p: mother.children()) {
33 if (p.pid() == id) {
34 deut.push_back(p);
35 }
36 else if (!p.children().empty()) {
37 findDecayProducts(p, deut);
38 }
39 }
40 }
41
42 /// Perform the per-event analysis
43 void analyze(const Event& event) {
44 for (const Particle& ups : apply<UnstableParticles>(event, "UFS").particles(Cuts::pid==553) ) {
45 _w_ups->fill();
46 Particles deut;
47 findDecayProducts(ups, deut);
48 if (deut.empty()) continue;
49 LorentzTransform boost;
50 if (ups.p3().mod() > 1*MeV) {
51 boost = LorentzTransform::mkFrameTransformFromBeta(ups.mom().betaVec());
52 }
53 for (const Particle& p : deut) {
54 const double mom = boost.transform(p.mom()).p3().mod();
55 _h_p->fill(mom);
56 }
57 }
58 }
59
60
61 /// Normalise histograms etc., after the run
62 void finalize() {
63 const double fact = .817+.022;
64 scale(_h_p, 1e5/fact / *_w_ups);
65 }
66
67 /// @}
68
69
70 /// @name Histograms
71 /// @{
72 Histo1DPtr _h_p;
73 CounterPtr _w_ups;
74 /// @}
75
76
77 };
78
79
80 RIVET_DECLARE_PLUGIN(CLEO_2006_I733995);
81
82}
|