|
- Module Analysis / beam compatibility testing
Replace with beamsCompatible() with no args (calling beams() function internally)
Add beamsMatch() methods with same (shared-code?) tolerance as in beamsCompatible()
- Module Analysis object manipulation
- Should really be protected: only public to keep BinnedHistogram happy for now...
- Module Beam configuration
- Does it really make sense to restrict Projections to particular beam configs? Do we use this in practice?
- Module For JetAlg compatibility
- Replace with cuts() accessor virtual Cut cuts() const { return _cuts; }
- Module Miscellaneous numerical helpers
- Add pair-based versions of the named range-boundary functions
- Module Miscellaneous numerical helpers
- Add pair-based versions of the named range-boundary functions
- Module Particle pair classifiers
- Make versions that work on PdgIdPair?
- Module Particle pair classifiers
- Make versions that work on ParticlePair?
- Module Particle pair classifiers
- Make versions that work on ParticlePair?
- Module Particle pair classifiers
- Make versions that work on PdgIdPair?
- Module ParticleBase classifier -> bool functors
- Move to FourMomentum functions
- Module ParticleBase classifier -> bool functors
- Move to FourMomentum functions
- Module ParticleBase comparison -> double functors
- Move to FourMomentum functions
- Module ParticleBase comparison -> double functors
- Move to FourMomentum functions
- Namespace Rivet
Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
Include more projections as required, e.g. ChargedFinalState, FastJets, ZFinder...
Identify what can go into anonymous namespace
- 323 Namespace Rivet::@323
- Why isn't the math divide() function being found?
- Member Rivet::acmsTransform (const FourMomentum &pa, const FourMomentum &pb)
- Automatically choose to construct from beta or gamma according to which is more precise?
- Member Rivet::add_quad (NUM a, NUM b)
- When std::common_type can be used, generalise to multiple numeric types with appropriate return type.
- Member Rivet::add_quad (NUM a, NUM b, NUM c)
- When std::common_type can be used, generalise to multiple numeric types with appropriate return type.
- Member Rivet::Analysis::addAnalysisObject (AnalysisObjectPtr ao)
- 2D versions of integrate... defined how, exactly?!?
- Member Rivet::Analysis::bookHisto2D (const std::string &name, size_t nxbins, double xlower, double xupper, size_t nybins, double ylower, double yupper, const std::string &title="", const std::string &xtitle="", const std::string &ytitle="", const std::string &ztitle="")
- Add booking methods which take a path, titles and a reference Scatter from which to book
- Member Rivet::Analysis::efficiency (Histo1DPtr h1, Histo1DPtr h2, Scatter2DPtr s) const
- Counter and Histo2D efficiencies and asymms
- Member Rivet::Analysis::histoDir () const
- Cache in a member variable
- Member Rivet::Analysis::needsCrossSection () const
- Remove this and require HepMC >= 2.06
- Member Rivet::Analysis::normalize (const std::vector< Histo2DPtr > &histos, double norm=1.0, bool includeoverflows=true)
- Use SFINAE for a generic iterable of Histo2DPtrs
- Member Rivet::Analysis::normalize (const Histo2DPtr(&histos)[array_size], double norm=1.0, bool includeoverflows=true)
- YUCK!
- Member Rivet::Analysis::normalize (const std::vector< Histo1DPtr > &histos, double norm=1.0, bool includeoverflows=true)
- Use SFINAE for a generic iterable of Histo1DPtrs
- Member Rivet::Analysis::normalize (const Histo1DPtr(&histos)[array_size], double norm=1.0, bool includeoverflows=true)
- YUCK!
- Member Rivet::Analysis::refData (const string &hname) const
- SFINAE to ensure that the type inherits from YODA::AnalysisObject?
- Member Rivet::Analysis::refData (unsigned int datasetId, unsigned int xAxisId, unsigned int yAxisId) const
- SFINAE to ensure that the type inherits from YODA::AnalysisObject?
- Member Rivet::Analysis::scale (const std::vector< Histo1DPtr > &histos, double factor)
- Use SFINAE for a generic iterable of Histo1DPtrs
- Member Rivet::Analysis::scale (const Histo1DPtr(&histos)[array_size], double factor)
- YUCK!
- Member Rivet::Analysis::scale (const CounterPtr(&cnts)[array_size], double factor)
- YUCK!
- Member Rivet::Analysis::scale (const std::vector< CounterPtr > &cnts, double factor)
- Use SFINAE for a generic iterable of CounterPtrs
- Member Rivet::Analysis::scale (const std::vector< Histo2DPtr > &histos, double factor)
- Use SFINAE for a generic iterable of Histo2DPtrs
- Member Rivet::Analysis::scale (const Histo2DPtr(&histos)[array_size], double factor)
- YUCK!
- Member Rivet::Analysis::setNeedsCrossSection (bool needed=true)
- Remove this and require HepMC >= 2.06
- Member Rivet::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 Rivet::AnalysisHandler::addData (const std::vector< AnalysisObjectPtr > &aos)
- Need to statistically merge...
- Member Rivet::AnalysisHandler::analyze (const GenEvent &event)
Filter/normalize the event here
Drop this / just report first weight when we support multiweight events
Drop this / just report first weight when we support multiweight events
- Member Rivet::AnalysisHandler::getData (bool includeorphans=false, bool includetmps=false) const
- This needs to be much more nuanced for re-entrant histogramming
- Member Rivet::AnalysisHandler::mergeYodas (const vector< string > &aofiles, const vector< string > &delopts=vector< string >(), bool equiv=false)
- Use new YODA SFINAE to fill the smart ptr vector directly
- Member Rivet::AnalysisHandler::readData (const std::string &filename)
- Use new YODA SFINAE to fill the smart ptr vector directly
- Member Rivet::AnalysisHandler::setSumOfWeights (const double &sum)
- What about the sumW2 term? That needs to be set coherently. Need a new version, with all three N,sumW,sumW2 numbers (or a counter) supplied.
- Member Rivet::binIndex (NUM1 val, std::initializer_list< NUM2 > binedges, bool allow_overflow=false)
- Use std::common_type<NUM1, NUM2>::type x = val; ?
- Member Rivet::binIndex (NUM val, const CONTAINER &binedges, bool allow_overflow=false)
- Use std::common_type<NUM1, NUM2>::type x = val; ?
- Member Rivet::BinnedHistogram< T >::add (const T &binMin, const T &binMax, Histo1DPtr histo)
- Can we have an "emplace constructor", passing tuples of bookHisto1D args?
- Member Rivet::bwspace (size_t nbins, double start, double end, double mu, double gamma)
- geomspace
- Member Rivet::CentralEtHCM::project (const Event &e)
- Generalise rapidity cut value
- Class Rivet::ChargedLeptons
- This is just electrons and muons, unless you set taus stable!
- Member Rivet::cmsTransform (const FourMomentum &pa, const FourMomentum &pb)
- Automatically choose to construct from beta or gamma according to which is more precise?
- Member Rivet::contains (const std::string &s, const std::string &sub)
- Use SFINAE, Boost.Range, or other template trickery for more generic container matching?
- Member Rivet::correlation (const vector< NUM > &sample1, const vector< NUM > &sample2)
- Support multiple container types via SFINAE
- Member Rivet::correlation_err (const vector< NUM > &sample1, const vector< NUM > &sample2)
- Support multiple container types via SFINAE
- Member Rivet::covariance (const vector< NUM > &sample1, const vector< NUM > &sample2)
- Support multiple container types via SFINAE
- Member Rivet::covariance_err (const vector< NUM > &sample1, const vector< NUM > &sample2)
- Support multiple container types via SFINAE
- Member Rivet::Cutflow::filltail (const vector< bool > &cutresults, double weight=1.)
Add a fillnext(), keeping track of current ifill
Add a fillhead() (or vector fillnext()?)
- Member Rivet::Cutflows::normalize (double norm, size_t icut=0)
- Provide a version that takes a vector of norms?
- Member Rivet::Cutflows::scale (double factor)
Add a fillnext(), keeping track of current ifill
Add a fillhead() (or vector fillnext()?)
- Class Rivet::DeltaRGtr
- Define dR and dphi functors w.r.t. multiple ref vectors, with "all" or "any" semantics
- Member Rivet::DISLepton::project (const Event &e)
- Specify the charged or neutral current being searched for in the DISLepton constructor/API, and remove the guesswork
- Class Rivet::DressedLepton
- Remove completely – it's unnecessary and too confusing (esp. between copying & aggregating)
- Member Rivet::DressedLepton::addPhoton (const Particle &p, bool momsum=true)
- Deprecate and override add/setConstituents instead?
- Member Rivet::DressedLeptons::DressedLeptons (const FinalState &photons, const FinalState &bareleptons, double dRmax, const Cut &cut=Cuts::open(), bool useDecayPhotons=false, bool useJetClustering=false)
- Convert second arg to a general ParticleFinder rather than an FS, to allow clustering on to unstables, e.g. taus via TauFinder.
- Member Rivet::DressedLeptons::project (const Event &e)
- Can remove via the PromptFinalState conversion above?
- Member Rivet::ELECTRON_EFF_ATLAS_RUN1 (const Particle &e)
Include reco eff (but no e/y discrimination) in forward region
How to use this in combination with tracking eff?
- Member Rivet::ELECTRON_EFF_ATLAS_RUN2 (const Particle &e)
- Currently just a copy of Run 1: fix!
- Member Rivet::ELECTRON_EFF_CMS_RUN1 (const Particle &e)
- Add charge flip efficiency?
- Member Rivet::ELECTRON_EFF_CMS_RUN2 (const Particle &e)
- Currently just a copy of Run 1: fix!
- Member Rivet::ELECTRON_IDEFF_ATLAS_RUN2_LOOSE (const Particle &e)
- What about faking by jets or non-electrons?
- Member Rivet::ELECTRON_IDEFF_ATLAS_RUN2_MEDIUM (const Particle &e)
- Currently just a copy of Run 1: fix!
- Member Rivet::ELECTRON_IDEFF_ATLAS_RUN2_TIGHT (const Particle &e)
- Currently just a copy of Run 1: fix!
- Member Rivet::ELECTRON_SMEAR_ATLAS_RUN2 (const Particle &e)
- Currently just a copy of the Run 1 version: fix!
- Member Rivet::ELECTRON_SMEAR_CMS_RUN2 (const Particle &e)
- Currently just a copy of the Run 1 version: fix!
- Member Rivet::Event::centrality () const
- Use direct "centrality" property if using HepMC3
- Member Rivet::Event::weight () const
- This needs to be revisited when we finally add the mechanism to support NLO counter-events and weight vectors.
- Member Rivet::FastJets::areaDef () const
- Care needed re. const shared_ptr<T> vs. shared_ptr<const T>
- Member Rivet::FastJets::clusterSeq () const
- Care needed re. const shared_ptr<T> vs. shared_ptr<const T>
- Member Rivet::FastJets::clusterSeqArea () const
- Care needed re. const shared_ptr<T> vs. shared_ptr<const T>
- Member Rivet::FastJets::JetAlgName
- Move to JetAlg and alias here?
- Member Rivet::FastJets::mkClusterInputs (const Particles &fsparticles, const Particles &tagparticles=Particles())
- Use FastJet3's UserInfo system to store Particle pointers directly?
- Member Rivet::FastJets::reset ()
- _cseq = fastjet::ClusterSequence();
- Member Rivet::FastJets::trimJet (const Jet &input, const fastjet::Filter &trimmer) const
- "Automate" trimming as part of project() with pre-registered Filters
- Member Rivet::filter_discard (const CONTAINER &c, const FN &f)
- More efficient would be copy_if with back_inserter...
- Member Rivet::filter_select (const CONTAINER &c, const FN &f)
- More efficient would be copy_if with back_inserter ... but is that equally container agnostic?
- Member Rivet::FinalState::accept (const Particle &p) const
- Rename to _accept or acceptFinal?
- Member Rivet::FinalState::project (const Event &e)
- In general, we'd like to calculate a restrictive FS based on the most restricted superset FS.
- Class Rivet::FourVector
- Add composite set/mk methods from different coord systems
- Member Rivet::FoxWolframMoments::FoxWolframMoments (const FinalState &fsp)
- Let the user supply any projection they like?
- Member Rivet::FoxWolframMoments::getFoxWolframMoment (unsigned int l) const
- What?!?
- Member Rivet::getEnvParam (const std::string name, const T &fallback)
- Should the param name have to be specific to an analysis? Can specialise as an Analysis member fn.
- Member Rivet::getRefData (const string &papername)
- Remove AIDA support some day...
- Class Rivet::HeavyHadrons
- This assumes that the heavy hadrons are unstable... should we also look for stable ones in case the decays are disabled?
- Member Rivet::HeavyHadrons::project (const Event &e)
Allow user to choose whether primary or final HF hadrons are to be returned
What about charm hadrons coming from bottom hadron decays?
- Member Rivet::Jet::cTags (const Cut &c=Cuts::open()) const
- Is making b and c tags exclusive the right thing to do?
- Member Rivet::Jet::transformBy (const LorentzTransform <)
- Jet::containsMatch(Matcher m) { ... if m(pid) return true; ... }
- Member Rivet::JET_BTAG_ATLAS_RUN1 (const Jet &j)
- This form drops past ~100 GeV, asymptotically to zero efficiency... really?!
- Member Rivet::JET_SMEAR_ATLAS_RUN1 (const Jet &j)
Also need a JES uncertainty component?
Is this the best way to smear? Should we preserve the energy, or pT, or direction?
Is this the best way to smear? Should we preserve the energy, or pT, or direction?
Is this the best way to smear? Should we preserve the energy, or pT, or direction?
Is this the best way to smear? Should we preserve the energy, or pT, or direction?
- Member Rivet::JET_SMEAR_ATLAS_RUN2 (const Jet &j)
- Just a copy of the Run 1 one: improve!!
- Member Rivet::JET_SMEAR_CMS_RUN2 (const Jet &j)
- Just a copy of the suboptimal ATLAS one: improve!!
- Member Rivet::JET_SMEAR_IDENTITY (const Jet &j)
Modify constituent particle vectors for consistency
Set a null PseudoJet if the Jet is smeared?
- Member Rivet::JetAlg::jets (const Cut &c, const JetSorter &sorter) const
- Will the vector be efficiently std::move'd by value through this function chain?
- Member Rivet::JetAlg::jets (const JetSorter &sorter, const Cut &c=Cuts::open()) const
- Will the vector be efficiently std::move'd by value through this function chain?
- Member Rivet::JetAlg::jets (const JetSelector &selector, const JetSorter &sorter) const
- Will the vector be efficiently std::move'd by value through this function chain?
- Member Rivet::JetAlg::jets (const JetSorter &sorter, const JetSelector selector) const
- Will the vector be efficiently std::move'd by value through this function chain?
- Member Rivet::JetAlg::jetsByPt (double ptmin) const
- The other sorted accessors should be removed in a cleanup.
- Member Rivet::JetAlg::jetsByPt (const Cut &c=Cuts::open()) const
- The other sorted accessors should be removed in a cleanup.
- Member Rivet::JetAlg::jetsByPt (const JetSelector &selector) const
- The other sorted accessors should be removed in a cleanup.
- Class Rivet::JetEffSmearFn
- Include tagging efficiency functions?
- Member Rivet::JetEffSmearFn::sfn
- Ambiguity re. whether reco eff or a tagging efficiency...
- Member Rivet::JetFinder
- Should we make this the canonical name? Would "require" a header filename change -> breakage or ugly.
- Member Rivet::JetShape::calc (const Jets &jets)
- Use Cut for better eta/y selection
- Member Rivet::JetShape::project (const Event &e)
- Provide int and diff jet shapes with some sort of area normalisation?
- Member Rivet::Log::getColorCode (int level)
Test for VT100 compliance?
Do the map::upper_limit thing to find nearest level...
- Member Rivet::Log::getLevelName (int level)
- Do the map::upper_limit thing to find nearest level...
- Class Rivet::LorentzTransform
- Review the active/passive convention choice. Seems counterintuitive now...
- Class Rivet::MC_JetAnalysis
- Could reduce duplication by inheriting this from MC_ParticleAnalysis, with minor tweaking
- Member Rivet::MC_JetSplittings::analyze (const Event &event)
- Is < 0 possible? Feels like no; I should check ;-)
- Member Rivet::mean (const vector< NUM > &sample)
- Support multiple container types via SFINAE
- Member Rivet::mean_err (const vector< NUM > &sample)
- Support multiple container types via SFINAE
- Member Rivet::median (const vector< NUM > &sample)
- Support multiple container types via SFINAE
- Class Rivet::MergedFinalState
- Extend to merging many FS projections
- Member Rivet::MergedFinalState::compare (const Projection &p) const
- : Currently A+B is not recognised to be the same as B+A.
- Member Rivet::MET_SMEAR_ATLAS_RUN2 (const Vector3 &met, double set)
- Just a copy of the Run 1 one: improve!!
- Member Rivet::MissingMomentum::visibleMomentum (double mass=0 *GeV) const
- Couldn't we just reset the internal _momentum's mass and return by value? Would require mutable, though
- Member Rivet::MUON_EFF_CMS_RUN2 (const Particle &m)
- Currently just a copy of Run 1: fix!
- Member Rivet::MUON_SMEAR_ATLAS_RUN2 (const Particle &m)
- Currently just a copy of the Run 1 version: fix!
- Member Rivet::MUON_SMEAR_CMS_RUN2 (const Particle &m)
- Currently just a copy of the Run 1 version: fix!
- Member Rivet::P4_SMEAR_E_GAUSS (const FourMomentum &p, double resolution)
- Also make jet versions that update/smear constituents?
- Member Rivet::Particle::allDescendants (const Cut &c=Cuts::OPEN, bool remove_duplicates=true) const
Insist that the current particle is post-hadronization, otherwise throw an exception?
Use recursion through replica-avoiding functions to avoid bookkeeping duplicates
Remove this const mess crap when HepMC doesn't suck
Would like to do this, but the range objects are broken
Yuck, HepMC
Remove this const mess crap when HepMC doesn't suck
Would like to do this, but the range objects are broken
Yuck, HepMC
- Member Rivet::Particle::ancestors (const Cut &c=Cuts::OPEN, bool only_physical=true) const
Remove this const mess crap when HepMC doesn't suck
Would like to do this, but the range objects are broken
Would like to do this, but the range objects are broken
- Member Rivet::Particle::children (const Cut &c=Cuts::OPEN) const
isDecayed? How to restrict to physical particles?
Something going wrong with taus -> GenParticle nullptr?
Remove this const mess crap when HepMC doesn't suck
Would like to do this, but the range objects are broken
Something going wrong with taus -> GenParticle nullptr?
Remove this const mess crap when HepMC doesn't suck
Would like to do this, but the range objects are broken
- Member Rivet::Particle::isDirect (bool allow_from_direct_tau=false, bool allow_from_direct_mu=false) const
Replace awkward caching with C++17 std::optional
Would be nicer to be able to write this recursively up the chain, exiting as soon as a parton or string/cluster is seen
Would be nicer to be able to write this recursively up the chain, exiting as soon as a parton or string/cluster is seen
- Member Rivet::Particle::operator const GenParticle * () const
- This one's a bad idea since it enables accidental Particle comparisons
- Member Rivet::Particle::parents (const Cut &c=Cuts::OPEN) const
Remove this const mess crap when HepMC doesn't suck
Would like to do this, but the range objects are broken
Would like to do this, but the range objects are broken
- Member Rivet::Particle::stableDescendants (const Cut &c=Cuts::OPEN) const
Use recursion through replica-avoiding MCUtils functions to avoid bookkeeping duplicates
Insist that the current particle is post-hadronization, otherwise throw an exception?
Insist that the current particle is post-hadronization, otherwise throw an exception?
Remove this const mess crap when HepMC doesn't suck
Would like to do this, but the range objects are broken
Insist that the current particle is post-hadronization, otherwise throw an exception?
Remove this const mess crap when HepMC doesn't suck
Would like to do this, but the range objects are broken
- Member Rivet::ParticleFinder::compare (const Projection &p) const
- HOW DO WE COMPARE CUTS OBJECTS?
- Member Rivet::particles (const GenVertex *gv, HepMC::IteratorRange range=HepMC::relatives)
- A particle_const_iterator on GenVertex would be nice...
- Member Rivet::particles (const GenEvent *ge)
- Use mcutils?
- Member Rivet::Percentile< T >::operator+= (const Percentile< T > &rhs)
- should this also add the Counter?
- Member Rivet::PHOTON_EFF_CMS_RUN1 (const Particle &y)
- Currently from Delphes
- Member Rivet::PHOTON_EFF_CMS_RUN2 (const Particle &y)
- Currently just a copy of Run 1: fix!
- Member Rivet::PHOTON_SMEAR_ATLAS_RUN1 (const Particle &y)
- Use real photon smearing
- Class Rivet::PID::ParticleNames
Add axion, black hole remnant, etc. on demand
Hide this utility class or equiv in an unnamed namespace in a .cc file.
- Member Rivet::PID::ParticleNames::particleId (const std::string &pname)
- Isn't there a nicer, pointerless way to do singletons?
- Member Rivet::PID::ParticleNames::particleName (PdgId pid)
- Isn't there a nicer, pointerless way to do singletons?
- Member Rivet::pids (const ParticlePair &pp)
- Make ParticlePair a custom class instead?
- Class Rivet::PrimaryHadrons
Also be able to return taus? Prefer a separate tau finder.
This assumes that the primary hadrons are unstable... should we also look for stable primary hadrons?
- Member Rivet::PrimaryHadrons::project (const Event &e)
- Are hadrons from tau decays "primary hadrons"? I guess not
- Member Rivet::PrimaryParticles::PrimaryParticles (std::initializer_list< int > pdgIds, const Cut &c=Cuts::open())
- Instead of using a real vector use an initializer list - more flexible. Also, do not provide a default for the PDG IDs (even if empty) as this will force the user to actively select which codes are primary.
- Member Rivet::Projection::addPdgIdPair (PdgId beam1, PdgId beam2)
- This deserves a better name!
- Member Rivet::Projection::beamPairs () const
- Remove the beam constraints system from projections.
- Member Rivet::ProjectionApplier::addProjection (const PROJ &proj, const std::string &name)
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::apply (const Event &evt, const Projection &proj) const
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::apply (const Event &evt, const PROJ &proj) const
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::apply (const Event &evt, const std::string &name) const
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::apply (const std::string &name, const Event &evt) const
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::applyProjection (const Event &evt, const Projection &proj) const
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::applyProjection (const Event &evt, const PROJ &proj) const
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::applyProjection (const Event &evt, const std::string &name) const
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::declare (const PROJ &proj, const std::string &name)
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::declare (const std::string &name, const PROJ &proj)
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::declareProjection (const PROJ &proj, const std::string &name)
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::get (const std::string &name) const
- Add SFINAE to require that PROJ inherit from Projection
- Member Rivet::ProjectionApplier::getProjection (const std::string &name) const
- Add SFINAE to require that PROJ inherit from Projection
- Class Rivet::PromptFinalState
- Decide how to treat brem photons off prompt leptons – are they also prompt? "Decay" does not change the lepton PID...
- Member Rivet::PseudoJets
- Make into an explicit container with conversion to Jets and FourMomenta?
- Member Rivet::rand01 ()
- What's the "correct" number of bits of randomness?
- Member Rivet::Run::readEvent ()
- Clear rather than new the GenEvent object per-event?
- Member Rivet::safediv (double num, double den, double fail=0.0)
- When std::common_type can be used, generalise to multiple numeric types with appropriate return type.
- Member Rivet::SmearedJets::DEFAULT_RIVET_PROJ_CLONE (SmearedJets)
How to include tagging effs?
Variadic eff/smear fn list?
Add a trailing Cut arg cf. SmearedParticles? – wrap into an eff function
- Member Rivet::SmearedJets::project (const Event &e)
Or could use the/an actual clustered b-quark momentum?
As above... ?
- Member Rivet::SmearedMET::vectorPt () const
- Currently equivalent to vectorEt
- Member Rivet::SmearedParticles::SmearedParticles (const ParticleFinder &pf, const Cut &c, ARGS... effSmearFns)
- Wouldn't it be nice if the Cut could also go after the parameter pack?
- Member Rivet::sortBy (MOMS &pbs, const CMP &cmp)
- Add sorting by phi [0..2PI]
- Member Rivet::TAU_EFF_CMS_RUN1 (const Particle &t)
- Needs work; this is just a copy of the Run 2 version in Delphes 3.3.2
- Member Rivet::TAU_EFF_CMS_RUN2 (const Particle &t)
- Needs work; this is the dumb version from Delphes 3.3.2
- Member Rivet::TAU_SMEAR_ATLAS_RUN1 (const Particle &t)
Currently a copy of the crappy jet smearing that is probably wrong...
Is this the best way to smear? Should we preserve the energy, or pT, or direction?
Is this the best way to smear? Should we preserve the energy, or pT, or direction?
Is this the best way to smear? Should we preserve the energy, or pT, or direction?
Is this the best way to smear? Should we preserve the energy, or pT, or direction?
- Member Rivet::TAU_SMEAR_ATLAS_RUN2 (const Particle &t)
- Currently a copy of the Run 1 version
- Member Rivet::TAU_SMEAR_CMS_RUN1 (const Particle &t)
- Currently a copy of the crappy ATLAS one
- Member Rivet::TAU_SMEAR_CMS_RUN2 (const Particle &t)
- Currently a copy of the Run 1 version
- Class Rivet::TauFinder
- Convert to a general ParticleFinder, since it's not a true final state? Needs some care...
- Member Rivet::TauFinder::TauFinder (DecayType decaytype, const Cut &cut=Cuts::open())
- What about directness/promptness?
- Member Rivet::Taus
- Make this the canonical name in future
- Member Rivet::TRK_EFF_ATLAS_RUN2 (const Particle &p)
- Currently just a copy of Run 1: fix!
- Member Rivet::TRK_EFF_CMS_RUN2 (const Particle &p)
- Currently just a copy of Run 1: fix!
- Class Rivet::UnstableParticles
Rename header, with fallback
Convert to a general ParticleFinder since this is explicitly not a final state... but needs care
Make TauFinder inherit/use
- Member Rivet::UnstableParticles::project (const Event &e)
Add a FIRST/LAST/ANY enum to specify the mode for uniquifying replica chains (default = LAST)
Replace PID veto list with PID:: functions?
- Member Rivet::Vector3::unitVec () const
- What to do in this situation?
- Member Rivet::VetoedFinalState::addDecayProductsVeto (PdgId pid)
- 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 Rivet::VetoedFinalState::compare (const Projection &p) const
- We can do better than this...
- Member Rivet::VetoedFinalState::project (const Event &e)
YUCK! Clean up...
There must be a nice way to do this – an STL algorithm (or we provide a nicer wrapper)
Could use any() here?
- Member Rivet::WFinder::boson () const
- C++17 std::optional...
- Member Rivet::WFinder::constituentLepton () const
- C++17 std::optional...
- Member Rivet::WFinder::project (const Event &e)
- Do we need to add all used invisibles to _theParticles ?
- Member Rivet::WFinder::WFinder (const FinalState &inputfs, const Cut &leptoncuts, PdgId pid, double minmass, double maxmass, double missingET, double dRmax=0.1, ChargedLeptons chLeptons=PROMPTCHLEPTONS, ClusterPhotons clusterPhotons=CLUSTERNODECAY, PhotonTracking trackPhotons=NOTRACK, MassWindow masstype=MASS, double masstarget=80.4 *GeV)
Revisit NOTRACK as default?
Fix FS copy constructors!!
Fix FS copy constructors!!
- Class Rivet::ZFinder
- Alias then rename as Dileptons
- Member Rivet::ZFinder::ZFinder (const FinalState &inputfs, const Cut &cuts, PdgId pid, double minmass, double maxmass, double dRmax=0.1, ChargedLeptons chLeptons=PROMPTCHLEPTONS, ClusterPhotons clusterPhotons=CLUSTERNODECAY, PhotonTracking trackPhotons=NOTRACK, double masstarget=91.2 *GeV)
- Fix FS copy constructors!!
- Module Streaming containers as string reps
Make these named toStr rather than operator<<
Make these generic to any iterable
- Module Streaming containers as string reps
Make these named toStr rather than operator<<
Make these generic to any iterable
- Module Transverse energy functions
- Move into a common base class for MissingMomentum and SmearedMET – MomentumBalance, METFinder?
- Module Transverse energy functions
- Move into a common base class for MissingMomentum and SmearedMET – MomentumBalance, METFinder?
- Module Transverse momentum functions
- Move into a common base class for MissingMomentum and SmearedMET – MomentumBalance, METFinder?
- Module Transverse momentum functions
- Move into a common base class for MissingMomentum and SmearedMET – MomentumBalance, METFinder?
- Module Typedefs of vector types to short names
- Switch canonical and alias names
- Module Typedefs of vector types to short names
- Switch canonical and alias names
- Module Typedefs of vector types to short names
- Switch canonical and alias names
|