ATLAS_2011_S9041966.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 /// 1-lepton and 2-lepton search for first or second generation leptoquarks 00017 /// @todo Clean up the debug stuff 00018 class ATLAS_2011_S9041966 : public Analysis { 00019 public: 00020 00021 /// @name Constructors etc. 00022 //@{ 00023 00024 /// Constructor 00025 ATLAS_2011_S9041966() 00026 : Analysis("ATLAS_2011_S9041966"), 00027 // DEBUG 00028 count(0), vetoe(0), Njetscut(0), dilept(0), 00029 candmumujj(0), candeejj(0), onelept(0), 00030 eTmisscut(0), candmvjj(0), candevjj(0), 00031 mumujj(0), eejj(0), 00032 mTonelept(0), MLQonelept(0), MtLQonelept(0), Stvonelept(0), 00033 mTev(0), MLQev(0), MtLQev(0), Stvev(0), 00034 muvjj(0), evjj(0), emuvjj(0), 00035 cande(0), candmu(0), 00036 tmpe(0), tmpmu(0), 00037 mumuZCR(0), eeZCR(0), 00038 munuW2CR(0), munuttCR(0), 00039 enuW2CR(0), enuttCR(0) 00040 { } 00041 00042 //@} 00043 00044 00045 public: 00046 00047 /// @name Analysis methods 00048 //@{ 00049 00050 /// Book histograms and initialize projections before the run 00051 void init() { 00052 00053 // projection to find the electrons 00054 std::vector<std::pair<double, double> > eta_e; 00055 eta_e.push_back(make_pair(-2.47,2.47)); 00056 IdentifiedFinalState elecs(eta_e, 20.0*GeV); 00057 elecs.acceptIdPair(ELECTRON); 00058 addProjection(elecs, "elecs"); 00059 00060 00061 // veto region electrons 00062 std::vector<std::pair<double, double> > eta_v_e; 00063 eta_v_e.push_back(make_pair(-1.52,-1.35)); 00064 eta_v_e.push_back(make_pair( 1.35, 1.52)); 00065 IdentifiedFinalState veto_elecs(eta_v_e, 10.0*GeV); 00066 veto_elecs.acceptIdPair(ELECTRON); 00067 addProjection(veto_elecs, "veto_elecs"); 00068 00069 ///DEBUG 00070 // projection to find all leptons 00071 IdentifiedFinalState all_mu_e; 00072 all_mu_e.acceptIdPair(MUON); 00073 all_mu_e.acceptIdPair(ELECTRON); 00074 addProjection(all_mu_e, "all_mu_e"); //debug 00075 00076 00077 00078 // projection to find the muons 00079 std::vector<std::pair<double, double> > eta_m; 00080 eta_m.push_back(make_pair(-2.4,2.4)); 00081 IdentifiedFinalState muons(eta_m, 20.0*GeV); 00082 muons.acceptIdPair(MUON); 00083 addProjection(muons, "muons"); 00084 00085 00086 // Jet finder 00087 VetoedFinalState vfs; 00088 vfs.addVetoPairDetail(MUON,20*GeV,7000*GeV); 00089 vfs.addVetoPairDetail(ELECTRON,20*GeV,7000*GeV); 00090 addProjection(FastJets(vfs, FastJets::ANTIKT, 0.4), 00091 "AntiKtJets04"); 00092 00093 00094 // all tracks (to do deltaR with leptons) 00095 addProjection(ChargedFinalState(-3.0,3.0,0.5*GeV),"cfs"); 00096 00097 00098 // for pTmiss 00099 addProjection(VisibleFinalState(-4.9,4.9),"vfs"); 00100 00101 00102 /// Book histograms 00103 _count_mumujj = bookHisto1D("count_2muons_dijet", 1, 0., 1.); 00104 _count_eejj = bookHisto1D("count_2elecs_dijet", 1, 0., 1.); 00105 _count_muvjj = bookHisto1D("count_muon_neutrino_dijet", 1, 0., 1.); 00106 _count_evjj = bookHisto1D("count_elec_neutrino_dijet", 1, 0., 1.); 00107 00108 _hist_St_mumu = bookHisto1D("hist_mumujj_St", 10, 450., 1650.); 00109 _hist_St_ee = bookHisto1D("hist_eejj_St", 10, 450., 1650.); 00110 _hist_MLQ_muv = bookHisto1D("hist_munujj_MLQ", 9, 150., 600.); 00111 _hist_MLQ_ev = bookHisto1D("hist_enujj_MLQ", 9, 150., 600.); 00112 00113 _hist_St_mumu_ZCR = bookHisto1D("CR_Zjets_St_mumu", 40, 0., 800.); 00114 _hist_St_ee_ZCR = bookHisto1D("CR_Zjets_Stee", 40, 0., 800.); 00115 _hist_MLQ_munu_W2CR = bookHisto1D("CR_W2jets_MLQ_munu", 20, 0., 400.); 00116 _hist_MLQ_enu_W2CR = bookHisto1D("CR_W2jets_MLQ_enu", 20, 0., 400.); 00117 _hist_MLQ_munu_ttCR = bookHisto1D("CR_tt_MLQ_munu", 35, 0., 700.); 00118 _hist_MLQ_enu_ttCR = bookHisto1D("CR_tt_MLQ_enu", 35, 0., 700.); 00119 00120 } 00121 00122 00123 00124 /// Perform the per-event analysis 00125 void analyze(const Event& event) { 00126 00127 const double weight = event.weight(); 00128 00129 ///DEBUG 00130 count +=1; //cerr<< "Event " << count << '\n'; 00131 // debug 00132 00133 00134 ParticleVector veto_e 00135 = applyProjection<IdentifiedFinalState>(event, "veto_elecs").particles(); 00136 if ( ! veto_e.empty() ) { 00137 MSG_DEBUG("electrons in veto region"); 00138 vetoEvent; 00139 } 00140 ++vetoe; 00141 00142 00143 Jets cand_jets; 00144 foreach ( const Jet& jet, 00145 applyProjection<FastJets>(event, "AntiKtJets04").jetsByPt(20.0*GeV) ) { 00146 if ( fabs( jet.momentum().eta() ) < 2.8 ) { 00147 cand_jets.push_back(jet); 00148 } 00149 } 00150 00151 00152 ParticleVector candtemp_e = 00153 applyProjection<IdentifiedFinalState>(event, "elecs").particlesByPt(); 00154 ParticleVector candtemp_mu = 00155 applyProjection<IdentifiedFinalState>(event,"muons").particlesByPt(); 00156 ParticleVector cand_mu; 00157 ParticleVector cand_e; 00158 ParticleVector vfs_particles 00159 = applyProjection<VisibleFinalState>(event, "vfs").particles(); 00160 00161 00162 // pTcone around muon track 00163 foreach ( const Particle & mu, candtemp_mu ) { 00164 ++tmpmu; 00165 double pTinCone = -mu.momentum().pT(); 00166 foreach ( const Particle & track, vfs_particles ) { 00167 if ( deltaR(mu.momentum(),track.momentum()) < 0.2 ) 00168 pTinCone += track.momentum().pT(); 00169 } 00170 if ( pTinCone/mu.momentum().pT() < 0.25 ) 00171 ++candmu; 00172 cand_mu.push_back(mu); 00173 } 00174 00175 // pTcone around electron 00176 foreach ( const Particle e, candtemp_e ) { 00177 ++tmpe; 00178 double pTinCone = -e.momentum().pT(); 00179 foreach ( const Particle & track, vfs_particles ) { 00180 if ( deltaR(e.momentum(),track.momentum()) < 0.2 ) 00181 pTinCone += track.momentum().pT(); 00182 } 00183 if ( pTinCone/e.momentum().pT() < 0.2 ) 00184 ++cande; 00185 cand_e.push_back(e); 00186 } 00187 00188 if ( cand_e.empty() && cand_mu.empty() ) { 00189 //cerr<<" ->Event vetoed. No candidate lept"<<'\n'; 00190 vetoEvent; 00191 } 00192 00193 00194 //DEBUG 00195 // else{ 00196 // foreach (const Particle & mu, cand_mu) { 00197 // cerr << "cand mu: " << "Id " << mu.pdgId() << " eta " << mu.momentum().eta() << " pT " << mu.momentum().pT() << '\n'; 00198 // } 00199 // foreach (const Particle & lepton, cand_e) { 00200 // cerr << "cand e: " << "Id " << lepton.pdgId() << " eta " << lepton.momentum().eta() << " pT " << lepton.momentum().pT() << '\n'; 00201 // }} // debug 00202 00203 00204 00205 // pTmiss 00206 FourMomentum pTmiss; 00207 foreach ( const Particle & p, vfs_particles ) { 00208 pTmiss -= p.momentum(); 00209 } 00210 double eTmiss = pTmiss.pT(); 00211 00212 00213 // discard jets that overlap with leptons 00214 Jets recon_jets; 00215 foreach ( const Jet& jet, cand_jets ) { 00216 bool away_from_lept = true; 00217 foreach ( const Particle e, cand_e ) { 00218 if ( deltaR(e.momentum(),jet.momentum()) <= 0.5 ) { 00219 away_from_lept = false; 00220 break; 00221 } 00222 } 00223 foreach ( const Particle & mu, cand_mu ) { 00224 if ( deltaR(mu.momentum(),jet.momentum()) <= 0.5 ) { 00225 away_from_lept = false; 00226 break; 00227 } 00228 } 00229 if ( away_from_lept ) 00230 recon_jets.push_back( jet ); 00231 } 00232 00233 00234 00235 //DEBUG 00236 // cerr << " Num of recon jets: " << recon_jets.size() << '\n'; 00237 // cerr << " Num of cand e: " << cand_e.size() << '\n'; 00238 // cerr << " Num of cand mu: " << cand_mu.size() << '\n'; 00239 //debug 00240 00241 00242 00243 // ================ OBSERVABLES ================ 00244 00245 00246 // At least 2 hard jets 00247 if ( recon_jets.size() < 2 ) { 00248 //cerr << " ->Event vetoed. Not enough hard jets." << '\n'; 00249 vetoEvent; 00250 } 00251 ++Njetscut; 00252 00253 00254 // Initialize variables for observables 00255 double M_ll=0., M_LQ=0., St_ll=0., Mt_LQ=0., St_v=0., mT=0.; 00256 FourMomentum p_l, p_l1, p_l2, p_j[2]; 00257 p_j[0] = recon_jets[0].momentum(); 00258 p_j[1] = recon_jets[1].momentum(); 00259 00260 ParticleVector dilept_pair; 00261 bool single_lept = false; 00262 00263 if ( cand_mu.size() == 2 && cand_e.empty() ) { 00264 ++candmumujj; 00265 foreach ( const Particle& mu, cand_mu ) 00266 dilept_pair.push_back(mu); 00267 } 00268 else if ( cand_e.size() == 2 && cand_mu.empty() ) { 00269 ++candeejj; 00270 foreach ( const Particle& e, cand_e ) 00271 dilept_pair.push_back(e); 00272 } 00273 else if ( cand_mu.size() == 1 && cand_e.empty() ) { 00274 ++candmvjj; 00275 p_l = cand_mu[0].momentum(); 00276 single_lept = true; 00277 } 00278 else if ( cand_e.size() == 1 && cand_mu.empty() ) { 00279 ++candevjj; 00280 p_l = cand_e[0].momentum(); 00281 single_lept = true; 00282 } 00283 00284 // Dilepton channel observables 00285 if ( ! dilept_pair.empty() ) { 00286 00287 double E_l1, E_l2, E_j1, E_j2; 00288 double tmpM_LQ1[2], tmpM_LQ2[2], M_LQDiff1, M_LQDiff2; 00289 00290 p_l1 = dilept_pair[0].momentum(); 00291 p_l2 = dilept_pair[1].momentum(); 00292 E_l1 = p_l1.E(); 00293 E_l2 = p_l2.E(); 00294 00295 E_j1 = p_j[0].E(); 00296 E_j2 = p_j[1].E(); 00297 00298 // Calculate possible leptoquark mass M_LQ and reconstruct average M_LQ 00299 00300 tmpM_LQ1[0] = E_l1 + E_j1; 00301 tmpM_LQ1[1] = E_l2 + E_j2; 00302 M_LQDiff1 = abs( tmpM_LQ1[0] - tmpM_LQ1[1] ); 00303 00304 tmpM_LQ2[0] = E_l1 + E_j2; 00305 tmpM_LQ2[1] = E_l2 + E_j1; 00306 M_LQDiff2 = abs( tmpM_LQ2[0] - tmpM_LQ2[1] ); 00307 00308 if ( M_LQDiff1 > M_LQDiff2 ) 00309 M_LQ = ( tmpM_LQ2[0] + tmpM_LQ2[1] ) / 2; 00310 else 00311 M_LQ = ( tmpM_LQ1[0] + tmpM_LQ1[1] ) / 2; 00312 00313 // Calculate event transverse energy St 00314 St_ll = p_l1.pT() + p_l2.pT() + p_j[0].pT() + p_j[1].pT(); 00315 00316 // Dilept pair invariant mass M_ll 00317 M_ll = E_l1 + E_l2; 00318 00319 } 00320 00321 // 1-lepton channel observables 00322 else if ( single_lept ) { 00323 00324 double tmpM_LQ[2], tmpMt_LQ[2], dPhi_j[2], M_LQDiff1, M_LQDiff2; 00325 00326 // List of possible M_LQ, Mt_LQ pairings 00327 00328 for ( int i = 0; i < 2; ++i ) { 00329 tmpM_LQ[i] = p_l.E() + p_j[i].E(); 00330 dPhi_j[1-i] = deltaPhi( p_j[1-i].phi(), pTmiss.phi() ); 00331 tmpMt_LQ[i] = sqrt( 2 * p_j[1-i].pT() * eTmiss * (1 - cos( dPhi_j[1-i] )) ); 00332 } 00333 00334 // Choose pairing that gives smallest absolute difference 00335 00336 M_LQDiff1 = abs( tmpM_LQ[0] - tmpMt_LQ[0] ); 00337 M_LQDiff2 = abs( tmpM_LQ[1] - tmpMt_LQ[1] ); 00338 00339 if ( M_LQDiff1 > M_LQDiff2 ) { 00340 M_LQ = tmpM_LQ[1]; 00341 Mt_LQ = tmpMt_LQ[1]; 00342 } 00343 else { 00344 M_LQ = tmpM_LQ[0]; 00345 Mt_LQ = tmpMt_LQ[0]; 00346 } 00347 00348 // Event transverse energy 00349 St_v = p_l.pT() + eTmiss + p_j[0].pT() + p_j[1].pT(); 00350 00351 // Transverse mass mT 00352 double dPhi_l = deltaPhi( p_l.phi(), pTmiss.phi()); 00353 mT = sqrt( 2 * p_l.pT() * eTmiss * (1 - cos(dPhi_l)) ); 00354 00355 } 00356 00357 00358 // ============== CONTROL REGIONS =============== 00359 00360 // mumujj, Z control region 00361 if ( cand_mu.size() == 2 ) { 00362 if ( M_ll >= 81*GeV && M_ll <= 101*GeV ) { 00363 ++mumuZCR; 00364 _hist_St_mumu_ZCR->fill(St_ll, weight); 00365 } 00366 } 00367 // eejj, Z control region 00368 else if ( cand_e.size() == 2 ) { 00369 if ( M_ll >= 81*GeV && M_ll <= 101*GeV ) { 00370 ++eeZCR; 00371 _hist_St_ee_ZCR->fill(St_ll, weight); 00372 00373 } 00374 } 00375 00376 if ( cand_mu.size() == 1 ) { 00377 // munujj, W+2jets control region 00378 if ( recon_jets.size() == 2 && 00379 mT >= 40*GeV && mT <= 150*GeV ) { 00380 ++munuW2CR; 00381 _hist_MLQ_munu_W2CR->fill(M_LQ, weight); 00382 } 00383 // munujj, tt control region 00384 if ( recon_jets.size() >= 4 && 00385 recon_jets[0].momentum().pT() > 50*GeV && recon_jets[1].momentum().pT() > 40*GeV && recon_jets[2].momentum().pT() > 30*GeV ) { 00386 ++munuttCR; 00387 _hist_MLQ_munu_ttCR->fill(M_LQ, weight); 00388 } 00389 } 00390 if ( cand_e.size() == 1 ) { 00391 // enujj, W+2jets control region 00392 if ( recon_jets.size() == 2 && 00393 mT >= 40*GeV && mT <= 150*GeV ) { 00394 ++enuW2CR; 00395 _hist_MLQ_enu_W2CR->fill(M_LQ, weight); 00396 } 00397 // enujj, tt control region 00398 if ( recon_jets.size() >= 4 && 00399 recon_jets[0].momentum().pT() > 50*GeV && recon_jets[1].momentum().pT() > 40*GeV && recon_jets[2].momentum().pT() > 30*GeV ) { 00400 ++enuttCR; 00401 _hist_MLQ_enu_ttCR->fill(M_LQ, weight); 00402 } 00403 } 00404 00405 00406 00407 00408 // ========= PRESELECTION ======================= 00409 00410 00411 00412 // Single lepton channel cuts 00413 if ( single_lept ) { 00414 00415 if ( eTmiss <= 25*GeV ) { 00416 //cerr << " ->Event vetoed. eTmiss=" << eTmiss << '\n'; 00417 vetoEvent; 00418 } 00419 ++eTmisscut; 00420 00421 if ( mT <= 40*GeV ) 00422 vetoEvent; 00423 00424 //++mTcut; 00425 00426 // enujj channel 00427 if ( cand_e.size() == 1 && cand_mu.empty() ) { 00428 00429 // Triangle cut 00430 double dPhi_jet1 = deltaPhi( recon_jets[0].phi(), pTmiss.phi() ); 00431 double dPhi_jet2 = deltaPhi( recon_jets[1].phi(), pTmiss.phi() ); 00432 00433 if ( dPhi_jet1 <= 1.5 * (1 - eTmiss/45) || 00434 dPhi_jet2 <= 1.5 * (1 - eTmiss/45) ) { 00435 ++emuvjj; 00436 vetoEvent; 00437 } 00438 } 00439 } 00440 00441 // ==================== FILL ==================== 00442 00443 00444 // mumujj channel 00445 if ( cand_mu.size() == 2 ) { 00446 if ( M_ll <= 120*GeV || 00447 M_LQ <= 150*GeV || 00448 p_l1.pT() <= 30*GeV || p_l2.pT() <= 30*GeV || 00449 p_j[0].pT() <= 30*GeV || p_j[1].pT() <= 30*GeV || 00450 St_ll <= 450*GeV ) { 00451 //cerr<<" ->Dilept event vetoed. Table 4 cuts." << '\n'; 00452 vetoEvent; 00453 } 00454 else { 00455 00456 00457 ++mumujj; 00458 // cerr<< " ->MUMUJJ event selected." << '\n'; 00459 _hist_St_mumu->fill(St_ll, weight); 00460 _count_mumujj->fill(0.5, weight); 00461 00462 } 00463 } 00464 // eejj channel 00465 else if ( cand_e.size() == 2 ) { 00466 if ( M_ll <= 120*GeV || 00467 M_LQ <= 150*GeV || 00468 p_l1.pT() <= 30*GeV || p_l2.pT() <= 30*GeV || 00469 p_j[0].pT() <= 30*GeV || p_j[1].pT() <= 30*GeV || 00470 St_ll <= 450*GeV ) { 00471 //cerr<<" ->Dilept event vetoed. Table 4 cuts." << '\n'; 00472 vetoEvent; 00473 } 00474 else { 00475 00476 ++eejj; 00477 //cerr<< " ->EEJJ event selected." << '\n'; 00478 _hist_St_ee->fill(St_ll, weight); 00479 _count_eejj->fill(0.5, weight); 00480 00481 } 00482 } 00483 00484 00485 // muvjj channel 00486 else if ( cand_mu.size() == 1 ) { 00487 00488 00489 00490 if (M_LQ<=150*GeV) { 00491 //cerr<<" ->muvjj event vetoed. Not enough M_LQ: " << M_LQ<< '\n'; 00492 vetoEvent; 00493 } 00494 ++MLQonelept; 00495 if (Mt_LQ<=150*GeV) { 00496 //cerr<<" ->muvjj event vetoed. Not enough Mt_LQ: " << Mt_LQ<< '\n'; 00497 vetoEvent; 00498 } 00499 ++MtLQonelept; 00500 if (St_v<=400*GeV) { 00501 //cerr<<" ->muvjj event vetoed. Not enough St_v: " << St_v<< '\n'; 00502 vetoEvent; 00503 } 00504 ++Stvonelept; 00505 if (mT<=160*GeV) { 00506 //cerr<<" ->muvjj event vetoed. Not enough mT: " << mT<<'\n'; 00507 vetoEvent; 00508 } 00509 ++mTonelept; 00510 //else { 00511 ++muvjj; 00512 //cerr<< " ->MUVJJ event selected." << '\n'; 00513 _hist_MLQ_muv->fill(M_LQ, weight); 00514 _count_muvjj->fill(0.5, weight); 00515 00516 //} 00517 } 00518 00519 // evjj channel 00520 else if ( cand_e.size() == 1 ) { 00521 00522 if (M_LQ<=180*GeV) { 00523 //cerr<<" ->evjj event vetoed. Not enough M_LQ: " << M_LQ<< '\n'; 00524 vetoEvent; 00525 } 00526 ++MLQev; 00527 if (Mt_LQ<=180*GeV) { 00528 //cerr<<" ->evjj event vetoed. Not enough Mt_LQ: " << Mt_LQ<< '\n'; 00529 vetoEvent; 00530 } 00531 ++MtLQev; 00532 if (St_v<=410*GeV) { 00533 //cerr<<" ->evjj event vetoed. Not enough St_v: " << St_v<< '\n'; 00534 vetoEvent; 00535 } 00536 ++Stvev; 00537 if (mT<=200*GeV) { 00538 //cerr<<" ->evjj event vetoed. Not enough mT: " << mT<<'\n'; 00539 vetoEvent; 00540 } 00541 ++mTev; 00542 //else { 00543 ++evjj; 00544 //cerr<< " ->EVJJ event selected." << '\n'; 00545 _hist_MLQ_ev->fill(M_LQ, weight); 00546 _count_evjj->fill(0.5, weight); 00547 00548 00549 00550 // if ( mT <= 200*GeV || 00551 // M_LQ <= 180*GeV || 00552 // Mt_LQ <= 180*GeV || 00553 // St_v <= 410*GeV ) { 00554 // cerr<<" ->evjj event vetoed. Doesn't pass table 4 cuts." << '\n'; 00555 // vetoEvent; 00556 // } 00557 // else { 00558 // ++evjj; 00559 // cerr<< " ->EVJJ event selected." << '\n'; 00560 // _hist_MLQ_ev->fill(M_LQ, weight); 00561 // _count_evjj->fill(0.5, weight); 00562 00563 // } 00564 00565 00566 } 00567 00568 00569 } 00570 00571 //@} 00572 00573 00574 void finalize() { 00575 // cerr << '\n' << "Of " << count << " events, saw " 00576 // << vetoe << " (after veto region cut), " 00577 // << Njetscut << " (after 2jet req). " 00578 // << '\n' 00579 // << "For " << dilept << " dilept events: " 00580 // << candmumujj << " cand mumujj events, " 00581 // << candeejj << " cand eejj events." 00582 // << '\n' 00583 // << "For " << onelept << " onelept events: " 00584 // << candmvjj << " preselected mvjj events, " 00585 // << candevjj << " preselected evjj events; " 00586 // << eTmisscut << " (eTmiss req); " 00587 // << emuvjj << " leftover; " 00588 // << MLQonelept << " (muvjj M_LQ cut), " 00589 // << MtLQonelept << " (muvjj Mt_LQ cut), " 00590 // << Stvonelept << " (muvjj St_v cut), " 00591 // << mTonelept << " (muvjj mT cut); " 00592 // << MLQev << " (evjj M_LQ cut), " 00593 // << MtLQev << " (evjj Mt_LQ cut), " 00594 // << Stvev << " (evjj St_v cut), " 00595 // << mTev << " (evjj mT cut). " 00596 // << '\n'<<'\n' 00597 // ; 00598 00599 // cerr << "CR - " << "mumu Z: " << mumuZCR << " ee Z: " << eeZCR << " munu W+2jets: " << munuW2CR << " munu tt: " << munuttCR << " enu W+2jets: " << enuW2CR << " enu tt: " << enuttCR << '\n'; 00600 00601 // cerr << "mumujj: " << mumujj << " eejj: " << eejj << " muvjj: " << muvjj << " evjj: " << evjj << '\n'; 00602 00603 00604 scale( _hist_St_ee, 120. * 35. * crossSection()/sumOfWeights() ); 00605 scale( _hist_St_mumu, 120. * 35. * crossSection()/sumOfWeights() ); 00606 scale( _hist_MLQ_muv, 50. * 35. * crossSection()/sumOfWeights() ); 00607 scale( _hist_MLQ_ev, 50. * 35. * crossSection()/sumOfWeights() ); 00608 00609 00610 00611 scale( _hist_St_mumu_ZCR, 20. * 35. * crossSection()/sumOfWeights() ); 00612 scale( _hist_St_ee_ZCR, 20. * 35. * crossSection()/sumOfWeights() ); 00613 scale( _hist_MLQ_munu_W2CR, 20. * 35. * crossSection()/sumOfWeights() ); 00614 scale( _hist_MLQ_enu_W2CR, 20. * 35. * crossSection()/sumOfWeights() ); 00615 scale( _hist_MLQ_munu_ttCR, 20. * 35. * crossSection()/sumOfWeights() ); 00616 scale( _hist_MLQ_enu_ttCR, 20. * 35. * crossSection()/sumOfWeights() ); 00617 00618 /* 00619 scale( _hist_eTmiss_mu, binwidth*luminosity* crossSection()/sumOfWeights() ); 00620 */ 00621 00622 } 00623 00624 private: 00625 00626 /// @name Histograms 00627 //@{ 00628 Histo1DPtr _count_mumujj; 00629 Histo1DPtr _count_eejj; 00630 Histo1DPtr _count_muvjj; 00631 Histo1DPtr _count_evjj; 00632 00633 Histo1DPtr _hist_St_mumu; 00634 Histo1DPtr _hist_St_ee; 00635 Histo1DPtr _hist_MLQ_muv; 00636 Histo1DPtr _hist_MLQ_ev; 00637 00638 Histo1DPtr _hist_St_mumu_ZCR; 00639 Histo1DPtr _hist_St_ee_ZCR; 00640 Histo1DPtr _hist_MLQ_munu_W2CR; 00641 Histo1DPtr _hist_MLQ_enu_W2CR; 00642 Histo1DPtr _hist_MLQ_munu_ttCR; 00643 Histo1DPtr _hist_MLQ_enu_ttCR; 00644 00645 00646 00647 00648 //@} 00649 00650 00651 // DEBUG VARIABLES 00652 int count; 00653 int vetoe; 00654 int Njetscut; 00655 int dilept; 00656 int candmumujj; 00657 int candeejj; 00658 int onelept; 00659 int eTmisscut; 00660 int candmvjj; 00661 int candevjj; 00662 int mumujj; 00663 int eejj; 00664 int mTonelept; 00665 int MLQonelept; 00666 int MtLQonelept; 00667 int Stvonelept; 00668 int mTev; 00669 int MLQev; 00670 int MtLQev; 00671 int Stvev; 00672 int muvjj; 00673 int evjj; 00674 int emuvjj; 00675 int cande; 00676 int candmu; 00677 int tmpe; 00678 int tmpmu; 00679 int mumuZCR; 00680 int eeZCR; 00681 int munuW2CR; 00682 int munuttCR; 00683 int enuW2CR; 00684 int enuttCR; 00685 00686 }; 00687 00688 00689 00690 // The hook for the plugin system 00691 DECLARE_RIVET_PLUGIN(ATLAS_2011_S9041966); 00692 00693 } Generated on Fri Dec 21 2012 15:03:38 for The Rivet MC analysis system by ![]() |