[Rivet-svn] r3684 - in trunk: data/anainfo data/plotinfo src/Analyses

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Mon Apr 16 13:10:22 BST 2012


Author: richardn
Date: Mon Apr 16 13:10:22 2012
New Revision: 3684

Log:
added ATLAS_2012_I1095236, latest b-jet + MET SUSY search

Added:
   trunk/data/anainfo/ATLAS_2012_I1095236.info
      - copied, changed from r3662, trunk/data/anainfo/ATLAS_2011_CONF_2011_098.info
   trunk/data/plotinfo/ATLAS_2012_I1095236.plot
   trunk/src/Analyses/ATLAS_2012_I1095236.cc
      - copied, changed from r3651, trunk/src/Analyses/ATLAS_2011_S9212183.cc
Modified:
   trunk/data/anainfo/Makefile.am
   trunk/data/plotinfo/Makefile.am
   trunk/src/Analyses/Makefile.am

Copied and modified: trunk/data/anainfo/ATLAS_2012_I1095236.info (from r3662, trunk/data/anainfo/ATLAS_2011_CONF_2011_098.info)
==============================================================================
--- trunk/data/anainfo/ATLAS_2011_CONF_2011_098.info	Wed Apr  4 16:20:39 2012	(r3662, copy source)
+++ trunk/data/anainfo/ATLAS_2012_I1095236.info	Mon Apr 16 13:10:22 2012	(r3684)
@@ -1,24 +1,40 @@
-Name: ATLAS_2011_CONF_2011_098
+Name: ATLAS_2012_I1095236
 Year: 2011
-Summary: B-jets search for supersymmetry with 0-leptons
+Summary: b-jets search for supersymmetry with 0- and 1-leptons
 Experiment: ATLAS
 Collider: LHC
-SpiresID:
+SpiresID: 1095236
 Status: UNVALIDATED
 Authors:
- - Angela Chen <aqchen at fas.harvard.edu>
+ - Peter Richardson <Peter.Richardson at durham.ac.uk>
 References:
- - arXiv:nnnn.nnnn
+ - arXiv:1203.6193
 RunInfo:
   BSM signal events at 7000 GeV.
 NumEvents: 25000 for BSM signals
 Beams: [p+, p+]
 Energies: [7000]
 Description:
-  'Search for supersymmmetric particles by ATLAS at 7 TeV in events with b-jets, large missing
-  energy, and no leptons.
-  Event counts in four signal regions (1 b-jet, m_eff>500*GeV; 1 b-jet, m_eff>700*GeV; 2 b-jets,
-  m_eff>500*GeV; 2 b-jets, m_eff>700*GeV) are implemented as one-bin histograms.
-  Histograms for missing transverse energy, effective mass, and pT of the leading jet are
-  implemented for the 1 b-tag and 2 b-tag signal regions.'
-
+  'Search for supersymmmetric particles by ATLAS at 7 TeV in events with b-jets,
+  large missing
+  energy, and zero or one leptons.
+  Event counts in six zero lepton and two one lepton signal regions are implemented
+  as one-bin histograms.
+  Histograms for missing transverse energy, and effective mass are also
+  implemented for some signal regions.'
+ibKey: ATLAS2012:1095236
+BibTeX: '@article{ATLAS2012:1095236,
+      author         = "Aad, Georges and others",
+      title          = "{Search for supersymmetry in pp collisions at sqrt(s) = 7
+                        TeV in final states with missing transverse momentum and
+                        b-jets with the ATLAS detector}",
+      collaboration  = "ATLAS Collaboration",
+      year           = "2012",
+      note           = "15 pages plus author list (28 pages total), 11 figures, 8
+                        tables, submitted to Physical Review D",
+      eprint         = "1203.6193",
+      archivePrefix  = "arXiv",
+      primaryClass   = "hep-ex",
+      reportNumber   = "CERN-PH-EP-2012-052",
+      SLACcitation   = "%%CITATION = ARXIV:1203.6193;%%",
+}'

Modified: trunk/data/anainfo/Makefile.am
==============================================================================
--- trunk/data/anainfo/Makefile.am	Mon Apr 16 13:00:38 2012	(r3683)
+++ trunk/data/anainfo/Makefile.am	Mon Apr 16 13:10:22 2012	(r3684)
@@ -44,6 +44,7 @@
   ATLAS_2012_I1083318.info \
   ATLAS_2012_I1084540.info \
   ATLAS_2012_I1094568.info \
