|
[Rivet-svn] r3477 - in trunk: . data/plotinfo data/refdata src/Analysesblackhole at projects.hepforge.org blackhole at projects.hepforge.orgWed Nov 9 17:12:06 GMT 2011
Author: buckley Date: Wed Nov 9 17:12:06 2011 New Revision: 3477 Log: Cosmetic fixes in ATLAS_2011_S9212183 SUSY analysis, and removing Makefile.am references to non-existing aux files for it Modified: trunk/ChangeLog trunk/data/plotinfo/Makefile.am trunk/data/refdata/Makefile.am trunk/src/Analyses/ATLAS_2011_S9212183.cc Modified: trunk/ChangeLog ============================================================================== --- trunk/ChangeLog Wed Nov 9 16:24:45 2011 (r3476) +++ trunk/ChangeLog Wed Nov 9 17:12:06 2011 (r3477) @@ -1,4 +1,11 @@ +2011-11-09 Andy Buckley <andy at insectnation.org> + + * Cosmetic fixes in ATLAS_2011_S9212183 SUSY analysis. + + * Adding new ATLAS W pT analysis from Elena Yatsenko (slightly adapted). + 2011-10-20 Frank Siegert <frank.siegert at cern.ch> + * Extend API of W/ZFinder to allow for specification of input final state in which to search for leptons/photons. Modified: trunk/data/plotinfo/Makefile.am ============================================================================== --- trunk/data/plotinfo/Makefile.am Wed Nov 9 16:24:45 2011 (r3476) +++ trunk/data/plotinfo/Makefile.am Wed Nov 9 17:12:06 2011 (r3477) @@ -23,7 +23,6 @@ ATLAS_2011_S9126244.plot \ ATLAS_2011_S9128077.plot \ ATLAS_2011_S9131140.plot \ - ATLAS_2011_S9212183.plot \ ATLAS_2011_I919017.plot \ ATLAS_2011_I925932.plot \ CDF_1988_S1865951.plot \ Modified: trunk/data/refdata/Makefile.am ============================================================================== --- trunk/data/refdata/Makefile.am Wed Nov 9 16:24:45 2011 (r3476) +++ trunk/data/refdata/Makefile.am Wed Nov 9 17:12:06 2011 (r3477) @@ -27,7 +27,6 @@ ATLAS_2011_S9126244.aida \ ATLAS_2011_S9128077.aida \ ATLAS_2011_S9131140.aida \ - ATLAS_2011_S9212183.aida \ ATLAS_2011_I919017.aida \ ATLAS_2011_I925932.aida \ BABAR_2006_S6511112.aida \ Modified: trunk/src/Analyses/ATLAS_2011_S9212183.cc ============================================================================== --- trunk/src/Analyses/ATLAS_2011_S9212183.cc Wed Nov 9 16:24:45 2011 (r3476) +++ trunk/src/Analyses/ATLAS_2011_S9212183.cc Wed Nov 9 17:12:06 2011 (r3477) @@ -11,6 +11,7 @@ namespace Rivet { + /// @author Chris Wymant class ATLAS_2011_S9212183 : public Analysis { public: @@ -21,12 +22,9 @@ /// Constructor ATLAS_2011_S9212183() : Analysis("ATLAS_2011_S9212183") - { - /// Set whether your finalize method needs the generator cross section - setNeedsCrossSection(false); - } + { } - //@} + //@} public: @@ -37,31 +35,31 @@ /// Book histograms and initialise projections before the run void init() { - // projection to find the electrons + // 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, 20.0*GeV); elecs.acceptIdPair(ELECTRON); addProjection(elecs, "elecs"); - // projection to find the muons + // 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 + // Jet finder addProjection(FastJets(FinalState(), FastJets::ANTIKT, 0.4), "AntiKtJets04"); - // all tracks (to do deltaR with leptons) + // All tracks (to do deltaR with leptons) addProjection(ChargedFinalState(-3.0,3.0),"cfs"); - // used for pTmiss (N.B. the real 'vfs' extends beyond 4.5 to |eta| = 4.9) + // Used for pTmiss (N.B. the real 'vfs' extends beyond 4.5 to |eta| = 4.9) addProjection(VisibleFinalState(-4.5,4.5),"vfs"); - /// Book histograms + // Book histograms _count_2j = bookHistogram1D("count_2j", 1, 0., 1.); _count_3j = bookHistogram1D("count_3j", 1, 0., 1.); _count_4j5 = bookHistogram1D("count_4j5", 1, 0., 1.); @@ -77,252 +75,243 @@ } - /// Perform the per-event analysis - void analyze(const Event& event) { - const double weight = event.weight(); - - 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); + /// Perform the per-event analysis + void analyze(const Event& event) { + const double weight = event.weight(); + + Jets cand_jets; + const Jets jets = applyProjection<FastJets>(event, "AntiKtJets04").jetsByPt(20.0*GeV); + foreach (const Jet& jet, jets) { + if ( fabs( jet.momentum().eta() ) < 4.9 ) { + cand_jets.push_back(jet); + } } - } - ParticleVector cand_e = applyProjection<IdentifiedFinalState>(event, "elecs").particlesByPt(); + const ParticleVector cand_e = applyProjection<IdentifiedFinalState>(event, "elecs").particlesByPt(); - // muon isolation not mentioned in hep-exp 1109.6572, unlike in 1102.5290, - // but assumed to still be applicable - ParticleVector cand_mu; - ParticleVector chg_tracks = applyProjection<ChargedFinalState>(event, "cfs").particles(); - foreach ( const Particle & mu, - applyProjection<IdentifiedFinalState>(event, "muons").particlesByPt() ) { - double pTinCone = -mu.momentum().pT(); - foreach ( const Particle & track, chg_tracks ) { - if ( deltaR(mu.momentum(),track.momentum()) <= 0.2 ) - pTinCone += track.momentum().pT(); + // Muon isolation not mentioned in hep-exp 1109.6572, unlike in 1102.5290, + // but assumed to still be applicable + ParticleVector cand_mu; + const ParticleVector chg_tracks = applyProjection<ChargedFinalState>(event, "cfs").particles(); + const ParticleVector muons = applyProjection<IdentifiedFinalState>(event, "muons").particlesByPt(); + foreach (const Particle& mu, muons) { + double pTinCone = -mu.momentum().pT(); + 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); } - if ( pTinCone < 1.8*GeV ) - cand_mu.push_back(mu); - } - // resolve jet-lepton overlap for jets with |eta| < 2.8 - Jets cand_jets_2; - foreach ( const Jet& jet, cand_jets ) { - if ( fabs( jet.momentum().eta() ) >= 2.8 ) - 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; + // Resolve jet-lepton overlap for jets with |eta| < 2.8 + Jets cand_jets_2; + foreach ( const Jet& jet, cand_jets ) { + if ( fabs( jet.momentum().eta() ) >= 2.8 ) { + 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 ); } - if ( away_from_e ) - cand_jets_2.push_back( jet ); } - } - ParticleVector recon_e, recon_mu; + ParticleVector recon_e, recon_mu; - foreach ( const Particle & e, cand_e ) { - bool away = true; - foreach ( const Jet& jet, cand_jets_2 ) { - if ( deltaR(e.momentum(),jet.momentum()) < 0.4 ) { - away = false; - break; + foreach ( const Particle & e, cand_e ) { + bool away = true; + foreach ( const Jet& jet, cand_jets_2 ) { + if ( deltaR(e.momentum(),jet.momentum()) < 0.4 ) { + away = false; + break; + } } + if ( away ) recon_e.push_back( e ); } - if ( away ) - recon_e.push_back( e ); - } - foreach ( const Particle & mu, cand_mu ) { - bool away = true; - foreach ( const Jet& jet, cand_jets_2 ) { - if ( deltaR(mu.momentum(),jet.momentum()) < 0.4 ) { - away = false; - break; + foreach ( const Particle & mu, cand_mu ) { + bool away = true; + foreach ( const Jet& jet, cand_jets_2 ) { + if ( deltaR(mu.momentum(),jet.momentum()) < 0.4 ) { + away = false; + break; + } } + if ( away ) recon_mu.push_back( mu ); } - if ( away ) - recon_mu.push_back( mu ); - } - // pTmiss - // based on all candidate electrons, muons and jets, plus everything else with |eta| < 4.5 - // i.e. everything in our projection "vfs" plus the jets with |eta| > 4.5 - ParticleVector vfs_particles = applyProjection<VisibleFinalState>(event, "vfs").particles(); - FourMomentum pTmiss; - foreach ( const Particle & p, vfs_particles ) { - pTmiss -= p.momentum(); - } - foreach ( const Jet& jet, cand_jets_2 ) { - if ( fabs( jet.momentum().eta() ) > 4.5 ) - pTmiss -= jet.momentum(); - } - double eTmiss = pTmiss.pT(); + // pTmiss + // Based on all candidate electrons, muons and jets, plus everything else with |eta| < 4.5 + // i.e. everything in our projection "vfs" plus the jets with |eta| > 4.5 + ParticleVector vfs_particles = applyProjection<VisibleFinalState>(event, "vfs").particles(); + FourMomentum pTmiss; + foreach ( const Particle & p, vfs_particles ) { + pTmiss -= p.momentum(); + } + foreach ( const Jet& jet, cand_jets_2 ) { + if ( fabs( jet.momentum().eta() ) > 4.5 ) pTmiss -= jet.momentum(); + } + double eTmiss = pTmiss.pT(); - // final jet filter - Jets recon_jets; - foreach ( const Jet& jet, cand_jets_2 ) { - if ( fabs( jet.momentum().eta() ) <= 2.8 ) - recon_jets.push_back( jet ); - } - // NB it seems that jets with |eta| > 2.8 could have been thrown away at - // the start; we don't do so, in order to follow both the structure of - // the paper and the similar Rivet analysis ATLAS_2011_S8983313 - - // 'candidate' muons needed only 10 GeV, to cause a veto they need 20 GeV - ParticleVector veto_mu; - foreach ( const Particle & mu, cand_mu ) { - if ( mu.momentum().pT() >= 20.0*GeV ) - veto_mu.push_back(mu); - } + // Final jet filter + Jets recon_jets; + foreach ( const Jet& jet, cand_jets_2 ) { + if ( fabs( jet.momentum().eta() ) <= 2.8 ) recon_jets.push_back( jet ); + } + // NB. It seems that jets with |eta| > 2.8 could have been thrown away at + // the start; we don't do so, in order to follow both the structure of + // the paper and the similar Rivet analysis ATLAS_2011_S8983313 - if ( ! ( veto_mu.empty() && recon_e.empty() ) ) { - MSG_DEBUG("Charged leptons left after selection"); - vetoEvent; - } + // 'candidate' muons needed only 10 GeV, to cause a veto they need 20 GeV + ParticleVector veto_mu; + foreach ( const Particle & mu, cand_mu ) { + if ( mu.momentum().pT() >= 20.0*GeV ) veto_mu.push_back(mu); + } - if ( eTmiss <= 130 * GeV ) { - MSG_DEBUG("Not enough eTmiss: " << eTmiss << " < 130"); - vetoEvent; - } + if ( ! ( veto_mu.empty() && recon_e.empty() ) ) { + MSG_DEBUG("Charged leptons left after selection"); + vetoEvent; + } + + if ( eTmiss <= 130 * GeV ) { + MSG_DEBUG("Not enough eTmiss: " << eTmiss << " < 130"); + vetoEvent; + } + if ( recon_jets.empty() || recon_jets[0].momentum().pT() <= 130.0 * GeV ) { + MSG_DEBUG("No hard leading jet in " << recon_jets.size() << " jets"); + vetoEvent; + } - if ( recon_jets.empty() || recon_jets[0].momentum().pT() <= 130.0 * GeV ) { - MSG_DEBUG("No hard leading jet in " << recon_jets.size() << " jets"); - vetoEvent; - } + // ==================== observables ==================== - // ==================== observables ==================== + 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; + } + } - 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; + int NjetsHighMass = 0; + foreach ( const Jet& jet, recon_jets ) { + if ( jet.momentum().pT() > 80.0 * GeV ) { + ++NjetsHighMass; + } } - } - int NjetsHighMass = 0; - foreach ( const Jet& jet, recon_jets ) { - if ( jet.momentum().pT() > 80.0 * GeV ) { - ++NjetsHighMass; + if ( Njets < 2 ) { + MSG_DEBUG("Only " << Njets << " >40 GeV jets left"); + vetoEvent; } - } - if ( Njets < 2 ) { - MSG_DEBUG("Only " << Njets << " >40 GeV jets left"); - vetoEvent; - } + if ( min_dPhi <= 0.4 ) { + MSG_DEBUG("dPhi too small"); + 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(); + double m_eff_4j = recon_jets.size() < 4 ? -999.0 : m_eff_3j + recon_jets[3].momentum().pT(); + double m_eff_HM = eTmiss; + foreach ( const Jet& jet, recon_jets ) { + if ( jet.momentum().pT() > 40.0 * GeV ) m_eff_HM += jet.momentum().pT(); + } - // 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(); - double m_eff_4j = recon_jets.size() < 4 ? -999.0 : m_eff_3j + recon_jets[3].momentum().pT(); - double m_eff_HM = eTmiss; - foreach ( const Jet& jet, recon_jets ) { - if ( jet.momentum().pT() > 40.0 * GeV ) - m_eff_HM += jet.momentum().pT(); - } + double et_meff_2j = eTmiss / m_eff_2j; + double et_meff_3j = eTmiss / m_eff_3j; + double et_meff_4j = eTmiss / m_eff_4j; + double et_meff_HM = eTmiss / m_eff_HM; - double et_meff_2j = eTmiss / m_eff_2j; - double et_meff_3j = eTmiss / m_eff_3j; - double et_meff_4j = eTmiss / m_eff_4j; - double et_meff_HM = eTmiss / m_eff_HM; - - - // ==================== FILL ==================== - - MSG_DEBUG( "Trying to fill " - << Njets << ' ' - << m_eff_2j << ' ' - << et_meff_2j << ' ' - << m_eff_3j << ' ' - << et_meff_3j << ' ' - << m_eff_4j << ' ' - << et_meff_4j << ' ' - << m_eff_HM << ' ' - << et_meff_HM ); - - _hist_eTmiss->fill(eTmiss, weight); - - - // 2j region - if ( et_meff_2j > 0.3 ) { - _hist_meff_2j->fill(m_eff_2j, weight); - if ( m_eff_2j > 1000 * GeV ) { - MSG_DEBUG("Hits 2j"); - _count_2j->fill(0.5, weight); - } - } + // ==================== FILL ==================== + + MSG_DEBUG( "Trying to fill " + << Njets << ' ' + << m_eff_2j << ' ' + << et_meff_2j << ' ' + << m_eff_3j << ' ' + << et_meff_3j << ' ' + << m_eff_4j << ' ' + << et_meff_4j << ' ' + << m_eff_HM << ' ' + << et_meff_HM ); - // 3j region - if ( Njets >= 3 && et_meff_3j > 0.25 ) { - _hist_meff_3j->fill(m_eff_3j, weight); - if ( m_eff_3j > 1000 * GeV ) { - MSG_DEBUG("Hits 3j"); - _count_3j->fill(0.5, weight); - } - } + _hist_eTmiss->fill(eTmiss, weight); - // 4j5 & 4j10 regions - if ( Njets >= 4 && et_meff_4j > 0.25 ) { - _hist_meff_4j->fill(m_eff_4j, weight); - if ( m_eff_4j > 500 * GeV ) { - MSG_DEBUG("Hits 4j5"); - _count_4j5->fill(0.5, weight); - } - if ( m_eff_4j > 1000 * GeV ) { - MSG_DEBUG("Hits 4j10"); - _count_4j10->fill(0.5, weight); + + // 2j region + if ( et_meff_2j > 0.3 ) { + _hist_meff_2j->fill(m_eff_2j, weight); + if ( m_eff_2j > 1000 * GeV ) { + MSG_DEBUG("Hits 2j"); + _count_2j->fill(0.5, weight); + } } - } - // High Mass region - if ( NjetsHighMass >= 4 && et_meff_HM > 0.2 ) { - _hist_meff_HM->fill(m_eff_HM, weight); - if ( m_eff_HM > 1100 * GeV ) { - MSG_DEBUG("Hits HM"); - _count_HM->fill(0.5, weight); + // 3j region + if ( Njets >= 3 && et_meff_3j > 0.25 ) { + _hist_meff_3j->fill(m_eff_3j, weight); + if ( m_eff_3j > 1000 * GeV ) { + MSG_DEBUG("Hits 3j"); + _count_3j->fill(0.5, weight); + } } - } - } + // 4j5 & 4j10 regions + if ( Njets >= 4 && et_meff_4j > 0.25 ) { + _hist_meff_4j->fill(m_eff_4j, weight); + if ( m_eff_4j > 500 * GeV ) { + MSG_DEBUG("Hits 4j5"); + _count_4j5->fill(0.5, weight); + } + if ( m_eff_4j > 1000 * GeV ) { + MSG_DEBUG("Hits 4j10"); + _count_4j10->fill(0.5, weight); + } + } + - //@} + // High mass region + if ( NjetsHighMass >= 4 && et_meff_HM > 0.2 ) { + _hist_meff_HM->fill(m_eff_HM, weight); + if ( m_eff_HM > 1100 * GeV ) { + MSG_DEBUG("Hits HM"); + _count_HM->fill(0.5, weight); + } + } - void finalize() { + } - // Two, three and four jet channels have bin width = 100 (GeV) - // High mass channel has bin width = 150 (GeV) - // Integrated luminosity = 1040 (pb) - scale( _hist_meff_2j, 100. * 1040 * crossSection()/sumOfWeights() ); - scale( _hist_meff_3j, 100. * 1040 * crossSection()/sumOfWeights() ); - scale( _hist_meff_4j, 100. * 1040 * crossSection()/sumOfWeights() ); - scale( _hist_meff_HM, 150. * 1040 * crossSection()/sumOfWeights() ); + void finalize() { + // Two, three and four jet channels have bin width = 100 (GeV) + // High mass channel has bin width = 150 (GeV) + // Integrated luminosity = 1040 (pb) + scale( _hist_meff_2j, 100. * 1040 * crossSection()/sumOfWeights() ); + scale( _hist_meff_3j, 100. * 1040 * crossSection()/sumOfWeights() ); + scale( _hist_meff_4j, 100. * 1040 * crossSection()/sumOfWeights() ); + scale( _hist_meff_HM, 150. * 1040 * crossSection()/sumOfWeights() ); + } + //@} - } private: @@ -337,11 +326,10 @@ AIDA::IHistogram1D* _hist_meff_HM; AIDA::IHistogram1D* _hist_eTmiss; - }; // This global object acts as a hook for the plugin system - AnalysisBuilder<ATLAS_2011_S9212183> plugin_ATLAS_2011_S9212183; + DECLARE_RIVET_PLUGIN(ATLAS_2011_S9212183); }
More information about the Rivet-svn mailing list |