rivet is hosted by Hepforge, IPPP Durham
The Rivet MC analysis system  1.8.2
Todo List
Member Analysis::addPlot (AnalysisObjectPtr)
2D versions of scale and normalize... or ditch these completely?
Member Analysis::histoDir () const
This doesn't change: calc and cache at first use!
Member Analysis::needsCrossSection () const
Remove this and require HepMC >= 2.06
Member Analysis::setNeedsCrossSection (bool needed=true)
Remove this and require HepMC >= 2.06
Member AnalysisHandler::addAnalysis (const std::string &analysisname)
Might we want to be able to run an analysis twice, with different params? Requires avoiding histo tree clashes, i.e. storing the histos on the analysis objects.
Member AnalysisLoader::_loadAnalysisPlugins ()

Make sure this is an abs path

Sys-dependent path separator instead of "/"

Member ATLAS_2010_S8894728::_moments_to_stddev (Profile1DPtr moment_profiles[], Scatter2DPtr target_dps)
Assuming unit weights here! Should use N_effective = sumW**2/sumW2?
Member ATLAS_2011_I944826::analyze (const Event &event)

YODA

YODA

Member ATLAS_2011_I944826::finalize ()
YODA / Division of histograms to obtain lambdabar/lambda ratios
Member ATLAS_2011_I944826::init ()

YODA

YODA

Member ATLAS_2011_I945498::ATLAS_2011_I945498 ()
Set whether your finalize method needs the generator cross section
Member ATLAS_2011_I945498::finalize ()

YODA

YODA

