TASSO_1990_S2148048.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
00006 #include "Rivet/Projections/Thrust.hh"
00007 #include "Rivet/Projections/Sphericity.hh"
00008 #include "Rivet/Projections/ChargedFinalState.hh"
00009
00010
00011 namespace Rivet {
00012
00013
00014 class TASSO_1990_S2148048 : public Analysis {
00015 public:
00016
00017
00018
00019
00020
00021 TASSO_1990_S2148048()
00022 : Analysis("TASSO_1990_S2148048")
00023 {
00024
00025 setBeams(ELECTRON, POSITRON);
00026
00027 }
00028
00029
00030
00031
00032 public:
00033
00034
00035
00036
00037
00038 void init() {
00039 const ChargedFinalState cfs(-MAXRAPIDITY, MAXRAPIDITY, 0.1/GeV);
00040 addProjection(cfs, "CFS");
00041
00042
00043
00044
00045
00046 addProjection(Thrust(cfs), "Thrust");
00047
00048
00049 addProjection(Sphericity(cfs), "Sphericity");
00050
00051
00052 int offset = 0;
00053 switch (int(sqrtS()/GeV)) {
00054 case 14:
00055 offset = 0;
00056 break;
00057 case 22:
00058 offset = 1;
00059 break;
00060 case 35:
00061 offset = 2;
00062 break;
00063 case 44:
00064 offset = 3;
00065 break;
00066 }
00067
00068 _h_sphericity = bookHistogram1D( 6, 1, 1+offset);
00069 _h_aplanarity = bookHistogram1D( 7, 1, 1+offset);
00070 _h_thrust = bookHistogram1D( 8, 1, 1+offset);
00071 }
00072
00073
00074
00075
00076 void analyze(const Event& event) {
00077 const double weight = event.weight();
00078 const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(event, "CFS");
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088 int nch = cfs.particles().size();
00089 if ( (int(sqrtS()/GeV) > 27 && nch < 5) || (int(sqrtS()/GeV) <= 27 && nch < 4 ) ) {
00090 getLog() << Log::DEBUG << "Failed # good tracks cut: " << nch << endl;
00091 vetoEvent;
00092 }
00093
00094
00095 double momsum = 0.0;
00096 foreach (const Particle& p, cfs.particles()) {
00097 const double mom = p.momentum().vector3().mod();
00098 momsum += mom;
00099 }
00100 if (momsum <=0.265 * sqrtS()/GeV) {
00101 getLog() << Log::DEBUG << "Failed pTsum cut: " << momsum << " < " << 0.265 * sqrtS()/GeV << endl;
00102 vetoEvent;
00103 }
00104
00105
00106
00107
00108 const Thrust& thrust = applyProjection<Thrust>(event, "Thrust");
00109
00110
00111
00112
00113
00114
00115
00116 const Sphericity& sphericity = applyProjection<Sphericity>(event, "Sphericity");
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128 _h_sphericity->fill(sphericity.sphericity(), weight);
00129 _h_aplanarity->fill(sphericity.aplanarity(), weight);
00130 _h_thrust->fill(thrust.thrust(), weight);
00131 }
00132
00133
00134
00135 void finalize() {
00136
00137 normalize(_h_sphericity);
00138 normalize(_h_aplanarity);
00139 normalize(_h_thrust );
00140 }
00141
00142
00143
00144
00145 private:
00146
00147
00148
00149
00150
00151 private:
00152
00153
00154
00155 AIDA::IHistogram1D* _h_xp ;
00156 AIDA::IHistogram1D* _h_sphericity;
00157 AIDA::IHistogram1D* _h_aplanarity;
00158 AIDA::IHistogram1D* _h_thrust ;
00159
00160
00161
00162 };
00163
00164
00165
00166
00167 AnalysisBuilder<TASSO_1990_S2148048> plugin_TASSO_1990_S2148048;
00168
00169
00170 }