#ifndef _TOWER_SUMMER_HH_ #define _TOWER_SUMMER_HH_ #ifdef USE_CDFEDM2 ////////////////////////////////////////////////////////////////////////// // // Component: TowerSummer.hh // Purpose: This is a base class for classes that calculate how // physics tower quantities are summed // // Created: 20/09/99 Pierre Savard (based on Jodi Lamoureux's class) // History: // ////////////////////////////////////////////////////////////////////////// #include #include #include #include "CalorGeometry/CalConstants.hh" #include "CalorGeometry/TowerKey.hh" #include "CalorGeometry/Centroid.hh" #include "CalorObjects/PhysicsTowerView.hh" #ifndef __CINT__ #include "CLHEP/Vector/LorentzVector.h" #else class HepLorentzVector; #endif // namespace calor { class TowerSummer { public: // // Memory management // // Default constructor TowerSummer(){} // Default copy constructor and assignment operator do the right thing. // Destructor virtual ~TowerSummer(){} // // Testing // // // Manipulation and access // // Access methods virtual std::string summerName() const =0; virtual Centroid sumTowers(const PhysicsTowerView& towerView) const = 0; virtual HepLorentzVector sumFourVector(const PhysicsTowerView& towerView) const = 0; virtual float dRsquared(const PhysicsTower* tower, float eta, float phi) = 0; // // Printing // // void print(std::ostream& os) const; private: // string _summerName; }; // } // namespace calor #endif // USE_CDFEDM2 #endif // _TOWER_SUMMER_HH_