|
[Rivet-svn] r2749 - in trunk: . include/Rivet/Projections src/Analyses src/Projectionsblackhole at projects.hepforge.org blackhole at projects.hepforge.orgWed Nov 10 15:10:14 GMT 2010
Author: buckley Date: Wed Nov 10 15:10:13 2010 New Revision: 2749 Log: Adding a mechanism to allow JetAlg to be run without the wrapping of the passed FinalState in a VetoedFinalState. This will allow ATLAS to reproduce its hadronic-neutrino-corrected jet studies. Modified: trunk/ChangeLog trunk/include/Rivet/Projections/JetAlg.hh trunk/src/Analyses/CDF_2008_S7782535.cc trunk/src/Projections/FastJets.cc trunk/src/Projections/JetAlg.cc Modified: trunk/ChangeLog ============================================================================== --- trunk/ChangeLog Tue Nov 9 19:06:30 2010 (r2748) +++ trunk/ChangeLog Wed Nov 10 15:10:13 2010 (r2749) @@ -1,3 +1,10 @@ +2010-11-10 Andy Buckley <andy at insectnation.org> + + * Adding a JetAlg::useInvisibles(bool) mechanism to allow ATLAS + jet studies to include neutrinos. Anyone who chooses to use this + mechanism had better be careful to remove hard neutrinos manually + in the provided FinalState object. + 2010-11-09 Hendrik Hoeth <hendrik.hoeth at cern.ch> * Adding ATLAS-CONF-2010-049 conference note. Data is read from plots. Modified: trunk/include/Rivet/Projections/JetAlg.hh ============================================================================== --- trunk/include/Rivet/Projections/JetAlg.hh Tue Nov 9 19:06:30 2010 (r2748) +++ trunk/include/Rivet/Projections/JetAlg.hh Wed Nov 10 15:10:13 2010 (r2749) @@ -57,7 +57,6 @@ /// Abstract base class for projections which can return a set of {@link Jet}s. class JetAlg : public Projection { - public: /// Constructor @@ -69,6 +68,18 @@ /// Destructor virtual ~JetAlg() { } + /// @brief Include invisible particles in jet construction. + /// The default behaviour is that jets are only constructed from visible + /// (i.e. charged under an SM gauge group) particles. Some jet studies, + /// including those from ATLAS, use a definition in which neutrinos from hadron + /// decays are included (via MC correction) in the experimental jet definition. + /// Setting this flag to true avoids the automatic restriction to a VisibleFinalState. + void useInvisibles(bool useinvis=true) { + _useInvisibles = useinvis; + } + + /// Get jets in no guaranteed order, with an optional cut on min \f$ p_\perp \f$. + /// @todo Provide an extra optional cut on ptmax? virtual Jets jets(double ptmin=0.0) const = 0; /// Get the jets, ordered by supplied sorting function object. @@ -112,7 +123,7 @@ collection_type entities() const { return jets(); } /// Do the calculation locally (no caching). - void calc(const ParticleVector& ps); + virtual void calc(const ParticleVector& ps) = 0; protected: @@ -123,6 +134,12 @@ /// Compare projections. virtual int compare(const Projection& p) const = 0; + + protected: + + /// Flag to determine whether or not the VFS wrapper is to be used. + bool _useInvisibles; + }; Modified: trunk/src/Analyses/CDF_2008_S7782535.cc ============================================================================== --- trunk/src/Analyses/CDF_2008_S7782535.cc Tue Nov 9 19:06:30 2010 (r2748) +++ trunk/src/Analyses/CDF_2008_S7782535.cc Wed Nov 10 15:10:13 2010 (r2749) @@ -87,7 +87,7 @@ // Fill each entry in profile for (size_t rbin = 0; rbin < js.numBins(); ++rbin) { const double rad_Psi = js.rMin() + (rbin+1.0)*js.interval(); - /// @todo Yuck... JetShape's interface sucks + /// @todo Yuck... ClosestJetShape's interface sucks _h_Psi_pT[jet_pt_bin]->fill(rad_Psi/_Rjet, js.intJetShape(jind, rbin), event.weight() ); } } Modified: trunk/src/Projections/FastJets.cc ============================================================================== --- trunk/src/Projections/FastJets.cc Tue Nov 9 19:06:30 2010 (r2748) +++ trunk/src/Projections/FastJets.cc Wed Nov 10 15:10:13 2010 (r2749) @@ -78,7 +78,7 @@ int FastJets::compare(const Projection& p) const { const FastJets& other = dynamic_cast<const FastJets&>(p); return \ - mkNamedPCmp(other, "FS") || + (_useInvisibles ? mkNamedPCmp(other, "FS") : mkNamedPCmp(other, "VFS")) || cmp(_jdef.jet_algorithm(), other._jdef.jet_algorithm()) || cmp(_jdef.recombination_scheme(), other._jdef.recombination_scheme()) || cmp(_jdef.plugin(), other._jdef.plugin()) || @@ -89,8 +89,13 @@ void FastJets::project(const Event& e) { - const FinalState& fs = applyProjection<FinalState>(e, "FS"); - calc(fs.particles()); + ParticleVector particles; + if (_useInvisibles) { + particles = applyProjection<FinalState>(e, "FS").particles(); + } else { + particles = applyProjection<FinalState>(e, "VFS").particles(); + } + calc(particles); } Modified: trunk/src/Projections/JetAlg.cc ============================================================================== --- trunk/src/Projections/JetAlg.cc Tue Nov 9 19:06:30 2010 (r2748) +++ trunk/src/Projections/JetAlg.cc Wed Nov 10 15:10:13 2010 (r2749) @@ -6,11 +6,13 @@ namespace Rivet { - JetAlg::JetAlg(const FinalState& fs) { + JetAlg::JetAlg(const FinalState& fs) + : _useInvisibles(false) + { setName("JetAlg"); VisibleFinalState vfs(fs); getLog() << Log::DEBUG << "Making visible final state from provided FS" << endl; - addProjection(vfs, "FS"); + addProjection(vfs, "VFS"); }
More information about the Rivet-svn mailing list |