1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
| // -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
#include "Rivet/Projections/FinalState.hh"
namespace Rivet {
class CMS_2012_I1193338 : public Analysis {
public:
CMS_2012_I1193338()
: Analysis("CMS_2012_I1193338")
{ }
void init() {
declare(ChargedFinalState((Cuts::etaIn(-2.4, 2.4) && Cuts::pT >= 0.2*GeV)), "CFS");
declare(FinalState(), "FS");
book(_h_sigma ,1, 1, 1);
}
void analyze(const Event& event) {
const double weight = 1.0;
const ChargedFinalState& cfs = apply<ChargedFinalState>(event, "CFS");
if (cfs.size() > 1) {_h_sigma->fill(1.5, weight);}
if (cfs.size() > 2) {_h_sigma->fill(2.5, weight);}
if (cfs.size() > 3) {_h_sigma->fill(3.5, weight);}
const FinalState& fs = apply<FinalState>(event, "FS");
if (fs.size() < 2) vetoEvent; // need at least two particles to calculate gaps
double gapcenter = 0.;
double LRG = 0.;
double etapre = 0.;
bool first = true;
for(const Particle& p : fs.particles(cmpMomByEta)) { // sorted from minus to plus
if (first) { // First particle
first = false;
etapre = p.eta();
} else {
double gap = fabs(p.eta()-etapre);
if (gap > LRG) {
LRG = gap; // largest gap
gapcenter = (p.eta()+etapre)/2.; // find the center of the gap to separate the X and Y systems.
}
etapre = p.eta();
}
}
FourMomentum mxFourVector, myFourVector;
for(const Particle& p : fs.particles(cmpMomByEta)) {
((p.eta() > gapcenter) ? mxFourVector : myFourVector) += p.momentum();
}
const double M2 = max(mxFourVector.mass2(), myFourVector.mass2());
const double xi = M2/sqr(sqrtS()); // sqrt(s)=7000 GeV, note that units cancel
if (xi < 5e-6) vetoEvent;
_h_sigma->fill(0.5, weight);
}
void finalize() {
scale(_h_sigma, crossSection()/millibarn/sumOfWeights());
}
private:
Histo1DPtr _h_sigma;
};
// The hook for the plugin system
RIVET_DECLARE_PLUGIN(CMS_2012_I1193338);
}
|