00001
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/RivetAIDA.hh"
00004 #include "Rivet/Tools/Logging.hh"
00005 #include "Rivet/Math/MathUtils.hh"
00006 #include "Rivet/Projections/ChargedFinalState.hh"
00007 #include "Rivet/Projections/Beam.hh"
00008 #include "Rivet/Projections/TriggerUA5.hh"
00009
00010 namespace Rivet {
00011
00012
00013 class UA5_1988_S1867512 : public Analysis {
00014 public:
00015
00016 UA5_1988_S1867512() : Analysis("UA5_1988_S1867512")
00017 {
00018 setBeams(PROTON, ANTIPROTON);
00019 _sumWPassed = 0;
00020 }
00021
00022
00023
00024
00025
00026 void init() {
00027
00028 addProjection(TriggerUA5(), "Trigger");
00029
00030
00031 addProjection(ChargedFinalState(-0.5, 0.5), "CFS05");
00032
00033
00034
00035 addProjection(ChargedFinalState(0.0, 1.0), "CFS10F");
00036 addProjection(ChargedFinalState(0.5, 1.5), "CFS15F");
00037 addProjection(ChargedFinalState(1.0, 2.0), "CFS20F");
00038 addProjection(ChargedFinalState(1.5, 2.5), "CFS25F");
00039 addProjection(ChargedFinalState(2.0, 3.0), "CFS30F");
00040 addProjection(ChargedFinalState(2.5, 3.5), "CFS35F");
00041 addProjection(ChargedFinalState(3.0, 4.0), "CFS40F");
00042
00043
00044 addProjection(ChargedFinalState(-1.0, 0.0), "CFS10B");
00045 addProjection(ChargedFinalState(-1.5, -0.5), "CFS15B");
00046 addProjection(ChargedFinalState(-2.0, -1.0), "CFS20B");
00047 addProjection(ChargedFinalState(-2.5, -1.5), "CFS25B");
00048 addProjection(ChargedFinalState(-3.0, -2.0), "CFS30B");
00049 addProjection(ChargedFinalState(-3.5, -2.5), "CFS35B");
00050 addProjection(ChargedFinalState(-4.0, -3.0), "CFS40B");
00051
00052
00053 if (fuzzyEquals(sqrtS()/GeV, 200.0, 1E-4)) {
00054 _hist_correl = bookProfile1D(2, 1, 1);
00055 _hist_correl_asym = bookProfile1D(3, 1, 1);
00056 } else if (fuzzyEquals(sqrtS()/GeV, 546.0, 1E-4)) {
00057 _hist_correl = bookProfile1D(2, 1, 2);
00058 _hist_correl_asym = bookProfile1D(3, 1, 2);
00059 } else if (fuzzyEquals(sqrtS()/GeV, 900.0, 1E-4)) {
00060 _hist_correl = bookProfile1D(2, 1, 3);
00061 _hist_correl_asym = bookProfile1D(3, 1, 3);
00062 }
00063 }
00064
00065
00066 void analyze(const Event& event) {
00067
00068 const bool trigger = applyProjection<TriggerUA5>(event, "Trigger").nsdDecision();
00069 if (!trigger) vetoEvent;
00070 _sumWPassed += event.weight();
00071
00072
00073 n_10f += applyProjection<ChargedFinalState>(event, "CFS10F").size();
00074 n_15f += applyProjection<ChargedFinalState>(event, "CFS15F").size();
00075 n_20f += applyProjection<ChargedFinalState>(event, "CFS20F").size();
00076 n_25f += applyProjection<ChargedFinalState>(event, "CFS25F").size();
00077 n_30f += applyProjection<ChargedFinalState>(event, "CFS30F").size();
00078 n_35f += applyProjection<ChargedFinalState>(event, "CFS35F").size();
00079 n_40f += applyProjection<ChargedFinalState>(event, "CFS40F").size();
00080
00081 n_10b += applyProjection<ChargedFinalState>(event, "CFS10B").size();
00082 n_15b += applyProjection<ChargedFinalState>(event, "CFS15B").size();
00083 n_20b += applyProjection<ChargedFinalState>(event, "CFS20B").size();
00084 n_25b += applyProjection<ChargedFinalState>(event, "CFS25B").size();
00085 n_30b += applyProjection<ChargedFinalState>(event, "CFS30B").size();
00086 n_35b += applyProjection<ChargedFinalState>(event, "CFS35B").size();
00087 n_40b += applyProjection<ChargedFinalState>(event, "CFS40B").size();
00088
00089 n_05 += applyProjection<ChargedFinalState>(event, "CFS05").size();
00090 }
00091
00092
00093 void finalize() {
00094
00095
00096
00097
00098 _hist_correl->fill(0.0, correlation(n_10f, n_10b));
00099 _hist_correl->fill(1.0, correlation(n_15f, n_15b));
00100 _hist_correl->fill(2.0, correlation(n_20f, n_20b));
00101 _hist_correl->fill(3.0, correlation(n_25f, n_25b));
00102 _hist_correl->fill(4.0, correlation(n_30f, n_30b));
00103 _hist_correl->fill(5.0, correlation(n_35f, n_35b));
00104 _hist_correl->fill(6.0, correlation(n_40f, n_40b));
00105
00106
00107
00108
00109
00110
00111 _hist_correl_asym->fill(0.0, correlation(n_10f, n_10b));
00112 _hist_correl_asym->fill(0.0, correlation(n_15f, n_15b));
00113 _hist_correl_asym->fill(0.0, correlation(n_20f, n_20b));
00114 _hist_correl_asym->fill(0.0, correlation(n_25f, n_25b));
00115 _hist_correl_asym->fill(0.0, correlation(n_30f, n_30b));
00116 _hist_correl_asym->fill(0.0, correlation(n_35f, n_35b));
00117 _hist_correl_asym->fill(0.0, correlation(n_40f, n_40b));
00118
00119
00120 _hist_correl_asym->fill(0.5, correlation(n_25f, n_15b));
00121 _hist_correl_asym->fill(1.0, correlation(n_30f, n_10b));
00122 _hist_correl_asym->fill(1.5, correlation(n_35f, n_05 ));
00123 _hist_correl_asym->fill(2.0, correlation(n_40f, n_10f));
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133 }
00134
00135
00136
00137
00138 private:
00139
00140
00141
00142 double _sumWPassed;
00143
00144
00145
00146
00147
00148
00149 std::vector<int> n_10f;
00150 std::vector<int> n_15f;
00151 std::vector<int> n_20f;
00152 std::vector<int> n_25f;
00153 std::vector<int> n_30f;
00154 std::vector<int> n_35f;
00155 std::vector<int> n_40f;
00156
00157 std::vector<int> n_10b;
00158 std::vector<int> n_15b;
00159 std::vector<int> n_20b;
00160 std::vector<int> n_25b;
00161 std::vector<int> n_30b;
00162 std::vector<int> n_35b;
00163 std::vector<int> n_40b;
00164
00165 std::vector<int> n_05;
00166
00167
00168
00169
00170
00171
00172 AIDA::IProfile1D *_hist_correl;
00173
00174 AIDA::IProfile1D *_hist_correl_asym;
00175
00176
00177 };
00178
00179
00180
00181
00182 AnalysisBuilder<UA5_1988_S1867512> plugin_UA5_1988_S1867512;
00183
00184 }