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

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Thu Nov 18 14:29:14 GMT 2010


Author: fsiegert
Date: Thu Nov 18 14:29:13 2010
New Revision: 2758

Log:
Bugfixes and validation of the two Z+bjet analyses (thanks to Steffen Schumann).

Modified:
   trunk/data/anainfo/CDF_2006_S6653332.info
   trunk/data/anainfo/CDF_2008_S8095620.info
   trunk/data/plotinfo/CDF_2008_S8095620.plot
   trunk/src/Analyses/CDF_2006_S6653332.cc
   trunk/src/Analyses/CDF_2008_S8095620.cc
   trunk/src/Analyses/MC_DIJET.cc
   trunk/src/Analyses/Makefile.am

Modified: trunk/data/anainfo/CDF_2006_S6653332.info
==============================================================================
--- trunk/data/anainfo/CDF_2006_S6653332.info	Thu Nov 18 11:12:21 2010	(r2757)
+++ trunk/data/anainfo/CDF_2006_S6653332.info	Thu Nov 18 14:29:13 2010	(r2758)
@@ -4,9 +4,10 @@
 Experiment: CDF
 Collider: Tevatron Run 2
 SpiresID: 6653332
-Status: UNVALIDATED - uses unphysical b quarks
+Status: VALIDATED
 Authors:
  - Lars Sonnenschein <Lars.Sonnenschein at cern.ch>
+ - Steffen Schumann <s.schumann(at)thphys.uni-heidelberg.de>
 References:
  - Phys.Rev.D.74:032008,2006
  - doi:10.1103/PhysRevD.74.032008

Modified: trunk/data/anainfo/CDF_2008_S8095620.info
==============================================================================
--- trunk/data/anainfo/CDF_2008_S8095620.info	Thu Nov 18 11:12:21 2010	(r2757)
+++ trunk/data/anainfo/CDF_2008_S8095620.info	Thu Nov 18 14:29:13 2010	(r2758)
@@ -4,9 +4,10 @@
 Experiment: CDF
 Collider: Tevatron Run 2
 SpiresID: 8095620
-Status: UNVALIDATED
+Status: VALIDATED
 Authors:
  - Emily Nurse <nurse at hep.ucl.ac.uk>
+ - Steffen Schumann <s.schumann(at)thphys.uni-heidelberg.de>
 References:
  - arXiv:0812.4458
 RunInfo:

Modified: trunk/data/plotinfo/CDF_2008_S8095620.plot
==============================================================================
--- trunk/data/plotinfo/CDF_2008_S8095620.plot	Thu Nov 18 11:12:21 2010	(r2757)
+++ trunk/data/plotinfo/CDF_2008_S8095620.plot	Thu Nov 18 14:29:13 2010	(r2758)
@@ -1,29 +1,36 @@
 # BEGIN PLOT /CDF_2008_S8095620/d01-x01-y01
-Title=$1/\\sigma(Z) \\times d\\sigma(Z + b jet)/dE_{T}^{jet}$
-XLabel=$E_{T}^{jet}$ [GeV]
-YLabel=$1/\\sigma(Z) \\times d\\sigma(Z + b jet)/dE_{T}^{jet}$
+Title=
+XLabel=$\sqrt{s}$ [GeV]
+YLabel=$1/\sigma(Z) \times \sigma(Z + b\,\text{jet})$
 # END PLOT
 
 # BEGIN PLOT /CDF_2008_S8095620/d02-x01-y01
