CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/DataFormats/DTRecHit/src/DTSLRecCluster.cc

Go to the documentation of this file.
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 static AlgebraicMatrix initMatrix()  {
00027   AlgebraicMatrix m( 2, 5, 0);
00028   m[0][1]=1; 
00029   return m;
00030 }
00031 
00032 const AlgebraicMatrix DTSLRecCluster::theProjectionMatrix = initMatrix();
00033 
00034 /* Constructor */ 
00035 DTSLRecCluster::DTSLRecCluster(const DTSuperLayerId id, const std::vector<DTRecHit1DPair>& pairs) :
00036 theSlid(id), thePairs(pairs){
00037 }
00038 
00039 DTSLRecCluster::DTSLRecCluster(const DTSuperLayerId id,
00040                                const LocalPoint& pos,
00041                                const LocalError& err,
00042                                const std::vector<DTRecHit1DPair>& pairs) :
00043 theSlid(id), thePos(pos), thePosError(err), thePairs(pairs){
00044 }
00045 
00046 /* Destructor */ 
00047 
00048 /* Operations */ 
00049 vector<const TrackingRecHit*> DTSLRecCluster::recHits() const {
00050   std::vector<const TrackingRecHit*> pointersOfRecHits; 
00051   
00052   for(std::vector<DTRecHit1DPair>::const_iterator rechit = thePairs.begin();
00053       rechit != thePairs.end(); rechit++)
00054     pointersOfRecHits.push_back( &(*rechit) );
00055   
00056   return pointersOfRecHits;
00057 }
00058 
00059 vector<TrackingRecHit*> DTSLRecCluster::recHits() {
00060   std::vector<TrackingRecHit*> pointersOfRecHits; 
00061   
00062   for(std::vector<DTRecHit1DPair>::iterator rechit = thePairs.begin();
00063       rechit != thePairs.end(); rechit++)
00064     pointersOfRecHits.push_back( &(*rechit) );
00065   
00066   return pointersOfRecHits;
00067 }
00068 
00069 ostream& operator<<(ostream& os, const DTSLRecCluster& clus) {
00070   os << "Pos " << clus.localPosition()
00071     << " err " << clus.localPositionError()
00072     << " nHits: " << clus.nHits() ;
00073   return os;
00074 }
00075 
00076