#ifndef _PHYSICS_TOWER_HH_ #define _PHYSICS_TOWER_HH_ #include "../interface/LorentzVector.hh" #include "../interface/CalTower.hh" class PhysicsTower { public: LorentzVector fourVector; CalTower calTower; /// addition by GPS (2008-08-15) for tracking within fastjet int fjindex; PhysicsTower(): fourVector(LorentzVector()), calTower(CalTower()), fjindex(-1) {} PhysicsTower(const LorentzVector& v, const CalTower& c): fourVector(v), calTower(c), fjindex(-1) {} PhysicsTower(const PhysicsTower& p): fourVector(p.fourVector), calTower(p.calTower), fjindex(p.fjindex) {} PhysicsTower(const CalTower& c): fourVector(LorentzVector(c.Et*cos(c.phi),c.Et*sin(c.phi),c.Et*sinh(c.eta),c.Et*cosh(c.eta))), calTower(c), fjindex(-1) {} PhysicsTower(const LorentzVector& v): fourVector(v), calTower(CalTower(v.Et(),v.eta(),v.phi())), fjindex(-1) {} double Et() const {return calTower.Et;} double eta() const {return calTower.eta;} double phi() const {return calTower.phi;} int iEta() const {return calTower.iEta;} int iPhi() const {return calTower.iPhi;} bool isEqual(const PhysicsTower& p) { return fourVector.isEqual(p.fourVector) && calTower.isEqual(p.calTower); } }; #endif