#ifndef TOWER_PREDICATES #define TOWER_PREDICATES #ifdef USE_CDFEDM2 ////////////////////////////////////////////////////////////////////////// // // Component: TowerPredicates.hh // Purpose: Predicates for towers // // Created: 26/10/99 (Pierre Savard) // History: // ////////////////////////////////////////////////////////////////////////// #include #include #include #include #include #include #include "CalorGeometry/CalConstants.hh" #include "CalorGeometry/TowerDescription.hh" #include "CalorObjects/CalData.hh" // // Predicate classes // class HasTiming { public: HasTiming() { } bool operator()(CalTower& t) const { return t.hasTiming()==true; } private: }; class HadEnergyGreater { public: HadEnergyGreater():value(0.0) { } HadEnergyGreater(double x):value(x) { } bool operator()(CalTower& t) const { return t.hadEnergy()>value; } // { bool rc=t.hadEnergy()>value; if(rc==true) std::cerr << ' ' << // t.hadEnergy() << ' '; return rc;} private: double value; }; class EmEnergyGreater { public: EmEnergyGreater():value(0.0) { } EmEnergyGreater(float x):value(x) { } bool operator()(CalData::const_iterator t) const { return t->emEnergy()>value; } private: float value; }; class HasCalorimeter { public: HasCalorimeter() { } HasCalorimeter(Detector x):value(x) { } bool operator()(CalData::const_iterator t) const { return t->includesDetector(value); } private: Detector value; }; namespace { bool ascending(CalTower* t1, CalTower* t2) { return t1->hadEnergy() < t2->hadEnergy(); } } #endif // USE_CDFEDM2 #endif // TOWER_ITERATORS