/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/MdcPatRec/TrkBase/TrkBase-00-01-12/TrkBase/TrkMomVisitor.h

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //
00004 // Description:  TrkMomVisitor is an implementation of the Visitor pattern
00005 //      for use in calculating momenta for different types of
00006 //      trajectories.  (See the book _Design Patterns_ or one of the
00007 //      authors for a definition of the Visitor pattern.) 
00008 //
00009 // Environment:
00010 //      Software developed for the BaBar Detector at the SLAC B-Factory.
00011 //
00012 // Author(s): Justin Albert, Steve Schaffner
00013 //
00014 //------------------------------------------------------------------------
00015 #ifndef TRKMOMVISITOR_H
00016 #define TRKMOMVISITOR_H
00017 
00018 #include "TrkBase/TrkVisitor.h"
00019 
00020 class TrkSimpTraj;
00021 class HelixTraj;
00022 class TrkCircleTraj;
00023 class NeutTraj;
00024 class TrkDifLineTraj;
00025 
00026 // Class interface //
00027 class TrkMomVisitor : public TrkVisitor {
00028 
00029 public:
00030 
00031   TrkMomVisitor(const TrkSimpTraj&);
00032 
00033   virtual ~TrkMomVisitor();
00034 
00035   // ******************
00036   // data member access
00037   // ******************
00038 
00039   const HelixTraj*      helix() const      {return _ht;}
00040   const TrkCircleTraj*  circle() const     {return _ct;}
00041   const NeutTraj*       neut() const       {return _nt;}   
00042   const TrkDifLineTraj* line() const       {return _lt;}
00043 
00044   //********************************
00045   // The visitor functions:
00046   //********************************
00047 
00048   virtual void trkVisitHelixTraj(const HelixTraj*);
00049   virtual void trkVisitCircleTraj(const TrkCircleTraj*);
00050   virtual void trkVisitNeutTraj(const NeutTraj*);
00051   virtual void trkVisitLineTraj(const TrkDifLineTraj*);
00052 
00053 private:
00054 
00055   const HelixTraj*      _ht;
00056   const TrkCircleTraj*  _ct;
00057   const NeutTraj*       _nt;
00058   const TrkDifLineTraj* _lt;
00059 
00060 };
00061 
00062 #endif

Generated on Tue Nov 29 23:13:42 2016 for BOSS_7.0.2 by  doxygen 1.4.7