/afs/hep.man.ac.uk/u/markowen/ATLAS/SFrameProof/2011EPS/manTree/manTree/MParticle.h

00001 #ifndef _MANTREE_MPARTICLE_H__
00002 #define _MANTREE_MPARTICLE_H__
00003 
00004 #include <iosfwd>
00005 #include <string>
00006 
00007 #include "TLorentzVector.h"
00008 
00009 #ifdef _ATHENA_CLASSES__
00010 #include "EventKernel/I4Momentum.h"
00011 #include "FourMom/P4IPtCotThPhiMBase.h"
00012 #endif
00013 
00014 namespace manchester {
00015 
00024 class MParticle : public TLorentzVector {
00025 public:
00027     MParticle();
00028 
00030     MParticle(const TLorentzVector& p);
00031 
00033     MParticle(const MParticle& p);
00034 
00036     MParticle(Double_t px, Double_t py, Double_t pz, Double_t e);
00037 
00038 #ifdef _ATHENA_CLASSES__
00040     MParticle(const I4Momentum& vec);
00041 
00043     MParticle(const P4IPtCotThPhiMBase& vec);
00044 #endif
00045 
00047     virtual ~MParticle();
00048 
00050     Int_t Charge() const;
00051 
00053     void SetCharge(Int_t c);
00054 
00056     virtual std::string Type() const;
00057 
00059     virtual std::ostream& PrintContent(std::ostream& o) const;
00060 
00062     bool operator<(const MParticle& p) const;
00063 
00065     bool operator>(const MParticle& p) const;
00066 
00068     MParticle& operator+=(const MParticle& p);
00069 
00071     MParticle& operator=(const MParticle& p);
00072 
00073 protected:
00075     virtual void Reset();
00076 
00077 private:
00079     Int_t m_charge;
00080 
00081     ClassDef(MParticle, 3);
00082 
00083 }; // class MParticle
00084 
00085 } // namespace manchester
00086 
00087 std::ostream& operator<< (std::ostream& os, const manchester::MParticle& o);
00088 
00089 const manchester::MParticle operator+ (const manchester::MParticle& lhs,
00090         const manchester::MParticle& rhs);
00091 
00092 #endif

Generated on Thu Jun 30 11:40:04 2011 for manTreeSFrame by  doxygen 1.4.7