#include "DMM/WCHit.h" #include "DMM/DataServices.h" #include class xIncreasingSort { public: bool operator()(const MEMPHYS::DMM::WCHit::SharedPtr& a, const MEMPHYS::DMM::WCHit::SharedPtr& b) const { return (a->x() < b->x()); } }; int main () { //init les services MEMPHYS::DMM::DataServices* wcHitServices = new MEMPHYS::DMM::DataServices(); //A vector of WCHits MEMPHYS::DMM::WCHit::Vector v; //Some Hits //Hit b MEMPHYS::DMM::WCHit::SharedPtr b(new MEMPHYS::DMM::WCHit(*wcHitServices)); b->setX(1.0); v.push_back(b); //Hit a MEMPHYS::DMM::WCHit::SharedPtr a(new MEMPHYS::DMM::WCHit(*wcHitServices)); a->setX(0.5); v.push_back(a); std::cout << "(JEC): before sorting" << std::endl; for_each(v.begin(),v.end(),MEMPHYS::DMM::DataDump(std::cout,"deep")); sort(v.begin(),v.end(),xIncreasingSort()); std::cout << "(JEC): after sorting" << std::endl; for_each(v.begin(),v.end(),MEMPHYS::DMM::DataDump(std::cout,"deep")); MEMPHYS::DMM::WCHit::Vector w; MEMPHYS::DMM::WCHit::SharedPtr aa = a; MEMPHYS::DMM::WCHit::SharedPtr bb = b; w.push_back(bb); w.push_back(aa); w.push_back(a); std::cout << "(JEC): dump w vector" << std::endl; for_each(w.begin(),w.end(),MEMPHYS::DMM::DataDump(std::cout)); //Clear std::cout << "(JEC): Clear" << std::endl; delete wcHitServices; //end std::cout << "(JEC): Return" << std::endl; return 0; }