ktjet is hosted by Hepforge, IPPP Durham

KtLorentzVector.h

Go to the documentation of this file.
00001 #ifndef KTJET_KTLORENTZVECTOR_H
00002 #define KTJET_KTLORENTZVECTOR_H
00003 
00004 #include <vector>
00005 #include <cmath>
00006 #include "KtJet/KtUtil.h"
00007 
00008 
00009 namespace KtJet {
00018   class KtRecom;
00019 
00020   class KtLorentzVector : public CLHEPNAMESPACE HepLorentzVector {
00021   public:
00023     KtLorentzVector();
00025     KtLorentzVector(const CLHEPNAMESPACE HepLorentzVector &);
00027     KtLorentzVector(KtFloat px, KtFloat py, KtFloat pz, KtFloat e);
00028 
00030     ~KtLorentzVector();
00031 
00033     inline const std::vector<const KtLorentzVector*> & getConstituents() const;
00035     std::vector<KtLorentzVector> copyConstituents() const;
00037     inline int getNConstituents() const;
00039     bool contains(const KtLorentzVector &) const;
00041     void add(const KtLorentzVector &, KtRecom *recom);
00043     void add(const KtLorentzVector &);
00044     inline unsigned int getID() const {return m_id;}     // ??? Temporary, for debugging only
00046     inline bool isJet() const;
00048     KtLorentzVector & operator+= (const KtLorentzVector &);
00050     inline bool operator== (const KtLorentzVector &) const;
00051     inline bool operator!= (const KtLorentzVector &) const;
00052     inline bool operator< (const KtLorentzVector &) const;
00053     inline bool operator> (const KtLorentzVector &) const;
00054   private:
00056     inline KtFloat crapidity() const;
00058     KtFloat m_crapidity;
00060     inline void calcRapidity();
00062     void addConstituents(const KtLorentzVector*) ;
00064     unsigned int m_id;
00066     std::vector<const KtLorentzVector*> m_constituents;
00068     bool m_isAtomic;
00070     static unsigned int m_num;
00072     friend class KtDistanceDeltaR;
00073     friend class KtDistanceQCD;
00074   };
00075 
00076   bool greaterE(const CLHEPNAMESPACE HepLorentzVector &, const CLHEPNAMESPACE HepLorentzVector &);
00077   bool greaterEt(const CLHEPNAMESPACE HepLorentzVector &, const CLHEPNAMESPACE HepLorentzVector &);
00078   bool greaterPt(const CLHEPNAMESPACE HepLorentzVector &, const CLHEPNAMESPACE HepLorentzVector &);
00079   bool greaterRapidity(const CLHEPNAMESPACE HepLorentzVector &, const CLHEPNAMESPACE HepLorentzVector &);
00080   bool greaterEta(const CLHEPNAMESPACE HepLorentzVector &, const CLHEPNAMESPACE HepLorentzVector &);
00081 
00082 #include "KtJet/KtLorentzVector.icc"
00083 
00084 }//end of namespace
00085 #endif

Generated on Fri Jul 22 18:08:08 2005 for KtJet by  doxygen 1.3.9.1