CMS 3D CMS Logo

DetGroup.h

Go to the documentation of this file.
00001 #ifndef DetLayers_DetGroup_h
00002 #define DetLayers_DetGroup_h 
00003 
00004 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
00005 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
00006 #include <vector>
00007 #include <utility>
00008 
00009 
00010 class DetGroupElement {
00011  public:
00012   typedef std::pair<const GeomDet*,TrajectoryStateOnSurface> DetWithState;
00013   typedef GeomDet                                            Det;
00014 
00015  
00016   DetGroupElement( const DetWithState& dws) :
00017     det_(dws.first), state_(dws.second) {}
00018 
00019   DetGroupElement( const Det* d, const TrajectoryStateOnSurface& s) :
00020     det_(d), state_(s) {}
00021 
00022   const Det* det() const {return det_;}
00023   const TrajectoryStateOnSurface& trajectoryState() const {return state_;}
00024 
00025 private:
00026 
00027   const Det* det_;
00028   TrajectoryStateOnSurface state_;
00029 
00030 };
00031 
00032 
00033 class DetGroup : public std::vector< DetGroupElement> {
00034 public:
00035 
00036   typedef std::vector< DetGroupElement>         Base;
00037   typedef DetGroupElement::DetWithState         DetWithState;
00038 
00039   DetGroup() {}
00040   DetGroup(int ind, int indSize) : index_(ind), indexSize_(indSize) {}
00041 
00042   DetGroup(const std::vector<DetWithState>& vec) {
00043     reserve( vec.size());
00044     for (std::vector<DetWithState>::const_iterator i=vec.begin(); i!=vec.end(); i++) {
00045       push_back(DetGroupElement(*i));
00046     }
00047   }
00048 
00049   int index() const {return index_;}
00050 
00051   int indexSize() const {return indexSize_;}
00052 
00053   void setIndexSize( int newSize) {indexSize_ = newSize;}
00054 
00055   void incrementIndex( int incr) {
00056     // for (iterator i=begin(); i!=end(); i++) i->incrementIndex(incr);
00057     index_ += incr;
00058     indexSize_ += incr;
00059   }
00060 
00061 private:
00062 
00063   int index_;
00064   int indexSize_;
00065 
00066 };
00067 
00068 #endif

Generated on Tue Jun 9 17:48:16 2009 for CMSSW by  doxygen 1.5.4