00001
00002
00003
00004 #include "AtlfastEvent/Cluster.h"
00005 #include "AtlfastEvent/IAOOvisitor.h"
00006 #include "boost/any.hpp"
00007
00008 #include "Navigation/INavigationToken.h"
00009
00010 namespace Atlfast {
00012 Cluster::Cluster( const Cluster& src ):
00013 Atlfast::IAOO(src),
00014 INavigable(src),
00015 I4Momentum(src),
00016 INavigable4Momentum(src),
00017 Atlfast::IKinematic(src),
00018 Atlfast::IAODNavigation(src),
00019 Atlfast::ICluster(src),
00020 AODNavigationImp(src){
00021 m_momentum = src.m_momentum;
00022 }
00024 Cluster& Cluster::operator=( const Cluster& src ){
00025
00026 if( this == &src) return *this;
00027
00028 AODNavigationImp::operator=(src );
00029 m_momentum = src.m_momentum;
00030
00031 return *this;
00032 }
00034
00035 Cluster::Cluster() :
00036 AODNavigationImp(),
00037 m_momentum(HepLorentzVector(0.0,0.0,0.0,0.0)){
00038 }
00039
00041 HepLorentzVector Cluster::momentum() const {return m_momentum; }
00042 double Cluster::eta() const { return m_momentum.pseudoRapidity() ;}
00043 double Cluster::phi() const { return m_momentum.phi() ; }
00044 double Cluster::pT() const { return m_momentum.perp() ;}
00045 double Cluster::mT() const { return m_momentum.mt(); }
00046 double Cluster::eT() const {
00047 return m_momentum.e()*m_momentum.perp()/m_momentum.rho() ;
00048 }
00049 IKinematic* Cluster::clone() const{
00050 IKinematic* ik = new Cluster(*this);
00051 return ik;
00052 }
00054 void Cluster::accept(IAOOvisitor* iaPtr) const {
00055 iaPtr->process(this);
00056 }
00058 void Cluster::setMomentum(const HepLorentzVector& vec) {
00059 m_momentum=vec;
00060 }
00061
00063 void Cluster::fillToken(INavigationToken& token) const{
00064 this-> fillNavTokenFromAssocs(token);
00065 }
00067 void Cluster::fillToken(INavigationToken&,const boost::any&) const{
00068 }
00070 void Cluster::print(const std::string& coor, std::string t) const{
00071 AODNavigationImp::print(coor, t);
00072 std::cout<<t<<std::string(73,' ')<<"Cluster"<<std::endl;
00073 }
00074
00075 }
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088