-Title=$1/\\sigma(Z) \\times d\\sigma(Z + b jet)/d\\eta^{jet}$
-XLabel=$\\eta^{jet}$
-YLabel=$1/\\sigma(Z) \\times d\\sigma(Z + b jet)/\\eta^{jet}$
+Title=
+XLabel=$E_{T}^{b\,\text{jet}}$ [GeV]
+YLabel=$1/\sigma(Z) \times \mathrm{d\sigma(Z + b\,\text{jet})/\mathrm{d}E_{T}^{b\,\text{jet}}$
 # END PLOT
 
 # BEGIN PLOT /CDF_2008_S8095620/d03-x01-y01
-Title=$1/\\sigma(Z) \\times d\\sigma(Z + b jet)/dN^{jet}$
-XLabel=Number of jets
-YLabel=$1/\\sigma(Z) \\times d\\sigma(Z + b jet)/dN^{jet}$
+Title=
+XLabel=$\eta^{b\,\text{jet}}$
+YLabel=$1/\sigma(Z) \times \mathrm{d}\sigma(Z + b\,\text{jet})/\mathrm{d}\eta^{b\,\text{jet}}$
 # END PLOT
 
 # BEGIN PLOT /CDF_2008_S8095620/d04-x01-y01
-Title=$1/\\sigma(Z) \\times d\\sigma(Z + b jet)/dN^{b jet}$
-XLabel=Number of b jets
-YLabel=$1/\\sigma(Z) \\times d\\sigma(Z + b jet)/dN^{b jet}$
+Title=
+XLabel=Z $p_{T}$ [GeV]
+YLabel=$1/\sigma(Z) \times \mathrm{d}\sigma(Z + b\,\text{jet})/\mathrm{d}p_{T}^{Z}$
 # END PLOT
 
 # BEGIN PLOT /CDF_2008_S8095620/d05-x01-y01
-Title=$1/\\sigma(Z) \\times d\\sigma(Z + b jet)/dp_T{}^{Z}$
-XLabel=Z $p_{T}$ [GeV]
-YLabel=$1/\\sigma(Z) \\times d\\sigma(Z + b jet)/dp_{T}^{Z}$
+Title=
+XLabel=Number of jets
+YLabel=$1/\sigma(Z) \times \mathrm{d}\sigma(Z + N^{\text{jet}})/\mathrm{d}N^{\text{jet}}$
 # END PLOT
+
+# BEGIN PLOT /CDF_2008_S8095620/d06-x01-y01
+Title=
+XLabel=Number of b jets
+YLabel=$1/\sigma(Z) \times \mathrm{d}\sigma(Z + N^{b\,\text{jet}})/\mathrm{d}N^{b\,\text{jet}}$
+# END PLOT
+

Modified: trunk/src/Analyses/CDF_2006_S6653332.cc
==============================================================================
--- trunk/src/Analyses/CDF_2006_S6653332.cc	Thu Nov 18 11:12:21 2010	(r2757)
+++ trunk/src/Analyses/CDF_2006_S6653332.cc	Thu Nov 18 14:29:13 2010	(r2758)
@@ -13,7 +13,8 @@
 namespace Rivet {
 
 
-  /* @brief CDF Run II jet \f$ p_T \f$ and \f$ \eta \f$ distributions in Z + (b) jet production
+  /* @brief CDF Run II analysis: jet \f$ p_T \f$ and \f$ \eta \f$
+   *   distributions in Z + (b) jet production
    * @author Lars Sonnenschein
    *
    * This CDF analysis provides \f$ p_T \f$ and \f$ \eta \f$ distributions of
@@ -21,34 +22,34 @@
    */
   class CDF_2006_S6653332 : public Analysis {
   public:
-
+    
     /// Constructor
     CDF_2006_S6653332()
       : Analysis("CDF_2006_S6653332"),
-        _Rjet(0.7), _JetPtCut(20.), _JetEtaCut(1.5),
+        _Rjet(0.7), _JetPtCut(20.), _JetEtaCut(1.5), _Lep1PtCut(18.), _Lep2PtCut(10.), _LepEtaCut(1.1),
         _sumWeightsWithZ(0.0), _sumWeightsWithZJet(0.0)
     {
       setBeams(PROTON, ANTIPROTON);
       setNeedsCrossSection(true);
     }
-
-
+    
+    
     /// @name Analysis methods
     //@{
-
+    
     void init() {
       const FinalState fs(-3.6, 3.6);
       addProjection(fs, "FS");
-
+   
       // Create a final state with any e+e- or mu+mu- pair with
       // invariant mass 76 -> 106 GeV and ET > 20 (Z decay products)
       vector<pair<PdgId,PdgId> > vids;
       vids.push_back(make_pair(ELECTRON, POSITRON));
       vids.push_back(make_pair(MUON, ANTIMUON));
       FinalState fs2(-3.6, 3.6);
-      InvMassFinalState invfs(fs2, vids, 76*GeV, 106*GeV);
+      InvMassFinalState invfs(fs2, vids, 66*GeV, 116*GeV);
       addProjection(invfs, "INVFS");
-
+   
       // Make a final state without the Z decay products for jet clustering
       VetoedFinalState vfs(fs);
       vfs.addVetoOnThisFinalState(invfs);
@@ -68,13 +69,28 @@
       // Get the Z decay products (mu+mu- or e+e- pair)
       const InvMassFinalState& invMassFinalState = applyProjection<InvMassFinalState>(event, "INVFS");
       const ParticleVector&  ZDecayProducts =  invMassFinalState.particles();
-
+   
       // Make sure we have at least 2 Z decay products (mumu or ee)
       if (ZDecayProducts.size() < 2) vetoEvent;
+      //
+      double Lep1Pt = ZDecayProducts[0].momentum().perp();
+      double Lep2Pt = ZDecayProducts[1].momentum().perp();
+      double Lep1Eta = fabs(ZDecayProducts[0].momentum().rapidity());
+      double Lep2Eta = fabs(ZDecayProducts[1].momentum().rapidity());
+
+      if (Lep1Eta > _LepEtaCut && Lep2Eta > _LepEtaCut) vetoEvent;
+
+      if (abs(ZDecayProducts[0].pdgId())==13 && (Lep1Eta > 1.0 && Lep2Eta > 1.)) {
+        vetoEvent;
+      }
+      if (Lep1Pt < _Lep1PtCut && Lep2Pt < _Lep1PtCut) vetoEvent;
+      
+      //
+      
       _sumWeightsWithZ += event.weight();
       // @todo: write out a warning if there are more than two decay products
       FourMomentum Zmom = ZDecayProducts[0].momentum() +  ZDecayProducts[1].momentum();
-
+   
       // Put all b-quarks in a vector
       /// @todo Use jet contents rather than accessing quarks directly
       ParticleVector bquarks;
@@ -85,14 +101,14 @@
           bquarks.push_back(Particle(**p));
         }
       }
-
+   
       // Get jets
       const FastJets& jetpro = applyProjection<FastJets>(event, "Jets");
       getLog() << Log::DEBUG << "Jet multiplicity before any pT cut = " << jetpro.size() << endl;
-
+   
       const PseudoJets& jets = jetpro.pseudoJetsByPt();
       getLog() << Log::DEBUG << "jetlist size = " << jets.size() << endl;
-
+   
       int numBJet = 0;
       int numJet  = 0;
       // for each b-jet plot the ET and the eta of the jet, normalise to the total cross section at the end
@@ -103,7 +119,7 @@
           ++numJet;
           // Does the jet contain a b-quark?
           /// @todo Use jet contents rather than accessing quarks directly
-
+       
           bool bjet = false;
           foreach (const Particle& bquark,  bquarks) {
             if (deltaR(jt->rapidity(), jt->phi(), bquark.momentum().rapidity(),bquark.momentum().azimuthalAngle()) <= _Rjet) {
@@ -116,28 +132,28 @@
           }
         }
       } // end loop around jets
-
+   
       if (numJet > 0)    _sumWeightsWithZJet += event.weight();
       if (numBJet > 0) {
         _sigmaBJet->fill(1960.0,event.weight());
         _ratioBJetToZ->fill(1960.0,event.weight());
         _ratioBJetToJet->fill(1960.0,event.weight());
       }
-
+   
     }
