00001 #ifndef ATLFAST_TRANSVERSEENERGYSUMVISITOR_H 00002 #define ATLFAST_TRANSVERSEENERGYSUMVISITOR_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 00022 namespace Atlfast{ 00023 class ReconstructedParticle; 00024 class Cell; 00025 class IKinematic; 00026 class TwoCptCell; 00027 class KtCluster; 00028 class Cluster; 00029 class Jet; 00030 class SimpleKinematic; 00031 class Track; 00032 00033 class IAOO; 00034 00035 class TransverseEnergySumVisitor: public IAOOvisitor{ 00036 public: 00037 TransverseEnergySumVisitor(): 00038 m_cellSumET(0.), 00039 m_twoCptCellSumET(0.), 00040 m_clusterSumET(0.), 00041 m_ktClusterSumET(0.), 00042 m_jetSumET(0.), 00043 m_reconstructedParticleSumET(0.), 00044 m_simpleKinematicSumET(0.), 00045 m_trackSumET(0.){} 00046 00047 ~TransverseEnergySumVisitor(){} 00049 void reset(); 00050 void operator()(const IAOO* ia); 00051 00053 virtual void process(const Cell*); 00054 virtual void process(const Cluster*); 00055 virtual void process(const KtCluster*); 00056 virtual void process(const Jet*); 00057 virtual void process(const ReconstructedParticle*); 00058 virtual void process(const SimpleKinematic*); 00059 virtual void process(const Track*); 00060 virtual void process(const TwoCptCell*); 00061 00062 // 00063 00064 double sumET(const Cell&) const; 00065 double sumET(const TwoCptCell&) const; 00066 double sumET(const Cluster&) const; 00067 double sumET(const KtCluster&) const; 00068 double sumET(const Jet&) const; 00069 double sumET(const SimpleKinematic&) const; 00070 double sumET(const Track&) const; 00071 double sumET(const ReconstructedParticle&) const; 00072 00073 private: 00074 00076 double m_cellSumET; 00077 double m_twoCptCellSumET; 00078 double m_clusterSumET; 00079 double m_ktClusterSumET; 00080 double m_jetSumET; 00081 double m_reconstructedParticleSumET; 00082 double m_simpleKinematicSumET; 00083 double m_trackSumET; 00084 }; 00085 }//namespace 00086 #endif 00087 00088 00089 00090 00091 00092 00093 00094 00095 00096 00097 00098