|
[Rivet-svn] r2758 - in trunk: data/anainfo data/plotinfo src/Analysesblackhole at projects.hepforge.org blackhole at projects.hepforge.orgThu 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 |