CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/Geometry/DTGeometry/interface/DTTopology.h

Go to the documentation of this file.
00001 #ifndef Geometry_DTGeometry_DTTopology_H
00002 #define Geometry_DTGeometry_DTTopology_H
00003 
00027 #include "Geometry/CommonTopologies/interface/Topology.h"
00028 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
00029 
00030 class DTTopology: public Topology {
00031  public:
00032   
00034   DTTopology(int firstWire, int nChannels, float semilenght); 
00035 
00036   virtual ~DTTopology() {}
00037   
00040   LocalPoint localPosition( const MeasurementPoint& ) const;
00041 
00044   LocalError localError( const MeasurementPoint&, const MeasurementError& ) const;
00045 
00051   MeasurementPoint measurementPosition( const LocalPoint&) const;
00052 
00054   MeasurementError measurementError( const LocalPoint&, const LocalError& ) const;
00055 
00061   int channel( const LocalPoint& p) const;
00062 
00064   float wirePosition(int wireNumber) const;
00065   
00066   //checks if a wire number is valid
00067   bool isWireValid(const int wireNumber) const {return (wireNumber - (theFirstChannel - 1) <= 0 || wireNumber - lastChannel() > 0 ) ? false : true;}
00068 
00070   float cellWidth() const {return theWidth;}
00072   float cellHeight() const {return theHeight;}
00075   float cellLenght() const {return theLength;}
00077   int channels() const {return theNChannels;} 
00078 
00080   int firstChannel() const {return theFirstChannel;} 
00082   int lastChannel() const {return theNChannels+theFirstChannel-1;} 
00083 
00085   float sensibleWidth() const;
00087   float sensibleHeight() const;
00088 
00090   enum Side {zMin,zMax,xMin,xMax,yMin,yMax,none}; 
00091 
00094   Side onWhichBorder(float x, float y, float z) const;
00096   Side onWhichBorder_old(float x, float y, float z) const;
00097   
00098 private: 
00099   int theFirstChannel;
00100   int theNChannels;
00101   
00102   static const float theWidth;
00103   static const float theHeight;
00104   float theLength;
00105 
00106   static const float IBeamWingThickness;
00107   static const float IBeamWingLength;
00108   static const float plateThickness;
00109   static const float IBeamThickness;
00110 
00111   Local2DPoint theOffSet;
00112 };
00113 
00114 #endif