CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/Geometry/CSCGeometry/src/CSCGangedWireGrouping.h

Go to the documentation of this file.
00001 #ifndef CSC_GANGED_WIRE_GROUPING_H
00002 #define CSC_GANGED_WIRE_GROUPING_H
00003 
00015 #include "Geometry/CSCGeometry/src/CSCWireGrouping.h"
00016 #include <vector>
00017 
00018 class CSCGangedWireGrouping : public CSCWireGrouping {
00019 
00020  public:
00021 
00022   typedef std::vector<int> Container;
00023   typedef Container::const_iterator CIterator;
00024 
00025   virtual ~CSCGangedWireGrouping() {}
00026      
00030   CSCGangedWireGrouping( const Container& consecutiveGroups, 
00031                  const Container& wiresInConsecutiveGroups, 
00032                  int numberOfGroups );
00033 
00040   int numberOfWires() const {
00041     return theNumberOfWires; }
00042 
00046   int numberOfWireGroups() const {
00047     return theNumberOfGroups; }
00048 
00052   int numberOfWiresPerGroup( int wireGroup ) const;
00053 
00057   int wireGroup( int wire ) const;
00058 
00065   float middleWireOfGroup( int wireGroup ) const;
00066 
00071   CSCWireGrouping* clone() const {
00072     return new CSCGangedWireGrouping(*this);
00073   }
00074 
00075  private:
00076   // Expanded information from DDD
00077   int theNumberOfWires;
00078   int theNumberOfGroups;
00079   Container theFirstWireOfEachWireGroup;
00080   Container theNumberOfWiresPerWireGroup;
00081 
00082 };
00083 
00084 #endif