|
[Rivet-svn] r3970 - in branches/2012-06-aidarivet: data/anainfo src/Analysesblackhole at projects.hepforge.org blackhole at projects.hepforge.orgMon Oct 22 12:33:05 BST 2012
Author: richardn Date: Mon Oct 22 12:33:05 2012 New Revision: 3970 Log: added latest ATLAS 4-lepton SUSY analysis Added: branches/2012-06-aidarivet/data/anainfo/ATLAS_2012_I1190891.info - copied, changed from r3969, branches/2012-06-aidarivet/data/anainfo/ATLAS_2012_CONF_2012_001.info branches/2012-06-aidarivet/src/Analyses/ATLAS_2012_I1190891.cc - copied, changed from r3966, branches/2012-06-aidarivet/src/Analyses/ATLAS_2012_CONF_2012_001.cc Modified: branches/2012-06-aidarivet/data/anainfo/Makefile.am branches/2012-06-aidarivet/src/Analyses/Makefile.am Copied and modified: branches/2012-06-aidarivet/data/anainfo/ATLAS_2012_I1190891.info (from r3969, branches/2012-06-aidarivet/data/anainfo/ATLAS_2012_CONF_2012_001.info) ============================================================================== --- branches/2012-06-aidarivet/data/anainfo/ATLAS_2012_CONF_2012_001.info Wed Oct 17 15:47:49 2012 (r3969, copy source) +++ branches/2012-06-aidarivet/data/anainfo/ATLAS_2012_I1190891.info Mon Oct 22 12:33:05 2012 (r3970) @@ -1,14 +1,16 @@ -Name: ATLAS_2012_CONF_2012_001 +Name: ATLAS_2012_I1190891 Year: 2012 Summary: 4 or more lepton plus missing transverse energy SUSY search Experiment: ATLAS Collider: LHC -Status: PRELIMINARY +InspireID: 1190891 +Status: UNVALIDATED Authors: - Peter Richardson <peter.richardson at durham.ac.uk> References: - ATLAS-CONF-2012-001 - ATLAS-CONF-2012-035 + - arXiv:1210.4457 RunInfo: BSM signal events at 7000 GeV. NumEvents: 25000 for BSM signals @@ -16,11 +18,20 @@ Energies: [7000] NeedCrossSection: yes Description: - 'Search for SUSY using events with 4 or more leptons in association with + 'Search for R-parity violating SUSY using events with 4 or more leptons in association with missing transverse energy in proton-proton collisions at a centre-of-mass energy of 7 TeV. The data sample has a total - integrated luminosity of 2.06 fb$^{-1}$. There is no reference data and - in addition to the control plots from the paper the number of events in - the two signal regions, - correctly normalized to an integrated luminosity 2.06 fb$^{-1}$, - are calculated.' + integrated luminosity of 4.7 fb$^{-1}$.' +BibTeX: '@article{Aad:2012kr, + author = "Aad, Georges and others", + title = "{Search for R-parity-violating supersymmetry in events + with four or more leptons in sqrt(s) = 7 TeV pp collisions + with the ATLAS detector}", + collaboration = "ATLAS Collaboration", + year = "2012", + eprint = "1210.4457", + archivePrefix = "arXiv", + primaryClass = "hep-ex", + reportNumber = "CERN-PH-EP-2012-276", + SLACcitation = "%%CITATION = ARXIV:1210.4457;%%", +}' Modified: branches/2012-06-aidarivet/data/anainfo/Makefile.am ============================================================================== --- branches/2012-06-aidarivet/data/anainfo/Makefile.am Wed Oct 17 15:47:49 2012 (r3969) +++ branches/2012-06-aidarivet/data/anainfo/Makefile.am Mon Oct 22 12:33:05 2012 (r3970) @@ -61,6 +61,7 @@ ATLAS_2012_I1117704.info \ ATLAS_2012_I1180197.info \ ATLAS_2012_I1186556.info \ + ATLAS_2012_I1190891.info \ ATLAS_2012_CONF_2012_103.info \ ATLAS_2012_CONF_2012_104.info \ ATLAS_2012_CONF_2012_105.info \ Copied and modified: branches/2012-06-aidarivet/src/Analyses/ATLAS_2012_I1190891.cc (from r3966, branches/2012-06-aidarivet/src/Analyses/ATLAS_2012_CONF_2012_001.cc) ============================================================================== --- branches/2012-06-aidarivet/src/Analyses/ATLAS_2012_CONF_2012_001.cc Wed Oct 17 15:06:36 2012 (r3966, copy source) +++ branches/2012-06-aidarivet/src/Analyses/ATLAS_2012_I1190891.cc Mon Oct 22 12:33:05 2012 (r3970) @@ -14,15 +14,15 @@ namespace Rivet { /// @author Peter Richardson - class ATLAS_2012_CONF_2012_001 : public Analysis { + class ATLAS_2012_I1190891 : public Analysis { public: /// @name Constructors etc. //@{ /// Constructor - ATLAS_2012_CONF_2012_001() - : Analysis("ATLAS_2012_CONF_2012_001") + ATLAS_2012_I1190891() + : Analysis("ATLAS_2012_I1190891") { } //@} @@ -63,27 +63,27 @@ // all tracks (to do deltaR with leptons) addProjection(ChargedFinalState(-3.0,3.0),"cfs"); - // Book histograms - _hist_leptonpT.push_back(bookHistogram1D(1,1,1)); - _hist_leptonpT.push_back(bookHistogram1D(2,1,1)); - _hist_leptonpT.push_back(bookHistogram1D(3,1,1)); - _hist_leptonpT.push_back(bookHistogram1D(4,1,1)); - _hist_njet = bookHistogram1D(5,1,1); - _hist_etmiss = bookHistogram1D(6,1,1); - _hist_mSFOS = bookHistogram1D(7,1,1); - _hist_meff = bookHistogram1D(8,1,1); - - _hist_leptonpT_MC.push_back(bookHistogram1D("hist_lepton_pT_1", 26, 0., 260)); - _hist_leptonpT_MC.push_back(bookHistogram1D("hist_lepton_pT_2", 15, 0., 150)); - _hist_leptonpT_MC.push_back(bookHistogram1D("hist_lepton_pT_3", 20, 0., 100)); - _hist_leptonpT_MC.push_back(bookHistogram1D("hist_lepton_pT_4", 20, 0., 100)); - _hist_njet_MC = bookHistogram1D("hist_njet", 7, -0.5, 6.5); - _hist_etmiss_MC = bookHistogram1D("hist_etmiss",11,0.,220.); - _hist_mSFOS_MC = bookHistogram1D("hist_m_SFOS",13,0.,260.); - _hist_meff_MC = bookHistogram1D("hist_m_eff",19,0.,950.); + // // Book histograms + // _hist_leptonpT.push_back(bookHistogram1D(1,1,1)); + // _hist_leptonpT.push_back(bookHistogram1D(2,1,1)); + // _hist_leptonpT.push_back(bookHistogram1D(3,1,1)); + // _hist_leptonpT.push_back(bookHistogram1D(4,1,1)); + // _hist_njet = bookHistogram1D(5,1,1); + // _hist_etmiss = bookHistogram1D(6,1,1); + // _hist_mSFOS = bookHistogram1D(7,1,1); + // _hist_meff = bookHistogram1D(8,1,1); + + // _hist_leptonpT_MC.push_back(bookHistogram1D("hist_lepton_pT_1", 26, 0., 260)); + // _hist_leptonpT_MC.push_back(bookHistogram1D("hist_lepton_pT_2", 15, 0., 150)); + // _hist_leptonpT_MC.push_back(bookHistogram1D("hist_lepton_pT_3", 20, 0., 100)); + // _hist_leptonpT_MC.push_back(bookHistogram1D("hist_lepton_pT_4", 20, 0., 100)); + // _hist_njet_MC = bookHistogram1D("hist_njet", 7, -0.5, 6.5); + // _hist_etmiss_MC = bookHistogram1D("hist_etmiss",11,0.,220.); + // _hist_mSFOS_MC = bookHistogram1D("hist_m_SFOS",13,0.,260.); + // _hist_meff_MC = bookHistogram1D("hist_m_eff",19,0.,950.); - _count_SR1 = bookHistogram1D("count_SR1", 1, 0., 1.); - _count_SR2 = bookHistogram1D("count_SR2", 1, 0., 1.); + // _count_SR1 = bookHistogram1D("count_SR1", 1, 0., 1.); + // _count_SR2 = bookHistogram1D("count_SR2", 1, 0., 1.); } @@ -94,7 +94,7 @@ Jets cand_jets; foreach (const Jet& jet, applyProjection<FastJets>(event, "AntiKtJets04").jetsByPt(20.0*GeV) ) { - if ( fabs( jet.momentum().eta() ) < 2.8 ) { + if ( fabs( jet.momentum().eta() ) < 2.5 ) { cand_jets.push_back(jet); } } @@ -118,10 +118,6 @@ ParticleVector cand_e; foreach ( const Particle & e, applyProjection<IdentifiedFinalState>(event, "elecs").particlesByPt() ) { - double eta = e.momentum().eta(); - // remove electrons with pT<15 in old veto region - if( fabs(eta)>1.37 && fabs(eta) < 1.52 && e.momentum().perp()< 15.*GeV) - continue; double pTinCone = -e.momentum().perp(); foreach ( const Particle & track, chg_tracks ) { if ( deltaR(e.momentum(),track.momentum()) <= 0.2 ) @@ -147,7 +143,7 @@ } // only keep electrons more than R=0.4 from jets - ParticleVector recon_e; + ParticleVector cand2_e; for(unsigned int ie=0;ie<cand_e.size();++ie) { const Particle & e = cand_e[ie]; // at least 0.4 from any jets @@ -167,21 +163,37 @@ } } } - // and 0.1 from electrons + // and 0.1 from electrons ( keep higher energy) for(unsigned int ie2=0;ie2<cand_e.size();++ie2) { if(ie==ie2) continue; - if ( deltaR(e.momentum(),cand_e[ie2].momentum()) < 0.1 ) { - away = false; - break; - } + if ( deltaR(e.momentum(),cand_e[ie2].momentum()) < 0.1 && + e.momentum().E() < cand_e[ie2].momentum().E() ) { + away = false; + break; + } } // if isolated keep it if ( away ) - recon_e.push_back( e ); + cand2_e.push_back( e ); + } + + // remove e+e- pairs with mass < 20. + ParticleVector recon_e; + for(unsigned int ie=0;ie<cand2_e.size();++ie) { + bool pass = true; + for(unsigned int ie2=0;ie2<cand2_e.size();++ie2) { + if(cand2_e[ie].pdgId()*cand2_e[ie2].pdgId()>0) continue; + double mtest = (cand2_e[ie].momentum()+cand2_e[ie2].momentum()).mass(); + if(mtest<=20.) { + pass = false; + break; + } + } + if(pass) recon_e.push_back(cand2_e[ie]); } // only keep muons more than R=0.4 from jets - ParticleVector recon_mu; + ParticleVector cand2_mu; for(unsigned int imu=0;imu<cand_mu.size();++imu) { const Particle & mu = cand_mu[imu]; bool away = true; @@ -201,16 +213,23 @@ } } } - // and 0.1 from muons - for(unsigned int imu2=0;imu2<cand_mu.size();++imu2) { - if(imu==imu2) continue; - if ( deltaR(mu.momentum(),cand_mu[imu2].momentum()) < 0.1 ) { - away = false; - break; - } - } if ( away ) - recon_mu.push_back( mu ); + cand2_mu.push_back( mu ); + } + + // remove mu+mu- pairs with mass < 20. + ParticleVector recon_mu; + for(unsigned int imu=0;imu<cand2_mu.size();++imu) { + bool pass = true; + for(unsigned int imu2=0;imu2<cand2_mu.size();++imu2) { + if(cand2_mu[imu].pdgId()*cand2_mu[imu2].pdgId()>0) continue; + double mtest = (cand2_mu[imu].momentum()+cand2_mu[imu2].momentum()).mass(); + if(mtest<=20.) { + pass = false; + break; + } + } + if(pass) recon_mu.push_back(cand2_mu[imu]); } // pTmiss @@ -230,25 +249,20 @@ vetoEvent; } - // ATLAS calo problem - if(rand()/static_cast<double>(RAND_MAX)<=0.42) { - foreach ( const Particle & e, recon_e ) { - double eta = e.momentum().eta(); - double phi = e.momentum().azimuthalAngle(MINUSPI_PLUSPI); - if(eta>-0.1&&eta<1.5&&phi>-0.9&&phi<-0.5) - vetoEvent; - } - foreach ( const Jet & jet, recon_jets ) { - double eta = jet.momentum().rapidity(); - double phi = jet.momentum().azimuthalAngle(MINUSPI_PLUSPI); - if(jet.momentum().perp()>40 && eta>-0.1&&eta<1.5&&phi>-0.9&&phi<-0.5) - vetoEvent; - } - } + // check if passes single lepton trigger + bool passSingle = + ( !recon_e .empty() && recon_e[0] .momentum().perp()>25. )|| + ( !recon_mu.empty() && recon_mu[0].momentum().perp()>20.); + + // or two lepton trigger + bool passDouble = + ( recon_mu.size()>=2 && recon_mu[1].momentum().perp()>12.) || + ( recon_e .size()>=2 && recon_e [1].momentum().perp()>17.) || + ( !recon_e.empty() && !recon_mu.empty() && + recon_e[0].momentum().perp()>15. && recon_mu[0].momentum().perp()>10.); - // check at least one e/mu passing trigger - if( !( !recon_e .empty() && recon_e[0] .momentum().perp()>25.) && - !( !recon_mu.empty() && recon_mu[0].momentum().perp()>20.) ) { + // must pass a trigger + if( !passSingle && !passDouble ) { MSG_DEBUG("Hardest lepton fails trigger"); vetoEvent; } @@ -264,103 +278,36 @@ if(pT>40.) meff += pT; } - double mSFOS=1e30, mdiff=1e30,mMin=1e30; // mass of SFOS pairs closest to the Z mass for(unsigned int ix=0;ix<recon_e.size();++ix) { for(unsigned int iy=ix+1;iy<recon_e.size();++iy) { if(recon_e[ix].pdgId()*recon_e[iy].pdgId()>0) continue; double mtest = (recon_e[ix].momentum()+recon_e[iy].momentum()).mass(); - if(fabs(mtest-90.)<mdiff) { - mSFOS = mtest; - mdiff = fabs(mtest-90.); - } - else if(mMin>mtest) { - mMin = mtest; - } + if(mtest>81.2 && mtest<101.2) vetoEvent; } } for(unsigned int ix=0;ix<recon_mu.size();++ix) { for(unsigned int iy=ix+1;iy<recon_mu.size();++iy) { if(recon_mu[ix].pdgId()*recon_mu[iy].pdgId()>0) continue; - double mtest = (recon_mu[ix].momentum()+recon_mu[iy].momentum()).mass(); - if(fabs(mtest-91.118)<mdiff) { - mSFOS = mtest; - mdiff = fabs(mtest-91.118); - } - else if(mMin>mtest) { - mMin = mtest; - } - } - } - // cut to reject low mass Drell-Yan - if(mMin<=20.) { - vetoEvent; + double mtest = (recon_mu[ix].momentum()+recon_mu[iy].momentum()).mass(); + if(mtest>81.2 && mtest<101.2) vetoEvent; + } } // make the control plots - // lepton pT - unsigned int ie=0,imu=0; - for(unsigned int ix=0;ix<4;++ix) { - double pTe = ie <recon_e .size() ? - recon_e [ie ].momentum().perp() : -1*GeV; - double pTmu = imu<recon_mu.size() ? - recon_mu[imu].momentum().perp() : -1*GeV; - if(pTe>pTmu) { - _hist_leptonpT [ix]->fill(pTe ,weight); - _hist_leptonpT_MC[ix]->fill(pTe ,weight); - ++ie; - } - else { - _hist_leptonpT [ix]->fill(pTmu,weight); - _hist_leptonpT_MC[ix]->fill(pTmu,weight); - ++imu; - } - } - // njet - _hist_njet ->fill(recon_jets.size(),weight); - _hist_njet_MC->fill(recon_jets.size(),weight); - // etmiss - _hist_etmiss ->fill(eTmiss,weight); - _hist_etmiss_MC->fill(eTmiss,weight); - if(mSFOS<1e30) { - _hist_mSFOS ->fill(mSFOS,weight); - _hist_mSFOS_MC->fill(mSFOS,weight); - } - _hist_meff ->fill(meff,weight); - _hist_meff_MC->fill(meff,weight); - + _hist_etmiss ->fill(eTmiss,weight); + _hist_meff ->fill(meff ,weight); // finally the counts - if(eTmiss>50.) { - _count_SR1->fill(0.5,weight); - if(mdiff>10.) _count_SR2->fill(0.5,weight); - } + if(eTmiss>50.) _count_SR1->fill(0.5,weight); + if(meff >300.) _count_SR2->fill(0.5,weight); } //@} void finalize() { - double norm = crossSection()/femtobarn*2.06/sumOfWeights(); - // these are number of events at 2.06fb^-1 per 10 GeV - scale(_hist_leptonpT [0],norm*10.); - scale(_hist_leptonpT [1],norm*10.); - scale(_hist_leptonpT_MC[0],norm*10.); - scale(_hist_leptonpT_MC[1],norm*10.); - // these are number of events at 2.06fb^-1 per 5 GeV - scale(_hist_leptonpT [2],norm*5.); - scale(_hist_leptonpT [3],norm*5.); - scale(_hist_leptonpT_MC[2],norm*5.); - scale(_hist_leptonpT_MC[3],norm*5.); - // these are number of events at 2.06fb^-1 per 20 GeV - scale(_hist_etmiss ,norm*20.); - scale(_hist_mSFOS ,norm*20.); - scale(_hist_etmiss_MC ,norm*20.); - scale(_hist_mSFOS_MC ,norm*20.); - // these are number of events at 2.06fb^-1 per 50 GeV - scale(_hist_meff_MC ,norm*50.); - scale(_hist_meff_MC ,norm*50.); - // these are number of events at 2.06fb^-1 - scale(_hist_njet ,norm); - scale(_hist_njet_MC ,norm); + double norm = crossSection()/femtobarn*4.7/sumOfWeights(); + scale(_hist_etmiss,norm* 50.); + scale(_hist_meff ,norm*150.); scale(_count_SR1,norm); scale(_count_SR2,norm); } @@ -369,15 +316,8 @@ /// @name Histograms //@{ - vector<AIDA::IHistogram1D*> _hist_leptonpT,_hist_leptonpT_MC; - AIDA::IHistogram1D* _hist_njet; - AIDA::IHistogram1D* _hist_njet_MC; AIDA::IHistogram1D* _hist_etmiss; - AIDA::IHistogram1D* _hist_etmiss_MC; - AIDA::IHistogram1D* _hist_mSFOS; - AIDA::IHistogram1D* _hist_mSFOS_MC; AIDA::IHistogram1D* _hist_meff; - AIDA::IHistogram1D* _hist_meff_MC; AIDA::IHistogram1D* _count_SR1; AIDA::IHistogram1D* _count_SR2; //@} @@ -385,6 +325,6 @@ }; // The hook for the plugin system - DECLARE_RIVET_PLUGIN(ATLAS_2012_CONF_2012_001); + DECLARE_RIVET_PLUGIN(ATLAS_2012_I1190891); } Modified: branches/2012-06-aidarivet/src/Analyses/Makefile.am ============================================================================== --- branches/2012-06-aidarivet/src/Analyses/Makefile.am Wed Oct 17 15:47:49 2012 (r3969) +++ branches/2012-06-aidarivet/src/Analyses/Makefile.am Mon Oct 22 12:33:05 2012 (r3970) @@ -97,6 +97,7 @@ ATLAS_2012_I946427.cc \ ATLAS_2012_I1180197.cc \ ATLAS_2012_I1186556.cc \ + ATLAS_2012_I1190891.cc \ ATLAS_2012_CONF_2012_103.cc \ ATLAS_2012_CONF_2012_104.cc \ ATLAS_2012_CONF_2012_105.cc \
More information about the Rivet-svn mailing list |