+  ATLAS_2012_I1095236.info \
   ATLAS_2012_CONF_2012_033.info \
   ATLAS_2012_CONF_2012_037.info \
   BABAR_2005_S6181155.info \

Added: trunk/data/plotinfo/ATLAS_2012_I1095236.plot
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ trunk/data/plotinfo/ATLAS_2012_I1095236.plot	Mon Apr 16 13:10:22 2012	(r3684)
@@ -0,0 +1,98 @@
+# BEGIN PLOT /ATLAS_2012_I1095236/count_SR0_A1
+Title=Number of events in the SR0-A1 signal region
+XLabel=
+YLabel=Number of Events
+LogY=0
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/count_SR0_B1
+Title=Number of events in the SR\0-B1 signal region
+XLabel=
+YLabel=Number of Events
+LogY=0
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/count_SR0_C1
+Title=Number of events in the SR0-C1 signal region
+XLabel=
+YLabel=Number of Events
+LogY=0
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/count_SR0_A2
+Title=Number of events in the SR0-A2 signal region
+XLabel=
+YLabel=Number of Events
+LogY=0
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/count_SR0_B2
+Title=Number of events in the SR0-B2 signal region
+XLabel=
+YLabel=Number of Events
+LogY=0
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/count_SR0_C2
+Title=Number of events in the SR0-C2 signal region
+XLabel=
+YLabel=Number of Events
+LogY=0
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/count_SR1_D
+Title=Number of events in the SR1-D signal region
+XLabel=
+YLabel=Number of Events
+LogY=0
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/count_SR1_E
+Title=Number of events in the SR1-E signal region
+XLabel=
+YLabel=Number of Events
+LogY=0
+# END PLOT
+
+# BEGIN PLOT /ATLAS_2012_I1095236/hist_m_eff_SR0_A1
+Title=Effective Mass for events in signal region SR0-A1
+XLabel=$m_{\mathrm{eff}}$ [GeV]
+YLabel=$\mathrm{Events}/100 \mathrm{GeV}$
+LogY=1
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/hist_met_SR0_A1
+Title=Missing transverse Energy for events in signal region SR0-A1
+XLabel=$E_{\mathrm{T}}^{\rm miss}$ [GeV]
+YLabel=$\mathrm{Events}/50 \mathrm{GeV}$
+LogY=1
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/hist_m_eff_SR0_A2
+Title=Effective Mass for events in signal region SR0-A2
+XLabel=$m_{\mathrm{eff}}$ [GeV]
+YLabel=$\mathrm{Events}/100 \mathrm{GeV}$
+LogY=1
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/hist_met_SR0_A2
+Title=Missing transverse Energy for events in signal region SR0-A2
+XLabel=$E_{\mathrm{T}}^{\rm miss}$ [GeV]
+YLabel=$\mathrm{Events}/50 \mathrm{GeV}$
+LogY=1
+# END PLOT
+
+# BEGIN PLOT /ATLAS_2012_I1095236/hist_meff_SR1_D_e
+Title=Effective Mass for events with an electron in the SR1-D signal region
+XLabel=$m_{\mathrm{eff}}$ [GeV]
+YLabel=$\mathrm{Events}/100 \mathrm{GeV}$
+LogY=1
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/hist_met_SR1_D_e
+Title=Missing transverse Energy for events with an electron in the SR1-D signal region
+XLabel=$E_{\mathrm{T}}^{\rm miss}$ [GeV]
+YLabel=$\mathrm{Events}/40 \mathrm{GeV}$
+LogY=1
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/hist_meff_SR1_D_mu
+Title=Effective Mass for events with an muon in the SR1-D signal region
+XLabel=$m_{\mathrm{eff}}$ [GeV]
+YLabel=$\mathrm{Events}/100 \mathrm{GeV}$
+LogY=1
+# END PLOT
+# BEGIN PLOT /ATLAS_2012_I1095236/hist_met_SR1_D_mu
+Title=Missing transverse Energy for events with an muon in the SR1-D signal region
+XLabel=$E_{\mathrm{T}}^{\rm miss}$ [GeV]
+YLabel=$\mathrm{Events}/40 \mathrm{GeV}$
+LogY=1
+# END PLOT

