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