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