-
+ 
 
     /// Finalize
     void finalize() {
       getLog() << Log::DEBUG << "Total sum of weights = " << sumOfWeights() << endl;
       getLog() << Log::DEBUG << "Sum of weights for Z production in mass range = " << _sumWeightsWithZ << endl;
       getLog() << Log::DEBUG << "Sum of weights for Z+jet production in mass range = " << _sumWeightsWithZJet << endl;
-
+   
       _sigmaBJet->scale(crossSection()/sumOfWeights());
       _ratioBJetToZ->scale(1.0/_sumWeightsWithZ);
       _ratioBJetToJet->scale(1.0/_sumWeightsWithZJet);
     }
-
+ 
         //@}
 
 
@@ -149,7 +165,10 @@
     double _Rjet;
     double _JetPtCut;
     double _JetEtaCut;
-
+    double _Lep1PtCut;
+    double _Lep2PtCut;
+    double _LepEtaCut;
+    
     double _sumWeightsWithZ;
     double _sumWeightsWithZJet;
 
@@ -161,7 +180,7 @@
     AIDA::IHistogram1D* _ratioBJetToZ;
     AIDA::IHistogram1D* _ratioBJetToJet;
     //@}
-
+ 
   };
 
 

Modified: trunk/src/Analyses/CDF_2008_S8095620.cc
==============================================================================
--- trunk/src/Analyses/CDF_2008_S8095620.cc	Thu Nov 18 11:12:21 2010	(r2757)
+++ trunk/src/Analyses/CDF_2008_S8095620.cc	Thu Nov 18 14:29:13 2010	(r2758)
@@ -14,31 +14,31 @@
   /// @brief CDF Run II Z + b-jet cross-section measurement
   class CDF_2008_S8095620 : public Analysis {
   public:
-
+    
     /// Constructor.
     /// jet cuts: |eta| <= 1.5
     CDF_2008_S8095620()
       : Analysis("CDF_2008_S8095620"),
-        _Rjet(0.7), _JetPtCut(20.), _JetEtaCut(1.5),
+        _Rjet(0.7), _JetPtCut(20.), _JetEtaCut(1.5), _Lep1PtCut(18.), _Lep2PtCut(10.), _LepEtaCut(3.2),
         _sumWeightSelected(0.0)
     {
       setBeams(PROTON, ANTIPROTON);
     }
-
+ 
 
     /// @name Analysis methods
     //@{
-
+ 
     void init() {
       // Set up projections
-      const FinalState fs(-3.6, 3.6);
+      const FinalState fs(-3.2, 3.2);
       addProjection(fs, "FS");
       // Create a final state with any e+e- or mu+mu- pair with
-      // invariant mass 76 -> 106 GeV and ET > 20 (Z decay products)
+      // invariant mass 76 -> 106 GeV and ET > 18 (Z decay products)
       vector<pair<PdgId,PdgId> > vids;
       vids.push_back(make_pair(ELECTRON, POSITRON));
       vids.push_back(make_pair(MUON, ANTIMUON));
-      FinalState fs2(-3.6, 3.6);
+      FinalState fs2(-3.2, 3.2);
       InvMassFinalState invfs(fs2, vids, 76*GeV, 106*GeV);
       addProjection(invfs, "INVFS");
       // Make a final state without the Z decay products for jet clustering
@@ -48,13 +48,14 @@
       addProjection(FastJets(vfs, FastJets::CDFMIDPOINT, 0.7), "Jets");
 
       // Book histograms
-      _dSdET    = bookHistogram1D(1, 1, 1);
-      _dSdETA   = bookHistogram1D(2, 1, 1);
-      _dSdNJet  = bookHistogram1D(3, 1, 1);
-      _dSdNbJet = bookHistogram1D(4, 1, 1);
-      _dSdZpT   = bookHistogram1D(5, 1, 1);
-    }
-
+      _dStot    = bookHistogram1D(1, 1, 1);
+      _dSdET    = bookHistogram1D(2, 1, 1);
+      _dSdETA   = bookHistogram1D(3, 1, 1);
+      _dSdZpT   = bookHistogram1D(4, 1, 1);
+      _dSdNJet  = bookHistogram1D(5, 1, 1);
+      _dSdNbJet = bookHistogram1D(6, 1, 1);
+     }
+ 
 
     // Do the analysis
     void analyze(const Event& event) {
@@ -62,13 +63,33 @@
       // Get the Z decay products (mu+mu- or e+e- pair)
       const InvMassFinalState& invMassFinalState = applyProjection<InvMassFinalState>(event, "INVFS");
       const ParticleVector&  ZDecayProducts =  invMassFinalState.particles();
-
+   
       // make sure we have 2 Z decay products (mumu or ee)
       if (ZDecayProducts.size() < 2) vetoEvent;
+      //new cuts
+      double Lep1Pt = ZDecayProducts[0].momentum().perp();
+      double Lep2Pt = ZDecayProducts[1].momentum().perp();
+      double Lep1Eta = fabs(ZDecayProducts[0].momentum().rapidity());
+      double Lep2Eta = fabs(ZDecayProducts[1].momentum().rapidity());
+
+      if (Lep1Eta > _LepEtaCut || Lep2Eta > _LepEtaCut) vetoEvent;
+
+      if (abs(ZDecayProducts[0].pdgId())==13 && 
+          ((Lep1Eta > 1.5 || Lep2Eta > 1.5) || (Lep1Eta > 1.0 && Lep2Eta > 1.0))) {
+        vetoEvent;
+      }
+      
+      if (Lep1Pt > Lep2Pt) {
+        if (Lep1Pt < _Lep1PtCut || Lep2Pt < _Lep2PtCut) vetoEvent;
+      }
+      else {
+        if (Lep1Pt < _Lep2PtCut || Lep2Pt < _Lep1PtCut) vetoEvent;
+      }
+      
       _sumWeightSelected += event.weight();
       // @todo: write out a warning if there are more than two decay products
       FourMomentum Zmom = ZDecayProducts[0].momentum() +  ZDecayProducts[1].momentum();
-
+   
       // Put all b-quarks in a vector
       ParticleVector bquarks;
       foreach (const GenParticle* p, particles(event.genEvent())) {
@@ -76,14 +97,14 @@
           bquarks += Particle(*p);
         }
       }