Modified: trunk/data/plotinfo/Makefile.am
==============================================================================
--- trunk/data/plotinfo/Makefile.am	Mon Apr 16 13:00:38 2012	(r3683)
+++ trunk/data/plotinfo/Makefile.am	Mon Apr 16 13:10:22 2012	(r3684)
@@ -41,6 +41,7 @@
   ATLAS_2012_I1083318.plot \
   ATLAS_2012_I1084540.plot \
   ATLAS_2012_I1094568.plot \
+  ATLAS_2012_I1095236.plot \
   ATLAS_2012_CONF_2012_033.plot \
   ATLAS_2012_CONF_2012_037.plot \
   BABAR_2005_S6181155.plot \

Copied and modified: trunk/src/Analyses/ATLAS_2012_I1095236.cc (from r3651, trunk/src/Analyses/ATLAS_2011_S9212183.cc)
==============================================================================
--- trunk/src/Analyses/ATLAS_2011_S9212183.cc	Sun Mar 25 11:21:04 2012	(r3651, copy source)
+++ trunk/src/Analyses/ATLAS_2012_I1095236.cc	Mon Apr 16 13:10:22 2012	(r3684)
@@ -6,22 +6,23 @@
 #include "Rivet/Projections/FinalState.hh"
 #include "Rivet/Projections/ChargedFinalState.hh"
 #include "Rivet/Projections/VisibleFinalState.hh"
+#include "Rivet/Projections/VetoedFinalState.hh"
 #include "Rivet/Projections/IdentifiedFinalState.hh"
 #include "Rivet/Projections/FastJets.hh"
+#include "Rivet/Tools/ParticleIdUtils.hh"
 
 namespace Rivet {
 
-
-  /// @author Chris Wymant
-  class ATLAS_2011_S9212183 : public Analysis {
+  /// @author Peter Richardson
+  class ATLAS_2012_I1095236 : public Analysis {
   public:
 
     /// @name Constructors etc.
     //@{
 
     /// Constructor
-    ATLAS_2011_S9212183()
-      : Analysis("ATLAS_2011_S9212183")
+    ATLAS_2012_I1095236()
+      : Analysis("ATLAS_2012_I1095236")
     {    }
 
     //@}
@@ -50,264 +51,261 @@
       addProjection(muons, "muons");
 
       // Jet finder
-      addProjection(FastJets(FinalState(), FastJets::ANTIKT, 0.4), "AntiKtJets04");
+      VetoedFinalState vfs;
+      vfs.addVetoPairId(MUON);
+      addProjection(FastJets(vfs, FastJets::ANTIKT, 0.4), "AntiKtJets04");
 
       // 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)
-      addProjection(VisibleFinalState(-4.5,4.5),"vfs");
-
+      // Used for pTmiss 
+      addProjection(VisibleFinalState(-4.9,4.9),"vfs");
 
       // 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.);
-      _count_4j10 = bookHistogram1D("count_4j10", 1, 0., 1.);
-      _count_HM =   bookHistogram1D("count_HM", 1, 0., 1.);
-
-      _hist_meff_2j  = bookHistogram1D("m_eff_2j", 30, 0., 3000.);
-      _hist_meff_3j = bookHistogram1D("m_eff_3j", 30, 0., 3000.);
-      _hist_meff_4j = bookHistogram1D("m_eff_4j", 30, 0., 3000.);
-      _hist_meff_HM = bookHistogram1D("m_eff_HM", 20, 0., 3000.);
+      _count_SR0_A1 = bookHistogram1D("count_SR0_A1", 1, 0., 1.);
+      _count_SR0_B1 = bookHistogram1D("count_SR0_B1", 1, 0., 1.);
+      _count_SR0_C1 = bookHistogram1D("count_SR0_C1", 1, 0., 1.);
+      _count_SR0_A2 = bookHistogram1D("count_SR0_A2", 1, 0., 1.);
+      _count_SR0_B2 = bookHistogram1D("count_SR0_B2", 1, 0., 1.);
+      _count_SR0_C2 = bookHistogram1D("count_SR0_C2", 1, 0., 1.);
+      _count_SR1_D  = bookHistogram1D("count_SR1_D" , 1, 0., 1.);
+      _count_SR1_E  = bookHistogram1D("count_SR1_E" , 1, 0., 1.);
+
+      _hist_meff_SR0_A1   = bookHistogram1D("hist_m_eff_SR0_A1", 14, 400., 1800.);
+      _hist_meff_SR0_A2   = bookHistogram1D("hist_m_eff_SR0_A2", 14, 400., 1800.);
+      _hist_meff_SR1_D_e  = bookHistogram1D("hist_meff_SR1_D_e" , 16, 600., 2200.);
+      _hist_meff_SR1_D_mu = bookHistogram1D("hist_meff_SR1_D_mu", 16, 600., 2200.);
+
+      _hist_met_SR0_A1    = bookHistogram1D("hist_met_SR0_A1", 14, 0., 700.);
+      _hist_met_SR0_A2    = bookHistogram1D("hist_met_SR0_A2", 14, 0., 700.);
+      _hist_met_SR0_D_e   = bookHistogram1D("hist_met_SR1_D_e" , 15, 0., 600.);
+      _hist_met_SR0_D_mu  = bookHistogram1D("hist_met_SR1_D_mu", 15, 0., 600.);
 
-      _hist_eTmiss  = bookHistogram1D("Et_miss", 20, 0., 1000.);
     }
 
 
     /// 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);
-        }
+	if ( fabs( jet.momentum().eta() ) < 2.8 ) {
+	  cand_jets.push_back(jet);
+	}
       }
 
       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;
