00001
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/RivetAIDA.hh"
00004 #include "Rivet/Tools/Logging.hh"
00005 #include "Rivet/Projections/FastJets.hh"
00006 #include "Rivet/Projections/VetoedFinalState.hh"
00007 #include "Rivet/Projections/VisibleFinalState.hh"
00008 #include "Rivet/Projections/JetShape.hh"
00009
00010 namespace Rivet {
00011
00012
00013
00014
00015
00016 class CDF_2005_S6217184 : public Analysis {
00017 public:
00018
00019
00020 CDF_2005_S6217184()
00021 : Analysis("CDF_2005_S6217184")
00022 {
00023 setBeams(PROTON, ANTIPROTON);
00024 }
00025
00026
00027
00028
00029 void init() {
00030
00031 const FinalState fs(-2.0, 2.0);
00032 addProjection(fs, "FS");
00033 addProjection(FastJets(fs, FastJets::CDFMIDPOINT, 0.7), "Jets");
00034
00035
00036 VisibleFinalState visfs(fs);
00037 VetoedFinalState vfs(visfs);
00038 vfs.addVetoPairDetail(MUON, 1.0*GeV, MAXDOUBLE);
00039 addProjection(JetShape(vfs, _jetaxes, 0.0, 0.7, 0.1, 0.3), "JetShape");
00040
00041
00042 _pTbins += 37.0, 45.0, 55.0, 63.0, 73.0, 84.0, 97.0, 112.0, 128.0,
00043 148.0, 166.0, 186.0, 208.0, 229.0, 250.0, 277.0, 304.0, 340.0, 380.0;
00044
00045
00046
00047 for (size_t i = 0; i < 6; ++i) {
00048 for (size_t j = 0; j < 3; ++j) {
00049 size_t k = i*3 + j;
00050 _profhistRho_pT[k] = bookProfile1D(i+1, 1, j+1);
00051 _profhistPsi_pT[k] = bookProfile1D(6+i+1, 1, j+1);
00052 }
00053 }
00054
00055 _profhistPsi = bookProfile1D(13, 1, 1);
00056 }
00057
00058
00059
00060
00061 void analyze(const Event& event) {
00062
00063
00064 const Jets& jets = applyProjection<FastJets>(event, "Jets").jetsByPt();
00065 getLog() << Log::DEBUG << "Jet multiplicity before cuts = " << jets.size() << endl;
00066
00067
00068 _jetaxes.clear();
00069 foreach (const Jet& jt, jets) {
00070 const FourMomentum pj = jt.momentum();
00071 if (inRange(pj.pT()/GeV, 37.0, 380.0) && inRange(fabs(pj.rapidity()), 0.1, 0.7)) {
00072 _jetaxes.push_back(jt.momentum());
00073 }
00074 }
00075 if (_jetaxes.empty()) vetoEvent;
00076
00077
00078 const double weight = event.weight();
00079 const JetShape& js = applyProjection<JetShape>(event, "JetShape");
00080
00081
00082 for (size_t jind = 0; jind < _jetaxes.size(); ++jind) {
00083 for (size_t ipT = 0; ipT < 18; ++ipT) {
00084 if (_jetaxes[jind].pT() > _pTbins[ipT] && _jetaxes[jind].pT() <= _pTbins[ipT+1]) {
00085 for (size_t rbin = 0; rbin < js.numBins(); ++rbin) {
00086 const double rad_Rho = js.rMin() + (rbin+0.5)*js.interval();
00087 _profhistRho_pT[ipT]->fill(rad_Rho/0.7, (0.7/1.0)*js.diffJetShape(jind, rbin), weight);
00088
00089 const double rad_Psi = js.rMin() +(rbin+1.0)*js.interval();
00090 _profhistPsi_pT[ipT]->fill(rad_Psi/0.7, js.intJetShape(jind, rbin), weight);
00091 }
00092
00093 _profhistPsi->fill((_pTbins[ipT] + _pTbins[ipT+1])/2.0, js.psi(jind), weight);
00094 }
00095 }
00096 }
00097
00098 }
00099
00100
00101
00102 void finalize() {
00103
00104 }
00105
00106
00107
00108
00109 private:
00110
00111
00112
00113
00114
00115 vector<FourMomentum> _jetaxes;
00116
00117
00118 vector<double> _pTbins;
00119
00120
00121
00122
00123
00124 AIDA::IProfile1D* _profhistRho_pT[18];
00125 AIDA::IProfile1D* _profhistPsi_pT[18];
00126 AIDA::IProfile1D* _profhistPsi;
00127
00128
00129 };
00130
00131
00132
00133 AnalysisBuilder<CDF_2005_S6217184> plugin_CDF_2005_S6217184;
00134
00135 }