ATLAS_2011_S9041966 Class Reference
Detailed Description1-lepton and 2-lepton search for first or second generation leptoquarks
Definition at line 16 of file ATLAS_2011_S9041966.cc. Constructor & Destructor Documentation
Constructor. Definition at line 23 of file ATLAS_2011_S9041966.cc. : Analysis("ATLAS_2011_S9041966"), // DEBUG count(0), vetoe(0), Njetscut(0), //dilept(0), candmumujj(0), candeejj(0), //onelept(0), eTmisscut(0), candmvjj(0), candevjj(0), mumujj(0), eejj(0), mTonelept(0), MLQonelept(0), MtLQonelept(0), Stvonelept(0), mTev(0), MLQev(0), MtLQev(0), Stvev(0), muvjj(0), evjj(0), emuvjj(0), cande(0), candmu(0), tmpe(0), tmpmu(0), mumuZCR(0), eeZCR(0), munuW2CR(0), munuttCR(0), enuW2CR(0), enuttCR(0) { } Member Function Documentation
Non-templated version of string-based applyProjection, to work around header dependency issue. Definition at line 22 of file ProjectionApplier.cc. { return evt.applyProjection(getProjection(name)); }
Non-templated version of proj-based applyProjection, to work around header dependency issue. Definition at line 28 of file ProjectionApplier.cc. {
return evt.applyProjection(proj);
}
Untemplated function to do the work... Definition at line 34 of file ProjectionApplier.cc. { if (!_allowProjReg) { cerr << "Trying to register projection '" << proj.name() << "' before init phase in '" << this->name() << "'." << endl; exit(2); } const Projection& reg = getProjHandler().registerProjection(*this, proj, name); return reg; }
Register a data object in the histogram system.
Definition at line 795 of file Analysis.cc. { _analysisobjects.push_back(ao); }
Register a contained projection (user-facing version)
Definition at line 157 of file ProjectionApplier.hh. { return declareProjection(proj, name); }
List of registered analysis data objects. Definition at line 811 of file Analysis.hh. { return _analysisobjects; } Perform the per-event analysis. DEBUG Implements Analysis. Definition at line 109 of file ATLAS_2011_S9041966.cc. { const double weight = event.weight(); ///DEBUG count +=1; //cerr<< "Event " << count << '\n'; // debug Particles veto_e = apply<IdentifiedFinalState>(event, "veto_elecs").particles(); if ( ! veto_e.empty() ) { MSG_DEBUG("electrons in veto region"); vetoEvent; } ++vetoe; Jets cand_jets = apply<FastJets>(event, "AntiKtJets04").jetsByPt(Cuts::pT > 20*GeV && Cuts::abseta < 2.8); Particles candtemp_e = apply<IdentifiedFinalState>(event, "elecs").particlesByPt(); Particles candtemp_mu = apply<IdentifiedFinalState>(event,"muons").particlesByPt(); Particles cand_mu; Particles cand_e; Particles vfs_particles = apply<VisibleFinalState>(event, "vfs").particles(); // pTcone around muon track foreach ( const Particle & mu, candtemp_mu ) { ++tmpmu; double pTinCone = -mu.pT(); foreach ( const Particle & track, vfs_particles ) { if ( deltaR(mu.momentum(),track.momentum()) < 0.2 ) pTinCone += track.pT(); } if ( pTinCone/mu.pT() < 0.25 ) ++candmu; cand_mu.push_back(mu); } // pTcone around electron foreach ( const Particle e, candtemp_e ) { ++tmpe; double pTinCone = -e.pT(); foreach ( const Particle & track, vfs_particles ) { if ( deltaR(e.momentum(),track.momentum()) < 0.2 ) pTinCone += track.pT(); } if ( pTinCone/e.pT() < 0.2 ) ++cande; cand_e.push_back(e); } if ( cand_e.empty() && cand_mu.empty() ) { //cerr<<" ->Event vetoed. No candidate lept"<<'\n'; vetoEvent; } //DEBUG // else{ // foreach (const Particle & mu, cand_mu) { // cerr << "cand mu: " << "Id " << mu.pid() << " eta " << mu.eta() << " pT " << mu.pT() << '\n'; // } // foreach (const Particle & lepton, cand_e) { // cerr << "cand e: " << "Id " << lepton.pid() << " eta " << lepton.eta() << " pT " << lepton.pT() << '\n'; // }} // debug // pTmiss FourMomentum pTmiss; foreach ( const Particle & p, vfs_particles ) { pTmiss -= p.momentum(); } double eTmiss = pTmiss.pT(); // discard jets that overlap with leptons Jets recon_jets; foreach ( const Jet& jet, cand_jets ) { bool away_from_lept = true; foreach ( const Particle e, cand_e ) { if ( deltaR(e.momentum(),jet.momentum()) <= 0.5 ) { away_from_lept = false; break; } } foreach ( const Particle & mu, cand_mu ) { if ( deltaR(mu.momentum(),jet.momentum()) <= 0.5 ) { away_from_lept = false; break; } } if ( away_from_lept ) recon_jets.push_back( jet ); } //DEBUG // cerr << " Num of recon jets: " << recon_jets.size() << '\n'; // cerr << " Num of cand e: " << cand_e.size() << '\n'; // cerr << " Num of cand mu: " << cand_mu.size() << '\n'; //debug // ================ OBSERVABLES ================ // At least 2 hard jets if ( recon_jets.size() < 2 ) { //cerr << " ->Event vetoed. Not enough hard jets." << '\n'; vetoEvent; } ++Njetscut; // Initialize variables for observables double M_ll=0., M_LQ=0., St_ll=0., Mt_LQ=0., St_v=0., mT=0.; FourMomentum p_l, p_l1, p_l2, p_j[2]; p_j[0] = recon_jets[0].momentum(); p_j[1] = recon_jets[1].momentum(); Particles dilept_pair; bool single_lept = false; if ( cand_mu.size() == 2 && cand_e.empty() ) { ++candmumujj; foreach ( const Particle& mu, cand_mu ) dilept_pair.push_back(mu); } else if ( cand_e.size() == 2 && cand_mu.empty() ) { ++candeejj; foreach ( const Particle& e, cand_e ) dilept_pair.push_back(e); } else if ( cand_mu.size() == 1 && cand_e.empty() ) { ++candmvjj; p_l = cand_mu[0].momentum(); single_lept = true; } else if ( cand_e.size() == 1 && cand_mu.empty() ) { ++candevjj; p_l = cand_e[0].momentum(); single_lept = true; } // Dilepton channel observables if ( ! dilept_pair.empty() ) { double E_l1, E_l2, E_j1, E_j2; double tmpM_LQ1[2], tmpM_LQ2[2], M_LQDiff1, M_LQDiff2; p_l1 = dilept_pair[0].momentum(); p_l2 = dilept_pair[1].momentum(); E_l1 = p_l1.E(); E_l2 = p_l2.E(); E_j1 = p_j[0].E(); E_j2 = p_j[1].E(); // Calculate possible leptoquark mass M_LQ and reconstruct average M_LQ tmpM_LQ1[0] = E_l1 + E_j1; tmpM_LQ1[1] = E_l2 + E_j2; M_LQDiff1 = abs( tmpM_LQ1[0] - tmpM_LQ1[1] ); tmpM_LQ2[0] = E_l1 + E_j2; tmpM_LQ2[1] = E_l2 + E_j1; M_LQDiff2 = abs( tmpM_LQ2[0] - tmpM_LQ2[1] ); if ( M_LQDiff1 > M_LQDiff2 ) M_LQ = ( tmpM_LQ2[0] + tmpM_LQ2[1] ) / 2; else M_LQ = ( tmpM_LQ1[0] + tmpM_LQ1[1] ) / 2; // Calculate event transverse energy St St_ll = p_l1.pT() + p_l2.pT() + p_j[0].pT() + p_j[1].pT(); // Dilept pair invariant mass M_ll M_ll = E_l1 + E_l2; } // 1-lepton channel observables else if ( single_lept ) { double tmpM_LQ[2], tmpMt_LQ[2], dPhi_j[2], M_LQDiff1, M_LQDiff2; // List of possible M_LQ, Mt_LQ pairings for ( int i = 0; i < 2; ++i ) { tmpM_LQ[i] = p_l.E() + p_j[i].E(); dPhi_j[1-i] = deltaPhi( p_j[1-i].phi(), pTmiss.phi() ); tmpMt_LQ[i] = sqrt( 2 * p_j[1-i].pT() * eTmiss * (1 - cos( dPhi_j[1-i] )) ); } // Choose pairing that gives smallest absolute difference M_LQDiff1 = abs( tmpM_LQ[0] - tmpMt_LQ[0] ); M_LQDiff2 = abs( tmpM_LQ[1] - tmpMt_LQ[1] ); if ( M_LQDiff1 > M_LQDiff2 ) { M_LQ = tmpM_LQ[1]; Mt_LQ = tmpMt_LQ[1]; } else { M_LQ = tmpM_LQ[0]; Mt_LQ = tmpMt_LQ[0]; } // Event transverse energy St_v = p_l.pT() + eTmiss + p_j[0].pT() + p_j[1].pT(); // Transverse mass mT double dPhi_l = deltaPhi( p_l.phi(), pTmiss.phi()); mT = sqrt( 2 * p_l.pT() * eTmiss * (1 - cos(dPhi_l)) ); } // ============== CONTROL REGIONS =============== // mumujj, Z control region if ( cand_mu.size() == 2 ) { if ( M_ll >= 81*GeV && M_ll <= 101*GeV ) { ++mumuZCR; _hist_St_mumu_ZCR->fill(St_ll, weight); } } // eejj, Z control region else if ( cand_e.size() == 2 ) { if ( M_ll >= 81*GeV && M_ll <= 101*GeV ) { ++eeZCR; _hist_St_ee_ZCR->fill(St_ll, weight); } } if ( cand_mu.size() == 1 ) { // munujj, W+2jets control region if ( recon_jets.size() == 2 && mT >= 40*GeV && mT <= 150*GeV ) { ++munuW2CR; _hist_MLQ_munu_W2CR->fill(M_LQ, weight); } // munujj, tt control region if ( recon_jets.size() >= 4 && recon_jets[0].pT() > 50*GeV && recon_jets[1].pT() > 40*GeV && recon_jets[2].pT() > 30*GeV ) { ++munuttCR; _hist_MLQ_munu_ttCR->fill(M_LQ, weight); } } if ( cand_e.size() == 1 ) { // enujj, W+2jets control region if ( recon_jets.size() == 2 && mT >= 40*GeV && mT <= 150*GeV ) { ++enuW2CR; _hist_MLQ_enu_W2CR->fill(M_LQ, weight); } // enujj, tt control region if ( recon_jets.size() >= 4 && recon_jets[0].pT() > 50*GeV && recon_jets[1].pT() > 40*GeV && recon_jets[2].pT() > 30*GeV ) { ++enuttCR; _hist_MLQ_enu_ttCR->fill(M_LQ, weight); } } // ========= PRESELECTION ======================= // Single lepton channel cuts if ( single_lept ) { if ( eTmiss <= 25*GeV ) { //cerr << " ->Event vetoed. eTmiss=" << eTmiss << '\n'; vetoEvent; } ++eTmisscut; if ( mT <= 40*GeV ) vetoEvent; //++mTcut; // enujj channel if ( cand_e.size() == 1 && cand_mu.empty() ) { // Triangle cut double dPhi_jet1 = deltaPhi( recon_jets[0].phi(), pTmiss.phi() ); double dPhi_jet2 = deltaPhi( recon_jets[1].phi(), pTmiss.phi() ); if ( dPhi_jet1 <= 1.5 * (1 - eTmiss/45) || dPhi_jet2 <= 1.5 * (1 - eTmiss/45) ) { ++emuvjj; vetoEvent; } } } // ==================== FILL ==================== // mumujj channel if ( cand_mu.size() == 2 ) { if ( M_ll <= 120*GeV || M_LQ <= 150*GeV || p_l1.pT() <= 30*GeV || p_l2.pT() <= 30*GeV || p_j[0].pT() <= 30*GeV || p_j[1].pT() <= 30*GeV || St_ll <= 450*GeV ) { //cerr<<" ->Dilept event vetoed. Table 4 cuts." << '\n'; vetoEvent; } else { ++mumujj; // cerr<< " ->MUMUJJ event selected." << '\n'; _hist_St_mumu->fill(St_ll, weight); _count_mumujj->fill(0.5, weight); } } // eejj channel else if ( cand_e.size() == 2 ) { if ( M_ll <= 120*GeV || M_LQ <= 150*GeV || p_l1.pT() <= 30*GeV || p_l2.pT() <= 30*GeV || p_j[0].pT() <= 30*GeV || p_j[1].pT() <= 30*GeV || St_ll <= 450*GeV ) { //cerr<<" ->Dilept event vetoed. Table 4 cuts." << '\n'; vetoEvent; } else { ++eejj; //cerr<< " ->EEJJ event selected." << '\n'; _hist_St_ee->fill(St_ll, weight); _count_eejj->fill(0.5, weight); } } // muvjj channel else if ( cand_mu.size() == 1 ) { if (M_LQ<=150*GeV) { //cerr<<" ->muvjj event vetoed. Not enough M_LQ: " << M_LQ<< '\n'; vetoEvent; } ++MLQonelept; if (Mt_LQ<=150*GeV) { //cerr<<" ->muvjj event vetoed. Not enough Mt_LQ: " << Mt_LQ<< '\n'; vetoEvent; } ++MtLQonelept; if (St_v<=400*GeV) { //cerr<<" ->muvjj event vetoed. Not enough St_v: " << St_v<< '\n'; vetoEvent; } ++Stvonelept; if (mT<=160*GeV) { //cerr<<" ->muvjj event vetoed. Not enough mT: " << mT<<'\n'; vetoEvent; } ++mTonelept; //else { ++muvjj; //cerr<< " ->MUVJJ event selected." << '\n'; _hist_MLQ_muv->fill(M_LQ, weight); _count_muvjj->fill(0.5, weight); //} } // evjj channel else if ( cand_e.size() == 1 ) { if (M_LQ<=180*GeV) { //cerr<<" ->evjj event vetoed. Not enough M_LQ: " << M_LQ<< '\n'; vetoEvent; } ++MLQev; if (Mt_LQ<=180*GeV) { //cerr<<" ->evjj event vetoed. Not enough Mt_LQ: " << Mt_LQ<< '\n'; vetoEvent; } ++MtLQev; if (St_v<=410*GeV) { //cerr<<" ->evjj event vetoed. Not enough St_v: " << St_v<< '\n'; vetoEvent; } ++Stvev; if (mT<=200*GeV) { //cerr<<" ->evjj event vetoed. Not enough mT: " << mT<<'\n'; vetoEvent; } ++mTev; //else { ++evjj; //cerr<< " ->EVJJ event selected." << '\n'; _hist_MLQ_ev->fill(M_LQ, weight); _count_evjj->fill(0.5, weight); // if ( mT <= 200*GeV || // M_LQ <= 180*GeV || // Mt_LQ <= 180*GeV || // St_v <= 410*GeV ) { // cerr<<" ->evjj event vetoed. Doesn't pass table 4 cuts." << '\n'; // vetoEvent; // } // else { // ++evjj; // cerr<< " ->EVJJ event selected." << '\n'; // _hist_MLQ_ev->fill(M_LQ, weight); // _count_evjj->fill(0.5, weight); // } } }
Apply the supplied projection on event evt (user-facing alias).
Definition at line 80 of file ProjectionApplier.hh. { return applyProjection<PROJ>(evt, proj); }
Apply the supplied projection on event evt (user-facing alias).
Definition at line 92 of file ProjectionApplier.hh. { return applyProjection<PROJ>(evt, proj); }
Apply the supplied projection on event evt (user-facing alias).
Definition at line 104 of file ProjectionApplier.hh. { return applyProjection<PROJ>(evt, name); }
Apply the supplied projection on event evt.
Definition at line 74 of file ProjectionApplier.hh. { return pcast<PROJ>(_applyProjection(evt, proj)); }
Apply the supplied projection on event evt.
Definition at line 86 of file ProjectionApplier.hh. { return pcast<PROJ>(_applyProjection(evt, proj)); }
Apply the named projection on event evt.
Definition at line 98 of file ProjectionApplier.hh. { return pcast<PROJ>(_applyProjection(evt, name)); }
Helper for histogram asymmetry calculation.
Definition at line 674 of file Analysis.cc. { const string path = s->path(); *s = YODA::asymm(*h1, *h2); s->setPath(path); }
Helper for histogram asymmetry calculation.
Names & emails of paper/analysis authors. Names and email of authors in 'NAME <EMAIL>' format. The first name in the list should be the primary contact person. Definition at line 133 of file Analysis.hh. Incoming beam IDs for this run. Definition at line 33 of file Analysis.cc.
Incoming beams for this run. Definition at line 29 of file Analysis.cc.
BibTeX citation key for this article. Definition at line 186 of file Analysis.hh.
BibTeX citation entry for this article. Definition at line 191 of file Analysis.hh.
Book a counter. Definition at line 196 of file Analysis.cc. { // const string& xtitle, // const string& ytitle) { const string path = histoPath(cname); CounterPtr ctr = make_shared<Counter>(path, title); addAnalysisObject(ctr); MSG_TRACE("Made counter " << cname << " for " << name()); // hist->setAnnotation("XLabel", xtitle); // hist->setAnnotation("YLabel", ytitle); return ctr; }
Book a counter, using a path generated from the dataset and axis ID codes The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way. Definition at line 210 of file Analysis.cc. { // const string& xtitle, // const string& ytitle) { const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId); return bookCounter(axisCode, title); }
Book a 1D histogram with nbins uniformly distributed across the range lower - upper . Definition at line 219 of file Analysis.cc. { const string path = histoPath(hname); Histo1DPtr hist = make_shared<Histo1D>(nbins, lower, upper, path, title); addAnalysisObject(hist); MSG_TRACE("Made histogram " << hname << " for " << name()); hist->setAnnotation("XLabel", xtitle); hist->setAnnotation("YLabel", ytitle); return hist; }
Book a 1D histogram with non-uniform bins defined by the vector of bin edges binedges . Definition at line 234 of file Analysis.cc. { const string path = histoPath(hname); Histo1DPtr hist = make_shared<Histo1D>(binedges, path, title); addAnalysisObject(hist); MSG_TRACE("Made histogram " << hname << " for " << name()); hist->setAnnotation("XLabel", xtitle); hist->setAnnotation("YLabel", ytitle); return hist; }
Book a 1D histogram with binning from a reference scatter. Definition at line 249 of file Analysis.cc. { const string path = histoPath(hname); Histo1DPtr hist = make_shared<Histo1D>(refscatter, path); addAnalysisObject(hist); MSG_TRACE("Made histogram " << hname << " for " << name()); hist->setTitle(title); hist->setAnnotation("XLabel", xtitle); hist->setAnnotation("YLabel", ytitle); return hist; }
Book a 1D histogram, using the binnings in the reference data histogram. Definition at line 265 of file Analysis.cc. { const Scatter2D& refdata = refData(hname); return bookHisto1D(hname, refdata, title, xtitle, ytitle); }
Book a 1D histogram, using the binnings in the reference data histogram. The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way. Definition at line 274 of file Analysis.cc. { const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId); return bookHisto1D(axisCode, title, xtitle, ytitle); }
Book a 2D histogram with nxbins and nybins uniformly distributed across the ranges xlower - xupper and ylower - yupper respectively along the x- and y-axis.
Definition at line 289 of file Analysis.cc. { const string path = histoPath(hname); Histo2DPtr hist = make_shared<Histo2D>(nxbins, xlower, xupper, nybins, ylower, yupper, path, title); addAnalysisObject(hist); MSG_TRACE("Made 2D histogram " << hname << " for " << name()); hist->setAnnotation("XLabel", xtitle); hist->setAnnotation("YLabel", ytitle); hist->setAnnotation("ZLabel", ztitle); return hist; }
Book a 2D histogram with non-uniform bins defined by the vectorx of bin edges xbinedges and ybinedges. Definition at line 308 of file Analysis.cc. { const string path = histoPath(hname); Histo2DPtr hist = make_shared<Histo2D>(xbinedges, ybinedges, path, title); addAnalysisObject(hist); MSG_TRACE("Made 2D histogram " << hname << " for " << name()); hist->setAnnotation("XLabel", xtitle); hist->setAnnotation("YLabel", ytitle); hist->setAnnotation("ZLabel", ztitle); return hist; }
Book a 1D profile histogram with nbins uniformly distributed across the range lower - upper . Definition at line 368 of file Analysis.cc. { const string path = histoPath(hname); Profile1DPtr prof = make_shared<Profile1D>(nbins, lower, upper, path, title); addAnalysisObject(prof); MSG_TRACE("Made profile histogram " << hname << " for " << name()); prof->setAnnotation("XLabel", xtitle); prof->setAnnotation("YLabel", ytitle); return prof; }
Book a 1D profile histogram with non-uniform bins defined by the vector of bin edges binedges . Definition at line 383 of file Analysis.cc. { const string path = histoPath(hname); Profile1DPtr prof = make_shared<Profile1D>(binedges, path, title); addAnalysisObject(prof); MSG_TRACE("Made profile histogram " << hname << " for " << name()); prof->setAnnotation("XLabel", xtitle); prof->setAnnotation("YLabel", ytitle); return prof; }
Book a 1D profile histogram with binning from a reference scatter. Definition at line 398 of file Analysis.cc. { const string path = histoPath(hname); Profile1DPtr prof = make_shared<Profile1D>(refscatter, path); addAnalysisObject(prof); MSG_TRACE("Made profile histogram " << hname << " for " << name()); prof->setTitle(title); prof->setAnnotation("XLabel", xtitle); prof->setAnnotation("YLabel", ytitle); return prof; }
Book a 1D profile histogram, using the binnings in the reference data histogram. Definition at line 414 of file Analysis.cc. { const Scatter2D& refdata = refData(hname); return bookProfile1D(hname, refdata, title, xtitle, ytitle); }
Book a 1D profile histogram, using the binnings in the reference data histogram. The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way. Definition at line 423 of file Analysis.cc. { const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId); return bookProfile1D(axisCode, title, xtitle, ytitle); }
Book a 2D profile histogram with nxbins and nybins uniformly distributed across the ranges xlower - xupper and ylower - yupper respectively along the x- and y-axis. Definition at line 436 of file Analysis.cc. { const string path = histoPath(hname); Profile2DPtr prof = make_shared<Profile2D>(nxbins, xlower, xupper, nybins, ylower, yupper, path, title); addAnalysisObject(prof); MSG_TRACE("Made 2D profile histogram " << hname << " for " << name()); prof->setAnnotation("XLabel", xtitle); prof->setAnnotation("YLabel", ytitle); prof->setAnnotation("ZLabel", ztitle); return prof; }
Book a 2D profile histogram with non-uniform bins defined by the vectorx of bin edges xbinedges and ybinedges. Definition at line 455 of file Analysis.cc. { const string path = histoPath(hname); Profile2DPtr prof = make_shared<Profile2D>(xbinedges, ybinedges, path, title); addAnalysisObject(prof); MSG_TRACE("Made 2D profile histogram " << hname << " for " << name()); prof->setAnnotation("XLabel", xtitle); prof->setAnnotation("YLabel", ytitle); prof->setAnnotation("ZLabel", ztitle); return prof; }
Book a 2-dimensional data point set with the given name.
Definition at line 525 of file Analysis.cc. { Scatter2DPtr s; const string path = histoPath(hname); if (copy_pts) { const Scatter2D& refdata = refData(hname); s = make_shared<Scatter2D>(refdata, path); foreach (Point2D& p, s->points()) p.setY(0, 0); } else { s = make_shared<Scatter2D>(path); } addAnalysisObject(s); MSG_TRACE("Made scatter " << hname << " for " << name()); s->setTitle(title); s->setAnnotation("XLabel", xtitle); s->setAnnotation("YLabel", ytitle); return s; }
Book a 2-dimensional data point set, using the binnings in the reference data histogram. The paper, dataset and x/y-axis IDs will be used to build the histo name in the HepData standard way.
Definition at line 515 of file Analysis.cc. { const string axisCode = makeAxisCode(datasetId, xAxisId, yAxisId); return bookScatter2D(axisCode, copy_pts, title, xtitle, ytitle); }
Book a 2-dimensional data point set with equally spaced x-points in a range. The y values and errors will be set to 0. Definition at line 548 of file Analysis.cc. { const string path = histoPath(hname); Scatter2DPtr s = make_shared<Scatter2D>(path); const double binwidth = (upper-lower)/npts; for (size_t pt = 0; pt < npts; ++pt) { const double bincentre = lower + (pt + 0.5) * binwidth; s->addPoint(bincentre, 0, binwidth/2.0, 0); } addAnalysisObject(s); MSG_TRACE("Made scatter " << hname << " for " << name()); s->setTitle(title); s->setAnnotation("XLabel", xtitle); s->setAnnotation("YLabel", ytitle); return s; }
Book a 2-dimensional data point set based on provided contiguous "bin edges". The y values and errors will be set to 0. Definition at line 569 of file Analysis.cc. { const string path = histoPath(hname); Scatter2DPtr s = make_shared<Scatter2D>(path); for (size_t pt = 0; pt < binedges.size()-1; ++pt) { const double bincentre = (binedges[pt] + binedges[pt+1]) / 2.0; const double binwidth = binedges[pt+1] - binedges[pt]; s->addPoint(bincentre, 0, binwidth/2.0, 0); } addAnalysisObject(s); MSG_TRACE("Made scatter " << hname << " for " << name()); s->setTitle(title); s->setAnnotation("XLabel", xtitle); s->setAnnotation("YLabel", ytitle); return s; }
Collider on which the experiment ran. Definition at line 171 of file Analysis.hh.
Get the process cross-section in pb. Throws if this hasn't been set. Definition at line 151 of file Analysis.cc. { if (!_gotCrossSection || std::isnan(_crossSection)) { string errMsg = "You did not set the cross section for the analysis " + name(); throw Error(errMsg); } return _crossSection; }
Get the process cross-section per generated event in pb. Throws if this hasn't been set. Definition at line 159 of file Analysis.cc. { const double sumW = sumOfWeights(); assert(sumW != 0.0); return _crossSection / sumW; }
Register a contained projection (user-facing version)
Definition at line 151 of file ProjectionApplier.hh. { return declareProjection(proj, name); }
Register a contained projection. The type of the argument is used to instantiate a new projection internally: this new object is applied to events rather than the argument object. Hence you are advised to only use locally-scoped Projection objects in your Projection and Analysis constructors, and to avoid polymorphism (e.g. handling
Definition at line 142 of file ProjectionApplier.hh. { const Projection& reg = _declareProjection(proj, name); const PROJ& rtn = dynamic_cast<const PROJ&>(reg); return rtn; }
Get a full description of the analysis. Full textual description of this analysis, what it is useful for, what experimental techniques are applied, etc. Should be treated as a chunk of restructuredText (http://docutils.sourceforge.net/rst.html), with equations to be rendered as LaTeX with amsmath operators. Definition at line 152 of file Analysis.hh. { return info().description(); }
Helper for counter division.
Definition at line 593 of file Analysis.cc.
Helper for histogram division with raw YODA objects.
Helper for histogram division.
Definition at line 606 of file Analysis.cc.
Helper for histogram division with raw YODA objects.
Helper for profile histogram division.
Definition at line 619 of file Analysis.cc.
Helper for profile histogram division with raw YODA objects.
Helper for 2D histogram division.
Definition at line 632 of file Analysis.cc.
Helper for 2D histogram division with raw YODA objects.
Helper for 2D profile histogram division.
Definition at line 645 of file Analysis.cc.
Helper for 2D profile histogram division with raw YODA objects
Helper for histogram efficiency calculation.
Definition at line 661 of file Analysis.cc. { const string path = s->path(); *s = YODA::efficiency(*h1, *h2); s->setPath(path); }
Helper for histogram efficiency calculation.
Experiment which performed and published this analysis. Definition at line 166 of file Analysis.hh. { return info().experiment(); }
Finalize this analysis object. A concrete class should here make all necessary operations on the histograms. Writing the histograms to a file is, however, done by the Rivet class. An overridden function must make sure it first calls the base class function. Reimplemented from Analysis. Definition at line 545 of file ATLAS_2011_S9041966.cc. { // cerr << '\n' << "Of " << count << " events, saw " // << vetoe << " (after veto region cut), " // << Njetscut << " (after 2jet req). " // << '\n' // << "For " << dilept << " dilept events: " // << candmumujj << " cand mumujj events, " // << candeejj << " cand eejj events." // << '\n' // << "For " << onelept << " onelept events: " // << candmvjj << " preselected mvjj events, " // << candevjj << " preselected evjj events; " // << eTmisscut << " (eTmiss req); " // << emuvjj << " leftover; " // << MLQonelept << " (muvjj M_LQ cut), " // << MtLQonelept << " (muvjj Mt_LQ cut), " // << Stvonelept << " (muvjj St_v cut), " // << mTonelept << " (muvjj mT cut); " // << MLQev << " (evjj M_LQ cut), " // << MtLQev << " (evjj Mt_LQ cut), " // << Stvev << " (evjj St_v cut), " // << mTev << " (evjj mT cut). " // << '\n'<<'\n' // ; // cerr << "CR - " << "mumu Z: " << mumuZCR << " ee Z: " << eeZCR << " munu W+2jets: " << munuW2CR << " munu tt: " << munuttCR << " enu W+2jets: " << enuW2CR << " enu tt: " << enuttCR << '\n'; // cerr << "mumujj: " << mumujj << " eejj: " << eejj << " muvjj: " << muvjj << " evjj: " << evjj << '\n'; scale( _hist_St_ee, 120. * 35. * crossSection()/sumOfWeights() ); scale( _hist_St_mumu, 120. * 35. * crossSection()/sumOfWeights() ); scale( _hist_MLQ_muv, 50. * 35. * crossSection()/sumOfWeights() ); scale( _hist_MLQ_ev, 50. * 35. * crossSection()/sumOfWeights() ); scale( _hist_St_mumu_ZCR, 20. * 35. * crossSection()/sumOfWeights() ); scale( _hist_St_ee_ZCR, 20. * 35. * crossSection()/sumOfWeights() ); scale( _hist_MLQ_munu_W2CR, 20. * 35. * crossSection()/sumOfWeights() ); scale( _hist_MLQ_enu_W2CR, 20. * 35. * crossSection()/sumOfWeights() ); scale( _hist_MLQ_munu_ttCR, 20. * 35. * crossSection()/sumOfWeights() ); scale( _hist_MLQ_enu_ttCR, 20. * 35. * crossSection()/sumOfWeights() ); /* scale( _hist_eTmiss_mu, binwidth*luminosity* crossSection()/sumOfWeights() ); */ }
Get the named projection, specifying return type via a template argument (user-facing alias).
Definition at line 57 of file ProjectionApplier.hh. { return getProjection<PROJ>(name); }
Get a data object from the histogram system
Definition at line 828 of file Analysis.hh. { foreach (const AnalysisObjectPtr& ao, analysisObjects()) { if (ao->path() == histoPath(name)) return dynamic_pointer_cast<AO>(ao); } throw Exception("Data object " + histoPath(name) + " not found"); }
Get a data object from the histogram system (non-const)
Definition at line 839 of file Analysis.hh. { foreach (const AnalysisObjectPtr& ao, analysisObjects()) { if (ao->path() == histoPath(name)) return dynamic_pointer_cast<AO>(ao); } throw Exception("Data object " + histoPath(name) + " not found"); }
Get a named Histo1D object from the histogram system. Definition at line 854 of file Analysis.hh. { return getAnalysisObject<Histo1D>(name); }
Get a named Histo1D object from the histogram system (non-const) Definition at line 859 of file Analysis.hh. { return getAnalysisObject<Histo1D>(name); }
Get a Histo1D object from the histogram system by axis ID codes (non-const) Definition at line 864 of file Analysis.hh. { return getAnalysisObject<Histo1D>(makeAxisCode(datasetId, xAxisId, yAxisId)); }
Get a Histo1D object from the histogram system by axis ID codes (non-const) Definition at line 869 of file Analysis.hh. { return getAnalysisObject<Histo1D>(makeAxisCode(datasetId, xAxisId, yAxisId)); } Get a Log object based on the name() property of the calling analysis object. Reimplemented from ProjectionApplier. Definition at line 78 of file Analysis.cc. { string logname = "Rivet.Analysis." + name(); return Log::getLog(logname); }
Get a named Profile1D object from the histogram system. Definition at line 896 of file Analysis.hh. { return getAnalysisObject<Profile1D>(name); }
Get a named Profile1D object from the histogram system (non-const) Definition at line 901 of file Analysis.hh. { return getAnalysisObject<Profile1D>(name); }
Get a Profile1D object from the histogram system by axis ID codes (non-const) Definition at line 906 of file Analysis.hh. { return getAnalysisObject<Profile1D>(makeAxisCode(datasetId, xAxisId, yAxisId)); }
Get a Profile1D object from the histogram system by axis ID codes (non-const) Definition at line 911 of file Analysis.hh. { return getAnalysisObject<Profile1D>(makeAxisCode(datasetId, xAxisId, yAxisId)); }
Get the named projection, specifying return type via a template argument.
Definition at line 50 of file ProjectionApplier.hh. { const Projection& p = getProjHandler().getProjection(*this, name); return pcast<PROJ>(p); }
Get the named projection (non-templated, so returns as a reference to a Projection base class). Definition at line 61 of file ProjectionApplier.hh. { return getProjHandler().getProjection(*this, name); }
Get the contained projections, including recursion. Definition at line 43 of file ProjectionApplier.hh. { return getProjHandler().getChildProjections(*this, ProjectionHandler::DEEP); }
Get a reference to the ProjectionHandler for this thread. Definition at line 122 of file ProjectionApplier.hh. { return _projhandler; }
Get a named Scatter2D object from the histogram system. Definition at line 938 of file Analysis.hh. { return getAnalysisObject<Scatter2D>(name); }
Get a named Scatter2D object from the histogram system (non-const) Definition at line 943 of file Analysis.hh. { return getAnalysisObject<Scatter2D>(name); }
Get a Scatter2D object from the histogram system by axis ID codes (non-const) Definition at line 948 of file Analysis.hh. { return getAnalysisObject<Scatter2D>(makeAxisCode(datasetId, xAxisId, yAxisId)); }
Get a Scatter2D object from the histogram system by axis ID codes (non-const) Definition at line 953 of file Analysis.hh. { return getAnalysisObject<Scatter2D>(makeAxisCode(datasetId, xAxisId, yAxisId)); }
Access the controlling AnalysisHandler object. Definition at line 289 of file Analysis.hh. { return *_analysishandler; }
Get the canonical histogram "directory" path for this analysis.
Definition at line 38 of file Analysis.cc. { /// @todo Cache in a member variable string _histoDir; if (_histoDir.empty()) { _histoDir = "/" + name(); if (handler().runName().length() > 0) { _histoDir = "/" + handler().runName() + _histoDir; } replace_all(_histoDir, "//", "/"); //< iterates until none } return _histoDir; }
Get the canonical histogram path for the named histogram in this analysis. Definition at line 52 of file Analysis.cc. { const string path = histoDir() + "/" + hname; return path; }
Get the canonical histogram path for the numbered histogram in this analysis. Definition at line 58 of file Analysis.cc. { return histoDir() + "/" + makeAxisCode(datasetId, xAxisId, yAxisId); }
Get the actual AnalysisInfo object in which all this metadata is stored. Definition at line 105 of file Analysis.hh.
Get the actual AnalysisInfo object in which all this metadata is stored (non-const). Definition at line 247 of file Analysis.hh.
Book histograms and initialize projections before the run. DEBUG Book histograms Reimplemented from Analysis. Definition at line 49 of file ATLAS_2011_S9041966.cc. { // projection to find the electrons IdentifiedFinalState elecs(Cuts::abseta < 2.47 && Cuts::pT > 20*GeV); elecs.acceptIdPair(PID::ELECTRON); declare(elecs, "elecs"); // veto region electrons Cut vetocut = Cuts::absetaIn(1.35, 1.52); IdentifiedFinalState veto_elecs(vetocut && Cuts::pT > 10*GeV); veto_elecs.acceptIdPair(PID::ELECTRON); declare(veto_elecs, "veto_elecs"); ///DEBUG // projection to find all leptons IdentifiedFinalState all_mu_e; all_mu_e.acceptIdPair(PID::MUON); all_mu_e.acceptIdPair(PID::ELECTRON); declare(all_mu_e, "all_mu_e"); //debug // projection to find the muons IdentifiedFinalState muons(Cuts::abseta < 2.4 && Cuts::pT > 20*GeV); muons.acceptIdPair(PID::MUON); declare(muons, "muons"); // Jet finder VetoedFinalState vfs; vfs.addVetoPairDetail(PID::MUON, 20*GeV, 7000*GeV); vfs.addVetoPairDetail(PID::ELECTRON, 20*GeV, 7000*GeV); declare(FastJets(vfs, FastJets::ANTIKT, 0.4), "AntiKtJets04"); // all tracks (to do deltaR with leptons) declare(ChargedFinalState(Cuts::abseta < 3 && Cuts::pT > 0.5*GeV), "cfs"); // for pTmiss declare(VisibleFinalState(Cuts::abseta < 4.9), "vfs"); /// Book histograms _count_mumujj = bookHisto1D("count_2muons_dijet", 1, 0., 1.); _count_eejj = bookHisto1D("count_2elecs_dijet", 1, 0., 1.); _count_muvjj = bookHisto1D("count_muon_neutrino_dijet", 1, 0., 1.); _count_evjj = bookHisto1D("count_elec_neutrino_dijet", 1, 0., 1.); _hist_St_mumu = bookHisto1D("hist_mumujj_St", 10, 450., 1650.); _hist_St_ee = bookHisto1D("hist_eejj_St", 10, 450., 1650.); _hist_MLQ_muv = bookHisto1D("hist_munujj_MLQ", 9, 150., 600.); _hist_MLQ_ev = bookHisto1D("hist_enujj_MLQ", 9, 150., 600.); _hist_St_mumu_ZCR = bookHisto1D("CR_Zjets_St_mumu", 40, 0., 800.); _hist_St_ee_ZCR = bookHisto1D("CR_Zjets_Stee", 40, 0., 800.); _hist_MLQ_munu_W2CR = bookHisto1D("CR_W2jets_MLQ_munu", 20, 0., 400.); _hist_MLQ_enu_W2CR = bookHisto1D("CR_W2jets_MLQ_enu", 20, 0., 400.); _hist_MLQ_munu_ttCR = bookHisto1D("CR_tt_MLQ_munu", 35, 0., 700.); _hist_MLQ_enu_ttCR = bookHisto1D("CR_tt_MLQ_enu", 35, 0., 700.); }
Get the Inspire ID code for this analysis. Definition at line 120 of file Analysis.hh.
Helper for converting a differential histo to an integral one.
Definition at line 774 of file Analysis.cc.
Helper for converting a differential histo to an integral one.
Definition at line 781 of file Analysis.cc.
Check if analysis is compatible with the provided beam particle IDs and energies. Definition at line 97 of file Analysis.cc. { return isCompatible(beams.first.pid(), beams.second.pid(), beams.first.energy(), beams.second.energy()); }
Check if analysis is compatible with the provided beam particle IDs and energies. Definition at line 103 of file Analysis.cc. { PdgIdPair beams(beam1, beam2); pair<double,double> energies(e1, e2); return isCompatible(beams, energies); }
Check if analysis is compatible with the provided beam particle IDs and energies.
Get the internal histogram name for given d, x and y (cf. HepData) Definition at line 63 of file Analysis.cc. { stringstream axisCode; axisCode << "d"; if (datasetId < 10) axisCode << 0; axisCode << datasetId; axisCode << "-x"; if (xAxisId < 10) axisCode << 0; axisCode << xAxisId; axisCode << "-y"; if (yAxisId < 10) axisCode << 0; axisCode << yAxisId; return axisCode.str(); }
Mark object as owned by the _projhandler
Definition at line 111 of file ProjectionApplier.hh. { _owned = true; }
Get the name of the analysis. By default this is computed by combining the results of the experiment, year and Spires ID metadata methods and you should only override it if there's a good reason why those won't work. Implements ProjectionApplier. Definition at line 115 of file Analysis.hh. { return (info().name().empty()) ? _defaultname : info().name(); }
Return true if this analysis needs to know the process cross-section.
Definition at line 230 of file Analysis.hh. { return info().needsCrossSection(); }
Normalize the given histogram, histo, to area = norm. Definition at line 706 of file Analysis.cc. { if (!histo) { MSG_WARNING("Failed to normalize histo=NULL in analysis " << name() << " (norm=" << norm << ")"); return; } MSG_TRACE("Normalizing histo " << histo->path() << " to " << norm); try { histo->normalize(norm, includeoverflows); } catch (YODA::Exception& we) { MSG_WARNING("Could not normalize histo " << histo->path()); return; } }
Normalize the given histograms, histos, to area = norm.
Definition at line 662 of file Analysis.hh. { for (auto& h : histos) normalize(h, norm, includeoverflows); }
Definition at line 667 of file Analysis.hh. { for (auto& h : histos) normalize(h, norm, includeoverflows); }
Normalize the given histogram, histo, to area = norm. Definition at line 740 of file Analysis.cc. { if (!histo) { MSG_ERROR("Failed to normalize histo=NULL in analysis " << name() << " (norm=" << norm << ")"); return; } MSG_TRACE("Normalizing histo " << histo->path() << " to " << norm); try { histo->normalize(norm, includeoverflows); } catch (YODA::Exception& we) { MSG_WARNING("Could not normalize histo " << histo->path()); return; } }
Normalize the given histograms, histos, to area = norm.
Definition at line 693 of file Analysis.hh. { for (auto& h : histos) normalize(h, norm, includeoverflows); }
Definition at line 698 of file Analysis.hh. { for (auto& h : histos) normalize(h, norm, includeoverflows); }
Get the number of events seen (via the analysis handler). Use in the finalize phase only. Definition at line 84 of file Analysis.cc.
Get reference data for a named histo
Definition at line 179 of file Analysis.cc.
Get reference data for a numbered histo
Definition at line 190 of file Analysis.cc. { const string hname = makeAxisCode(datasetId, xAxisId, yAxisId); return refData(hname); }
Get reference data for a named histo
Definition at line 350 of file Analysis.hh.
Get reference data for a numbered histo
Definition at line 366 of file Analysis.hh. { const string hname = makeAxisCode(datasetId, xAxisId, yAxisId); return refData(hname); }
Journal, and preprint references. Definition at line 181 of file Analysis.hh. { return info().references(); }
Unregister a data object from the histogram system (by name) Definition at line 799 of file Analysis.cc. { for (vector<AnalysisObjectPtr>::iterator it = _analysisobjects.begin(); it != _analysisobjects.end(); ++it) { if ((*it)->path() == path) { _analysisobjects.erase(it); break; } } }
Unregister a data object from the histogram system (by pointer) Definition at line 808 of file Analysis.cc. { for (vector<AnalysisObjectPtr>::iterator it = _analysisobjects.begin(); it != _analysisobjects.end(); ++it) { if (*it == ao) { _analysisobjects.erase(it); break; } } }
Return the allowed pairs of incoming beams required by this analysis. Definition at line 207 of file Analysis.hh.
Sets of valid beam energy pairs, in GeV. Definition at line 218 of file Analysis.hh.
Information about the events needed as input for this analysis. Event types, energies, kinematic cuts, particles to be considered stable, etc. etc. Should be treated as a restructuredText bullet list (http://docutils.sourceforge.net/rst.html) Definition at line 161 of file Analysis.hh.
Multiplicatively scale the given counter, cnt, by factor factor. Definition at line 687 of file Analysis.cc. { if (!cnt) { MSG_WARNING("Failed to scale counter=NULL in analysis " << name() << " (scale=" << factor << ")"); return; } if (std::isnan(factor) || std::isinf(factor)) { MSG_WARNING("Failed to scale counter=" << cnt->path() << " in analysis: " << name() << " (invalid scale factor = " << factor << ")"); factor = 0; } MSG_TRACE("Scaling counter " << cnt->path() << " by factor " << factor); try { cnt->scaleW(factor); } catch (YODA::Exception& we) { MSG_WARNING("Could not scale counter " << cnt->path()); return; } }
Multiplicatively scale the given counters, cnts, by factor factor.
Definition at line 645 of file Analysis.hh. { for (auto& c : cnts) scale(c, factor); }
Definition at line 650 of file Analysis.hh. { // for (size_t i = 0; i < std::extent<decltype(cnts)>::value; ++i) scale(cnts[i], factor); for (auto& c : cnts) scale(c, factor); }
Multiplicatively scale the given histogram, histo, by factor factor. Definition at line 721 of file Analysis.cc. { if (!histo) { MSG_WARNING("Failed to scale histo=NULL in analysis " << name() << " (scale=" << factor << ")"); return; } if (std::isnan(factor) || std::isinf(factor)) { MSG_WARNING("Failed to scale histo=" << histo->path() << " in analysis: " << name() << " (invalid scale factor = " << factor << ")"); factor = 0; } MSG_TRACE("Scaling histo " << histo->path() << " by factor " << factor); try { histo->scaleW(factor); } catch (YODA::Exception& we) { MSG_WARNING("Could not scale histo " << histo->path()); return; } }
Multiplicatively scale the given histograms, histos, by factor factor.
Definition at line 677 of file Analysis.hh. { for (auto& h : histos) scale(h, factor); }
Multiplicatively scale the given histogram, histo, by factor factor. Definition at line 755 of file Analysis.cc. { if (!histo) { MSG_ERROR("Failed to scale histo=NULL in analysis " << name() << " (scale=" << factor << ")"); return; } if (std::isnan(factor) || std::isinf(factor)) { MSG_ERROR("Failed to scale histo=" << histo->path() << " in analysis: " << name() << " (invalid scale factor = " << factor << ")"); factor = 0; } MSG_TRACE("Scaling histo " << histo->path() << " by factor " << factor); try { histo->scaleW(factor); } catch (YODA::Exception& we) { MSG_WARNING("Could not scale histo " << histo->path()); return; } }
Multiplicatively scale the given histograms, histos, by factor factor.
Definition at line 708 of file Analysis.hh. { for (auto& h : histos) scale(h, factor); }
Set the cross section from the generator. Definition at line 145 of file Analysis.cc. { _crossSection = xs; _gotCrossSection = true; return *this; }
Declare whether this analysis needs to know the process cross-section from the generator.
Definition at line 235 of file Analysis.hh. { info().setNeedsCrossSection(needed); return *this; }
Declare the allowed pairs of incoming beams required by this analysis. Definition at line 211 of file Analysis.hh.
Declare the list of valid beam energy pairs, in GeV. Definition at line 222 of file Analysis.hh. { info().setEnergies(requiredEnergies); return *this; }
Get the SPIRES ID code for this analysis (~deprecated). Definition at line 125 of file Analysis.hh.
Centre of mass energy for this run. Definition at line 25 of file Analysis.cc.
Get a short description of the analysis. Short (one sentence) description used as an index entry. Use description() to provide full descriptive paragraphs of analysis details. Definition at line 142 of file Analysis.hh.
Get the sum of event weights seen (via the analysis handler). Use in the finalize phase only. Definition at line 89 of file Analysis.cc. { return handler().sumOfWeights(); }
Any work to be done on this analysis. Definition at line 201 of file Analysis.hh.
When the original experimental analysis was published. Definition at line 176 of file Analysis.hh. Member Data Documentation
Flag to forbid projection registration in analyses until the init phase. Definition at line 176 of file ProjectionApplier.hh.
Definition at line 600 of file ATLAS_2011_S9041966.cc.
Definition at line 602 of file ATLAS_2011_S9041966.cc.
Definition at line 599 of file ATLAS_2011_S9041966.cc.
Definition at line 601 of file ATLAS_2011_S9041966.cc.
Definition at line 614 of file ATLAS_2011_S9041966.cc.
Definition at line 612 of file ATLAS_2011_S9041966.cc.
Definition at line 607 of file ATLAS_2011_S9041966.cc.
Definition at line 613 of file ATLAS_2011_S9041966.cc.
Definition at line 611 of file ATLAS_2011_S9041966.cc.
Definition at line 606 of file ATLAS_2011_S9041966.cc.
Definition at line 605 of file ATLAS_2011_S9041966.cc.
Definition at line 610 of file ATLAS_2011_S9041966.cc.
Definition at line 604 of file ATLAS_2011_S9041966.cc.
Definition at line 609 of file ATLAS_2011_S9041966.cc.
Definition at line 646 of file ATLAS_2011_S9041966.cc.
Definition at line 628 of file ATLAS_2011_S9041966.cc.
Definition at line 632 of file ATLAS_2011_S9041966.cc.
Definition at line 647 of file ATLAS_2011_S9041966.cc.
Definition at line 627 of file ATLAS_2011_S9041966.cc.
Definition at line 631 of file ATLAS_2011_S9041966.cc.
Definition at line 623 of file ATLAS_2011_S9041966.cc.
Definition at line 634 of file ATLAS_2011_S9041966.cc.
Definition at line 651 of file ATLAS_2011_S9041966.cc.
Definition at line 645 of file ATLAS_2011_S9041966.cc.
Definition at line 655 of file ATLAS_2011_S9041966.cc.
Definition at line 654 of file ATLAS_2011_S9041966.cc.
Definition at line 630 of file ATLAS_2011_S9041966.cc.
Definition at line 644 of file ATLAS_2011_S9041966.cc.
Definition at line 640 of file ATLAS_2011_S9041966.cc.
Definition at line 636 of file ATLAS_2011_S9041966.cc.
Definition at line 639 of file ATLAS_2011_S9041966.cc.
Definition at line 641 of file ATLAS_2011_S9041966.cc.
Definition at line 637 of file ATLAS_2011_S9041966.cc.
Definition at line 635 of file ATLAS_2011_S9041966.cc.
Definition at line 633 of file ATLAS_2011_S9041966.cc.
Definition at line 650 of file ATLAS_2011_S9041966.cc.
Definition at line 653 of file ATLAS_2011_S9041966.cc.
Definition at line 652 of file ATLAS_2011_S9041966.cc.
Definition at line 643 of file ATLAS_2011_S9041966.cc.
Definition at line 625 of file ATLAS_2011_S9041966.cc.
Definition at line 642 of file ATLAS_2011_S9041966.cc.
Definition at line 638 of file ATLAS_2011_S9041966.cc.
Definition at line 648 of file ATLAS_2011_S9041966.cc.
Definition at line 649 of file ATLAS_2011_S9041966.cc.
Definition at line 624 of file ATLAS_2011_S9041966.cc. The documentation for this class was generated from the following file: Generated on Tue Dec 13 2016 16:33:02 for The Rivet MC analysis system by ![]() |