00001
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/RivetAIDA.hh"
00004 #include "Rivet/Tools/Logging.hh"
00005 #include "Rivet/Projections/IdentifiedFinalState.hh"
00006 #include "Rivet/Projections/VetoedFinalState.hh"
00007 #include "Rivet/Projections/MissingMomentum.hh"
00008 #include "Rivet/Projections/FastJets.hh"
00009 #include "Rivet/Projections/ClusteredPhotons.hh"
00010 #include "Rivet/Projections/LeadingParticlesFinalState.hh"
00011
00012 namespace Rivet {
00013
00014
00015 class ATLAS_2010_S8919674 : public Analysis {
00016 public:
00017
00018
00019
00020
00021
00022 ATLAS_2010_S8919674()
00023 : Analysis("ATLAS_2010_S8919674")
00024 { }
00025
00026
00027
00028
00029 public:
00030
00031
00032
00033
00034
00035 void init() {
00036
00037
00038
00039 std::vector<std::pair<double, double> > eta_e;
00040 eta_e.push_back(make_pair(-2.47,-1.52));
00041 eta_e.push_back(make_pair(-1.37,1.37));
00042 eta_e.push_back(make_pair(1.52,2.47));
00043 IdentifiedFinalState elecs(eta_e, 20.0*GeV);
00044 elecs.acceptIdPair(ELECTRON);
00045 addProjection(elecs, "elecs");
00046
00047
00048 ClusteredPhotons cphotons_e(FinalState(), elecs, 0.1);
00049 addProjection(cphotons_e, "cphotons_e");
00050
00051
00052 std::vector<std::pair<double, double> > eta_m;
00053 eta_m.push_back(make_pair(-2.4,2.4));
00054 IdentifiedFinalState muons(eta_m, 20.0*GeV);
00055 muons.acceptIdPair(MUON);
00056 addProjection(muons, "muons");
00057
00058
00059 ClusteredPhotons cphotons_m(FinalState(), muons, 0.1);
00060 addProjection(cphotons_m, "cphotons_m");
00061
00062
00063 FinalState fs;
00064 LeadingParticlesFinalState muon_neutrino(fs);
00065 muon_neutrino.addParticleIdPair(NU_MU);
00066 addProjection(muon_neutrino, "muon_neutrino");
00067 LeadingParticlesFinalState elec_neutrino(fs);
00068 elec_neutrino.addParticleIdPair(NU_E);
00069 addProjection(elec_neutrino, "elec_neutrino");
00070
00071
00072
00073 VetoedFinalState veto;
00074 veto.addVetoOnThisFinalState(elecs);
00075 veto.addVetoPairId(MUON);
00076 veto.vetoNeutrinos();
00077 FastJets jets(veto, FastJets::ANTIKT, 0.4);
00078 addProjection(jets, "jets");
00079
00080
00081
00082
00083 _h_el_njet_inclusive = bookHistogram1D(1,1,1);
00084 _h_mu_njet_inclusive = bookHistogram1D(2,1,1);
00085
00086 _h_el_pT_jet1 = bookHistogram1D(5,1,1);
00087 _h_mu_pT_jet1 = bookHistogram1D(6,1,1);
00088
00089 _h_el_pT_jet2 = bookHistogram1D(7,1,1);
00090 _h_mu_pT_jet2 = bookHistogram1D(8,1,1);
00091 }
00092
00093
00094
00095 void analyze(const Event& event) {
00096 const double weight = event.weight();
00097
00098 const FinalState& elecs = applyProjection<FinalState>(event, "elecs");
00099 ParticleVector elec_neutrino=applyProjection<FinalState>(event, "elec_neutrino").particles();
00100 if (elecs.size()==1 && elec_neutrino.size()>0) {
00101 FourMomentum lepton=elecs.particles()[0].momentum();
00102 foreach (const Particle& photon,
00103 applyProjection<FinalState>(event, "cphotons_e").particles()) {
00104 lepton+=photon.momentum();
00105 }
00106 FourMomentum p_miss = elec_neutrino[0].momentum();
00107 double mT=sqrt(2.0*lepton.pT()*p_miss.Et()*(1.0-cos(lepton.phi()-p_miss.phi())));
00108 if (p_miss.Et()>25.0*GeV && mT>40.0*GeV) {
00109 Jets jets;
00110 foreach (const Jet& jet, applyProjection<FastJets>(event, "jets").jetsByPt(20.0*GeV)) {
00111 if (fabs(jet.eta())<2.8 && deltaR(lepton, jet.momentum())>0.5) {
00112 jets.push_back(jet);
00113 }
00114 }
00115
00116 _h_el_njet_inclusive->fill(0, weight);
00117 if (jets.size()>=1) {
00118 _h_el_njet_inclusive->fill(1, weight);
00119 _h_el_pT_jet1->fill(jets[0].momentum().pT(), weight);
00120 }
00121 if (jets.size()>=2) {
00122 _h_el_njet_inclusive->fill(2, weight);
00123 _h_el_pT_jet2->fill(jets[1].momentum().pT(), weight);
00124 }
00125 if (jets.size()>=3) {
00126 _h_el_njet_inclusive->fill(3, weight);
00127 }
00128 }
00129 }
00130
00131 const FinalState& muons = applyProjection<FinalState>(event, "muons");
00132 ParticleVector muon_neutrino=applyProjection<FinalState>(event, "muon_neutrino").particles();
00133 if (muons.size()==1 && muon_neutrino.size()>0) {
00134 FourMomentum lepton=muons.particles()[0].momentum();
00135 foreach (const Particle& photon,
00136 applyProjection<FinalState>(event, "cphotons_m").particles()) {
00137 lepton+=photon.momentum();
00138 }
00139 FourMomentum p_miss = muon_neutrino[0].momentum();
00140 double mT=sqrt(2.0*lepton.pT()*p_miss.Et()*(1.0-cos(lepton.phi()-p_miss.phi())));
00141 if (p_miss.Et()>25.0*GeV && mT>40.0*GeV) {
00142 Jets jets;
00143 foreach (const Jet& jet, applyProjection<FastJets>(event, "jets").jetsByPt(20.0*GeV)) {
00144 if (fabs(jet.eta())<2.8 && deltaR(lepton, jet.momentum())>0.5) {
00145 jets.push_back(jet);
00146 }
00147 }
00148
00149 _h_mu_njet_inclusive->fill(0, weight);
00150 if (jets.size()>=1) {
00151 _h_mu_njet_inclusive->fill(1, weight);
00152 _h_mu_pT_jet1->fill(jets[0].momentum().pT(), weight);
00153 }
00154 if (jets.size()>=2) {
00155 _h_mu_njet_inclusive->fill(2, weight);
00156 _h_mu_pT_jet2->fill(jets[1].momentum().pT(), weight);
00157 }
00158 if (jets.size()>=3) {
00159 _h_mu_njet_inclusive->fill(3, weight);
00160 }
00161 if (jets.size()>=4) {
00162 _h_mu_njet_inclusive->fill(4, weight);
00163 }
00164 }
00165 }
00166
00167 }
00168
00169
00170
00171 void finalize() {
00172 double normfac=crossSection()/sumOfWeights();
00173 scale(_h_el_njet_inclusive, normfac);
00174 scale(_h_mu_njet_inclusive, normfac);
00175 scale(_h_el_pT_jet1, normfac);
00176 scale(_h_mu_pT_jet1, normfac);
00177 scale(_h_el_pT_jet2, normfac);
00178 scale(_h_mu_pT_jet2, normfac);
00179 }
00180
00181
00182
00183
00184 private:
00185
00186
00187
00188
00189 AIDA::IHistogram1D * _h_el_njet_inclusive;
00190 AIDA::IHistogram1D * _h_mu_njet_inclusive;
00191 AIDA::IHistogram1D * _h_el_pT_jet1;
00192 AIDA::IHistogram1D * _h_mu_pT_jet1;
00193 AIDA::IHistogram1D * _h_el_pT_jet2;
00194 AIDA::IHistogram1D * _h_mu_pT_jet2;
00195
00196
00197 };
00198
00199
00200
00201
00202 DECLARE_RIVET_PLUGIN(ATLAS_2010_S8919674);
00203
00204 }