-
+   
       // Get jets
       const FastJets& jetpro = applyProjection<FastJets>(event, "Jets");
       getLog() << Log::DEBUG << "Jet multiplicity before any pT cut = " << jetpro.size() << endl;
-
+   
       const PseudoJets& jets = jetpro.pseudoJetsByPt();
       getLog() << Log::DEBUG << "jetlist size = " << jets.size() << endl;
-
+   
       int numBJet = 0;
       int numJet  = 0;
       // for each b-jet plot the ET and the eta of the jet, normalise to the total cross section at the end
@@ -103,18 +124,20 @@
           if (bjet) {
             numBJet++;
             _dSdET->fill(jt->perp(),event.weight());
-            _dSdETA->fill(jt->rapidity(),event.weight());
+            _dSdETA->fill(fabs(jt->rapidity()),event.weight());
           }
         }
       } // end loop around jets
-
-      if(numJet > 0) _dSdNJet->fill(numJet,event.weight());
+   
+      // wasn't asking for b-jets before!!!!
+      if(numJet > 0 && numBJet > 0) _dSdNJet->fill(numJet,event.weight());
       if(numBJet > 0) {
+        _dStot->fill(1960.0,event.weight());
         _dSdNbJet->fill(numBJet,event.weight());
         _dSdZpT->fill(Zmom.pT(),event.weight());
       }
     }
