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