00001 #ifndef ATLFAST_CLUSECALETSUMVISITOR_H
00002 #define ATLFAST_CLUSECALETSUMVISITOR_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 ATLFAST_CLUSSTER_H
00017 #include "AtlfastEvent/Cluster.h"
00018 #endif
00019
00020 #ifndef STD_VECTOR_H
00021 #include <vector>
00022 #define STD_VECTOR_H
00023 #endif
00024
00025 namespace Atlfast{
00026 class ReconstructedParticle;
00027 class Cell;
00028 class IKinematic;
00029 class TwoCptCell;
00030 class Cluster;
00031 class KtCluster;
00032 class Jet;
00033 class SimpleKinematic;
00034 class Track;
00035
00036 class IAOO;
00037
00038 class ClusEcalEtSumVisitor: public IAOOvisitor{
00039 public:
00040 ClusEcalEtSumVisitor(const Cluster* cluster, const double coreRadius=0.2):
00041 m_phi(cluster->phi()),
00042 m_eta(cluster->eta()),
00043 m_cellEt(0),
00044 m_coneEt(0),
00045 m_clusterEt(0),
00046 m_ktClusterEt(0),
00047 m_reconstructedParticleEt(0),
00048 m_simpleKinematicEt(0),
00049 m_trackEt(0),
00050 m_coreRadius(coreRadius), m_coreEt(0){}
00051
00052 ~ClusEcalEtSumVisitor(){}
00054 void reset();
00055 void operator()(const IAOO* ia);
00056
00058 virtual void process(const Cell*);
00059 virtual void process(const Cluster*);
00060 virtual void process(const KtCluster*);
00061 virtual void process(const Jet*);
00062 virtual void process(const ReconstructedParticle*);
00063 virtual void process(const SimpleKinematic*);
00064 virtual void process(const Track*);
00065 virtual void process(const TwoCptCell*);
00066
00067
00068
00069 double getSum(const Cell&) const;
00070 double getSum(const TwoCptCell&) const;
00071 double getSum(const Cluster&) const;
00072 double getSum(const KtCluster&) const;
00073 double getSum(const Jet&) const;
00074 double getSum(const SimpleKinematic&) const;
00075 double getSum(const Track&) const;
00076 double getSum(const ReconstructedParticle&) const;
00077
00078
00079
00080
00081 double getCore(const TwoCptCell&) const;
00082
00083 double getIsolRing(const TwoCptCell&) const;
00084
00085 private:
00086
00088 double m_phi;
00089 double m_eta;
00090 double m_cellEt;
00091 double m_coneEt;
00092 double m_clusterEt;
00093 double m_ktClusterEt;
00094 double m_jetEt;
00095 double m_reconstructedParticleEt;
00096 double m_simpleKinematicEt;
00097 double m_trackEt;
00098 double m_coreRadius;
00099 double m_coreEt;
00100 };
00101 }
00102 #endif
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114