-      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);
-      }
-
+      const ParticleVector cand_mu = applyProjection<IdentifiedFinalState>(event, "muons").particlesByPt();
       // Resolve jet-lepton overlap for jets with |eta| < 2.8
-      Jets cand_jets_2;
+      Jets recon_jets;
       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 );
-        }
-      }
-
-
-      ParticleVector recon_e, recon_mu;
-
+	if ( fabs( jet.momentum().eta() ) >= 2.8 ) continue;
+	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 ) recon_jets.push_back( jet );
+      }
+      
+      // get the loose leptons used to define the 0 lepton channel
+      ParticleVector loose_e, loose_mu;
       foreach ( const Particle & e, cand_e ) {
         bool away = true;
-        foreach ( const Jet& jet, cand_jets_2 ) {
+        foreach ( const Jet& jet, recon_jets ) {
           if ( deltaR(e.momentum(),jet.momentum()) < 0.4 ) {
             away = false;
             break;
           }
         }
-        if ( away ) recon_e.push_back( e );
+        if ( away ) loose_e.push_back( e );
       }
-
       foreach ( const Particle & mu, cand_mu ) {
         bool away = true;
-        foreach ( const Jet& jet, cand_jets_2 ) {
+        foreach ( const Jet& jet, recon_jets ) {
           if ( deltaR(mu.momentum(),jet.momentum()) < 0.4 ) {
             away = false;
             break;
           }
         }
-        if ( away ) recon_mu.push_back( mu );
+        if ( away ) loose_mu.push_back( mu );
+      }
+      // tight leptons for the 1-lepton channel
+      ParticleVector tight_mu;
+      ParticleVector chg_tracks =
+        applyProjection<ChargedFinalState>(event, "cfs").particles();
+      foreach ( const Particle & mu, loose_mu) {
+	if(mu.momentum().perp()<20.) continue;
+        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 )
+          tight_mu.push_back(mu);
+      }
+      ParticleVector tight_e;
+      foreach ( const Particle & e, loose_e ) {
+	if(e.momentum().perp()<25.) continue;
+        double pTinCone = -e.momentum().perp();
+        foreach ( const Particle & track, chg_tracks ) {
+          if ( deltaR(e.momentum(),track.momentum()) <= 0.2 )
+            pTinCone += track.momentum().pT();
+        }
+	if (pTinCone/e.momentum().perp()<0.1) {
+          tight_e.push_back(e);
+	}
       }
-
 
       // 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();
+      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();
 
+      // get the number of b-tagged jets
+      unsigned int ntagged=0;
+      foreach (const Jet & jet, recon_jets ) {
+	if(jet.momentum().perp()>50. && abs(jet.momentum().eta())<2.5 &&
+	   jet.containsBottom() && rand()/static_cast<double>(RAND_MAX)<=0.60)
+	  ++ntagged;
+      }
+
+      // ATLAS calo problem
+      if(rand()/static_cast<double>(RAND_MAX)<=0.42) {
+	foreach ( const Jet & jet, recon_jets ) {
+	  double eta = jet.momentum().rapidity();
+	  double phi = jet.momentum().azimuthalAngle(MINUSPI_PLUSPI);
+	  if(jet.momentum().perp()>50 && eta>-0.1&&eta<1.5&&phi>-0.9&&phi<-0.5)
+	    vetoEvent;
+	}
+      }
+
+      // at least 1 b tag
+      if(ntagged==0) vetoEvent;
+
+      // minumum Et miss
+      if(eTmiss<80.) vetoEvent;
+
+      // at least 3 jets pT > 50
+      if(recon_jets.size()<3 || recon_jets[2].momentum().perp()<50.)
+	vetoEvent;
 
-      // 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);
-      }
-
-      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;
-      }
-
-      // ==================== observables ====================
+      // m_eff
+      double m_eff =  eTmiss;
+      for(unsigned int ix=0;ix<3;++ix)
+	m_eff += recon_jets[ix].momentum().perp();
 
