00001 /******* \class DTSLRecCluster ******* 00002 * 00003 * Description: 00004 * 00005 * detailed description 00006 * 00007 * \author : Stefano Lacaprara - INFN LNL <stefano.lacaprara@pd.infn.it> 00008 * $date : 17/04/2008 17:14:32 CEST $ 00009 * 00010 * Modification: 00011 * 00012 *********************************/ 00013 00014 /* This Class Header */ 00015 #include "DataFormats/DTRecHit/interface/DTSLRecCluster.h" 00016 00017 /* Collaborating Class Header */ 00018 00019 /* C++ Headers */ 00020 #include <iostream> 00021 using namespace std; 00022 00023 /* ====================================================================== */ 00024 00025 /* static member definition */ 00026 bool DTSLRecCluster::isInitialized(false); 00027 00028 AlgebraicMatrix DTSLRecCluster::theProjectionMatrix; 00029 00030 /* Constructor */ 00031 DTSLRecCluster::DTSLRecCluster(const DTSuperLayerId id, const std::vector<DTRecHit1DPair>& pairs) : 00032 theSlid(id), thePairs(pairs){ 00033 } 00034 00035 DTSLRecCluster::DTSLRecCluster(const DTSuperLayerId id, 00036 const LocalPoint& pos, 00037 const LocalError& err, 00038 const std::vector<DTRecHit1DPair>& pairs) : 00039 theSlid(id), thePos(pos), thePosError(err), thePairs(pairs){ 00040 } 00041 00042 /* Destructor */ 00043 00044 /* Operations */ 00045 vector<const TrackingRecHit*> DTSLRecCluster::recHits() const { 00046 std::vector<const TrackingRecHit*> pointersOfRecHits; 00047 00048 for(std::vector<DTRecHit1DPair>::const_iterator rechit = thePairs.begin(); 00049 rechit != thePairs.end(); rechit++) 00050 pointersOfRecHits.push_back( &(*rechit) ); 00051 00052 return pointersOfRecHits; 00053 } 00054 00055 vector<TrackingRecHit*> DTSLRecCluster::recHits() { 00056 std::vector<TrackingRecHit*> pointersOfRecHits; 00057 00058 for(std::vector<DTRecHit1DPair>::iterator rechit = thePairs.begin(); 00059 rechit != thePairs.end(); rechit++) 00060 pointersOfRecHits.push_back( &(*rechit) ); 00061 00062 return pointersOfRecHits; 00063 } 00064 00065 ostream& operator<<(ostream& os, const DTSLRecCluster& clus) { 00066 os << "Pos " << clus.localPosition() 00067 << " err " << clus.localPositionError() 00068 << " nHits: " << clus.nHits() ; 00069 return os; 00070 } 00071 00072