#ifndef JETREC_PROTOJET_H #define JETREC_PROTOJET_H //*************************************************************************** // Filename : ProtoJet.h // Author : Ambreesh Gupta // Created : Feb, 2000 // // DESCRIPTION // // ProtoJets are the inputs to JetFinders. In the present design, a ProtoJet // is simply a container with a few needed methods like energy and cell list // accessors. One might expect this to be a base class with derivatives // like JetClusterProtoJet or JetTowerProtoJet, but for the moment we use // the ProtoJet as a fairly dumb data exchange class that works by copying. // The reason is that the inheritances above will be most useful to the extent // that they provide navigation capabilities in a type-safe way and until // that design is in hand, we stay with the simpler approach. // // HISTORY // xxXXXxx agupta. First version // 21Sep01 ploch Implement Tucson agreement // // BUGS: // //*************************************************************************** // GAUDI Kernel headers: #include "GaudiKernel/ContainedObject.h" // CLHEP headers: #include "CLHEP/Vector/LorentzVector.h" // Gaudi Class ID static const CLID CLID_PROTOJET = 3002; class ProtoJet : public ContainedObject { public: // Gaudi class id stuff static const CLID& classID() { return CLID_PROTOJET; } virtual const CLID& clID() const { return CLID_PROTOJET; } // destructor virtual ~ProtoJet() { } ; // accessors virtual HepLorentzVector p() const { return m_p ; }; double energy() const { return m_p.e(); }; double ex() const { return m_p.px(); }; double ey() const { return m_p.py(); }; double ez() const { return m_p.pz(); }; double eta() const { return m_p.pseudoRapidity(); }; double phi() const { return m_p.phi(); }; double theta() const { return m_p.theta(); }; // copy constructor // ProtoJet( const ProtoJet& pJet ); protected: ProtoJet( const HepLorentzVector& p ) : ContainedObject(), m_p(p) { }; HepLorentzVector m_p; private: }; #endif