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