00001 #ifndef JETREC_PROTOJET_H
00002 #define JETREC_PROTOJET_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include "GaudiKernel/ContainedObject.h"
00029 #include "CLHEP/Vector/LorentzVector.h"
00030
00031
00032 static const CLID CLID_PROTOJET = 3002;
00033
00034 #include "NavigationRep/Navigable.h"
00035 #include "NavigationRep/NavProtoJetToken.h"
00036
00037 class ProtoJet : public ContainedObject, public Navigable
00038 {
00039 public:
00040
00041
00042 static const CLID& classID() { return CLID_PROTOJET; }
00043 virtual const CLID& clID() const { return CLID_PROTOJET; }
00044
00045
00046 virtual ~ProtoJet() { } ;
00047
00048
00049 virtual HepLorentzVector p() const
00050 {
00051 return m_p ;
00052 };
00053
00054 double energy() const { return m_p.e(); };
00055 double ex() const { return m_p.px(); };
00056 double ey() const { return m_p.py(); };
00057 double ez() const { return m_p.pz(); };
00058 double et() const { return sqrt( pow(ex(),2)+ pow(ey(),2) ); }
00059 double eta() const { return m_p.pseudoRapidity(); };
00060 double phi() const { return m_p.phi(); };
00061 double theta() const { return m_p.theta(); };
00062
00063
00064
00065
00066 virtual NavProtoJetToken& getNavToken() = 0;
00067 virtual const NavProtoJetToken& getNavToken() const = 0;
00068
00069
00070 protected:
00071
00072 ProtoJet( const HepLorentzVector& p ) : m_p(p) { };
00073 HepLorentzVector m_p;
00074
00075 private:
00076
00077 };
00078 #endif
00079