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