00001 #ifndef ATLFAST_JETVISITOR_H 00002 #define ATLFAST_JETVISITOR_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 namespace Atlfast{ 00022 class ReconstructedParticle; 00023 class Cell; 00024 class IKinematic; 00025 class TwoCptCell; 00026 class Cluster; 00027 class KtCluster; 00028 class Jet; 00029 class SimpleKinematic; 00030 class Track; 00031 00032 class IAOO; 00033 00034 class JetVisitor: public IAOOvisitor{ 00035 public: 00036 JetVisitor(){} 00037 ~JetVisitor(){} 00039 void reset(); 00040 void operator()(const IAOO* ia); 00041 00043 virtual void process(const Cell*); 00044 virtual void process(const Cluster*); 00045 virtual void process(const KtCluster*); 00046 virtual void process(const Jet*); 00047 virtual void process(const ReconstructedParticle*); 00048 virtual void process(const SimpleKinematic*); 00049 virtual void process(const Track*); 00050 virtual void process(const TwoCptCell*); 00051 00052 // 00053 virtual std::vector<const Cell*> 00054 typeVector(const Cell&) const; 00055 00056 virtual std::vector<const TwoCptCell*> 00057 typeVector(const TwoCptCell&) const; 00058 00059 virtual std::vector<const Cluster*> 00060 typeVector(const Cluster&) const; 00061 00062 virtual std::vector<const KtCluster*> 00063 typeVector(const KtCluster&) const; 00064 00065 virtual std::vector<const Jet*> 00066 typeVector(const Jet&) const; 00067 00068 virtual std::vector<const SimpleKinematic*> 00069 typeVector(const SimpleKinematic&) const; 00070 00071 virtual std::vector<const Track*> 00072 typeVector(const Track&) const; 00073 00074 virtual std::vector<const ReconstructedParticle*> 00075 typeVector(const ReconstructedParticle&) const; 00076 00077 private: 00078 00080 std::vector<const Cell*> m_cells ; 00081 std::vector<const TwoCptCell*> m_twoCptCells ; 00082 std::vector<const Cluster*> m_clusters ; 00083 std::vector<const KtCluster*> m_ktClusters ; 00084 std::vector<const Jet*> m_jets ; 00085 std::vector<const ReconstructedParticle*> m_reconstructedParticles ; 00086 std::vector<const SimpleKinematic*> m_simpleKinematics ; 00087 std::vector<const Track*> m_tracks ; 00088 00089 }; 00090 }//namespace 00091 #endif 00092 00093 00094 00095 00096 00097 00098 00099 00100 00101 00102 00103