|
[Rivet-svn] r3242 - in branches/2011-07-aida2yoda: . data/anainfo src/Analysesblackhole at projects.hepforge.org blackhole at projects.hepforge.orgFri Jul 22 11:40:35 BST 2011
Author: hoeth Date: Fri Jul 22 11:40:34 2011 New Revision: 3242 Log: merged r3232 from trunk Modified: branches/2011-07-aida2yoda/ChangeLog branches/2011-07-aida2yoda/data/anainfo/MC_TTBAR.info branches/2011-07-aida2yoda/src/Analyses/MC_TTBAR.cc Modified: branches/2011-07-aida2yoda/ChangeLog ============================================================================== --- branches/2011-07-aida2yoda/ChangeLog Fri Jul 22 11:35:13 2011 (r3241) +++ branches/2011-07-aida2yoda/ChangeLog Fri Jul 22 11:40:34 2011 (r3242) @@ -1,3 +1,13 @@ +2011-07-20 Andy Buckley <andy at insectnation.org> + + * Making MC_TTBAR work with semileptonic ttbar events and generally + tidying the code. + +2011-07-19 Andy Buckley <andy at insectnation.org> + + * Version bump to 1.5.2.b01 in preparation for a release in the + very near future. + 2011-07-18 David Mallows <dave.mallows at gmail.com> * Replaced MC_TTBAR: Added t,tbar reconstruction. Not yet working. Modified: branches/2011-07-aida2yoda/data/anainfo/MC_TTBAR.info ============================================================================== --- branches/2011-07-aida2yoda/data/anainfo/MC_TTBAR.info Fri Jul 22 11:35:13 2011 (r3241) +++ branches/2011-07-aida2yoda/data/anainfo/MC_TTBAR.info Fri Jul 22 11:40:34 2011 (r3242) @@ -2,12 +2,14 @@ Summary: MC analysis for ttbar studies Status: UNVALIDATED Authors: - - Holger Schulz <hschulz at physik.hu-berlin.de> + - Hendrik Hoeth <hendrik.hoeth at cern.ch> - Andy Buckley <andy.buckley at cern.ch> + - Dave Mallows + - Michal Kawalec RunInfo: - "* For Pythia6, set MSEL=6. + "* For Pythia6, set MSEL=6 and fix $W^+$ and $W^-$ decays to semi-leptonic modes via the MDME array. * For Fortran Herwig/Jimmy select IPROC=1706." NumEvents: 10000 PtCuts: [0] Description: - This is a pure Monte Carlo study for t-tbar production. + This is a pure Monte Carlo study for semi-leptonic $t\bar{t}$ production. Modified: branches/2011-07-aida2yoda/src/Analyses/MC_TTBAR.cc ============================================================================== --- branches/2011-07-aida2yoda/src/Analyses/MC_TTBAR.cc Fri Jul 22 11:35:13 2011 (r3241) +++ branches/2011-07-aida2yoda/src/Analyses/MC_TTBAR.cc Fri Jul 22 11:40:34 2011 (r3242) @@ -1,6 +1,5 @@ #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" -#include "Rivet/Projections/ChargedFinalState.hh" #include "Rivet/Projections/ChargedLeptons.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/AnalysisLoader.hh" @@ -8,7 +7,7 @@ namespace Rivet { - + class MC_TTBAR : public Analysis { public: @@ -16,24 +15,25 @@ MC_TTBAR() : Analysis("MC_TTBAR") { } - + + /// @name Analysis methods //@{ + void init() { - addProjection(ChargedFinalState(-3.5, 3.5, 0.5*GeV), "CFS"); - addProjection(ChargedLeptons(ChargedFinalState(-3.5, 3.5, 30*GeV)), "LFS"); - addProjection(FastJets(FinalState(-2.5, 2.5, 0*GeV), FastJets::KT, 0.5), "JETS"); + addProjection(ChargedLeptons(FinalState(-4.2, 4.2, 30*GeV)), "LFS"); + addProjection(FastJets(FinalState(-4.2, 4.2, 0*GeV), FastJets::ANTIKT, 0.4), "Jets"); - _h_jet_0_pT = bookHisto1D("jet_0_pT", 50, 0, 250); _h_jet_1_pT = bookHisto1D("jet_1_pT", 50, 0, 250); _h_jet_2_pT = bookHisto1D("jet_2_pT", 50, 0, 250); _h_jet_3_pT = bookHisto1D("jet_3_pT", 50, 0, 250); + _h_jet_4_pT = bookHisto1D("jet_4_pT", 50, 0, 250); - _h_bjet_0_pT = bookHisto1D("bjet_0_pT", 50, 0, 250); - _h_bjet_1_pT = bookHisto1D("bjet_1_pT", 50, 0, 250); + _h_bjet_1_pT = bookHisto1D("jetb_1_pT", 50, 0, 250); + _h_bjet_2_pT = bookHisto1D("jetb_2_pT", 50, 0, 250); - _h_ljet_0_pT = bookHisto1D("ljet_0_pT", 50, 0, 250); - _h_ljet_1_pT = bookHisto1D("ljet_1_pT", 50, 0, 250); + _h_ljet_1_pT = bookHisto1D("jetl_1_pT", 50, 0, 250); + _h_ljet_2_pT = bookHisto1D("jetl_2_pT", 50, 0, 250); _h_W_mass = bookHisto1D("W_mass", 75, 30, 180); _h_t_mass = bookHisto1D("t_mass", 150, 130, 430); @@ -41,81 +41,73 @@ _h_W_comb_mass = bookHisto1D("W_comb_mass", 75, 30, 180); _h_t_comb_mass = bookHisto1D("t_comb_mass", 150, 130, 430); } - - void analyze(const Event& event) { - double weight = event.weight(); - const FinalState& cfs = applyProjection<FinalState>(event, "CFS"); - getLog() << Log::DEBUG << "Total charged multiplicity = " - << cfs.size() << endl; + + void analyze(const Event& event) { + const double weight = event.weight(); const ChargedLeptons& lfs = applyProjection<ChargedLeptons>(event, "LFS"); - getLog() << Log::DEBUG << "Charged lepton multiplicity = " - << lfs.chargedLeptons().size() << endl; - if (lfs.chargedLeptons().size() != 1) { - MSG_DEBUG("Event failed lepton cut"); - vetoEvent; - } + MSG_DEBUG("Charged lepton multiplicity = " << lfs.chargedLeptons().size()); foreach (Particle lepton, lfs.chargedLeptons()) { - getLog() << Log::DEBUG << "lepton pT = " << lepton.momentum().pT() << endl; + MSG_DEBUG("Lepton pT = " << lepton.momentum().pT()); } - - const FastJets& jetpro = applyProjection<FastJets>(event, "JETS"); - const Jets jets = jetpro.jetsByPt(); - getLog() << Log::DEBUG << "jet multiplicity = " << jets.size() << endl; - - if (jets.size() < 4) { - getLog() << Log::DEBUG << "Event failed jet cut" << endl; + if (lfs.chargedLeptons().empty()) { + MSG_DEBUG("Event failed lepton multiplicity cut"); vetoEvent; } - _h_jet_0_pT->fill(jets[0].momentum().pT(), weight); - _h_jet_1_pT->fill(jets[1].momentum().pT(), weight); - _h_jet_2_pT->fill(jets[2].momentum().pT(), weight); - _h_jet_3_pT->fill(jets[3].momentum().pT(), weight); - - if (jets[3].momentum().pT() < 35) { - getLog() << Log::DEBUG << "Event failed jet cut" << endl; + const FastJets& jetpro = applyProjection<FastJets>(event, "Jets"); + const Jets alljets = jetpro.jetsByPt(); + if (alljets.size() < 4) { + MSG_DEBUG("Event failed jet multiplicity cut"); vetoEvent; } - - foreach (Jet jet, jets) { - getLog() << Log::DEBUG << "jet pT = " << jet.momentum().pT() << endl; + _h_jet_1_pT->fill(alljets[0].momentum().pT(), weight); + _h_jet_2_pT->fill(alljets[1].momentum().pT(), weight); + _h_jet_3_pT->fill(alljets[2].momentum().pT(), weight); + _h_jet_4_pT->fill(alljets[3].momentum().pT(), weight); + + const Jets jets = jetpro.jetsByPt(35*GeV); + foreach (const Jet& jet, jets) { + MSG_DEBUG("Jet pT = " << jet.momentum().pT()/GeV << " GeV"); + } + if (jets.size() < 4) { + MSG_DEBUG("Event failed jet pT cut"); + vetoEvent; } Jets bjets, ljets; - foreach (Jet jet, jets) { - if (jet.momentum().pT() < 35*GeV) continue; - if (jet.containsBottom()) + foreach (const Jet& jet, jets) { + if (jet.containsBottom()) { bjets.push_back(jet); - else + } else { ljets.push_back(jet); + } } - - if (bjets.size() !=2) { - getLog() << Log::DEBUG << "Event failed b-tagging cut" << endl; + MSG_DEBUG("Number of b-jets = " << bjets.size()); + if (bjets.size() != 2) { + MSG_DEBUG("Event failed b-tagging cut"); vetoEvent; } - - _h_bjet_0_pT->fill(bjets[0].momentum().pT(), weight); - _h_bjet_1_pT->fill(bjets[1].momentum().pT(), weight); - - _h_ljet_0_pT->fill(ljets[0].momentum().pT(), weight); - _h_ljet_1_pT->fill(ljets[1].momentum().pT(), weight); - - FourMomentum W = ljets[0].momentum() + ljets[1].momentum(); - FourMomentum t1 = W + bjets[0].momentum(); - FourMomentum t2 = W + bjets[1].momentum(); - - _h_W_mass->fill(mass(W), weight); - _h_t_mass->fill(mass(t1), weight); - _h_t_mass->fill(mass(t2), weight); - if (mass(W) > 70 && mass(W) < 90) { - getLog() << Log::INFO << "W found with mass " << W.mass() << endl; - _h_t_mass_W_cut->fill(mass(t1), weight); - _h_t_mass_W_cut->fill(mass(t2), weight); + _h_bjet_1_pT->fill(bjets[0].momentum().pT(), weight); + _h_bjet_2_pT->fill(bjets[1].momentum().pT(), weight); + _h_ljet_1_pT->fill(ljets[0].momentum().pT(), weight); + _h_ljet_2_pT->fill(ljets[1].momentum().pT(), weight); + + const FourMomentum W = ljets[0].momentum() + ljets[1].momentum(); + const FourMomentum t1 = W + bjets[0].momentum(); + const FourMomentum t2 = W + bjets[1].momentum(); + + _h_W_mass->fill(W.mass(), weight); + _h_t_mass->fill(t1.mass(), weight); + _h_t_mass->fill(t2.mass(), weight); + if (inRange(W.mass()/GeV, 70, 90)) { + MSG_DEBUG("W found with mass " << W.mass()/GeV << " GeV"); + _h_t_mass_W_cut->fill(t1.mass(), weight); + _h_t_mass_W_cut->fill(t2.mass(), weight); } + // All combinatoric 2-jet masses _h_W_comb_mass->fill(mass(jets[0].momentum() + jets[1].momentum()), weight); _h_W_comb_mass->fill(mass(jets[0].momentum() + jets[2].momentum()), weight); _h_W_comb_mass->fill(mass(jets[0].momentum() + jets[3].momentum()), weight); @@ -123,36 +115,37 @@ _h_W_comb_mass->fill(mass(jets[1].momentum() + jets[3].momentum()), weight); _h_W_comb_mass->fill(mass(jets[2].momentum() + jets[3].momentum()), weight); + // All combinatoric 3-jet masses _h_t_comb_mass->fill(mass(jets[0].momentum() + jets[1].momentum() + jets[2].momentum()), weight); _h_t_comb_mass->fill(mass(jets[0].momentum() + jets[1].momentum() + jets[3].momentum()), weight); _h_t_comb_mass->fill(mass(jets[0].momentum() + jets[2].momentum() + jets[3].momentum()), weight); _h_t_comb_mass->fill(mass(jets[1].momentum() + jets[2].momentum() + jets[3].momentum()), weight); + + /// @todo Add reconstruction of the other top from the leptonically decaying W, using WFinder } - + + void finalize() { // No histos, so nothing to do! } - //@} - private: - Histo1DPtr _h_jet_0_pT; - Histo1DPtr _h_jet_1_pT; - Histo1DPtr _h_jet_2_pT; - Histo1DPtr _h_jet_3_pT; + //@} - Histo1DPtr _h_bjet_0_pT; - Histo1DPtr _h_bjet_1_pT; - Histo1DPtr _h_ljet_0_pT; - Histo1DPtr _h_ljet_1_pT; + private: + Histo1DPtr _h_jet_1_pT, _h_jet_2_pT, _h_jet_3_pT, _h_jet_4_pT; + Histo1DPtr _h_bjet_1_pT, _h_bjet_2_pT; + Histo1DPtr _h_ljet_1_pT, _h_ljet_2_pT; Histo1DPtr _h_W_mass; Histo1DPtr _h_t_mass; Histo1DPtr _h_W_comb_mass; Histo1DPtr _h_t_comb_mass; Histo1DPtr _h_t_mass_W_cut; + }; + // This global object acts as a hook for the plugin system AnalysisBuilder<MC_TTBAR> plugin_MC_TTBAR;
More information about the Rivet-svn mailing list |