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