Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

ProtoJet.h

Go to the documentation of this file.
00001 #ifndef JETREC_PROTOJET_H
00002 #define JETREC_PROTOJET_H
00003 //***************************************************************************
00004 // Filename : ProtoJet.h
00005 // Author   : Ambreesh Gupta
00006 // Created  : Feb, 2000
00007 //
00008 // DESCRIPTION
00009 //
00010 // ProtoJets are the inputs to JetFinders.  In the present design, a ProtoJet
00011 // is simply a container with a few needed methods like energy and cell list
00012 // accessors.  One might expect this to be a base class with derivatives
00013 // like JetClusterProtoJet or JetTowerProtoJet, but for the moment we use
00014 // the ProtoJet as a fairly dumb data exchange class that works by copying.
00015 // The reason is that the inheritances above will be most useful to the extent
00016 // that they provide navigation capabilities in a type-safe way and until
00017 // that design is in hand, we stay with the simpler approach.
00018 //
00019 // HISTORY
00020 //   xxXXXxx agupta.  First version
00021 //   21Sep01 ploch    Implement Tucson agreement
00022 //
00023 // BUGS:
00024 //
00025 //***************************************************************************
00026 
00027 
00028 #include "GaudiKernel/ContainedObject.h"
00029 #include "CLHEP/Vector/LorentzVector.h"
00030 
00031 // Gaudi Class ID
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   // Gaudi class id stuff
00042   static const CLID& classID() { return CLID_PROTOJET; }
00043   virtual const  CLID& clID() const   { return CLID_PROTOJET; }
00044 
00045   // destructor 
00046   virtual ~ProtoJet() { } ;
00047 
00048   // accessors
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   // copy constructor
00064   // ProtoJet( const ProtoJet& pJet );
00065 
00066   virtual       NavProtoJetToken& getNavToken()        = 0;
00067   virtual const NavProtoJetToken& getNavToken()  const = 0;
00068     // from Navigable base class
00069 
00070  protected:
00071   
00072   ProtoJet( const HepLorentzVector& p ) :  m_p(p) { };
00073   HepLorentzVector m_p;
00074 
00075  private:
00076 
00077 };
00078 #endif
00079 

Generated on Thu Feb 21 14:30:46 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001