00001
00002 #ifndef RIVET_HepEx0505013_HH
00003 #define RIVET_HepEx0505013_HH
00004
00005 #include "Rivet/Analysis.hh"
00006 #include "Rivet/Projections/D0ILConeJets.hh"
00007 #include "Rivet/Projections/KtJets.hh"
00008 #ifdef HAVE_FASTJET
00009 #include "Rivet/Projections/FastJets.hh"
00010 #endif
00011 #include "Rivet/Projections/PVertex.hh"
00012 #include "Rivet/Projections/TotalVisibleMomentum.hh"
00013 #include "Rivet/Projections/JetShape.hh"
00014 #include "Rivet/RivetAIDA.fhh"
00015 #include "Rivet/RivetCLHEP.hh"
00016
00017
00018 namespace Rivet {
00019
00020
00021 class HepEx0505013 : public Analysis {
00022
00023 public:
00024
00025
00026 inline HepEx0505013()
00027
00028
00029 : _fsproj(-2., 2.), _vfsproj(_fsproj),
00030 #ifdef HAVE_FASTJET
00031 _jetsproj(_fsproj),
00032 #else
00033 _jetsproj(_fsproj),
00034 #endif
00035 _calmetproj(_fsproj), _vertexproj(),
00036 _jetshapeproj(_vfsproj, 0.0, 0.7, 0.1, 0.3)
00037 {
00038
00039 setBeams(PROTON, ANTIPROTON);
00040
00041
00042
00043 _vfsproj
00044 .addVetoPairId(12)
00045 .addVetoPairId(14)
00046 .addVetoPairId(16);
00047
00048
00049 _vfsproj.addVetoDetail(13, 1.0, numeric_limits<double>::max());
00050
00051 _jetshapeproj.setJetAxes(_jetaxes);
00052 _jetshapeproj.setDiffJetShapes(_diffjetshapes);
00053 _jetshapeproj.setIntJetShapes(_intjetshapes);
00054 _jetshapeproj.setOneMinPsiShape(_oneminPsishape);
00055
00056 addProjection(_fsproj);
00057 addProjection(_vfsproj);
00058 addProjection(_jetsproj);
00059 addProjection(_calmetproj);
00060 addProjection(_vertexproj);
00061 addProjection(_jetshapeproj);
00062
00063
00064 _Rjet = 0.7;
00065
00066 _pTbins.resize(19);
00067 _pTbins[0] = 37.;
00068 _pTbins[1] = 45.;
00069 _pTbins[2] = 55.;
00070 _pTbins[3] = 63.;
00071 _pTbins[4] = 73.;
00072 _pTbins[5] = 84.;
00073 _pTbins[6] = 97.;
00074 _pTbins[7] = 112.;
00075 _pTbins[8] = 128.;
00076 _pTbins[9] = 148.;
00077 _pTbins[10] = 166.;
00078 _pTbins[11] = 186.;
00079 _pTbins[12] = 208.;
00080 _pTbins[13] = 229.;
00081 _pTbins[14] = 250.;
00082 _pTbins[15] = 277.;
00083 _pTbins[16] = 304.;
00084 _pTbins[17] = 340.;
00085 _pTbins[18] = 380.;
00086
00087 for (int i=0; i<18; ++i)
00088 _ShapeWeights[i] = 0.;
00089
00090 }
00091
00092
00093 public:
00094
00095
00096 static Analysis* create() { return new HepEx0505013(); }
00097
00098
00099 inline string getName() const {
00100 return "HepEx0505013";
00101 }
00102
00103 public:
00104
00105 void init();
00106
00107 void analyze(const Event & event);
00108
00109 void finalize();
00110
00111 private:
00112
00113
00114 FinalState _fsproj;
00115
00116
00117 VetoedFinalState _vfsproj;
00118
00119
00120
00121
00122
00123 #ifdef HAVE_FASTJET
00124
00125 FastJets _jetsproj;
00126 #else
00127
00128 D0ILConeJets _jetsproj;
00129
00130
00131 #endif
00132
00133
00134 TotalVisibleMomentum _calmetproj;
00135
00136
00137 PVertex _vertexproj;
00138
00139
00140 JetShape _jetshapeproj;
00141
00142
00143 private:
00144
00145 vector<LorentzVector> _jetaxes;
00146
00147 vector<vector<double> > _diffjetshapes;
00148 vector<vector<double> > _intjetshapes;
00149 vector<double> _oneminPsishape;
00150
00151 double _Rjet;
00152
00153 double _ShapeWeights[18];
00154
00155
00156 vector<double> _pTbins;
00157
00158
00159
00160 HepEx0505013& operator=(const HepEx0505013&);
00161
00162
00163
00164 AIDA::IHistogram1D* _histRho_pT[18];
00165 AIDA::IHistogram1D* _histPsi_pT[18];
00166 AIDA::IHistogram1D* _histOneMinPsi;
00167
00168
00169 };
00170
00171 }
00172
00173 #endif