JADE_1998_S3612880.cc
Go to the documentation of this file.00001
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/RivetAIDA.hh"
00004 #include "Rivet/Tools/Logging.hh"
00005 #include "Rivet/Projections/Thrust.hh"
00006 #include "Rivet/Projections/FastJets.hh"
00007 #include "Rivet/Projections/Hemispheres.hh"
00008 #include "Rivet/Projections/ChargedFinalState.hh"
00009
00010
00011 namespace Rivet {
00012
00013
00014 class JADE_1998_S3612880 : public Analysis {
00015 public:
00016
00017
00018
00019
00020
00021 JADE_1998_S3612880()
00022 : Analysis("JADE_1998_S3612880")
00023 {
00024
00025 setBeams(ELECTRON, POSITRON);
00026 }
00027
00028
00029
00030
00031 void init() {
00032 const ChargedFinalState cfs(-MAXRAPIDITY, MAXRAPIDITY, 0.1/GeV);
00033 addProjection(cfs, "CFS");
00034 addProjection(FastJets(cfs, FastJets::DURHAM, 0.7), "DurhamJets");
00035
00036
00037 const Thrust thrust(cfs);
00038 addProjection(thrust, "Thrust");
00039 addProjection(Hemispheres(thrust), "Hemispheres");
00040
00041
00042 int offset = 0;
00043 switch (int(sqrtS()/GeV)) {
00044
00045 case 44:
00046 offset = 0;
00047 _h_thrust = bookHistogram1D( 2+offset, 1, 1);
00048 _h_MH = bookHistogram1D( 3 + offset, 1, 1);
00049 _h_BT = bookHistogram1D( 4 + offset, 1, 1);
00050 _h_BW = bookHistogram1D( 5 + offset, 1, 1);
00051 _h_y23 = bookHistogram1D(10, 1, 1);
00052 break;
00053 case 35:
00054 offset = 4;
00055 _h_thrust = bookHistogram1D( 2+offset, 1, 1);
00056 _h_MH = bookHistogram1D( 3 + offset, 1, 1);
00057 _h_BT = bookHistogram1D( 4 + offset, 1, 1);
00058 _h_BW = bookHistogram1D( 5 + offset, 1, 1);
00059 _h_y23 = bookHistogram1D(11, 1, 1);
00060 break;
00061 case 22:
00062 _h_y23 = bookHistogram1D(12, 1, 1);
00063 break;
00064 }
00065 }
00066
00067
00068
00069 void analyze(const Event& event) {
00070 const double weight = event.weight();
00071 const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(event, "CFS");
00072
00073
00074 if (cfs.particles().size() < 3 ) {
00075 vetoEvent;
00076 }
00077 const Thrust& thrust = applyProjection<Thrust>(event, "Thrust");
00078 const Vector3 & thrustAxis = thrust.thrustAxis ();
00079 double theta = thrustAxis.theta();
00080 if ( fabs(cos(theta)) >= 0.8 ) {
00081 getLog() << Log::DEBUG << "Failed thrust angle cut: " << fabs(cos(theta)) << endl;
00082 vetoEvent;
00083 }
00084
00085
00086 const Hemispheres& hemi = applyProjection<Hemispheres>(event, "Hemispheres");
00087 const FastJets& durjet = applyProjection<FastJets>(event, "DurhamJets");
00088
00089 double y23 = durjet.clusterSeq()->exclusive_ymerge_max(2);
00090
00091
00092 int s = int(sqrtS()/GeV);
00093 if (s == 44 || s == 35) {
00094 _h_thrust->fill(1. - thrust.thrust(), weight);
00095 _h_MH->fill(sqrt(hemi.scaledM2high()), weight);
00096 _h_BT->fill(hemi.Bsum(), weight);
00097 _h_BW->fill(hemi.Bmax(), weight);
00098 }
00099 _h_y23->fill(y23, weight);
00100 }
00101
00102
00103 void finalize() {
00104
00105 int s = int(sqrtS()/GeV);
00106 if (s == 44 || s == 35) {
00107 normalize(_h_thrust);
00108 normalize(_h_MH);
00109 normalize(_h_BT);
00110 normalize(_h_BW);
00111 }
00112 normalize(_h_y23);
00113
00114
00115 }
00116
00117
00118
00119
00120 private:
00121
00122 AIDA::IHistogram1D *_h_thrust;
00123 AIDA::IHistogram1D *_h_MH;
00124 AIDA::IHistogram1D *_h_BT;
00125 AIDA::IHistogram1D *_h_BW;
00126 AIDA::IHistogram1D *_h_y23;
00127
00128
00129 };
00130
00131
00132
00133
00134 AnalysisBuilder<JADE_1998_S3612880> plugin_JADE_1998_S3612880;
00135
00136
00137 }