Rivet analyses referenceARGUS_1995_I397794Spectrum for D+s2 production at 10.58 GeVExperiment: ARGUS (DORIS) Inspire ID: 397794 Status: VALIDATED Authors:
Beam energies: (5.3, 5.3) GeV Run details:
Spectrum for D+s2 production at 10.58 GeV measured by ARGUS. Source code: ARGUS_1995_I397794.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/Beam.hh"
4#include "Rivet/Projections/UnstableParticles.hh"
5
6namespace Rivet {
7
8
9 /// @brief Spectrum for D_s2+
10 class ARGUS_1995_I397794 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(ARGUS_1995_I397794);
15
16
17 /// @name Analysis methods
18 /// @{
19
20 /// Book histograms and initialise projections before the run
21 void init() {
22 // projections
23 declare(Beam(), "Beams");
24 declare(UnstableParticles(), "UFS");
25 // book histos
26 book(_h_rate1,1,1,1);
27 book(_h_rate2,1,2,1);
28 book(_h_x,2,1,1);
29 }
30
31
32 /// Perform the per-event analysis
33 void analyze(const Event& event) {
34 static const int idDs2 = 435;
35 // Get beams and average beam momentum
36 const ParticlePair& beams = apply<Beam>(event, "Beams").beams();
37 const double Emax = ( beams.first.p3().mod() + beams.second.p3().mod() ) / 2.0;
38 const double Pmax = sqrt(sqr(Emax)-sqr(2.625));
39 const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
40 for (const Particle& p : ufs.particles(Cuts::abspid==idDs2)) {
41 double xp = p.momentum().p3().mod()/Pmax;
42 _h_x->fill(xp);
43 int sign = p.pid()/p.abspid();
44 if(p.children().size()!=2) continue;
45 if(p.children()[0].pid()==sign*421 &&
46 p.children()[1].pid()==sign*321) {
47 _h_rate1->fill(xp);
48 _h_rate2->fill(xp);
49 }
50 else if(p.children()[1].pid()==sign*421 &&
51 p.children()[0].pid()==sign*321) {
52 _h_rate1->fill(xp);
53 _h_rate2->fill(xp);
54 }
55 }
56 }
57
58
59 /// Normalise histograms etc., after the run
60 void finalize() {
61 normalize(_h_x);
62 scale(_h_rate1,0.3*crossSection()/sumOfWeights()/picobarn);
63 scale(_h_rate2,crossSection()/sumOfWeights()/picobarn);
64 }
65
66 /// @}
67
68
69 /// @name Histograms
70 /// @{
71 Histo1DPtr _h_x,_h_rate1,_h_rate2;
72 /// @}
73
74
75 };
76
77
78 RIVET_DECLARE_PLUGIN(ARGUS_1995_I397794);
79
80}
|