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