00001
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/RivetAIDA.hh"
00004 #include "Rivet/Tools/Logging.hh"
00005 #include "Rivet/Projections/FinalState.hh"
00006 #include "Rivet/Projections/FastJets.hh"
00007
00008 namespace Rivet {
00009
00010
00011
00012 class CDF_1996_S3108457 : public Analysis {
00013 public:
00014
00015
00016
00017
00018
00019 CDF_1996_S3108457()
00020 : Analysis("CDF_1996_S3108457")
00021 {
00022 setBeams(PROTON, ANTIPROTON);
00023 setNeedsCrossSection(true);
00024 }
00025
00026
00027
00028
00029 public:
00030
00031
00032
00033
00034
00035 void init() {
00036
00037
00038 const FinalState fs(-4.2, 4.2);
00039 addProjection(FastJets(fs, FastJets::CDFJETCLU, 0.7), "Jets");
00040
00041
00042
00043 for (size_t i=0; i<5; ++i) {
00044 _h_m[i] = bookHistogram1D(1+i, 1, 1);
00045 _h_costheta[i] = bookHistogram1D(10+i, 1, 1);
00046 _h_pT[i] = bookHistogram1D(15+i, 1, 1);
00047 }
00048
00049 }
00050
00051
00052
00053 void analyze(const Event& event) {
00054 const double weight = event.weight();
00055
00056
00057 Jets jets;
00058 double sumEt = 0.0;
00059 FourMomentum jetsystem(0.0, 0.0, 0.0, 0.0);
00060 foreach (const Jet& jet, applyProjection<FastJets>(event, "Jets").jetsByEt()) {
00061 double Et = jet.momentum().Et();
00062 if (Et > 20.0*GeV) {
00063 jets.push_back(jet);
00064 sumEt += Et;
00065 jetsystem += jet.momentum();
00066 }
00067 }
00068
00069
00070 if (jets.size() < 2 || jets.size() > 6) {
00071 vetoEvent;
00072 }
00073
00074 if (sumEt < 420.0*GeV) {
00075 vetoEvent;
00076 }
00077
00078 LorentzTransform cms_boost(-jetsystem.boostVector());
00079 FourMomentum jet0boosted(cms_boost.transform(jets[0].momentum()));
00080
00081 double mass = jetsystem.mass();
00082 double costheta0 = fabs(cos(jet0boosted.theta()));
00083
00084 if (costheta0 < 2.0/3.0) {
00085 _h_m[jets.size()-2]->fill(mass, weight);
00086 }
00087
00088 if (mass > 600.0*GeV) {
00089 _h_costheta[jets.size()-2]->fill(costheta0, weight);
00090 }
00091
00092 if (costheta0 < 2.0/3.0 && mass > 600.0*GeV) {
00093 foreach (const Jet jet, jets) {
00094 _h_pT[jets.size()-2]->fill(jet.momentum().pT(), weight);
00095 }
00096 }
00097 }
00098
00099
00100
00101 void finalize() {
00102
00103
00104 for (size_t i=0; i<5; ++i) {
00105 normalize(_h_m[i], 40.0);
00106 normalize(_h_costheta[i], 2.0);
00107 normalize(_h_pT[i], 20.0);
00108 }
00109
00110 }
00111
00112
00113
00114
00115 private:
00116
00117
00118
00119
00120 AIDA::IHistogram1D *_h_m[5];
00121 AIDA::IHistogram1D *_h_costheta[5];
00122 AIDA::IHistogram1D *_h_pT[5];
00123
00124
00125
00126 };
00127
00128
00129
00130
00131 AnalysisBuilder<CDF_1996_S3108457> plugin_CDF_1996_S3108457;
00132
00133
00134 }