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
00067 const bool isWireValid(const int wireNumber) const {return (wireNumber - (theFirstChannel-1) <= 0 || wireNumber > lastChannel() ) ? false : true;}
00068
00070 const float cellWidth() const {return theWidth;}
00072 const float cellHeight() const {return theHeight;}
00075 const float cellLenght() const {return theLength;}
00077 const int channels() const {return theNChannels;}
00078
00080 const int firstChannel() const {return theFirstChannel;}
00082 const int lastChannel() const {return theNChannels+theFirstChannel-1;}
00083
00085 const float sensibleWidth() const;
00087 const 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