|
[Rivet-svn] r2409 - in trunk: . include/Rivet include/Rivet/Analyses include/Rivet/Math include/Rivet/Projections include/Rivet/Tools src/Analysesblackhole at projects.hepforge.org blackhole at projects.hepforge.orgWed Apr 21 16:48:23 BST 2010
Author: buckley Date: Wed Apr 21 16:48:22 2010 New Revision: 2409 Log: Adding more Doxygen @brief sections to remaining classes, and hiding some internal-only definitions from Doxygen Modified: trunk/ChangeLog trunk/include/Rivet/Analyses/MC_JetAnalysis.hh trunk/include/Rivet/Analysis.hh trunk/include/Rivet/AnalysisLoader.hh trunk/include/Rivet/Cmp.hh trunk/include/Rivet/Event.hh trunk/include/Rivet/Exceptions.hh trunk/include/Rivet/Math/LorentzTrans.hh trunk/include/Rivet/Math/Matrix3.hh trunk/include/Rivet/Math/MatrixN.hh trunk/include/Rivet/Math/Vector3.hh trunk/include/Rivet/Math/Vector4.hh trunk/include/Rivet/ParticleBase.hh trunk/include/Rivet/Projection.hh trunk/include/Rivet/ProjectionApplier.hh trunk/include/Rivet/Projections/AxesDefinition.hh trunk/include/Rivet/Projections/Beam.hh trunk/include/Rivet/Projections/CentralEtHCM.hh trunk/include/Rivet/Projections/ChargedFinalState.hh trunk/include/Rivet/Projections/ChargedLeptons.hh trunk/include/Rivet/Projections/ClusteredPhotons.hh trunk/include/Rivet/Projections/DISKinematics.hh trunk/include/Rivet/Projections/DISLepton.hh trunk/include/Rivet/Projections/FastJets.hh trunk/include/Rivet/Projections/FinalState.hh trunk/include/Rivet/Projections/FinalStateHCM.hh trunk/include/Rivet/Projections/FoxWolframMoments.hh trunk/include/Rivet/Projections/HadronicFinalState.hh trunk/include/Rivet/Projections/IdentifiedFinalState.hh trunk/include/Rivet/Projections/InitialQuarks.hh trunk/include/Rivet/Projections/InvMassFinalState.hh trunk/include/Rivet/Projections/IsolationEstimators.hh trunk/include/Rivet/Projections/IsolationTools.hh trunk/include/Rivet/Projections/KtJets.hh trunk/include/Rivet/Projections/LeadingParticlesFinalState.hh trunk/include/Rivet/Projections/LossyFinalState.hh trunk/include/Rivet/Projections/MergedFinalState.hh trunk/include/Rivet/Projections/MissingMomentum.hh trunk/include/Rivet/Projections/Multiplicity.hh trunk/include/Rivet/Projections/NeutralFinalState.hh trunk/include/Rivet/Projections/PVertex.hh trunk/include/Rivet/Projections/Thrust.hh trunk/include/Rivet/Projections/TotalVisibleMomentum.hh trunk/include/Rivet/Projections/TriggerCDFRun0Run1.hh trunk/include/Rivet/Projections/TriggerUA5.hh trunk/include/Rivet/Projections/UnstableFinalState.hh trunk/include/Rivet/Projections/VetoedFinalState.hh trunk/include/Rivet/Projections/VisibleFinalState.hh trunk/include/Rivet/Projections/WFinder.hh trunk/include/Rivet/Projections/ZFinder.hh trunk/include/Rivet/Run.hh trunk/include/Rivet/Tools/TypeTraits.hh trunk/include/Rivet/Tools/osdir.hh trunk/src/Analyses/CDF_2004_S5839831.cc trunk/src/Analyses/CDF_2008_LEADINGJETS.cc trunk/src/Analyses/CDF_2008_NOTE_9351.cc Modified: trunk/ChangeLog ============================================================================== --- trunk/ChangeLog Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/ChangeLog Wed Apr 21 16:48:22 2010 (r2409) @@ -1,7 +1,7 @@ 2010-04-21 Andy Buckley <andy at insectnation.org> - * Add @brief Doxygen comments to all analyses which were missing - them. + * Add @brief Doxygen comments to all analyses, projections and + core classes which were missing them. 2010-04-21 Hendrik Hoeth <hendrik.hoeth at cern.ch> Modified: trunk/include/Rivet/Analyses/MC_JetAnalysis.hh ============================================================================== --- trunk/include/Rivet/Analyses/MC_JetAnalysis.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Analyses/MC_JetAnalysis.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -8,13 +8,13 @@ namespace Rivet { + /// @brief Base class providing common functionality for MC jet validation analyses class MC_JetAnalysis : public Analysis { - public: /// Default constructor. MC_JetAnalysis(const string& name, - const size_t& njet, + const size_t& njet, const string& jetpro_name); @@ -27,10 +27,10 @@ protected: - + /// The number of jets for which histograms are to be initialised size_t m_njet; - + /// The name of the jet projection to be used for this analysis /// (this projection has to be registered by the derived analysis!) const std::string m_jetpro_name; Modified: trunk/include/Rivet/Analysis.hh ============================================================================== --- trunk/include/Rivet/Analysis.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Analysis.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -45,7 +45,7 @@ /// histograms. Writing the histograms to a file is, however, done by /// the Rivet class. class Analysis : public ProjectionApplier { - + /// The AnalysisHandler is a friend. friend class AnalysisHandler; @@ -139,7 +139,7 @@ /// stable, etc. etc. Should be treated as a restructuredText bullet list /// (http://docutils.sourceforge.net/rst.html) virtual std::string runInfo() const; - + /// Experiment which performed and published this analysis. virtual std::string experiment() const; @@ -232,7 +232,7 @@ /// Get the process cross-section in pb. Throws if this hasn't been set. double crossSection() const; - + /// Get the process cross-section per generated event in pb. Throws if this /// hasn't been set. double crossSectionPerEvent() const; @@ -244,7 +244,7 @@ /// Get the sum of event weights seen (via the analysis handler). Use in the /// finalize phase only. double sumOfWeights() const; - + protected: @@ -309,7 +309,7 @@ /// Book a 1D histogram based on the paper, dataset and x/y-axis IDs in the corresponding /// HepData record. The binnings will be obtained by reading the bundled AIDA data record file /// of the same filename as the analysis' name() property. - AIDA::IHistogram1D* bookHistogram1D(size_t datasetId, size_t xAxisId, size_t yAxisId, + AIDA::IHistogram1D* bookHistogram1D(size_t datasetId, size_t xAxisId, size_t yAxisId, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); @@ -342,11 +342,11 @@ /// record file with the same filename as the analysis' name() property. AIDA::IProfile1D* bookProfile1D(const std::string& name, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); - + /// Book a 1D profile histogram based on the paper, dataset and x/y-axis IDs in the corresponding /// HepData record. The binnings will be obtained by reading the bundled AIDA data record file /// of the same filename as the analysis' name() property. - AIDA::IProfile1D* bookProfile1D(size_t datasetId, size_t xAxisId, size_t yAxisId, + AIDA::IProfile1D* bookProfile1D(size_t datasetId, size_t xAxisId, size_t yAxisId, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); //@} @@ -381,7 +381,7 @@ /// Book a 2-dimensional data point set based on the paper, dataset and x/y-axis IDs in the corresponding /// HepData record. The binnings (x-errors) will be obtained by reading the bundled AIDA data record file /// of the same filename as the analysis' name() property. - AIDA::IDataPointSet* bookDataPointSet(size_t datasetId, size_t xAxisId, size_t yAxisId, + AIDA::IDataPointSet* bookDataPointSet(size_t datasetId, size_t xAxisId, size_t yAxisId, const std::string& title="", const std::string& xtitle="", const std::string& ytitle=""); @@ -423,7 +423,7 @@ /// Pointer to analysis metadata object shared_ptr<AnalysisInfo> _info; - + private: /// @name Cross-section variables @@ -432,7 +432,7 @@ bool _gotCrossSection; bool _needsCrossSection; //@} - + /// The controlling AnalysisHandler object. AnalysisHandler* _analysishandler; @@ -463,13 +463,14 @@ ///////////////////////////////////////////////////////////////////// + /// @cond ANALYSIS_PLUGIN_DETAILS - // Interface for analysis builders + /// @brief Interface for analysis builders class AnalysisBuilderBase { public: AnalysisBuilderBase() { } virtual ~AnalysisBuilderBase() { } - + virtual Analysis* mkAnalysis() const = 0; const string name() const { @@ -486,7 +487,7 @@ }; - // Self-registering analysis plugin builder + /// @brief Self-registering analysis plugin builder template <typename T> class AnalysisBuilder : public AnalysisBuilderBase { public: @@ -499,6 +500,7 @@ } }; + /// @endcond } Modified: trunk/include/Rivet/AnalysisLoader.hh ============================================================================== --- trunk/include/Rivet/AnalysisLoader.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/AnalysisLoader.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -14,18 +14,19 @@ class AnalysisBuilderBase; + /// @brief Internal class which loads and registers analyses from plugin libs class AnalysisLoader { public: - + /// Get all the available analyses' names. static vector<string> analysisNames(); static set<string> getAllAnalysisNames(); - + /// Get an analysis by name. /// Warning: a name arg which matches no known analysis will return a null /// pointer. Check your return values before using them! static Analysis* getAnalysis(const string& analysisname); - + /// Get all the available analyses. static vector<Analysis*> getAllAnalyses(); @@ -39,10 +40,10 @@ /// Load the available analyses at runtime. static void _loadAnalysisPlugins(); - + typedef map<string, const AnalysisBuilderBase*> AnalysisBuilderMap; static AnalysisBuilderMap _ptrs; - + }; Modified: trunk/include/Rivet/Cmp.hh ============================================================================== --- trunk/include/Rivet/Cmp.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Cmp.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -11,6 +11,8 @@ namespace Rivet { + /// Helper class when checking the ordering of two objects. + /// /// Cmp is a helper class to be used when checking the ordering of two /// objects. When implicitly converted to an integer the value will be /// negative if the two objects used in the constructor are ordered and @@ -24,21 +26,21 @@ template <typename T> class Cmp { public: - + /// @name Standard constructors etc. //@{ /// The default constructor. Cmp(const T& t1, const T& t2) : _value(UNDEFINED), _objects(&t1, &t2) { } - + /// The copy constructor. template <typename U> Cmp(const Cmp<U>& x) : _value(x), _objects(0, 0) { } - + /// The destructor is not virtual since this is not intended to be a base class. ~Cmp() { }; - + /// The assignment operator. template <typename U> const Cmp<T>& operator=(const Cmp<U>& x) { @@ -46,9 +48,9 @@ return *this; } //@} - + public: - + /// Automatically convert to an enum. operator CmpState() const { _compare(); @@ -60,7 +62,7 @@ _compare(); return _value; } - + /// If this state is equivalent, set this state to the state of \a c. template <typename U> const Cmp<T>& operator||(const Cmp<U>& c) const { @@ -68,9 +70,9 @@ if (_value == EQUIVALENT) _value = c; return *this; } - + private: - + /// Perform the actual comparison if necessary. void _compare() const { if (_value == UNDEFINED) { @@ -80,17 +82,18 @@ else _value = EQUIVALENT; } } - + /// The state of this object. mutable CmpState _value; - + /// The objects to be compared. pair<const T*, const T*> _objects; - - }; + }; + /// @brief Specialization of Cmp for checking the ordering of two @a{Projection}s. + /// /// Specialization of the Cmp helper class to be used when checking the /// ordering of two Projection objects. When implicitly converted to an /// integer the value will be negative if the two objects used in the @@ -106,23 +109,23 @@ template <> class Cmp<Projection> { public: - + /// @name Standard constructors and destructors. //@{ /// The default constructor. Cmp(const Projection& p1, const Projection& p2) : _value(UNDEFINED), _objects(&p1, &p2) { } - + /// The copy constructor. template <typename U> Cmp(const Cmp<U>& x) : _value(x), _objects(0, 0) { } - + /// The destructor is not virtual since this is not intended to be a base class. ~Cmp() { }; - + /// The assignment operator. template <typename U> const Cmp<Projection>& operator=(const Cmp<U>& x) { @@ -130,9 +133,9 @@ return *this; } //@} - + public: - + /// Automatically convert to an enum. operator CmpState() const { _compare(); @@ -145,7 +148,7 @@ _compare(); return _value; } - + /// If this state is equivalent, set this state to the state of \a c. template <typename U> const Cmp<Projection>& operator||(const Cmp<U>& c) const { @@ -153,9 +156,9 @@ if (_value == EQUIVALENT) _value = c; return *this; } - + private: - + /// Perform the actual comparison if necessary. void _compare() const { if (_value == UNDEFINED) { @@ -171,27 +174,27 @@ } } } - + private: - + /// The state of this object. mutable CmpState _value; - + /// The objects to be compared. pair<const Projection*, const Projection*> _objects; - + }; - /// Specialization of the Cmp helper class to be used when checking the - /// ordering of two floating point numbers. When implicitly converted to an - /// integer the value will be negative if the two objects used in the - /// constructor are ordered and positive if they are not. Zero will be - /// returned if they are equal. This specialization uses the Rivet - /// fuzzyEquals function to indicate equivalence protected from numerical - /// precision effects. + /// @brief Specialization of Cmp for checking the ordering of two floating point numbers. + /// + /// When implicitly converted to an integer the value will be negative if the + /// two objects used in the constructor are ordered and positive if they are + /// not. Zero will be returned if they are equal. This specialization uses the + /// Rivet fuzzyEquals function to indicate equivalence protected from + /// numerical precision effects. /// /// The main usage of the Cmp class is if several variables should be /// checked for ordering in which case several Cmp objects can be @@ -201,23 +204,23 @@ template <> class Cmp<double> { public: - + /// @name Standard constructors and destructors. //@{ /// The default constructor. Cmp(const double p1, const double p2) : _value(UNDEFINED), _numA(p1), _numB(p2) { } - + /// The copy constructor. template <typename U> Cmp(const Cmp<U>& x) : _value(x), _numA(0.0), _numB(0.0) { } - + /// The destructor is not virtual since this is not intended to be a base class. ~Cmp() { } - + /// The assignment operator. template <typename U> const Cmp<double>& operator=(const Cmp<U>& x) { @@ -225,9 +228,9 @@ return *this; } //@} - + public: - + /// Automatically convert to an enum. operator CmpState() const { _compare(); @@ -239,7 +242,7 @@ _compare(); return _value; } - + /// If this state is equivalent, set this state to the state of \a c. template <typename U> const Cmp<double>& operator||(const Cmp<U>& c) const { @@ -247,9 +250,9 @@ if (_value == EQUIVALENT) _value = c; return *this; } - + private: - + /// Perform the actual comparison if necessary. void _compare() const { if (_value == UNDEFINED) { @@ -258,15 +261,15 @@ else _value = UNORDERED; } } - + private: - + /// The state of this object. mutable CmpState _value; - + /// The objects to be compared. double _numA, _numB; - + }; @@ -285,6 +288,7 @@ /// Typedef for Cmp<Projection> typedef Cmp<Projection> PCmp; + /// Global helper function for easy creation of Cmp<Projection> objects. inline Cmp<Projection> pcmp(const Projection& p1, const Projection& p2) { return Cmp<Projection>(p1, p2); Modified: trunk/include/Rivet/Event.hh ============================================================================== --- trunk/include/Rivet/Event.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Event.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -8,6 +8,8 @@ namespace Rivet { + /// Rivet wrapper for HepMC event and Projection references. + /// /// Event is a concrete class representing an generated event in /// Rivet. It is constructed given a HepMC::GenEvent, a pointer to /// which is kept by the Event object throughout its lifetime. The user @@ -18,7 +20,6 @@ /// track of all Projections object which have been applied to the /// Event so far. class Event { - public: /// @name Standard constructors and destructors. Modified: trunk/include/Rivet/Exceptions.hh ============================================================================== --- trunk/include/Rivet/Exceptions.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Exceptions.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -7,25 +7,25 @@ namespace Rivet { - /// Generic runtime Rivet error. + /// @brief Generic runtime Rivet error. class Error : public std::runtime_error { public: Error(const std::string& what) : std::runtime_error(what) {} }; - /// Also typedef Exception, so that it's there. + /// @brief Rivet::Exception is a synonym for Rivet::Error. typedef Error Exception; - /// Error for e.g. use of invalid bin ranges. + /// @brief Error for e.g. use of invalid bin ranges. class RangeError : public Error { public: RangeError(const std::string& what) : Error(what) {} }; - /// @todo Clarify where this might arise! + /// @brief Error specialisation for places where alg logic has failed. class LogicError : public Error { public: LogicError(const std::string& what) : Error(what) {} Modified: trunk/include/Rivet/Math/LorentzTrans.hh ============================================================================== --- trunk/include/Rivet/Math/LorentzTrans.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Math/LorentzTrans.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -17,6 +17,7 @@ } + /// @brief Object implementing Lorentz transform calculations and boosts. class LorentzTransform { friend string toString(const LorentzTransform& lt); Modified: trunk/include/Rivet/Math/Matrix3.hh ============================================================================== --- trunk/include/Rivet/Math/Matrix3.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Math/Matrix3.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -9,47 +9,48 @@ namespace Rivet { -class Matrix3 : public Matrix<3> { -public: - Matrix3() { } - - Matrix3(const Matrix<3>& m3) : Matrix<3>::Matrix<3>(m3) { } - - Matrix3(const Vector3& axis, const double angle) { - const Vector3 normaxis = axis.unit(); - _matrix.loadRotation3(angle, normaxis._vec); - } - - Matrix3(const Vector3& from, const Vector3& to) { - setAsRotation(from, to); - } - -public: - static Matrix3 mkXRotation(const double angle) { - return Matrix3(Vector3(1,0,0), angle); - } - - static Matrix3 mkYRotation(const double angle) { - return Matrix3(Vector3(0,1,0), angle); - } - - static Matrix3 mkZRotation(const double angle) { - return Matrix3(Vector3(0,0,1), angle); - } - -public: - Matrix3& setAsRotation(const Vector3& from, const Vector3& to) { - const double theta = angle(from, to); - if (Rivet::isZero(theta)) { - _matrix.loadIdentity(); - } else { - const Vector3 normaxis = cross(from, to).unit(); - _matrix.loadRotation3(theta, normaxis._vec); + /// @brief Specialisation of MatrixN to aid 3 dimensional rotations. + class Matrix3 : public Matrix<3> { + public: + Matrix3() { } + + Matrix3(const Matrix<3>& m3) : Matrix<3>::Matrix<3>(m3) { } + + Matrix3(const Vector3& axis, const double angle) { + const Vector3 normaxis = axis.unit(); + _matrix.loadRotation3(angle, normaxis._vec); } - return *this; - } -}; + Matrix3(const Vector3& from, const Vector3& to) { + setAsRotation(from, to); + } + + public: + static Matrix3 mkXRotation(const double angle) { + return Matrix3(Vector3(1,0,0), angle); + } + + static Matrix3 mkYRotation(const double angle) { + return Matrix3(Vector3(0,1,0), angle); + } + + static Matrix3 mkZRotation(const double angle) { + return Matrix3(Vector3(0,0,1), angle); + } + + public: + Matrix3& setAsRotation(const Vector3& from, const Vector3& to) { + const double theta = angle(from, to); + if (Rivet::isZero(theta)) { + _matrix.loadIdentity(); + } else { + const Vector3 normaxis = cross(from, to).unit(); + _matrix.loadRotation3(theta, normaxis._vec); + } + return *this; + } + + }; } Modified: trunk/include/Rivet/Math/MatrixN.hh ============================================================================== --- trunk/include/Rivet/Math/MatrixN.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Math/MatrixN.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -25,6 +25,7 @@ /////////////////////////////////// + /// @brief General \f$ N \f$-dimensional mathematical matrix object. template <size_t N> class Matrix { template <size_t M> Modified: trunk/include/Rivet/Math/Vector3.hh ============================================================================== --- trunk/include/Rivet/Math/Vector3.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Math/Vector3.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -22,7 +22,7 @@ Vector3 operator-(const Vector3&, const Vector3&); - + /// @brief Three-dimensional specialisation of Vector. class Vector3 : public Vector<3> { friend class Matrix3; @@ -152,7 +152,7 @@ throw std::runtime_error("The specified phi mapping scheme is not yet implemented"); } } - + /// Synonym for azimuthalAngle. double phi(const PhiMapping mapping = ZERO_2PI) const { return azimuthalAngle(mapping); Modified: trunk/include/Rivet/Math/Vector4.hh ============================================================================== --- trunk/include/Rivet/Math/Vector4.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Math/Vector4.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -16,6 +16,7 @@ FourVector transform(const LorentzTransform& lt, const FourVector& v4); + /// @brief Specialisation of VectorN to a general (non-momentum) Lorentz 4-vector. class FourVector : public Vector<4> { friend FourVector multiply(const double a, const FourVector& v); friend FourVector multiply(const FourVector& v, const double a); @@ -410,31 +411,31 @@ } /// struct for sorting by increasing energy - + struct byEAscending{ bool operator()(const FourMomentum &left, const FourMomentum &right) const{ double pt2left = left.E(); double pt2right = right.E(); return pt2left < pt2right; } - + bool operator()(const FourMomentum *left, const FourMomentum *right) const{ return (*this)(left, right); } }; - + /// struct for sorting by decreasing energy - + struct byEDescending{ bool operator()(const FourMomentum &left, const FourMomentum &right) const{ return byEAscending()(right, left); } - + bool operator()(const FourMomentum *left, const FourVector *right) const{ return (*this)(left, right); } }; - + }; Modified: trunk/include/Rivet/ParticleBase.hh ============================================================================== --- trunk/include/Rivet/ParticleBase.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/ParticleBase.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -7,6 +7,7 @@ namespace Rivet { + /// @brief Base class for particle-like things like Particle and Jet class ParticleBase { public: Modified: trunk/include/Rivet/Projection.hh ============================================================================== --- trunk/include/Rivet/Projection.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projection.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -15,6 +15,8 @@ namespace Rivet { + /// @brief Base class for all Rivet projections. + /// /// Projection is the base class of all Projections to be used by /// Rivet. A Projection object can be assigned to an Event object and /// will then define a processed part of the information available in @@ -24,17 +26,17 @@ /// The main virtual functions to be overridden by concrete sub-classes /// are project(const Event &) and compare(const Projection &). class Projection : public ProjectionApplier { - + public: - + /// Event is a friend. friend class Event; - + /// The Cmp specialization for Projection is a friend. friend class Cmp<Projection>; - + public: - + /// @name Standard constructors and destructors. //@{ /// The default constructor. @@ -42,14 +44,14 @@ /// Clone on the heap. virtual const Projection* clone() const = 0; - + /// The destructor. virtual ~Projection(); //@} - + public: - + /// Take the information available in the Event and make the /// calculations necessary to obtain the projection. Note that this /// function must never be called except inside the @@ -79,7 +81,7 @@ /// whether this should be ordered before or after \a p, or if it is /// equivalent with \a p. virtual int compare(const Projection& p) const = 0; - + public: /// Determine whether this object should be ordered before the object @@ -88,7 +90,7 @@ /// objects is used. Otherwise, if the objects are of the same class, /// the virtual compare(const Projection &) will be returned. bool before(const Projection& p) const; - + /// Return the BeamConstraints for this projection, not including /// recursion. Derived classes should ensure that all contained projections /// are registered in the @a _projections set for the beam constraint @@ -106,8 +108,8 @@ _beamPairs.insert(BeamPair(beam1, beam2)); return *this; } - - + + /// Get a Log object based on the getName() property of the calling projection object. Log& getLog() const { string logname = "Rivet.Projection." + name(); @@ -139,7 +141,7 @@ /// Beam-type constraint. set<BeamPair> _beamPairs; - + }; Modified: trunk/include/Rivet/ProjectionApplier.hh ============================================================================== --- trunk/include/Rivet/ProjectionApplier.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/ProjectionApplier.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -13,7 +13,8 @@ namespace Rivet { - + /// @brief Common base class for Projection and Analysis, used for internal polymorphism + /// /// Empty interface used for storing Projection and Analysis pointers in the /// same container (used by the ProjectionHandler) class ProjectionApplier { @@ -122,14 +123,14 @@ const Projection& _addProjection(const Projection& proj, const std::string& name); //@} - - + + private: - + /// Non-templated version of string-based applyProjection, to work around /// header dependency issue. const Projection& _applyProjection(const Event& evt, const std::string& name) const; - + /// Non-templated version of proj-based applyProjection, to work around /// header dependency issue. const Projection& _applyProjection(const Event& evt, const Projection& proj) const; @@ -139,13 +140,13 @@ /// Flag to forbid projection registration in analyses until the init phase bool _allowProjReg; - - + + private: - + /// Pointer to projection handler. ProjectionHandler* _projhandler; - + }; } Modified: trunk/include/Rivet/Projections/AxesDefinition.hh ============================================================================== --- trunk/include/Rivet/Projections/AxesDefinition.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/AxesDefinition.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -8,7 +8,9 @@ namespace Rivet { /** - @brief A pure virtual interface for projections which define a set of 3 + @brief Base class for projections which define a spatial basis. + + A pure virtual interface for projections which define a set of 3 basis vectors. This allows e.g. Thrust and Sphericity to be used interchangeably as defining bases for e.g. hemisphere mass and broadening calculations. Modified: trunk/include/Rivet/Projections/Beam.hh ============================================================================== --- trunk/include/Rivet/Projections/Beam.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/Beam.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -35,10 +35,10 @@ - /// Project out the incoming beams - class Beam : public Projection { + /// @brief Project out the incoming beams + class Beam : public Projection { public: - + /// The default constructor. Beam() { setName("Beam"); Modified: trunk/include/Rivet/Projections/CentralEtHCM.hh ============================================================================== --- trunk/include/Rivet/Projections/CentralEtHCM.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/CentralEtHCM.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -6,11 +6,12 @@ #include "Rivet/Event.hh" #include "Rivet/Projections/FinalStateHCM.hh" - namespace Rivet { - /// Sum up Et of all particles in the hadronic final state in the + /// @brief Summed \f$ E_\perp \f$ of central particles in HCM system. + /// + /// Sum up \f$ E_\perp \f$ of all particles in the hadronic final state in the /// central rapidity bin of the HCM system. class CentralEtHCM : public Projection { Modified: trunk/include/Rivet/Projections/ChargedFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/ChargedFinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/ChargedFinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -12,11 +12,10 @@ namespace Rivet { - /// Project only charged final state particles. + /// @brief Project only charged final state particles. class ChargedFinalState : public FinalState { - public: - + /// @name Constructors //@{ ChargedFinalState(const FinalState& fsp); @@ -39,10 +38,10 @@ protected: - + /// Apply the projection on the supplied event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; }; Modified: trunk/include/Rivet/Projections/ChargedLeptons.hh ============================================================================== --- trunk/include/Rivet/Projections/ChargedLeptons.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/ChargedLeptons.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -10,44 +10,44 @@ namespace Rivet { - /// Project out charged final-state leptons (i.e. electrons and muons, unless - /// you set taus stable!) + /// @brief Get charged final-state leptons + /// + /// NB. This is just electrons and muons, unless you set taus stable! class ChargedLeptons : public Projection { - public: - + /// Constructor ChargedLeptons(const FinalState& fsp) { setName("ChargedLeptons"); addProjection(ChargedFinalState(fsp), "ChFS"); } - + /// Clone on the heap. virtual const Projection* clone() const { return new ChargedLeptons(*this); } protected: - + /// Apply the projection to the event. void project(const Event& evt); - + /// Compare projections. int compare(const Projection& other) const; - + public: - + /// Access the projected leptons. const ParticleVector& chargedLeptons() const { return _theChargedLeptons; } - + private: /// The leptons ParticleVector _theChargedLeptons; - + }; Modified: trunk/include/Rivet/Projections/ClusteredPhotons.hh ============================================================================== --- trunk/include/Rivet/Projections/ClusteredPhotons.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/ClusteredPhotons.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -13,12 +13,10 @@ namespace Rivet { - /// Find final state photons which are found in a cone around - /// any particle in the "signal" final state + /// @brief Find final state photons which in a cone around any particle in the "signal" final state class ClusteredPhotons : public FinalState { - public: - + /// @name Constructors //@{ /// Constructor with the two final states, and the maximum separation in dR @@ -39,15 +37,15 @@ return new ClusteredPhotons(*this); } //@} - + public: protected: - + /// Apply the projection on the supplied event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; @@ -56,7 +54,7 @@ /// maximum cone radius to find photons in double _dRmax; - + }; Modified: trunk/include/Rivet/Projections/DISKinematics.hh ============================================================================== --- trunk/include/Rivet/Projections/DISKinematics.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/DISKinematics.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -11,12 +11,11 @@ namespace Rivet { - /// This class projects out the DIS kinematic variables and relevant - /// boosts for an event. + /// @brief Get the DIS kinematic variables and relevant boosts for an event. class DISKinematics : public Projection { public: - + /// The default constructor. DISKinematics() : _theQ2(-1.0), _theW2(-1.0), _theX(-1.0), _theY(-1.0), _theS(-1.0) @@ -32,9 +31,9 @@ return new DISKinematics(*this); } - + protected: - + /// Perform the projection operation on the supplied event. virtual void project(const Event& e); @@ -75,7 +74,7 @@ const Particle& beamHadron() const { return _inHadron; } - + private: /// The \f$Q^2\f$. @@ -94,7 +93,7 @@ double _theS; Particle _inHadron; - + /// The LorentzRotation needed to boost a particle to the hadronic CM frame. LorentzTransform _hcm; Modified: trunk/include/Rivet/Projections/DISLepton.hh ============================================================================== --- trunk/include/Rivet/Projections/DISLepton.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/DISLepton.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -10,57 +10,56 @@ namespace Rivet { - /// This class projects out the incoming and outgoing leptons in a DIS - /// event. + /// @brief Get the incoming and outgoing leptons in a DIS event. class DISLepton : public Projection { - + public: - + /// @name Constructors. //@{ - + DISLepton(){ setName("DISLepton"); addProjection(Beam(), "Beam"); addProjection(FinalState(), "FS"); } - + /// Clone on the heap. virtual const Projection* clone() const { return new DISLepton(*this); } //@} - - + + protected: - + /// Perform the projection operation on the supplied event. virtual void project(const Event& e); - + /// Compare with other projections. virtual int compare(const Projection& p) const; - + public: - + /// The incoming lepton. const Particle& in() const { return _incoming; } - + /// The outgoing lepton. const Particle& out() const { return _outgoing; } - + const double &pzSign() const { return _sign; } - + private: - + /// The incoming lepton. Particle _incoming; - + /// The outgoing lepton. Particle _outgoing; - + /// The sign of the PZ of the incoming lepton double _sign; - + }; } Modified: trunk/include/Rivet/Projections/FastJets.hh ============================================================================== --- trunk/include/Rivet/Projections/FastJets.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/FastJets.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -29,7 +29,12 @@ typedef vector<fastjet::PseudoJet> PseudoJets; - /// Project out jets found using fastJet package. + + ///////////////////////// + + + + /// Project out jets found using the FastJet package jet algorithms. class FastJets : public JetAlg { public: Modified: trunk/include/Rivet/Projections/FinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/FinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/FinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -6,14 +6,14 @@ #include "Rivet/Particle.hh" #include "Rivet/Event.hh" - namespace Rivet { - /// Project out all final-state particles in an event. + /// @brief Project out all final-state particles in an event. + /// Probably the most important projection in Rivet! class FinalState : public Projection { public: - + /// @name Standard constructors and destructors. //@{ /// The default constructor. May specify the minimum and maximum @@ -21,7 +21,7 @@ FinalState(double mineta = -MAXRAPIDITY, double maxeta = MAXRAPIDITY, double minpt = 0.0*GeV); - + /// A constructor which allows to specify multiple eta ranges /// and the min \f$ p_T \f$ (in GeV). FinalState(const vector<pair<double, double> >& etaRanges, @@ -92,28 +92,28 @@ protected: - + /// Apply the projection to the event. virtual void project(const Event& e); - + /// Compare projections. virtual int compare(const Projection& p) const; /// Decide if a particle is to be accepted or not. bool accept(const Particle& p) const; - + protected: /// The ranges allowed for pseudorapidity. vector<pair<double,double> > _etaRanges; - + /// The minimum allowed transverse momentum. double _ptmin; - + /// The final-state particles. mutable ParticleVector _theParticles; - + }; Modified: trunk/include/Rivet/Projections/FinalStateHCM.hh ============================================================================== --- trunk/include/Rivet/Projections/FinalStateHCM.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/FinalStateHCM.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -7,15 +7,16 @@ #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/DISKinematics.hh" - namespace Rivet { - /// Project all final state particles (except the scattered lepton) - /// boosted to the hadronic center of mass system. + + /// @brief Final state particles boosted to the hadronic center of mass system. + /// + /// NB. The DIS scattered lepton is not included in the final state particles. class FinalStateHCM: public FinalState { public: - + /// Constructor FinalStateHCM(const DISKinematics& kinematicsp) { @@ -27,12 +28,12 @@ virtual const Projection* clone() const { return new FinalStateHCM(*this); } - + protected: - + /// Apply the projection on the supplied event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; }; Modified: trunk/include/Rivet/Projections/FoxWolframMoments.hh ============================================================================== --- trunk/include/Rivet/Projections/FoxWolframMoments.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/FoxWolframMoments.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -17,36 +17,35 @@ namespace Rivet { - /// Project out the total visible energy vector, allowing missing - /// \f$ E_T \f$ etc. to be calculated. - class FoxWolframMoments : public Projection { + /// @brief Calculate Fox-Wolfram moments + class FoxWolframMoments : public Projection { public: - + /// Constructor. FoxWolframMoments(const FinalState& fsp) { setName("FoxWolframMoments"); addProjection(fsp, "FS"); - - /// @todo Let the user supply any projection they like? + + /// @todo Let the user supply any projection they like? VisibleFinalState vfs(fsp); addProjection(vfs, "VFS"); - + // Initialize moments vector for (int i = 0; i < MAXMOMENT ; ++i) { _fwmoments.push_back(0.0); } } - - + + /// Clone on the heap. virtual const Projection* clone() const { return new FoxWolframMoments(*this); } - - + + public: - + /// The projected Fox-Wolfram Moment of order l double getFoxWolframMoment(unsigned int l) const { if (l < MAXMOMENT) { @@ -55,17 +54,17 @@ /// @todo What?!? return -666.0; } - - + + protected: - + /// Apply the projection to the event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; - + private: vector<double> _fwmoments; Modified: trunk/include/Rivet/Projections/HadronicFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/HadronicFinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/HadronicFinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -12,11 +12,11 @@ namespace Rivet { - /// Project only charged final state particles. + /// @brief Project only hadronic final state particles. class HadronicFinalState : public FinalState { public: - + /// Constructor: the supplied FinalState projection is assumed to live through the run. HadronicFinalState(FinalState& fsp) : FinalState(fsp) @@ -24,7 +24,7 @@ setName("HadronicFinalState"); addProjection(fsp, "FS"); } - + HadronicFinalState(double mineta = -MAXRAPIDITY, double maxeta = MAXRAPIDITY, double minpt = 0.0*GeV) @@ -40,13 +40,13 @@ } protected: - + /// Apply the projection on the supplied event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; - + }; Modified: trunk/include/Rivet/Projections/IdentifiedFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/IdentifiedFinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/IdentifiedFinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -12,10 +12,10 @@ namespace Rivet { - /// Produce a final state which only contains specified particle IDs. + /// @brief Produce a final state which only contains specified particle IDs. class IdentifiedFinalState : public FinalState { public: - + /// @name Constructors //@{ @@ -23,10 +23,10 @@ IdentifiedFinalState(const FinalState& fsp); /// Constructor with a single eta range argument. - IdentifiedFinalState(double etamin=-MAXRAPIDITY, - double etamax=MAXRAPIDITY, + IdentifiedFinalState(double etamin=-MAXRAPIDITY, + double etamax=MAXRAPIDITY, double ptMin=0.0*GeV); - + /// Constructor which allows to specify multiple eta ranges /// and the min \f$ p_T \f$. IdentifiedFinalState(const vector<pair<double, double> >& etaRanges, @@ -37,7 +37,7 @@ return new IdentifiedFinalState(*this); } //@} - + public: @@ -96,13 +96,13 @@ void reset() { _pids.clear(); } - + protected: - + /// Apply the projection on the supplied event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; @@ -111,7 +111,7 @@ /// The final-state particles. set<PdgId> _pids; - + }; Modified: trunk/include/Rivet/Projections/InitialQuarks.hh ============================================================================== --- trunk/include/Rivet/Projections/InitialQuarks.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/InitialQuarks.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -9,11 +9,13 @@ namespace Rivet { - /// Project out quarks from the hard process in e+ e- -> Z0 events - /// @warning This is a very dangerous and specific projection! Use e.g. PID::hasBottom and friends instead - class InitialQuarks : public Projection { + /// @brief Project out quarks from the hard process in \f$ e^+ e^- \to Z^0 \f$ events + /// + /// @warning This is a very dangerous and specific projection! Use + /// e.g. PID::hasBottom and friends instead whenever possible + class InitialQuarks : public Projection { public: - + /// @name Standard constructors and destructors. //@{ /// The default constructor. May specify the minimum and maximum @@ -29,7 +31,7 @@ return new InitialQuarks(*this); } //@} - + /// Access the projected final-state particles. virtual const ParticleVector& particles() const { return _theParticles; } @@ -40,19 +42,19 @@ protected: - + /// Apply the projection to the event. virtual void project(const Event& e); - + /// Compare projections. virtual int compare(const Projection& p) const; - + protected: /// The final-state particles. ParticleVector _theParticles; - + }; } Modified: trunk/include/Rivet/Projections/InvMassFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/InvMassFinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/InvMassFinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -7,10 +7,10 @@ namespace Rivet { - /// Identify particles which can be paired to make an invariant mass within a given mass window + /// @brief Identify particles which can be paired to fit within a given invariant mass window class InvMassFinalState : public FinalState { public: - + // Constructor for a single inv-mass pair InvMassFinalState(const FinalState& fsp, const std::pair<PdgId, PdgId>& idpair, // pair of decay products @@ -22,8 +22,8 @@ const std::vector<std::pair<PdgId, PdgId> >& idpairs, // vector of pairs of decay products double minmass, // min inv mass double maxmass); // max inv mass - - + + /// Clone on the heap. virtual const Projection* clone() const { return new InvMassFinalState(*this); @@ -34,19 +34,19 @@ /// Constituent pairs const std::vector<std::pair<Particle, Particle> >& particlePairs() const; - + protected: - + /// Apply the projection on the supplied event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; private: - + /// Handy typedef for a pair of PID codes typedef pair<PdgId,PdgId> PidPair; @@ -61,7 +61,7 @@ /// Max inv mass double _maxmass; - + }; Modified: trunk/include/Rivet/Projections/IsolationEstimators.hh ============================================================================== --- trunk/include/Rivet/Projections/IsolationEstimators.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/IsolationEstimators.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -11,6 +11,7 @@ namespace Rivet { + /// @cond ISOLATION_DETAILS template < typename T, typename C > class IsolationEstimator { @@ -18,7 +19,7 @@ public: virtual ~IsolationEstimator(){}; - + virtual double estimate(const T & t, const C & c) const = 0; virtual int compare(const IsolationEstimator < T, C > *other) const = 0; @@ -69,11 +70,11 @@ return radcmp; return 0; } - + double radius() const { return _radius; } - + double ptMin() const { return _ptmin; } @@ -90,7 +91,7 @@ public: MultiplicityInConeEstimator(double radius, double ptmin = 0.0) : _radius(radius), _ptmin(ptmin) { } - + virtual double estimate(const T & t, const C & c) const { double npart = 0; for (typename C::const_iterator ic = c.begin(); ic != c.end(); ++ic) { @@ -113,15 +114,15 @@ return radcmp; return 0; } - + double radius() const { return _radius; } - + double ptMin() const { return _ptmin; } - + private: double _radius; double _ptmin; @@ -141,6 +142,8 @@ }; + /// @endcond + } #endif Modified: trunk/include/Rivet/Projections/IsolationTools.hh ============================================================================== --- trunk/include/Rivet/Projections/IsolationTools.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/IsolationTools.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -6,12 +6,14 @@ #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/JetAlg.hh" +namespace Rivet { -namespace Rivet{ typedef IsolationProjection<JetAlg, JetAlg> AllJetsIso; typedef IsolationProjection<FinalState, FinalState> AllParticleIso; typedef IsolationProjection<FinalState, JetAlg> ParticleFromJetIso; + } + #endif Modified: trunk/include/Rivet/Projections/KtJets.hh ============================================================================== --- trunk/include/Rivet/Projections/KtJets.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/KtJets.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -7,14 +7,14 @@ #include "KtJet/KtJet.h" #include "KtJet/KtEvent.h" - namespace Rivet { - /// Project out jets based on configurable kT algorithm. + + /// @brief Project out jets based on configurable kT algorithm. class KtJets : public Projection { - + public: - + /// @name Standard constructors and destructors. //@{ @@ -38,7 +38,7 @@ setName("KtJets"); addProjection(fsp, "FS"); } - + /// Clone on the heap. virtual const Projection* clone() const { @@ -52,7 +52,7 @@ } //@} - + protected: /// Perform the projection on the Event. @@ -63,7 +63,7 @@ public: - + /// @name Access the projected NJets. //@ { int getNJets() const { return _pktev->getNJets(); } @@ -88,7 +88,7 @@ private: - + /// Internal KtEvent, rebuilt every time an event is projected, but not otherwise. KtJet::KtEvent* _pktev; @@ -97,7 +97,7 @@ /// Map of vectors of y scales. This is mutable so we can use caching/lazy evaluation. mutable map<int, vector<double> > _yscales; - + }; } Modified: trunk/include/Rivet/Projections/LeadingParticlesFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/LeadingParticlesFinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/LeadingParticlesFinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -10,7 +10,7 @@ class Particle; - /// Project only the highest-pT occurrences of FS particles with the specified PDG IDs. + /// @brief Get the highest-pT occurrences of FS particles with the specified PDG IDs. class LeadingParticlesFinalState : public FinalState { public: @@ -47,7 +47,7 @@ // /// Get a particle of a particular ID (check it exists first) // bool get(const PdgId pid) const; - + protected: /// Apply the projection on the supplied event. Modified: trunk/include/Rivet/Projections/LossyFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/LossyFinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/LossyFinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -12,12 +12,10 @@ namespace Rivet { - /// Randomly lose a fraction of the particles from the supplied final state projection. - /// @todo This needs an overhaul to make the base projections work properly. Slicing + inheritance again. + /// @brief Randomly lose a fraction of the particles from the supplied final state projection. class LossyFinalState : public FinalState { - public: - + /// @name Constructors //@{ @@ -29,7 +27,7 @@ addProjection(fsp, "FS"); assert(_lossFraction >= 0); } - + /// Stand-alone constructor. Initialises the base FinalState projection. LossyFinalState(double lossfraction, double mineta = -MAXRAPIDITY, @@ -49,14 +47,16 @@ //@} + protected: - + /// Apply the projection on the supplied event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; + private: /// Inner functor used to implement the random lossiness. @@ -71,11 +71,10 @@ /// Fraction of particles to lose. const double _lossFraction; - + }; } - #endif Modified: trunk/include/Rivet/Projections/MergedFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/MergedFinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/MergedFinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -12,7 +12,7 @@ namespace Rivet { - /// Provide access to final state particles merged from two FinalState projections. + /// @brief Get final state particles merged from two FinalState projections. class MergedFinalState : public FinalState { public: Modified: trunk/include/Rivet/Projections/MissingMomentum.hh ============================================================================== --- trunk/include/Rivet/Projections/MissingMomentum.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/MissingMomentum.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -12,10 +12,11 @@ /// @brief Calculate missing \f$ E \f$, \f$ E_\perp \f$ etc. + /// /// Project out the total visible energy vector, allowing missing - /// \f E \f$, \f$ E_\perp \f$ etc. to be calculated. Final state + /// \f E \f$, \f$ E_\perp \f$ etc. to be calculated. Final state /// visibility restrictions are automatic. - class MissingMomentum : public Projection { + class MissingMomentum : public Projection { public: /// Default constructor with uncritical FS. @@ -27,7 +28,7 @@ addProjection(VisibleFinalState(fs), "VisibleFS"); } - + /// Constructor. MissingMomentum(const FinalState& fs) { @@ -42,7 +43,7 @@ return new MissingMomentum(*this); } - + public: /// The projected four-momentum vector @@ -53,16 +54,16 @@ /// The projected scalar transverse energy double scalarET() const { return _set; } - + protected: - + /// Apply the projection to the event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; - + public: @@ -71,13 +72,13 @@ private: - + /// The total visible momentum FourMomentum _momentum; - + /// Scalar transverse energy double _set; - + }; } Modified: trunk/include/Rivet/Projections/Multiplicity.hh ============================================================================== --- trunk/include/Rivet/Projections/Multiplicity.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/Multiplicity.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -10,7 +10,7 @@ namespace Rivet { - /// Count the final-state particles in an event. + /// @brief Count the final-state particles in an event. class Multiplicity : public Projection { public: Modified: trunk/include/Rivet/Projections/NeutralFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/NeutralFinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/NeutralFinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -12,7 +12,7 @@ namespace Rivet { - /// Project only neutral final state particles. + /// @brief Project only neutral final state particles. class NeutralFinalState : public FinalState { public: Modified: trunk/include/Rivet/Projections/PVertex.hh ============================================================================== --- trunk/include/Rivet/Projections/PVertex.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/PVertex.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -25,6 +25,7 @@ /// @name Standard constructors and destructors. //@{ + /// The default constructor. PVertex() : _thePVertex(0) @@ -45,9 +46,9 @@ return Vector3(0,0,0); } - + protected: - + /// Do the projection. void project(const Event& e); @@ -56,13 +57,13 @@ int compare(const Projection& UNUSED(p)) const { return EQUIVALENT; } - + private: /// The Primary Vertex in the current collision. GenVertex* _thePVertex; - + }; } Modified: trunk/include/Rivet/Projections/Thrust.hh ============================================================================== --- trunk/include/Rivet/Projections/Thrust.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/Thrust.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -11,9 +11,7 @@ /** - @brief Obtain the e+ e- thrust event shape, consisting of the thrust basis and the - thrust scalar values in each direction (the thrust, thrust major and thrust - minor). + @brief Get the e+ e- thrust basis and the thrust, thrust major and thrust minor scalars. @author Andy Buckley @@ -117,7 +115,7 @@ /// Manually calculate the thrust, without engaging the caching system void calc(const vector<FourMomentum>& fsmomenta); - + /// Manually calculate the thrust, without engaging the caching system void calc(const vector<Vector3>& threeMomenta); Modified: trunk/include/Rivet/Projections/TotalVisibleMomentum.hh ============================================================================== --- trunk/include/Rivet/Projections/TotalVisibleMomentum.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/TotalVisibleMomentum.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -11,13 +11,12 @@ namespace Rivet { - /// Project out the total energy vector, allowing missing - /// \f$ E_T \f$ etc. to be calculated. + /// @brief Get the total energy vector, allowing missing \f$ E_T \f$ etc. to be calculated. /// @deprecated This is confusing because the visibility is not automatic. Use MissingMomentum instead. class TotalVisibleMomentum : public Projection { - + public: - + /// Constructor. Make sure you supply an appropriately vetoed FS! TotalVisibleMomentum(const FinalState& fsp) { @@ -30,7 +29,7 @@ return new TotalVisibleMomentum(*this); } - + public: /// The projected four-momentum vector FourMomentum& momentum() { return _momentum; } @@ -40,24 +39,24 @@ /// The projected scalar transverse energy double scalarET() const { return _set; } - + protected: - + /// Apply the projection to the event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; - + private: - + /// The total visible momentum FourMomentum _momentum; - + /// Scalar transverse energy double _set; - + }; } Modified: trunk/include/Rivet/Projections/TriggerCDFRun0Run1.hh ============================================================================== --- trunk/include/Rivet/Projections/TriggerCDFRun0Run1.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/TriggerCDFRun0Run1.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -10,10 +10,10 @@ namespace Rivet { - /// Project out the incoming beams + /// @brief Access to the min bias triggers used by CDF in Run 0 and Run 1 class TriggerCDFRun0Run1 : public Projection { public: - + /// Default constructor. TriggerCDFRun0Run1() { setName("TriggerCDFRun0Run1"); Modified: trunk/include/Rivet/Projections/TriggerUA5.hh ============================================================================== --- trunk/include/Rivet/Projections/TriggerUA5.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/TriggerUA5.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -10,10 +10,10 @@ namespace Rivet { - /// Project out the incoming beams + /// @brief Access to the min bias triggers used by UA5 class TriggerUA5 : public Projection { public: - + /// Default constructor. TriggerUA5(); @@ -51,7 +51,7 @@ return make_pair(_n_plus, _n_minus); } - /// Project on to the Event + /// Project on to the event void project(const Event& evt); Modified: trunk/include/Rivet/Projections/UnstableFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/UnstableFinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/UnstableFinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -9,11 +9,10 @@ namespace Rivet { - /// Project out all final-state particles in an event. + /// @brief Project out all physical-but-decayed particles in an event. class UnstableFinalState : public Projection { - public: - + /// @name Standard constructors and destructors. //@{ /// The default constructor. May specify the minimum and maximum @@ -35,7 +34,7 @@ return new UnstableFinalState(*this); } //@} - + /// Access the projected final-state particles. virtual const ParticleVector& particles() const { return _theParticles; } @@ -44,30 +43,33 @@ /// @deprecated Is this final state empty? virtual bool isEmpty() const { return _theParticles.empty(); } + protected: - + /// Apply the projection to the event. virtual void project(const Event& e); - + /// Compare projections. virtual int compare(const Projection& p) const; - + + protected: /// The minimum allowed pseudorapidity. double _etamin; - + /// The maximum allowed pseudorapidity. double _etamax; - + /// The minimum allowed transverse momentum. double _ptmin; - + /// The final-state particles. ParticleVector _theParticles; - + }; + } Modified: trunk/include/Rivet/Projections/VetoedFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/VetoedFinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/VetoedFinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -12,7 +12,7 @@ namespace Rivet { - /// Specify that classes of particles are to be excluded from the final state. + /// @brief FS modifier to exclude classes of particles from the final state. class VetoedFinalState : public FinalState { public: @@ -26,7 +26,7 @@ /// Typedef for a veto on a composite particle mass. typedef multimap<int, BinaryCut> CompositeVeto; - + /// @name Constructors //@{ /// Default constructor. @@ -67,7 +67,7 @@ return new VetoedFinalState(*this); } //@} - + public: @@ -125,7 +125,7 @@ _nCompositeDecays.insert(nProducts); return *this; } - + /// Veto the decay products of particle with pdg id /// @todo 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 @@ -133,7 +133,7 @@ _parentVetoes.insert(id); return *this; } - + /// Set the list of particle IDs and \f$ p_T \f$ ranges to veto. VetoedFinalState& setVetoDetails(const VetoDetails& ids) { _vetoCodes = ids; @@ -145,7 +145,7 @@ _vetoCodes.clear(); return *this; } - + /// Veto particles from a supplied final state. VetoedFinalState& addVetoOnThisFinalState(FinalState& fs) { @@ -159,10 +159,10 @@ protected: - + /// Apply the projection on the supplied event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; @@ -171,11 +171,11 @@ /// The final-state particles. VetoDetails _vetoCodes; - + /// Composite particle masses to veto CompositeVeto _compositeVetoes; set<int> _nCompositeDecays; - + typedef set<long> ParentVetos; /// Set of decaying particle IDs to veto Modified: trunk/include/Rivet/Projections/VisibleFinalState.hh ============================================================================== --- trunk/include/Rivet/Projections/VisibleFinalState.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/VisibleFinalState.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -13,10 +13,10 @@ namespace Rivet { - /// Final state modifier which excludes any particles which are not experimentally visible + /// @brief Final state modifier excluding particles which are not experimentally visible class VisibleFinalState : public FinalState { public: - + /// @name Constructors //@{ @@ -38,13 +38,13 @@ } //@} - + protected: - + /// Apply the projection on the supplied event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; Modified: trunk/include/Rivet/Projections/WFinder.hh ============================================================================== --- trunk/include/Rivet/Projections/WFinder.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/WFinder.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -12,11 +12,13 @@ namespace Rivet { + /// @brief Convenience finder of leptonically decaying Ws + /// /// Chain together different projections as convenience for finding W's - /// from two leptons in the final state + /// from two leptons in the final state, including photon clustering. class WFinder : public FinalState { public: - + /// @name Constructors //@{ @@ -72,10 +74,10 @@ protected: - + /// Apply the projection on the supplied event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; Modified: trunk/include/Rivet/Projections/ZFinder.hh ============================================================================== --- trunk/include/Rivet/Projections/ZFinder.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Projections/ZFinder.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -12,12 +12,14 @@ namespace Rivet { + /// @brief Convenience finder of leptonically decaying Zs + /// /// Chain together different projections as convenience for finding Z's - /// from two leptons in the final state + /// from two leptons in the final state, including photon clustering. class ZFinder : public FinalState { public: - + /// @name Constructors //@{ @@ -67,10 +69,10 @@ const FinalState& constituentsFinalState() const; protected: - + /// Apply the projection on the supplied event. void project(const Event& e); - + /// Compare projections. int compare(const Projection& p) const; Modified: trunk/include/Rivet/Run.hh ============================================================================== --- trunk/include/Rivet/Run.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Run.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -12,8 +12,8 @@ namespace Rivet { + /// @brief Interface to handle a run of events read from a HepMC stream or file. class Run { - public: /// @name Standard constructors and destructors. */ @@ -65,7 +65,7 @@ /// AnalysisHandler object AnalysisHandler& _ah; - + /// @name Run variables obtained from events or command line //@{ Modified: trunk/include/Rivet/Tools/TypeTraits.hh ============================================================================== --- trunk/include/Rivet/Tools/TypeTraits.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Tools/TypeTraits.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -11,7 +11,10 @@ /// some trickery with typedefs and static const integral types (or /// enums) to implement partial function specialisation as a work-around. + /// @cond INTERNAL + struct RefType { }; + struct PtrType { }; template <typename T> @@ -27,6 +30,8 @@ typedef PtrType ArgType; }; + /// @endcond + } #endif Modified: trunk/include/Rivet/Tools/osdir.hh ============================================================================== --- trunk/include/Rivet/Tools/osdir.hh Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/include/Rivet/Tools/osdir.hh Wed Apr 21 16:48:22 2010 (r2409) @@ -19,6 +19,8 @@ #ifndef OSLINK_OSDIR_HEADER_H_ #define OSLINK_OSDIR_HEADER_H_ +/// @cond OSDIR + #if defined(unix) || defined(__unix) || defined(__unix__) #define OSLINK_OSDIR_POSIX #elif defined(_WIN32) @@ -90,71 +92,73 @@ bool willfail; std::string current; }; -} - -#elif defined(OSLINK_OSDIR_WINDOWS) - -#include <windows.h> -#include <winbase.h> - -namespace oslink -{ - class directory - { - public: - directory(const std::string& aName) - : handle(INVALID_HANDLE_VALUE), willfail(false) - { - // First check the attributes trying to access a non-directory with - // FindFirstFile takes ages - DWORD attrs = GetFileAttributes(aName.c_str()); - if ( (attrs == 0xFFFFFFFF) || ((attrs && FILE_ATTRIBUTE_DIRECTORY) == 0) ) - { - willfail = true; - return; - } - std::string Full(aName); - // Circumvent a problem in FindFirstFile with c:\\* as parameter - if ( (Full.length() > 0) && (Full[Full.length()-1] != '\\') ) - Full += "\\"; - WIN32_FIND_DATA entry; - handle = FindFirstFile( (Full+"*").c_str(), &entry); - if (handle == INVALID_HANDLE_VALUE) - willfail = true; - else - current = entry.cFileName; - } - ~directory() - { - if (handle != INVALID_HANDLE_VALUE) - FindClose(handle); - } - - operator void*() const - { - return willfail ? (void*)0:(void*)(-1); - } - std::string next() - { - std::string prev = current; - WIN32_FIND_DATA entry; - int ok = FindNextFile(handle, &entry); - if (!ok) - willfail = true; - else - current = entry.cFileName; - return current; - } - private: - HANDLE handle; - bool willfail; - std::string current; - }; -} +} + +#elif defined(OSLINK_OSDIR_WINDOWS) + +#include <windows.h> +#include <winbase.h> + +namespace oslink +{ + class directory + { + public: + directory(const std::string& aName) + : handle(INVALID_HANDLE_VALUE), willfail(false) + { + // First check the attributes trying to access a non-directory with + // FindFirstFile takes ages + DWORD attrs = GetFileAttributes(aName.c_str()); + if ( (attrs == 0xFFFFFFFF) || ((attrs && FILE_ATTRIBUTE_DIRECTORY) == 0) ) + { + willfail = true; + return; + } + std::string Full(aName); + // Circumvent a problem in FindFirstFile with c:\\* as parameter + if ( (Full.length() > 0) && (Full[Full.length()-1] != '\\') ) + Full += "\\"; + WIN32_FIND_DATA entry; + handle = FindFirstFile( (Full+"*").c_str(), &entry); + if (handle == INVALID_HANDLE_VALUE) + willfail = true; + else + current = entry.cFileName; + } + ~directory() + { + if (handle != INVALID_HANDLE_VALUE) + FindClose(handle); + } + + operator void*() const + { + return willfail ? (void*)0:(void*)(-1); + } + std::string next() + { + std::string prev = current; + WIN32_FIND_DATA entry; + int ok = FindNextFile(handle, &entry); + if (!ok) + willfail = true; + else + current = entry.cFileName; + return current; + } + private: + HANDLE handle; + bool willfail; + std::string current; + }; +} #endif +/// @endcond + #endif /** Modified: trunk/src/Analyses/CDF_2004_S5839831.cc ============================================================================== --- trunk/src/Analyses/CDF_2004_S5839831.cc Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/src/Analyses/CDF_2004_S5839831.cc Wed Apr 21 16:48:22 2010 (r2409) @@ -35,12 +35,16 @@ private: + + /// @cond CONEUE_DETAIL + struct ConesInfo { ConesInfo() : numMax(0), numMin(0), ptMax(0), ptMin(0), ptDiff(0) {} unsigned int numMax, numMin; double ptMax, ptMin, ptDiff; }; + /// @endcond ConesInfo _calcTransCones(const double etaLead, const double phiLead, const ParticleVector& tracks) { Modified: trunk/src/Analyses/CDF_2008_LEADINGJETS.cc ============================================================================== --- trunk/src/Analyses/CDF_2008_LEADINGJETS.cc Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/src/Analyses/CDF_2008_LEADINGJETS.cc Wed Apr 21 16:48:22 2010 (r2409) @@ -9,16 +9,17 @@ namespace Rivet { - /* @brief CDF Run II underlying event in leading jet events - * @author Hendrik Hoeth - * - * Rick Field's measurement of the underlying event in "leading jet" events. - * The leading jet (CDF midpoint R=0.7) must be within |eta|<2 and defines - * the "toward" phi direction. Particles are selected in |eta|<1. For the pT - * related observables there is a pT>0.5 GeV cut. For sum(ET) there is no pT cut. - * - * - * @par Run conditions + /// @brief CDF Run II underlying event in leading jet events + /// @author Hendrik Hoeth + /// + /// Rick Field's measurement of the underlying event in "leading jet" events. + /// The leading jet (CDF midpoint \f$ R = 0.7 \f$) must be within \f$|\eta| < 2 \f$ + /// and defines the "toward" phi direction. Particles are selected in + /// \f$ |\eta| < 1 \f$. For the \f$ p_\perp \f$-related observables there + /// is a \f$ p_\perp > 0.5 \f$ GeV cut. For \f$ \sum E_\perp \f$ there is no + /// \f$ p_\perp \f$ cut. + /// + /* @par Run conditions * * @arg \f$ \sqrt{s} = \f$ 1960 GeV * @arg Run with generic QCD events. Modified: trunk/src/Analyses/CDF_2008_NOTE_9351.cc ============================================================================== --- trunk/src/Analyses/CDF_2008_NOTE_9351.cc Wed Apr 21 16:11:08 2010 (r2408) +++ trunk/src/Analyses/CDF_2008_NOTE_9351.cc Wed Apr 21 16:48:22 2010 (r2409) @@ -9,15 +9,15 @@ namespace Rivet { - /* @brief CDF Run II underlying event in Drell-Yan - * @author Hendrik Hoeth - * - * Measurement of the underlying event in Drell-Yan Z/gamma->e+e- - * and Z/gamma->mu+mu- events. The reconstructed Z defines the - * phi orientation. A Z mass window cut is applied. - * - * - * @par Run conditions + /// @brief CDF Run II underlying event in Drell-Yan + /// @author Hendrik Hoeth + /// + /// Measurement of the underlying event in Drell-Yan + /// \f$ Z/\gamma^* \to e^+ e^- \f$ and + /// \f$ Z/\gamma^* \to \mu^+ \mu^- \f$ events. The reconstructed + /// Z defines the \f$ \phi \f$ orientation. A Z mass window cut is applied. + /// + /* @par Run conditions * * @arg \f$ \sqrt{s} = \f$ 1960 GeV * @arg produce Drell-Yan events @@ -46,7 +46,7 @@ const ChargedFinalState clfs(-1.0, 1.0, 20*GeV); addProjection(cfs, "FS"); addProjection(ChargedLeptons(clfs), "CL"); - + // Book histograms _hist_tnchg = bookProfile1D( 1, 1, 1); _hist_pnchg = bookProfile1D( 2, 1, 1); @@ -54,50 +54,50 @@ _hist_pminnchg = bookProfile1D( 4, 1, 1); _hist_pdifnchg = bookProfile1D( 5, 1, 1); _hist_anchg = bookProfile1D( 6, 1, 1); - + _hist_tcptsum = bookProfile1D( 7, 1, 1); _hist_pcptsum = bookProfile1D( 8, 1, 1); _hist_pmaxcptsum = bookProfile1D( 9, 1, 1); _hist_pmincptsum = bookProfile1D(10, 1, 1); _hist_pdifcptsum = bookProfile1D(11, 1, 1); _hist_acptsum = bookProfile1D(12, 1, 1); - + _hist_tcptave = bookProfile1D(13, 1, 1); _hist_pcptave = bookProfile1D(14, 1, 1); _hist_acptave = bookProfile1D(15, 1, 1); - + _hist_tcptmax = bookProfile1D(16, 1, 1); _hist_pcptmax = bookProfile1D(17, 1, 1); _hist_acptmax = bookProfile1D(18, 1, 1); - + _hist_zptvsnchg = bookProfile1D(19, 1, 1); _hist_cptavevsnchg = bookProfile1D(20, 1, 1); _hist_cptavevsnchgsmallzpt = bookProfile1D(21, 1, 1); } - - + + /// Do the analysis void analyze(const Event& e) { - + const FinalState& fs = applyProjection<FinalState>(e, "FS"); const size_t numParticles = fs.particles().size(); - + // Even if we only generate hadronic events, we still need a cut on numCharged >= 2. if (numParticles < 1) { getLog() << Log::DEBUG << "Failed multiplicity cut" << endl; vetoEvent; } - + // Get the event weight const double weight = e.weight(); - + // Get the leptons const ParticleVector& leptons = applyProjection<ChargedLeptons>(e, "CL").chargedLeptons(); - + // We want exactly two leptons of the same flavour. getLog() << Log::DEBUG << "lepton multiplicity = " << leptons.size() << endl; if (leptons.size() != 2 || leptons[0].pdgId() != -leptons[1].pdgId() ) vetoEvent; - + // Lepton pT > 20 GeV if (leptons[0].momentum().pT()/GeV <= 20 || leptons[1].momentum().pT()/GeV <= 20) vetoEvent; @@ -106,7 +106,7 @@ if (!inRange(dilepton.mass()/GeV, 70., 110.) || fabs(dilepton.eta()) >= 6) vetoEvent; getLog() << Log::DEBUG << "Dilepton mass = " << mass(dilepton)/GeV << " GeV" << endl; getLog() << Log::DEBUG << "Dilepton pT = " << pT(dilepton)/GeV << " GeV" << endl; - + // Calculate the observables size_t numToward(0), numTrans1(0), numTrans2(0), numAway(0); double ptSumToward(0.0), ptSumTrans1(0.0), ptSumTrans2(0.0), ptSumAway(0.0); @@ -118,12 +118,12 @@ // Don't use the leptons /// @todo Replace with PID::isLepton if (abs(p->pdgId()) < 20) continue; - + const double dPhi = deltaPhi(p->momentum().phi(), phiZ); const double pT = p->momentum().pT(); double rotatedphi = p->momentum().phi() - phiZ; while (rotatedphi < 0) rotatedphi += 2*PI; - + if (dPhi < PI/3.0) { ptSumToward += pT; ++numToward; @@ -153,7 +153,7 @@ if (pTZ < 10) _hist_cptavevsnchgsmallzpt->fill(numParticles-2, pT, weight); } - + // Fill the histograms _hist_tnchg->fill(pTZ, numToward/(4*PI/3), weight); _hist_pnchg->fill(pTZ, (numTrans1+numTrans2)/(4*PI/3), weight); @@ -161,14 +161,14 @@ _hist_pminnchg->fill(pTZ, (numTrans1<numTrans2 ? numTrans1 : numTrans2)/(2*PI/3), weight); _hist_pdifnchg->fill(pTZ, abs(numTrans1-numTrans2)/(2*PI/3), weight); _hist_anchg->fill(pTZ, numAway/(4*PI/3), weight); - + _hist_tcptsum->fill(pTZ, ptSumToward/(4*PI/3), weight); _hist_pcptsum->fill(pTZ, (ptSumTrans1+ptSumTrans2)/(4*PI/3), weight); _hist_pmaxcptsum->fill(pTZ, (ptSumTrans1>ptSumTrans2 ? ptSumTrans1 : ptSumTrans2)/(2*PI/3), weight); _hist_pmincptsum->fill(pTZ, (ptSumTrans1<ptSumTrans2 ? ptSumTrans1 : ptSumTrans2)/(2*PI/3), weight); _hist_pdifcptsum->fill(pTZ, fabs(ptSumTrans1-ptSumTrans2)/(2*PI/3), weight); _hist_acptsum->fill(pTZ, ptSumAway/(4*PI/3), weight); - + if (numToward > 0) { _hist_tcptave->fill(pTZ, ptSumToward/numToward, weight); _hist_tcptmax->fill(pTZ, ptMaxToward, weight); @@ -181,16 +181,16 @@ _hist_acptave->fill(pTZ, ptSumAway/numAway, weight); _hist_acptmax->fill(pTZ, ptMaxAway, weight); } - + // We need to subtract the two leptons from the number of particles to get the correct multiplicity _hist_zptvsnchg->fill(numParticles-2, pTZ, weight); } - - + + void finalize() { // } - + //@} private: @@ -219,7 +219,7 @@ }; - + // This global object acts as a hook for the plugin system AnalysisBuilder<CDF_2008_NOTE_9351> plugin_CDF_2008_NOTE_9351;
More information about the Rivet-svn mailing list |