-      int Njets = 0;
+      // delta Phi
       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;
-        }
+      for(unsigned int ix=0;ix<3;++ix) {
+	min_dPhi = min( min_dPhi, deltaPhi( pTmiss_phi, recon_jets[ix].momentum().phi() ) );
       }
 
-      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 ( 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();
-      }
-
-      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);
-        }
+      // 0-lepton channels
+      if(loose_e.empty() && loose_mu.empty() &&
+	 recon_jets[0].momentum().perp()>130.  && eTmiss>130. &&
+	 eTmiss/m_eff>0.25 && min_dPhi>0.4) {
+	// jet charge cut
+	bool jetCharge = true;
+	for(unsigned int ix=0;ix<3;++ix) {
+	  if(fabs(recon_jets[ix].momentum().eta())>2.) continue;
+	  double trackpT=0;
+	  foreach(const Particle & p, recon_jets[ix].particles()) {
+	    if(PID::threeCharge(p.pdgId())==0) continue;
+	    trackpT += p.momentum().perp();
+	  }
+	  if(trackpT/recon_jets[ix].momentum().perp()<0.05)
+	    jetCharge = false;
+	}
+	if(jetCharge) {
+	  // SR0-A region
+	  if(m_eff>500.) {
+	    _count_SR0_A1->fill(0.5,weight);
+	    _hist_meff_SR0_A1->fill(m_eff,weight);
+	    _hist_met_SR0_A1 ->fill(eTmiss,weight);
+	    if(ntagged>=2) {
+	      _count_SR0_A2->fill(0.5,weight);
+	      _hist_meff_SR0_A2->fill(m_eff,weight);
+	      _hist_met_SR0_A2 ->fill(eTmiss,weight);
+	    }
+	  }
+	  // SR0-B
+	  if(m_eff>700.) {
+	    _count_SR0_B1->fill(0.5,weight);
+	    if(ntagged>=2) _count_SR0_B2->fill(0.5,weight);
+	  }
+	  // SR0-C
+	  if(m_eff>900.) {
+	    _count_SR0_C1->fill(0.5,weight);
+	    if(ntagged>=2) _count_SR0_C2->fill(0.5,weight);
+	  }
+	}
+      }
+
+      // 1-lepton channels
+      if(tight_e.size() + tight_mu.size() == 1 &&
+	 recon_jets.size()>=4 && recon_jets[3].momentum().perp()>50.&&
+	 recon_jets[0].momentum().perp()>60.) {
+	Particle lepton = tight_e.empty() ? tight_mu[0] : tight_e[0];
+	m_eff += lepton.momentum().perp() + recon_jets[3].momentum().perp();
+	// transverse mass cut
+	double mT = 2.*(lepton.momentum().perp()*eTmiss-
+			lepton.momentum().x()*pTmiss.x()-
+			lepton.momentum().y()*pTmiss.y());
+	mT = sqrt(mT);
+	if(mT>100.&&m_eff>700.) {
+	  // D region
+	  _count_SR1_D->fill(0.5,weight);
+	  if(abs(lepton.pdgId())==ELECTRON) {
+	    _hist_meff_SR1_D_e->fill(m_eff,weight);
+	    _hist_met_SR0_D_e->fill(eTmiss,weight);
+	  }
+	  else {
+	    _hist_meff_SR1_D_mu->fill(m_eff,weight);
+	    _hist_met_SR0_D_mu->fill(eTmiss,weight);
+	  }
+	  // E region
+	  if(eTmiss>200.) {
+	    _count_SR1_E->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() );
+
+      double norm = crossSection()/femtobarn*2.05/sumOfWeights();
+      // these are number of events at 2.05fb^-1 per 100 GeV
+      scale( _hist_meff_SR0_A1   , 100. * norm );
+      scale( _hist_meff_SR0_A2   , 100. * norm );
+      scale( _hist_meff_SR1_D_e  , 100. * norm );
+      scale( _hist_meff_SR1_D_mu , 100. * norm );
+      // these are number of events at 2.05fb^-1 per 50 GeV
+      scale( _hist_met_SR0_A1, 50. * norm );
+      scale( _hist_met_SR0_A2, 40. * norm );
+      // these are number of events at 2.05fb^-1 per 40 GeV
+      scale( _hist_met_SR0_D_e , 40. * norm );
+      scale( _hist_met_SR0_D_mu, 40. * norm );
+      // these are number of events at 2.05fb^-1
+      scale(_count_SR0_A1,norm);
+      scale(_count_SR0_B1,norm);
+      scale(_count_SR0_C1,norm);
+      scale(_count_SR0_A2,norm);
+      scale(_count_SR0_B2,norm);
+      scale(_count_SR0_C2,norm);
+      scale(_count_SR1_D ,norm);
+      scale(_count_SR1_E ,norm);
     }
 
     //@}
@@ -315,21 +313,28 @@
 
   private:
 
-    AIDA::IHistogram1D* _count_2j;
-    AIDA::IHistogram1D* _count_3j;
-    AIDA::IHistogram1D* _count_4j5;
-    AIDA::IHistogram1D* _count_4j10;
-    AIDA::IHistogram1D* _count_HM;
-    AIDA::IHistogram1D* _hist_meff_2j;
-    AIDA::IHistogram1D* _hist_meff_3j;
-    AIDA::IHistogram1D* _hist_meff_4j;
-    AIDA::IHistogram1D* _hist_meff_HM;
-    AIDA::IHistogram1D* _hist_eTmiss;
-
+    AIDA::IHistogram1D* _count_SR0_A1;
+    AIDA::IHistogram1D* _count_SR0_B1;
+    AIDA::IHistogram1D* _count_SR0_C1;
+    AIDA::IHistogram1D* _count_SR0_A2;
+    AIDA::IHistogram1D* _count_SR0_B2;
+    AIDA::IHistogram1D* _count_SR0_C2;
+    AIDA::IHistogram1D* _count_SR1_D;
+    AIDA::IHistogram1D* _count_SR1_E;
+
+    AIDA::IHistogram1D* _hist_meff_SR0_A1;
+    AIDA::IHistogram1D* _hist_meff_SR0_A2;
+    AIDA::IHistogram1D* _hist_meff_SR1_D_e;
+    AIDA::IHistogram1D* _hist_meff_SR1_D_mu;
+    AIDA::IHistogram1D* _hist_met_SR0_A1;
+    AIDA::IHistogram1D* _hist_met_SR0_A2;
+    AIDA::IHistogram1D* _hist_met_SR0_D_e;
+    AIDA::IHistogram1D* _hist_met_SR0_D_mu;
+    
   };
 
 
   // This global object acts as a hook for the plugin system
-  DECLARE_RIVET_PLUGIN(ATLAS_2011_S9212183);
+  DECLARE_RIVET_PLUGIN(ATLAS_2012_I1095236);
 
 }

Modified: trunk/src/Analyses/Makefile.am
==============================================================================
--- trunk/src/Analyses/Makefile.am	Mon Apr 16 13:00:38 2012	(r3683)
+++ trunk/src/Analyses/Makefile.am	Mon Apr 16 13:10:22 2012	(r3684)
@@ -77,6 +77,7 @@
     ATLAS_2011_S9108483.cc \
     ATLAS_2011_S9225137.cc \
     ATLAS_2012_I1083318.cc \
+    ATLAS_2012_I1095236.cc \
     ATLAS_2012_CONF_2012_033.cc \
     ATLAS_2012_CONF_2012_037.cc
 endif


More information about the Rivet-svn mailing list