00001
00002 #ifndef RIVET_HepEx9506012_HH
00003 #define RIVET_HepEx9506012_HH
00004
00005 #include "Rivet/Analysis.hh"
00006 #include "Rivet/Projections/FinalStateHCM.hh"
00007 #include "Rivet/Projections/CentralEtHCM.hh"
00008 #include "Rivet/RivetAIDA.fhh"
00009
00010
00011 namespace Rivet {
00012
00013
00014 class HepEx9506012 : public Analysis {
00015
00016 public:
00017
00018
00019 inline HepEx9506012()
00020 : _beamsproj(),
00021 _leptonproj(_beamsproj, _fsproj, ELECTRON, POSITRON),
00022 _diskinproj(_beamsproj, _leptonproj, PROTON),
00023 _fshcmproj(_leptonproj, _diskinproj, _fsproj),
00024 _y1hcmproj(_fshcmproj)
00025 {
00026 setBeams(ELECTRON, PROTON);
00027 addProjection(_beamsproj);
00028 addProjection(_leptonproj);
00029 addProjection(_diskinproj);
00030 addProjection(_fshcmproj);
00031 addProjection(_y1hcmproj);
00032 addCut("x", MORE_EQ, _xmin);
00033 addCut("x", LESS_EQ, _xmax);
00034 }
00035
00036 public:
00037
00038
00039 static Analysis* create() { return new HepEx9506012(); }
00040
00041
00042 inline string getName() const {
00043 return "HepEx9506012";
00044 }
00045
00046
00047 void init();
00048
00049
00050 void analyze(const Event& event);
00051
00052
00053 void finalize();
00054
00055 protected:
00056
00057
00058 int getbin(const DISKinematics& dk);
00059
00060
00061 private:
00062
00063
00064 Beam _beamsproj;
00065
00066
00067 DISLepton _leptonproj;
00068
00069
00070 DISKinematics _diskinproj;
00071
00072
00073 FinalState _fsproj;
00074
00075
00076 FinalStateHCM _fshcmproj;
00077
00078
00079 CentralEtHCM _y1hcmproj;
00080
00081
00082 static const int _nb = 24, _nbin = 9;
00083
00084
00085 static const double _xmin, _xmax;
00086
00087
00088 vector<AIDA::IHistogram1D*> _hEtFlow, _hEtFlowStat;
00089
00090
00091 AIDA::IHistogram1D *_hAvEt, *_hAvX, *_hAvQ2, *_hN;
00092
00093
00094 vector<double> _nev;
00095
00096 private:
00097
00098
00099 HepEx9506012& operator=(const HepEx9506012&);
00100
00101 };
00102
00103 }
00104
00105 #endif