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