Rivet analyses referenceCDF_1988_I263320CDF transverse momentum distributions at 630 GeV and 1800 GeV.Experiment: CDF (Tevatron Run I) Inspire ID: 263320 Status: VALIDATED Authors:
Beam energies: (315.0, 315.0); (900.0, 900.0) GeV Run details:
Transverse momentum distributions at 630 GeV and 1800 GeV based on data from the CDF experiment at the Tevatron collider. Beam energy must be specified (in GeV) as analysis option "ENERGY" when rivet-merging samples. Source code: CDF_1988_I263320.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/ChargedFinalState.hh"
4#include "Rivet/Projections/TriggerCDFRun0Run1.hh"
5
6namespace Rivet {
7
8
9 /// @brief CDF track \f$ p_\perp \f$ distributions at 630 and 1800 GeV
10 class CDF_1988_I263320 : public Analysis {
11 public:
12
13 RIVET_DEFAULT_ANALYSIS_CTOR(CDF_1988_I263320);
14
15
16 /// @name Analysis methods
17 /// @{
18
19 /// Book histograms and set up projections
20 void init() {
21 // Set up projections
22 declare(TriggerCDFRun0Run1(), "Trigger");
23 const ChargedFinalState cfs((Cuts::etaIn(-1.0, 1.0) && Cuts::pT >= 0.4*GeV));
24 declare(cfs, "CFS");
25
26 // Book histo
27 if (isCompatibleWithSqrtS(1800*GeV)) {
28 book(_hist_pt, 1, 1, 1);
29 _axis = YODA::Axis<double>{0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0125, 1.1, 1.2, 1.3,
30 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.025,
31 3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.4, 4.6, 4.8, 5.05, 5.4, 5.8, 6.2, 6.6, 7.15, 8.25, 9.75};
32 }
33 else if (isCompatibleWithSqrtS(630*GeV)) {
34 book(_hist_pt, 2, 1, 1);
35 _axis = YODA::Axis<double>{0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0125, 1.1, 1.2, 1.3,
36 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.025, 2.2, 2.4, 2.6, 2.8, 3.2, 3.8};
37 }
38
39 book(_sumWTrig, "sumWTrig");
40
41 }
42
43
44 /// Do the analysis
45 void analyze(const Event& event) {
46 if (_edges.empty()) _edges = _hist_pt->xEdges();
47 // Trigger
48 const bool trigger = apply<TriggerCDFRun0Run1>(event, "Trigger").minBiasDecision();
49 if (!trigger) vetoEvent;
50 _sumWTrig->fill();
51
52 const FinalState& trackfs = apply<ChargedFinalState>(event, "CFS");
53 for (Particle p : trackfs.particles()) {
54 const double pt = p.pT()/GeV;
55 // Effective weight for d3sig/dp3 = weight / ( Delta eta * 2pi * pt ), with Delta(eta) = 2
56 const double eff_weight = 1.0/(2*2*TWOPI*pt);
57 _hist_pt->fill(map2string(pt), eff_weight);
58 }
59 }
60
61
62 string map2string(const double value) const {
63 const size_t idx = _axis.index(value);
64 if (idx && idx < _edges.size() + 1) return _edges[idx-1];
65 return "OTHER";
66 }
67
68 /// Scale histos
69 void finalize() {
70 scale(_hist_pt, crossSectionPerEvent()/millibarn);
71 for (auto& b : _hist_pt->bins()) {
72 b.scaleW(1.0/_axis.width(b.index()));
73 }
74 }
75
76 /// @}
77
78
79 private:
80
81 /// Counter
82 CounterPtr _sumWTrig;
83
84 /// Histo
85 BinnedHistoPtr<string> _hist_pt;
86 YODA::Axis<double> _axis;
87 vector<string> _edges;
88
89 };
90
91
92
93 RIVET_DECLARE_ALIASED_PLUGIN(CDF_1988_I263320, CDF_1988_S1865951);
94
95}
|