-
+ 
 
 
     // Finalize
@@ -125,6 +148,7 @@
       // Z cross sections.
       double Scale = 1.0;
       if (_sumWeightSelected != 0.0) Scale = 1.0/_sumWeightSelected;
+      _dStot->scale(Scale);
       _dSdET->scale(Scale);
       _dSdETA->scale(Scale);
       _dSdNJet->scale(Scale);
@@ -140,10 +164,14 @@
     double _Rjet;
     double _JetPtCut;
     double _JetEtaCut;
+    double _Lep1PtCut;
+    double _Lep2PtCut;
+    double _LepEtaCut;
     double _sumWeightSelected;
 
     //@{
     /// Histograms
+    AIDA::IHistogram1D* _dStot;
     AIDA::IHistogram1D* _dSdET;
     AIDA::IHistogram1D* _dSdETA;
     AIDA::IHistogram1D* _dSdNJet;

Modified: trunk/src/Analyses/MC_DIJET.cc
==============================================================================
--- trunk/src/Analyses/MC_DIJET.cc	Thu Nov 18 11:12:21 2010	(r2757)
+++ trunk/src/Analyses/MC_DIJET.cc	Thu Nov 18 14:29:13 2010	(r2758)
@@ -87,7 +87,7 @@
 
 
     void finalize() {
-      /// @todo Normalise!
+      /// @todo Normalise! 
     }
 
     //@}

Modified: trunk/src/Analyses/Makefile.am
==============================================================================
--- trunk/src/Analyses/Makefile.am	Thu Nov 18 11:12:21 2010	(r2757)
+++ trunk/src/Analyses/Makefile.am	Thu Nov 18 14:29:13 2010	(r2758)
@@ -22,10 +22,8 @@
     CDF_1996_S3108457.cc \
     CDF_1996_S3349578.cc \
     CDF_1997_S3541940.cc \
-    CDF_2006_S6653332.cc \
     CDF_2008_S7541902.cc \
     CDF_2008_S7782535.cc \
-    CDF_2008_S8095620.cc \
     D0_1996_S3214044.cc \
     D0_1996_S3324664.cc \
     D0_1998_S3711838.cc \
@@ -70,12 +68,14 @@
     CDF_2005_S6080774.cc \
     CDF_2005_S6217184.cc \
     CDF_2006_S6450792.cc \
+    CDF_2006_S6653332.cc \
     CDF_2007_S7057202.cc \
     CDF_2008_LEADINGJETS.cc \
     CDF_2008_NOTE_9351.cc \
     CDF_2008_S7540469.cc \
     CDF_2008_S7828950.cc \
     CDF_2008_S8093652.cc \
+    CDF_2008_S8095620.cc \
     CDF_2009_S8233977.cc \
     CDF_2009_NOTE_9936.cc \
     CDF_2009_S8383952.cc \


More information about the Rivet-svn mailing list