|
[Rivet-svn] r3055 - in trunk: data/anainfo src/Analysesblackhole at projects.hepforge.org blackhole at projects.hepforge.orgWed Apr 13 16:17:09 BST 2011
Author: dgrell Date: Wed Apr 13 16:17:09 2011 New Revision: 3055 Log: added ATLAS 8983313: 0-lepton BSM Added: trunk/data/anainfo/ATLAS_2011_S8983313.info (contents, props changed) - copied, changed from r3054, trunk/data/anainfo/ATLAS_2011_S8971293.info trunk/src/Analyses/ATLAS_2011_S8983313.cc Modified: trunk/data/anainfo/Makefile.am trunk/src/Analyses/Makefile.am Copied and modified: trunk/data/anainfo/ATLAS_2011_S8983313.info (from r3054, trunk/data/anainfo/ATLAS_2011_S8971293.info) ============================================================================== --- trunk/data/anainfo/ATLAS_2011_S8971293.info Wed Apr 13 15:24:21 2011 (r3054, copy source) +++ trunk/data/anainfo/ATLAS_2011_S8983313.info Wed Apr 13 16:17:09 2011 (r3055) @@ -1,35 +1,34 @@ -Name: ATLAS_2011_S8971293 +Name: ATLAS_2011_S8983313 Year: 2011 -Summary: Dijet Azimuthal Decorrelations +Summary: 0-Lepton Squark and Gluino Search Experiment: ATLAS Collider: LHC -SpiresID: 8971293 +SpiresID: 8983313 Status: VALIDATED Authors: - - Frank Siegert <frank.siegert at cern.ch> + - David Grellscheid <david.grellscheid at durham.ac.uk> References: - - arXiv:1102.2696 + - arXiv:1102.5290 RunInfo: - pp QCD interactions at 7000 GeV. The distributions are binned in leading pT - starting at 110 GeV with the last bin starting at 800 GeV. -NumEvents: 1000000000 + BSM signal events at 7000 GeV. +NumEvents: 25000 for BSM signals Beams: [p+, p+] Energies: [7000] -PtCuts: [20.0] Description: - 'Dijet azimuthal decorrelation measured by ATLAS at 7 TeV. Jets are anti- - kt with $R=0.6$, $p_\perp>100$ GeV, $|\eta|<0.8$. The analysis is binned - in leading jet $p_\perp$ bins. All data is fully corrected.' -BibKey: Aad:2011ni -BibTeX: '@Article{Aad:2011ni, - author = "Collaboration, The ATLAS", - title = "{Measurement of Dijet Azimuthal Decorrelations in pp - Collisions at sqrt(s)=7 TeV}", + '0-lepton search for squarks and gluinos by ATLAS at 7 TeV. + Event counts in four signal regions A-D are implemented as one-bin + histograms.' +BibKey: daCosta:2011qk +BibTeX: '@Article{daCosta:2011qk, + author = "da Costa, Joao Barreiro Guimaraes and others", + collaboration = "Atlas", + title = "{Search for squarks and gluinos using final states with + jets and missing transverse momentum with the ATLAS + detector in sqrt(s) = 7 TeV proton-proton collisions}", year = "2011", - eprint = "1102.2696", + eprint = "1102.5290", archivePrefix = "arXiv", primaryClass = "hep-ex", - SLACcitation = "%%CITATION = 1102.2696;%%" -}' -ToDo: - Check BibKey and BibTeX consistency when fixed on SPIRES. + SLACcitation = "%%CITATION = 1102.5290;%%" +} +' Modified: trunk/data/anainfo/Makefile.am ============================================================================== --- trunk/data/anainfo/Makefile.am Wed Apr 13 15:24:21 2011 (r3054) +++ trunk/data/anainfo/Makefile.am Wed Apr 13 16:17:09 2011 (r3055) @@ -14,6 +14,7 @@ ATLAS_2010_S8919674.info \ ATLAS_2011_S8924791.info \ ATLAS_2011_S8971293.info \ + ATLAS_2011_S8983313.info \ ATLAS_2010_CONF_2010_049.info \ ATLAS_2010_S8994773.info \ BELLE_2006_S6265367.info \ Added: trunk/src/Analyses/ATLAS_2011_S8983313.cc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/src/Analyses/ATLAS_2011_S8983313.cc Wed Apr 13 16:17:09 2011 (r3055) @@ -0,0 +1,315 @@ +// -*- C++ -*- +#include "Rivet/Analysis.hh" +#include "Rivet/Tools/BinnedHistogram.hh" +#include "Rivet/RivetAIDA.hh" +#include "Rivet/Tools/Logging.hh" +#include "Rivet/Projections/FinalState.hh" +#include "Rivet/Projections/ChargedFinalState.hh" +#include "Rivet/Projections/VisibleFinalState.hh" +#include "Rivet/Projections/IdentifiedFinalState.hh" +#include "Rivet/Projections/FastJets.hh" +#include "Rivet/Tools/RivetMT2.hh" + +namespace Rivet { + + + class ATLAS_2011_S8983313 : public Analysis { + public: + + /// @name Constructors etc. + //@{ + + /// Constructor + ATLAS_2011_S8983313() + : Analysis("ATLAS_2011_S8983313") + { + /// Set whether your finalize method needs the generator cross section + setNeedsCrossSection(false); + } + + //@} + + + public: + + /// @name Analysis methods + //@{ + + /// Book histograms and initialise projections before the run + void init() { + + // projection to find the electrons + std::vector<std::pair<double, double> > eta_e; + eta_e.push_back(make_pair(-2.47,2.47)); + IdentifiedFinalState elecs(eta_e, 10.0*GeV); + elecs.acceptIdPair(ELECTRON); + addProjection(elecs, "elecs"); + + + + // veto region electrons + std::vector<std::pair<double, double> > eta_v_e; + eta_v_e.push_back(make_pair(-1.52,-1.37)); + eta_v_e.push_back(make_pair( 1.37, 1.52)); + IdentifiedFinalState veto_elecs(eta_v_e, 10.0*GeV); + veto_elecs.acceptIdPair(ELECTRON); + addProjection(veto_elecs, "veto_elecs"); + + + + // projection to find the muons + std::vector<std::pair<double, double> > eta_m; + eta_m.push_back(make_pair(-2.4,2.4)); + IdentifiedFinalState muons(eta_m, 10.0*GeV); + muons.acceptIdPair(MUON); + addProjection(muons, "muons"); + + + + /// Jet finder + addProjection(FastJets(FinalState(), FastJets::ANTIKT, 0.4), + "AntiKtJets04"); + + // all tracks (to do deltaR with leptons) + addProjection(ChargedFinalState(-3.0,3.0),"cfs"); + + // for pTmiss + addProjection(VisibleFinalState(-4.9,4.9),"vfs"); + + + /// Book histograms + _count_A = bookHistogram1D("count_A", 1, 0., 1.); + _count_B = bookHistogram1D("count_B", 1, 0., 1.); + _count_C = bookHistogram1D("count_C", 1, 0., 1.); + _count_D = bookHistogram1D("count_D", 1, 0., 1.); + + _hist_meff_A = bookHistogram1D("m_eff_A", 30, 0., 3000.); + _hist_mT2_B = bookHistogram1D("m_T2", 25, 0., 1000.); + _hist_meff_CD = bookHistogram1D("m_eff_C_D", 30, 0., 3000.); + _hist_eTmiss = bookHistogram1D("Et_miss", 20, 0., 1000.); + } + + + /// Perform the per-event analysis + void analyze(const Event& event) { + const double weight = event.weight(); + + ParticleVector veto_e + = applyProjection<IdentifiedFinalState>(event, "veto_elecs").particles(); + if ( ! veto_e.empty() ) { + MSG_DEBUG("electrons in veto region"); + vetoEvent; + } + + + Jets cand_jets; + foreach (const Jet& jet, + applyProjection<FastJets>(event, "AntiKtJets04").jetsByPt(20.0*GeV) ) { + if ( fabs( jet.momentum().eta() ) < 4.9 ) { + cand_jets.push_back(jet); + } + } + + ParticleVector cand_e = applyProjection<IdentifiedFinalState>(event, "elecs").particlesByPt(); + + + ParticleVector cand_mu; + ParticleVector chg_tracks = applyProjection<ChargedFinalState>(event, "cfs").particles(); + foreach ( const Particle & mu, applyProjection<IdentifiedFinalState>(event, "muons").particlesByPt() ) { + double pTinCone = 0.0; + foreach ( const Particle & track, chg_tracks ) { + if ( deltaR(mu.momentum(),track.momentum()) <= 0.2 ) + pTinCone += track.momentum().pT(); + } + if ( pTinCone < 1.8*GeV ) + cand_mu.push_back(mu); + } + + Jets cand_jets_2; + foreach ( const Jet& jet, cand_jets ) { + if ( fabs( jet.momentum().eta() ) >= 2.5 ) + cand_jets_2.push_back( jet ); + else { + bool away_from_e = true; + foreach ( const Particle & e, cand_e ) { + if ( deltaR(e.momentum(),jet.momentum()) <= 0.2 ) { + away_from_e = false; + break; + } + } + if ( away_from_e ) + cand_jets_2.push_back( jet ); + } + } + + ParticleVector recon_e, recon_mu; + foreach ( const Jet& jet, cand_jets_2 ) { + foreach ( const Particle & e, cand_e ) { + if ( deltaR(e.momentum(),jet.momentum()) >= 0.4 ) + recon_e.push_back( e ); + } + foreach ( const Particle & mu, cand_mu ) { + if ( deltaR(mu.momentum(),jet.momentum()) >= 0.4 ) + recon_mu.push_back( mu ); + } + } + + // pTmiss + ParticleVector vfs_particles = applyProjection<VisibleFinalState>(event, "vfs").particles(); + FourMomentum pTmiss; + foreach ( const Particle & p, vfs_particles ) { + pTmiss -= p.momentum(); + } + double eTmiss = pTmiss.pT(); + + + // final jet filter + Jets recon_jets; + foreach ( const Jet& jet, cand_jets_2 ) { + if ( fabs( jet.momentum().eta() ) <= 2.5 ) + recon_jets.push_back( jet ); + } + + + // now only use recon_jets, recon_mu, recon_e + + if ( ! ( recon_mu.empty() && recon_e.empty() ) ) { + MSG_DEBUG("Charged leptons left after selection"); + vetoEvent; + } + + if ( eTmiss <= 100 * GeV ) { + MSG_DEBUG("Not enough eTmiss: " << eTmiss << " < 100"); + vetoEvent; + } + + + if ( recon_jets.empty() || recon_jets[0].momentum().pT() <= 120.0 * GeV ) { + MSG_DEBUG("No hard leading jet in " << recon_jets.size() << " jets"); + vetoEvent; + } + + // ==================== observables ==================== + + // Njets, min_dPhi + + int Njets = 0; + double min_dPhi = 999.999; + double pTmiss_phi = pTmiss.phi(); + foreach ( const Jet& jet, recon_jets ) { + if ( jet.momentum().pT() > 40 * GeV ) { + if ( Njets < 3 ) + min_dPhi = min( min_dPhi, + deltaPhi( pTmiss_phi, jet.momentum().phi() ) ); + ++Njets; + } + } + + if ( Njets < 2 ) { + MSG_DEBUG("Only " << Njets << " >40 GeV jets left"); + vetoEvent; + } + + if ( min_dPhi <= 0.4 ) { + MSG_DEBUG("dPhi too small"); + vetoEvent; + } + + // m_eff + + double m_eff_2j = eTmiss + + recon_jets[0].momentum().pT() + + recon_jets[1].momentum().pT(); + + double m_eff_3j = recon_jets.size() < 3 ? -999.0 : m_eff_2j + recon_jets[2].momentum().pT(); + + // etmiss / m_eff + + double et_meff_2j = eTmiss / m_eff_2j; + double et_meff_3j = eTmiss / m_eff_3j; + + FourMomentum a = recon_jets[0].momentum(); + FourMomentum b = recon_jets[1].momentum(); + + double m_T2 = mT2::mT2( a, + b, + pTmiss, + 0.0 ); // zero mass invisibles + + + // ==================== FILL ==================== + + MSG_DEBUG( "Trying to fill " + << Njets << ' ' + << m_eff_2j << ' ' + << et_meff_2j << ' ' + << m_eff_3j << ' ' + << et_meff_3j << ' ' + << m_T2 ); + + _hist_eTmiss->fill(eTmiss, weight); + + // AAAAAAAAAA + if ( et_meff_2j > 0.3 ) { + _hist_meff_A->fill(m_eff_2j, weight); + if ( m_eff_2j > 500 * GeV ) { + MSG_DEBUG("Hits A"); + _count_A->fill(0.5, weight); + } + } + + // BBBBBBBBBB + _hist_mT2_B->fill(m_T2, weight); + if ( m_T2 > 300 * GeV ) { + MSG_DEBUG("Hits B"); + _count_B->fill(0.5, weight); + } + + // need 3 jets for C and D + if ( Njets >= 3 && et_meff_3j > 0.25 ) { + + _hist_meff_CD->fill(m_eff_3j, weight); + + // CCCCCCCCCC + if ( m_eff_3j > 500 * GeV ) { + MSG_DEBUG("Hits C"); + _count_C->fill(0.5, weight); + } + + // DDDDDDDDDD + if ( m_eff_3j > 1000 * GeV ) { + MSG_DEBUG("Hits D"); + _count_D->fill(0.5, weight); + } + } + + } + + //@} + + void finalize() {} + + private: + + /// @name Histograms + //@{ + AIDA::IHistogram1D* _count_A; + AIDA::IHistogram1D* _count_B; + AIDA::IHistogram1D* _count_C; + AIDA::IHistogram1D* _count_D; + AIDA::IHistogram1D* _hist_meff_A; + AIDA::IHistogram1D* _hist_mT2_B; + AIDA::IHistogram1D* _hist_meff_CD; + AIDA::IHistogram1D* _hist_eTmiss; + //@} + + + }; + + + + // This global object acts as a hook for the plugin system + AnalysisBuilder<ATLAS_2011_S8983313> plugin_ATLAS_2011_S8983313; + + +} Modified: trunk/src/Analyses/Makefile.am ============================================================================== --- trunk/src/Analyses/Makefile.am Wed Apr 13 15:24:21 2011 (r3054) +++ trunk/src/Analyses/Makefile.am Wed Apr 13 16:17:09 2011 (r3055) @@ -51,7 +51,8 @@ ATLAS_2010_S8919674.cc \ ATLAS_2011_S8924791.cc \ ATLAS_2011_S8971293.cc \ - ATLAS_2010_S8994773.cc + ATLAS_2010_S8994773.cc \ + ATLAS_2011_S8983313.cc if ENABLE_UNVALIDATED RivetATLASAnalyses_la_SOURCES += \ ATLAS_2010_CONF_2010_049.cc
More information about the Rivet-svn mailing list |