rivet is hosted by Hepforge, IPPP Durham
ATLAS_2011_S9212353.cc
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #include "Rivet/Analysis.hh"
00003 #include "Rivet/Tools/BinnedHistogram.hh"
00004 #include "Rivet/Projections/FinalState.hh"
00005 #include "Rivet/Projections/ChargedFinalState.hh"
00006 #include "Rivet/Projections/VisibleFinalState.hh"
00007 #include "Rivet/Projections/IdentifiedFinalState.hh"
00008 #include "Rivet/Projections/VetoedFinalState.hh"
00009 #include "Rivet/Projections/FastJets.hh"
00010 
00011 namespace Rivet {
00012 
00013   using namespace Cuts;
00014 
00015 
00016   class ATLAS_2011_S9212353 : public Analysis {
00017   public:
00018 
00019     /// @name Constructors etc.
00020     //@{
00021 
00022     /// Constructor
00023 
00024     ATLAS_2011_S9212353()
00025       : Analysis("ATLAS_2011_S9212353")
00026     {    }
00027 
00028     //@}
00029 
00030 
00031   public:
00032 
00033     /// @name Analysis methods
00034     //@{
00035 
00036     /// Book histograms and initialize projections before the run
00037     void init() {
00038 
00039       // projection to find the electrons
00040       IdentifiedFinalState elecs(etaIn(-2.47, 2.47) 
00041                  & (pT >= 20.0*GeV));
00042       elecs.acceptIdPair(PID::ELECTRON);
00043       addProjection(elecs, "elecs");
00044 
00045 
00046       // veto region electrons (from 2010 arXiv:1102.2357v2)
00047       Cut vetocut = etaIn(-1.52, -1.37) | etaIn( 1.37,  1.52);
00048       IdentifiedFinalState veto_elecs(vetocut & (pT >= 10.0*GeV));
00049       veto_elecs.acceptIdPair(PID::ELECTRON);
00050       addProjection(veto_elecs, "veto_elecs");
00051 
00052 
00053       // projection to find the muons
00054       IdentifiedFinalState muons(etaIn(-2.4, 2.4) 
00055                  & (pT >= 10.0*GeV));
00056       muons.acceptIdPair(PID::MUON);
00057       addProjection(muons, "muons");
00058 
00059 
00060       // Jet finder
00061       VetoedFinalState vfs;
00062       vfs.addVetoPairId(PID::MUON);
00063       addProjection(FastJets(vfs, FastJets::ANTIKT, 0.4),
00064                    "AntiKtJets04");
00065 
00066 
00067       // all tracks (to do deltaR with leptons)
00068       addProjection(ChargedFinalState(-3.0,3.0,0.5*GeV),"cfs");
00069 
00070 
00071       // for pTmiss
00072       addProjection(VisibleFinalState(-4.5,4.5),"vfs");
00073 
00074 
00075       /// Book histograms
00076       _3jl_count_mu_channel = bookHisto1D("3jl_count_muon_channel", 1, 0., 1.);
00077       _3jl_count_e_channel = bookHisto1D("3jl_count_electron_channel", 1, 0., 1.);
00078       _3jt_count_mu_channel = bookHisto1D("3jt_count_muon_channel", 1, 0., 1.);
00079       _3jt_count_e_channel = bookHisto1D("3jt_count_electron_channel", 1, 0., 1.);
00080       _3j_hist_eTmiss_e = bookHisto1D("3j_Et_miss_e", 65, 0., 650.);
00081       _3j_hist_eTmiss_mu = bookHisto1D("3j_Et_miss_mu", 65, 0., 650.);
00082       _3j_hist_mT_e = bookHisto1D("3j_mT_e", 58, 0., 580.);
00083       _3j_hist_mT_mu = bookHisto1D("3j_mT_mu", 58, 0., 580.);
00084       _3j_hist_m_eff_e = bookHisto1D("3j_m_eff_e", 46, 0., 2300.);
00085       _3j_hist_m_eff_mu = bookHisto1D("3j_m_eff_mu", 46, 0., 2300.);
00086       _3jl_hist_m_eff_e_final = bookHisto1D("3jl_m_eff_e_final", 15, 0., 1500.);
00087       _3jl_hist_m_eff_mu_final = bookHisto1D("3jl_m_eff_mu_final", 15, 0., 1500.);
00088       _3jt_hist_m_eff_e_final = bookHisto1D("3jt_m_eff_e_final", 15, 0., 1500.);
00089       _3jt_hist_m_eff_mu_final = bookHisto1D("3jt_m_eff_mu_final", 15, 0., 1500.);
00090 
00091 
00092       _4jl_count_mu_channel = bookHisto1D("4jl_count_muon_channel", 1, 0., 1.);
00093       _4jl_count_e_channel = bookHisto1D("4jl_count_electron_channel", 1, 0., 1.);
00094       _4jt_count_mu_channel = bookHisto1D("4jt_count_muon_channel", 1, 0., 1.);
00095       _4jt_count_e_channel = bookHisto1D("4jt_count_electron_channel", 1, 0., 1.);
00096       _4j_hist_eTmiss_e = bookHisto1D("4j_Et_miss_e", 65, 0., 650.);
00097       _4j_hist_eTmiss_mu = bookHisto1D("4j_Et_miss_mu", 65, 0., 650.);
00098       _4j_hist_mT_e = bookHisto1D("4j_mT_e", 58, 0., 580.);
00099       _4j_hist_mT_mu = bookHisto1D("4j_mT_mu", 58, 0., 580.);
00100       _4j_hist_m_eff_e = bookHisto1D("4j_m_eff_e", 46, 0., 2300.);
00101       _4j_hist_m_eff_mu = bookHisto1D("4j_m_eff_mu", 46, 0., 2300.);
00102       _4jl_hist_m_eff_e_final = bookHisto1D("4jl_m_eff_e_final", 15, 0., 1500.);
00103       _4jl_hist_m_eff_mu_final = bookHisto1D("4jl_m_eff_mu_final", 15, 0., 1500.);
00104       _4jt_hist_m_eff_e_final = bookHisto1D("4jt_m_eff_e_final", 15, 0., 1500.);
00105       _4jt_hist_m_eff_mu_final = bookHisto1D("4jt_m_eff_mu_final", 15, 0., 1500.);
00106 
00107 
00108     }
00109 
00110 
00111 
00112     /// Perform the per-event analysis
00113     void analyze(const Event& event) {
00114       const double weight = event.weight();
00115       Particles veto_e
00116         = applyProjection<IdentifiedFinalState>(event, "veto_elecs").particles();
00117       if ( ! veto_e.empty() ) {
00118         MSG_DEBUG("electrons in veto region");
00119         vetoEvent;
00120       }
00121 
00122       Jets cand_jets;
00123       foreach ( const Jet& jet,
00124           applyProjection<FastJets>(event, "AntiKtJets04").jetsByPt(20.0*GeV) ) {
00125         if ( fabs( jet.eta() ) < 2.8 ) {
00126           cand_jets.push_back(jet);
00127         }
00128       }
00129 
00130       Particles candtemp_e =
00131         applyProjection<IdentifiedFinalState>(event, "elecs").particlesByPt();
00132       Particles candtemp_mu =
00133         applyProjection<IdentifiedFinalState>(event,"muons").particlesByPt();
00134       Particles chg_tracks =
00135         applyProjection<ChargedFinalState>(event, "cfs").particles();
00136       Particles cand_mu;
00137       Particles cand_e;
00138 
00139 
00140       // pTcone around muon track
00141       foreach ( const Particle & mu, candtemp_mu ) {
00142         double pTinCone = -mu.pT();
00143         foreach ( const Particle & track, chg_tracks ) {
00144           if ( deltaR(mu.momentum(),track.momentum()) < 0.2 )
00145             pTinCone += track.pT();
00146         }
00147         if ( pTinCone < 1.8*GeV )
00148           cand_mu.push_back(mu);
00149       }
00150 
00151       // pTcone around electron
00152       foreach ( const Particle e, candtemp_e ) {
00153         double pTinCone = -e.pT();
00154         foreach ( const Particle & track, chg_tracks ) {
00155           if ( deltaR(e.momentum(),track.momentum()) < 0.2 )
00156             pTinCone += track.pT();
00157         }
00158         if ( pTinCone < 0.1 * e.pT() )
00159           cand_e.push_back(e);
00160       }
00161 
00162       // discard jets that overlap with electrons
00163       Jets recon_jets;
00164       foreach ( const Jet& jet, cand_jets ) {
00165           bool away_from_e = true;
00166           foreach ( const Particle & e, cand_e ) {
00167             if ( deltaR(e.momentum(),jet.momentum()) < 0.2 ) {
00168               away_from_e = false;
00169               break;
00170             }
00171           }
00172           if ( away_from_e )
00173             recon_jets.push_back( jet );
00174       }
00175 
00176       // only consider leptons far from jet
00177       Particles recon_e, recon_mu;
00178       foreach ( const Particle & e, cand_e ) {
00179         bool e_near_jet = false;
00180         foreach ( const Jet& jet, recon_jets ) {
00181           if ( deltaR(e.momentum(),jet.momentum()) < 0.4 &&
00182                deltaR(e.momentum(),jet.momentum()) > 0.2 )
00183             e_near_jet = true;
00184         }
00185         if ( ! e_near_jet )
00186           recon_e.push_back( e );
00187       }
00188 
00189       foreach ( const Particle & mu, cand_mu ) {
00190         bool mu_near_jet = false;
00191         foreach ( const Jet& jet, recon_jets ) {
00192           if ( deltaR(mu.momentum(),jet.momentum()) < 0.4 )
00193             mu_near_jet = true;
00194         }
00195         if ( ! mu_near_jet )
00196           recon_mu.push_back( mu );
00197       }
00198 
00199       // pTmiss
00200       Particles vfs_particles
00201         = applyProjection<VisibleFinalState>(event, "vfs").particles();
00202       FourMomentum pTmiss;
00203       foreach ( const Particle & p, vfs_particles ) {
00204         pTmiss -= p.momentum();
00205       }
00206       double eTmiss = pTmiss.pT();
00207 
00208 
00209       // ==================== observables ====================
00210 
00211 
00212       // Njets
00213       int Njets = 0;
00214       double pTmiss_phi = pTmiss.phi();
00215       foreach ( const Jet& jet, recon_jets ) {
00216         if ( jet.abseta() < 2.8 )
00217           Njets+=1;
00218       }
00219       if ( Njets < 3 ) {
00220         MSG_DEBUG("Only " << Njets << " jets w/ eta<2.8 left");
00221         vetoEvent;
00222       }
00223 
00224       Particles lepton;
00225       if ( recon_mu.empty() && recon_e.empty() ) {
00226         MSG_DEBUG("No leptons");
00227         vetoEvent;
00228       }
00229       else {
00230         foreach ( const Particle & mu, recon_mu )
00231             lepton.push_back(mu);
00232         foreach ( const Particle & e, recon_e )
00233             lepton.push_back(e);
00234       }
00235 
00236 
00237       std::sort(lepton.begin(), lepton.end(), cmpMomByPt);
00238 
00239       double e_id = 11;
00240       double mu_id = 13;
00241 
00242       // one hard leading lepton cut
00243       if ( lepton[0].abspid() == e_id &&
00244            lepton[0].pT() <= 25*GeV ) {
00245         vetoEvent;
00246       }
00247       else if ( lepton[0].abspid() == mu_id &&
00248                 lepton[0].pT() <= 20*GeV ) {
00249         vetoEvent;
00250       }
00251 
00252       // exactly one hard leading lepton cut
00253       if(lepton.size()>1) {
00254         if ( lepton[1].abspid() == e_id &&
00255              lepton[1].pT() > 20*GeV ) {
00256           vetoEvent;
00257         }
00258         else if ( lepton[1].abspid() == mu_id &&
00259                   lepton[1].pT() > 10*GeV ) {
00260           vetoEvent;
00261         }
00262       }
00263 
00264       // 3JL
00265       if ( recon_jets[0].pT() > 60.0*GeV &&
00266            recon_jets[1].pT() > 25.0*GeV &&
00267            recon_jets[2].pT() > 25.0*GeV &&
00268            deltaPhi( pTmiss_phi, recon_jets[0].phi() ) > 0.2 &&
00269            deltaPhi( pTmiss_phi, recon_jets[1].phi() ) > 0.2 &&
00270            deltaPhi( pTmiss_phi, recon_jets[2].phi() ) > 0.2 ) {
00271 
00272         FourMomentum pT_l = lepton[0].momentum();
00273         double dPhi = deltaPhi( pT_l.phi(), pTmiss_phi);
00274         double mT = sqrt( 2 * pT_l.pT() * eTmiss * (1 - cos(dPhi)) );
00275         double m_eff = eTmiss + pT_l.pT()
00276           + recon_jets[0].pT()
00277           + recon_jets[1].pT()
00278           + recon_jets[2].pT();
00279 
00280         if (  lepton[0].abspid() == e_id ) {
00281           _3j_hist_mT_e->fill(mT, weight);
00282           _3j_hist_eTmiss_e->fill(eTmiss, weight);
00283           _3j_hist_m_eff_e->fill(m_eff, weight);
00284           if ( mT > 100*GeV && eTmiss > 125*GeV ) {
00285             _3jl_hist_m_eff_e_final->fill(m_eff, weight);
00286             if ( m_eff > 500*GeV && eTmiss > 0.25*m_eff ) {
00287               _3jl_count_e_channel->fill(0.5,weight);
00288             }
00289           }
00290         }
00291 
00292         else if (  lepton[0].abspid() == mu_id ) {
00293           _3j_hist_mT_mu->fill(mT, weight);
00294           _3j_hist_eTmiss_mu->fill(eTmiss, weight);
00295           _3j_hist_m_eff_mu->fill(m_eff, weight);
00296           if ( mT > 100*GeV && eTmiss > 125*GeV ) {
00297             _3jl_hist_m_eff_mu_final->fill(m_eff, weight);
00298             if ( m_eff > 500*GeV && eTmiss > 0.25*m_eff ) {
00299               _3jl_count_mu_channel->fill(0.5,weight);
00300             }
00301           }
00302         }
00303 
00304       }
00305 
00306       // 3JT
00307       if ( recon_jets[0].pT() > 80.0*GeV &&
00308            recon_jets[1].pT() > 25.0*GeV &&
00309            recon_jets[2].pT() > 25.0*GeV &&
00310            deltaPhi( pTmiss_phi, recon_jets[0].phi() ) > 0.2 &&
00311            deltaPhi( pTmiss_phi, recon_jets[1].phi() ) > 0.2 &&
00312            deltaPhi( pTmiss_phi, recon_jets[2].phi() ) > 0.2 ) {
00313 
00314         FourMomentum pT_l = lepton[0].momentum();
00315         double dPhi = deltaPhi( pT_l.phi(), pTmiss_phi);
00316         double mT = sqrt( 2 * pT_l.pT() * eTmiss * (1 - cos(dPhi)) );
00317         double m_eff = eTmiss + pT_l.pT()
00318           + recon_jets[0].pT()
00319           + recon_jets[1].pT()
00320           + recon_jets[2].pT();
00321 
00322 
00323         if (  lepton[0].abspid() == e_id ) {
00324           if ( mT > 100*GeV && eTmiss > 240*GeV ) {
00325             _3jt_hist_m_eff_e_final->fill(m_eff, weight);
00326             if ( m_eff > 600*GeV && eTmiss > 0.15*m_eff ) {
00327               _3jt_count_e_channel->fill(0.5,weight);
00328             }
00329           }
00330         }
00331 
00332         else if (  lepton[0].abspid() == mu_id ) {
00333           if ( mT > 100*GeV && eTmiss > 240*GeV ) {
00334             _3jt_hist_m_eff_mu_final->fill(m_eff, weight);
00335             if ( m_eff > 600*GeV && eTmiss > 0.15*m_eff ) {
00336               _3jt_count_mu_channel->fill(0.5,weight);
00337             }
00338           }
00339         }
00340 
00341       }
00342 
00343       if ( Njets < 4 ) {
00344         MSG_DEBUG("Only " << Njets << " jets w/ eta<2.8 left");
00345         vetoEvent;
00346       }
00347 
00348 
00349 
00350       // 4JL
00351       if ( recon_jets[0].pT() > 60.0*GeV &&
00352            recon_jets[1].pT() > 25.0*GeV &&
00353            recon_jets[2].pT() > 25.0*GeV &&
00354            recon_jets[3].pT() > 25.0*GeV &&
00355            deltaPhi( pTmiss_phi, recon_jets[0].phi() ) > 0.2 &&
00356            deltaPhi( pTmiss_phi, recon_jets[1].phi() ) > 0.2 &&
00357            deltaPhi( pTmiss_phi, recon_jets[2].phi() ) > 0.2 &&
00358            deltaPhi( pTmiss_phi, recon_jets[3].phi() ) > 0.2 ) {
00359 
00360         FourMomentum pT_l = lepton[0].momentum();
00361         double dPhi = deltaPhi( pT_l.phi(), pTmiss_phi);
00362         double mT = sqrt( 2 * pT_l.pT() * eTmiss * (1 - cos(dPhi)) );
00363         double m_eff = eTmiss + pT_l.pT()
00364           + recon_jets[0].pT()
00365           + recon_jets[1].pT()
00366           + recon_jets[2].pT()
00367           + recon_jets[3].pT();
00368 
00369 
00370         if (  lepton[0].abspid() == e_id ) {
00371           _4j_hist_mT_e->fill(mT, weight);
00372           _4j_hist_eTmiss_e->fill(eTmiss, weight);
00373           _4j_hist_m_eff_e->fill(m_eff, weight);
00374           if ( mT > 100*GeV && eTmiss > 140*GeV ) {
00375             _4jl_hist_m_eff_e_final->fill(m_eff, weight);
00376             if ( m_eff > 300*GeV && eTmiss > 0.3*m_eff ) {
00377               _4jl_count_e_channel->fill(0.5,weight);
00378             }
00379           }
00380         }
00381 
00382         // Muon channel signal region
00383         else if (  lepton[0].abspid() == mu_id ) {
00384           _4j_hist_mT_mu->fill(mT, weight);
00385           _4j_hist_eTmiss_mu->fill(eTmiss, weight);
00386           _4j_hist_m_eff_mu->fill(m_eff, weight);
00387           if ( mT > 100*GeV && eTmiss > 140*GeV ) {
00388             _4jl_hist_m_eff_mu_final->fill(m_eff, weight);
00389             if ( m_eff > 300*GeV && eTmiss > 0.3*m_eff ) {
00390               _4jl_count_mu_channel->fill(0.5,weight);
00391             }
00392           }
00393         }
00394 
00395       }
00396 
00397       // 4JT
00398       if ( recon_jets[0].pT() > 60.0*GeV &&
00399            recon_jets[1].pT() > 40.0*GeV &&
00400            recon_jets[2].pT() > 40.0*GeV &&
00401            recon_jets[3].pT() > 40.0*GeV &&
00402            deltaPhi( pTmiss_phi, recon_jets[0].phi() ) > 0.2 &&
00403            deltaPhi( pTmiss_phi, recon_jets[1].phi() ) > 0.2 &&
00404            deltaPhi( pTmiss_phi, recon_jets[2].phi() ) > 0.2 &&
00405            deltaPhi( pTmiss_phi, recon_jets[3].phi() ) > 0.2 ) {
00406 
00407         FourMomentum pT_l = lepton[0].momentum();
00408 
00409         double m_eff = eTmiss + pT_l.pT()
00410           + recon_jets[0].pT()
00411           + recon_jets[1].pT()
00412           + recon_jets[2].pT()
00413           + recon_jets[3].pT();
00414 
00415 
00416         if (  lepton[0].abspid() == e_id ) {
00417           if ( eTmiss > 200*GeV ) {
00418             _4jt_hist_m_eff_e_final->fill(m_eff, weight);
00419             if ( m_eff > 500*GeV && eTmiss > 0.15*m_eff ) {
00420               _4jt_count_e_channel->fill(0.5,weight);
00421             }
00422           }
00423         }
00424 
00425         // Muon channel signal region
00426         else if (  lepton[0].abspid() == mu_id ) {
00427           if ( eTmiss > 200*GeV ) {
00428             _4jt_hist_m_eff_mu_final->fill(m_eff, weight);
00429             if ( m_eff > 500*GeV && eTmiss > 0.15*m_eff ) {
00430               _4jt_count_mu_channel->fill(0.5,weight);
00431             }
00432           }
00433         }
00434 
00435       }
00436      }
00437 
00438     //@}
00439 
00440 
00441     void finalize() {
00442 
00443       scale( _3j_hist_eTmiss_e, 10. * 1.04e3 * crossSection()/sumOfWeights() );
00444       scale( _3j_hist_eTmiss_mu, 10. * 1.04e3 * crossSection()/sumOfWeights() );
00445       scale( _3j_hist_m_eff_e, 50. * 1.04e3 * crossSection()/sumOfWeights() );
00446       scale( _3j_hist_m_eff_mu, 50. * 1.04e3 * crossSection()/sumOfWeights() );
00447       scale( _3j_hist_mT_e, 10. * 1.04e3 * crossSection()/sumOfWeights() );
00448       scale( _3j_hist_mT_mu, 10. * 1.04e3 * crossSection()/sumOfWeights() );
00449       scale( _3jl_hist_m_eff_e_final, 100. * 1.04e3 * crossSection()/sumOfWeights() );
00450       scale( _3jl_hist_m_eff_mu_final, 100. * 1.04e3 * crossSection()/sumOfWeights() );
00451       scale( _3jt_hist_m_eff_e_final, 100. * 1.04e3 * crossSection()/sumOfWeights() );
00452       scale( _3jt_hist_m_eff_mu_final, 100. * 1.04e3 * crossSection()/sumOfWeights() );
00453 
00454       scale( _4j_hist_eTmiss_e, 10. * 1.04e3 * crossSection()/sumOfWeights() );
00455       scale( _4j_hist_eTmiss_mu, 10. * 1.04e3 * crossSection()/sumOfWeights() );
00456       scale( _4j_hist_m_eff_e, 50. * 1.04e3 * crossSection()/sumOfWeights() );
00457       scale( _4j_hist_m_eff_mu, 50. * 1.04e3 * crossSection()/sumOfWeights() );
00458       scale( _4j_hist_mT_e, 10. * 1.04e3 * crossSection()/sumOfWeights() );
00459       scale( _4j_hist_mT_mu, 10. * 1.04e3 * crossSection()/sumOfWeights() );
00460       scale( _4jl_hist_m_eff_e_final, 100. * 1.04e3 * crossSection()/sumOfWeights() );
00461       scale( _4jl_hist_m_eff_mu_final, 100. * 1.04e3 * crossSection()/sumOfWeights() );
00462       scale( _4jt_hist_m_eff_e_final, 100. * 1.04e3 * crossSection()/sumOfWeights() );
00463       scale( _4jt_hist_m_eff_mu_final, 100. * 1.04e3 * crossSection()/sumOfWeights() );
00464 
00465 
00466     }
00467 
00468   private:
00469 
00470     /// @name Histograms
00471     //@{
00472     Histo1DPtr _3jl_count_e_channel;
00473     Histo1DPtr _3jl_count_mu_channel;
00474     Histo1DPtr _3jt_count_e_channel;
00475     Histo1DPtr _3jt_count_mu_channel;
00476     Histo1DPtr _3j_hist_eTmiss_e;
00477     Histo1DPtr _3j_hist_eTmiss_mu;
00478     Histo1DPtr _3j_hist_m_eff_e;
00479     Histo1DPtr _3j_hist_m_eff_mu;
00480     Histo1DPtr _3j_hist_mT_e;
00481     Histo1DPtr _3j_hist_mT_mu;
00482     Histo1DPtr _3jl_hist_m_eff_e_final;
00483     Histo1DPtr _3jl_hist_m_eff_mu_final;
00484     Histo1DPtr _3jt_hist_m_eff_e_final;
00485     Histo1DPtr _3jt_hist_m_eff_mu_final;
00486 
00487 
00488 
00489     Histo1DPtr _4jl_count_e_channel;
00490     Histo1DPtr _4jl_count_mu_channel;
00491     Histo1DPtr _4jt_count_e_channel;
00492     Histo1DPtr _4jt_count_mu_channel;
00493     Histo1DPtr _4j_hist_eTmiss_e;
00494     Histo1DPtr _4j_hist_eTmiss_mu;
00495     Histo1DPtr _4j_hist_m_eff_e;
00496     Histo1DPtr _4j_hist_m_eff_mu;
00497     Histo1DPtr _4j_hist_mT_e;
00498     Histo1DPtr _4j_hist_mT_mu;
00499     Histo1DPtr _4jl_hist_m_eff_e_final;
00500     Histo1DPtr _4jl_hist_m_eff_mu_final;
00501     Histo1DPtr _4jt_hist_m_eff_e_final;
00502     Histo1DPtr _4jt_hist_m_eff_mu_final;
00503 
00504 
00505     //@}
00506 
00507 
00508   };
00509 
00510 
00511 
00512   // The hook for the plugin system
00513   DECLARE_RIVET_PLUGIN(ATLAS_2011_S9212353);
00514 
00515 }