Class ATLAS_2011_S9041966
Clean up the debug stuff
Member ATLAS_2011_S9126244::finalize ()
YODA divide and binEdges foreach (const ATLAS_2011_S9126244_Plots& plots, m_selectionPlots) { Calculate the gap fraction for each slice for (size_t x=0; x<plots._h_gapVsDeltaYVeto.getHistograms().size(); x++) { histogramFactory().divide(histoPath(makeAxisCode(plots.m_gapFractionDeltaYHistIndex+x, 1, plots.selectionType)), (plots._h_gapVsDeltaYVeto.getHistograms()[x]), (plots._h_gapVsDeltaYInc.getHistograms()[x])); histogramFactory().destroy(plots._h_gapVsDeltaYVeto.getHistograms()[x]); histogramFactory().destroy(plots._h_gapVsDeltaYInc.getHistograms()[x]); }
Member ATLAS_2011_S9126244::m_q0BinEdges
YODA void finalizeQ0GapFraction(double totalWeightSum, Scatter2DPtr gapFractionDP, Histo1DPtr vetoPtHist, int binNumber) { double vetoPtWeightSum = 0.0; for (int x=0; x<binNumber-1; x++) { vetoPtWeightSum += vetoPtHist->bin(x).area();
Member ATLAS_2012_I1083318::finalize ()
YODA / first construct jet multi ratio
Member ATLAS_2012_I1091481::init ()
Initialise and register projections here
Member CDF_1996_S3108457::analyze (const Event &event)
include gaussian jet energy resolution smearing?
Member CDF_1996_S3108457::init ()
Ratios of mass histograms left out: Binning doesn't work out
Member CDF_1996_S3349578::analyze (const Event &event)
include gaussian jet energy resolution smearing?
Member CDF_1996_S3418421::finalize ()
calculate errors while analysing and fill them here as well
Member CDF_2001_S4751469::analyze (const Event &event)
Copy the permanent histos to get the binnings more robustly
Member CDF_2004_S5839831::finalize ()
Take these normalisations from the data histo (it can't come from just the MC)
Member CDF_2006_S6653332::analyze (const Event &event)

Use jet contents rather than accessing quarks directly

Use nicer looping

Use jet contents rather than accessing quarks directly

Use nicer looping

Use jet contents rather than accessing quarks directly

Member CDF_2008_LEADINGJETS::analyze (const Event &e)
Implement Run II min bias trigger cf. CDF_2009?
Member CDF_2008_NOTE_9351::analyze (const Event &e)

Replace with foreach

Replace with PID::isLepton

Replace with PID::isLepton

Member CDF_2008_S7540469::analyze (const Event &event)
Make this neater, using the JetAlg interface and the built-in sorting
Member CDF_2008_S7541902::finalize ()
YODA Replace with autobooking etc. once YODA in place
Class CDF_2009_S8057893
Finish!
Member CDF_2009_S8233977::analyze (const Event &evt)
The pT and sum(ET) distributions look slightly different from Niccolo's Monte Carlo plots. Still waiting for his answer.
Member CDF_2010_S8591881_DY::analyze (const Event &e)

Replace with foreach

Replace with PID::isLepton

Replace with PID::isLepton

Member CDF_2010_S8591881_QCD::analyze (const Event &e)
Implement Run II min bias trigger cf. CDF_2009?
Member CentralEtHCM::project (const Event &e)
Generalise rapidity cut value
Member CMS_2011_S9215166::analyze (const Event &event)
"Diffractive" veto should really also veto dijet events?
Member CMS_2012_I1102908::init ()
Can we manage to only register these as they are "really" created in the finalize()?
Member ConstRandomFilter::operator() (const Particle &)
Use a better RNG
Member D0_1996_S3214044::init ()
Use correct jet algorithm
Member D0_1996_S3324664::finalize ()

Understand this!

Prefer to scale rather than normalize, if possible

Prefer to scale rather than normalize, if possible

Member D0_1996_S3324664::init ()
Use correct jet algorithm
Member D0_2008_S7837160::analyze (const Event &event)

Use pT cut in WFinder

Any ETmiss cut?

Any ETmiss cut?

Member D0_2008_S7837160::init ()
Use separate pT and ETmiss cuts in WFinder
Member DELPHI_2003_WUD_03_11::finalize ()
Scale rather than normalize?
Member E735_1998_S3905616::init ()
E735 trigger?
Member Event::_geNormAlignment ()
e+ e- convention? B-factories different from LEP?
Member FastJets::_init3 (fastjet::JetDefinition::Plugin *plugin)
Should we be copying the plugin?
Member FastJets::_pseudojetsToJets (const PseudoJets &pjets) const
Cache?
Member FastJets::clusterSeqArea () const
Throw error if no area def? Or just blindly call dynamic_cast?
Member FastJets::reset ()
_cseq = fastjet::ClusterSequence();
Member FinalState::FinalState (const vector< pair< double, double > > &etaRanges, double minpt=0.0 *GeV)
Properly check whether any of these eta ranges (or their combination) are actually open
Member FinalState::project (const Event &e)
In general, we'd like to calculate a restrictive FS based on the most restricted superset FS.
Member FourMomentum::boostVector () const
Be careful about c=1 convention...
Member FoxWolframMoments::FoxWolframMoments (const FinalState &fsp)
Let the user supply any projection they like?
Member FoxWolframMoments::getFoxWolframMoment (unsigned int l) const
What?!?
Member H1_1994_S2919893::analyze (const Event &event)

Use units in w comparisons... what are the units?

Is this profile meant to be filled with 2 weight factors?

Use angle function

Is this profile meant to be filled with 2 weight factors?

Use angle function

Class H1_1995_S3167097
Check this analysis!
Member H1_1995_S3167097::_nbin
Remove statics!
Member H1_1995_S3167097::_nbin
Remove statics!
Member H1_1995_S3167097::_xmax
Remove statics!
Member H1_1995_S3167097::_xmax
Remove statics!
Member H1_1995_S3167097::finalize ()
Automate this sort of thing so that the analysis code is more readable.
Member H1_1995_S3167097::init ()
Automate this sort of thing so that the analysis code is more readable.
Group Histograms
Add jet masses and d(rap)
Group Histograms
Add jet masses and d(rap)
Group Histograms
Add jet masses and d(rap)
Group Histograms
Add jet masses and d(rap)
Group Histograms
Add jet masses and d(rap)
Group Histograms
Add jet masses and d(rap)
Group Histograms
Add jet masses and d(rap)
Group Histograms
Add jet masses and d(rap)
Member IS_PARTON_PDGID (id)

Use inline PID functions instead

Use inline PID functions instead

Use inline PID functions instead

Member JADE_1998_S3612880::JADE_1998_S3612880 ()
Set whether your finalize method needs the generator cross section
Member JADE_OPAL_2000_S4300807::analyze (const Event &e)

Put this in an index loop?

Put this in an index loop?

Put this in an index loop?

Member Jet::neutralEnergy () const
Jet::containsMatch(Matcher m) { ... if m(pid) return true; ... }
Member JetAlg::jets (double ptmin=0.0, double ptmax=MAXDOUBLE, double rapmin=-MAXDOUBLE, double rapmax=MAXDOUBLE, RapScheme rapscheme=PSEUDORAPIDITY) const
Introduce MomentumFilter objects for pT, ET, eta, y, etc. filtering, to avoid double-arg ambiguities
Member JetAlg::jets (F sorter, double ptmin, double ptmax, double rapmin, double rapmax, RapScheme rapscheme) const
Introduce MomentumFilter objects for pT, ET, eta, y, etc. filtering, to avoid double-arg ambiguities
Member JetAlg::jetsByE (double ptmin=0.0, double ptmax=MAXDOUBLE, double rapmin=-MAXDOUBLE, double rapmax=MAXDOUBLE, RapScheme rapscheme=PSEUDORAPIDITY) const
Introduce MomentumFilter objects for pT, ET, eta, y, etc. filtering, to avoid double-arg ambiguities
Member JetAlg::jetsByEt (double ptmin=0.0, double ptmax=MAXDOUBLE, double rapmin=-MAXDOUBLE, double rapmax=MAXDOUBLE, RapScheme rapscheme=PSEUDORAPIDITY) const
Introduce MomentumFilter objects for pT, ET, eta, y, etc. filtering, to avoid double-arg ambiguities
Member JetAlg::jetsByP (double ptmin=0.0, double ptmax=MAXDOUBLE, double rapmin=-MAXDOUBLE, double rapmax=MAXDOUBLE, RapScheme rapscheme=PSEUDORAPIDITY) const
Introduce MomentumFilter objects for pT, ET, eta, y, etc. filtering, to avoid double-arg ambiguities
Member JetAlg::jetsByPt (double ptmin=0.0, double ptmax=MAXDOUBLE, double rapmin=-MAXDOUBLE, double rapmax=MAXDOUBLE, RapScheme rapscheme=PSEUDORAPIDITY) const
Introduce MomentumFilter objects for pT, ET, eta, y, etc. filtering, to avoid double-arg ambiguities
Member JetShape::calc (const Jets &jets)
Introduce a better (i.e. more safe and general) eta/y selection mechanism: MomentumFilter
Member JetShape::project (const Event &e)
Provide int and diff jet shapes with some sort of area normalisation?
Member LHCB_2011_I917009::analyze (const Event &event)
YODA / Filling corresponding temporary histograms for pT intervals
Member LHCB_2011_I917009::fillMap (map< int, double > &m)
YODA
Member LHCB_2011_I917009::finalize ()
YODA / needed to determine AIDA to save the file!
Member LHCB_2011_I917009::init ()
YODA /pT edges are the same for all 3 histos in this suite
Member Log::_nostream
Hide this...
Member Log::getColorCode (int level)

Test for VT100 compliance?

Do the map::upper_limit thing to find nearest level...

Member Log::getLevelName (int level)
Do the map::upper_limit thing to find nearest level...
Member MC_DIJET::analyze (const Event &event)
Add jets
Member MC_DIJET::finalize ()
Normalise!
Member MC_GENERIC::finalize ()
YODA need to clean up setting the path.
Member MC_PHOTONJETUE::analyze (const Event &evt)

Plot evolution of UE as a function of jet-photon angle

Plot evolution of UE as a function of photon pT

Plot evolution of UE as a function of photon pT

Member MC_SUSY::analyze (const Event &evt)

Resum photons around electrons

Resum photons around muons

Resum photons around muons

Member MC_SUSY::finalize ()
Normalisations
Member MC_SUSY::init ()
LSP eta, pT, phi, mass: no reliable cross-scenario LSP PID but maybe plot for all of chi^0_1, gravitino, sneutrino, gluino, ... or identify the LSP as any PID::isSUSY (?) particle with status = 1?
Member MC_VH2BB::analyze (const Event &event)
Don't we have a neater vector concatenation?
Member MC_WWJETS::init ()

non-linear?

fuer WW: missing ET

fuer WW: missing ET

Member MC_ZZJETS::init ()

non-linear?

fuer WW: missing ET

fuer WW: missing ET

Member MergedFinalState::compare (const Projection &p) const
: Currently A+B is not recognised to be the same as B+A.
Member OPAL_1998_S3780481::analyze (const Event &e)
Use PDG code enums
Member OPAL_2001_S4553896::init ()
Book histograms here, e.g.:
Member OPAL_2004_S6132243::analyze (const Event &event)
This shouldn't be necessary... what's going on? Memory corruption suspected :(
Group Projection registration
This is a better form of singleton, which cleans up properly... but it can't yet be used as it highlights a projection memory problem. Please fix so we can use this!
Member ProjectionHandler::_instance
Remove in favour of the static singleton function
Namespace Rivet

Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...

Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...

Member Rivet::_updateLevels (const Log::LevelMap &defaultLevels, Log::LogMap &existingLogs)

Add single static setLevel

Check ordering - "Foo" should come before "Foo.Bar"

Check ordering - "Foo" should come before "Foo.Bar"

Member Rivet::inRange (int value, int low, int high, RangeBoundary lowbound=CLOSED, RangeBoundary highbound=CLOSED)
Optimise to one-line at compile time?
Member Rivet::inRange (NUM value, NUM low, NUM high, RangeBoundary lowbound=CLOSED, RangeBoundary highbound=OPEN)
Optimise to one-line at compile time?
Member Run::readEvent ()
Clear rather than new the GenEvent object per-event?
Member SFM_1984_S1178091::analyze (const Event &event)
Any trigger?
Member SFM_1984_S1178091::init ()
Corrected to full phase space?
Member STAR_2008_S7869363::finalize ()
Norm to data!
Member STARRandomFilter::operator() (const Particle &p)
Use a better RNG?
Member TASSO_1990_S2148048::TASSO_1990_S2148048 ()
Set whether your finalize method needs the generator cross section
Member Thrust::_calcThrust (const vector< Vector3 > &fsmomenta)
Improve this --- special directions bad... (a,b,c) _|_ 1/(a^2+b^2) (b,-a,0) etc., but which combination minimises error?
Member UA5_1982_S875503::finalize ()
Why the factor of 2 on Nch for ppbar?
Member UA5_1989_S1926373::init ()
Moments of distributions
Member Vector3::unit () const
What to do in this situation?
Group Vectors for storing the number of particles in the different eta intervals per event.
Is there a better way?
Member VetoedFinalState::addDecayProductsVeto (const long id)
Need HepMC to sort themselves out and keep vector bosons from the hard vtx in the event record before this will work reliably for all pdg ids
Member VetoedFinalState::project (const Event &e)
Improve!
Member WFinder::project (const Event &e)
Restrict missing momentum eta range? Use vectorET()?
Member ZEUS_2001_S4815815::init ()

This is the *wrong* jet def: correct it!

This doesn't seem to correspond to the plots in the paper (SPIRES 4730372)

This doesn't seem to correspond to the plots in the paper (SPIRES 4730372)