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