TypeVisitor.h

Go to the documentation of this file.
00001 #ifndef ATLFAST_TYPEVISITOR_H
00002 #define ATLFAST_TYPEVISITOR_H
00003 
00007 
00008 #ifndef ATLFAST_IAOO_H
00009 #include "AtlfastEvent/IAOO.h"
00010 #endif
00011 
00012 #ifndef ATLFAST_IAOOVISITOR_H
00013 #include "AtlfastEvent/IAOOvisitor.h"
00014 #endif
00015 
00016 #ifndef STD_VECTOR_H
00017 #include <vector>
00018 #define STD_VECTOR_H
00019 #endif
00020 
00021 #ifndef EVENTKERNEL_I4MOMENTUM_H
00022 #include "EventKernel/I4Momentum.h"
00023 #endif
00024 
00025 
00026 namespace Atlfast{
00027   class ReconstructedParticle;
00028   class Cell;
00029   class IKinematic;
00030   class TwoCptCell;
00031   class Cluster;
00032   class Jet;
00033   class SimpleKinematic;
00034   class Track;
00035   class KtCluster;
00036 
00037   class IAOO;
00038  
00039   class TypeVisitor: public IAOOvisitor{
00040   public:
00041     TypeVisitor(){}
00042     ~TypeVisitor(){}
00044     void reset();
00045     void operator()(const IAOO* ia);
00046 
00048     virtual void process(const Cell*);
00049     virtual void process(const Cluster*);
00050     virtual void process(const Jet*);
00051     virtual void process(const ReconstructedParticle*);
00052     virtual void process(const SimpleKinematic*);
00053     virtual void process(const Track*);
00054     virtual void process(const TwoCptCell*);
00055     virtual void process(const KtCluster*);
00056 
00057     //
00058     virtual std::vector<const Cell*>       
00059                               typeVector(const Cell&)                  const;
00060 
00061     virtual std::vector<const TwoCptCell*> 
00062                               typeVector(const TwoCptCell&)            const;
00063 
00064     virtual std::vector<const Cluster*>    
00065                               typeVector(const Cluster&)               const;
00066 
00067     virtual std::vector<const KtCluster*>    
00068                               typeVector(const KtCluster&)               const;
00069 
00070     virtual std::vector<const Jet*>        
00071                               typeVector(const Jet&)                   const;
00072 
00073     virtual std::vector<const SimpleKinematic*>  
00074                               typeVector(const SimpleKinematic&)       const;
00075 
00076     virtual std::vector<const Track*>          
00077                               typeVector(const Track&)                 const;
00078 
00079     virtual std::vector<const ReconstructedParticle*> 
00080                               typeVector(const ReconstructedParticle&) const;
00081 
00082     virtual std::vector<const IKinematic*>        
00083                               ikinematics()                              const;
00084 
00085     virtual std::vector<const I4Momentum*> i4momenta()                   const;
00086 
00087   private:
00088 
00090     std::vector<const Cell*>                   m_cells ;
00091     std::vector<const TwoCptCell*>             m_twoCptCells ;
00092     std::vector<const Cluster*>                m_clusters ;
00093     std::vector<const KtCluster*>              m_ktClusters ;
00094     std::vector<const Jet*>                    m_jets ;
00095     std::vector<const ReconstructedParticle*>  m_reconstructedParticles ;
00096     std::vector<const SimpleKinematic*>        m_simpleKinematics ;
00097     std::vector<const Track*            >      m_tracks ;
00098     std::vector<const IKinematic*>             m_iKinematics ;
00099 
00100   };
00101 }//namespace
00102 #endif 
00103   
00104  
00105 
00106 
00107 
00108 
00109 
00110 
00111 
00112 
00113 
00114 

Generated on Fri Sep 21 13:00:09 2007 for AtlfastEvent by  doxygen 1.5.1