CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoLocalMuon/DTSegment/src/DTHitPairForFit.h

Go to the documentation of this file.
00001 #ifndef DTSegment_DTHitPairForFit_h
00002 #define DTSegment_DTHitPairForFit_h
00003 
00018 /* Base Class Headers */
00019 
00020 /* Collaborating Class Declarations */
00021 #include "FWCore/Framework/interface/ESHandle.h"
00022 #include "Geometry/DTGeometry/interface/DTGeometry.h"
00023 #include "DataFormats/DTRecHit/interface/DTRecHit1DPair.h"
00024 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00025 #include "Geometry/DTGeometry/interface/DTSuperLayer.h"
00026 
00027 /* C++ Headers */
00028 
00029 /* ====================================================================== */
00030 
00031 /* Class DTHitPairForFit Interface */
00032 
00033 class DTHitPairForFit{
00034 
00035   public:
00036 
00038     DTHitPairForFit(const DTRecHit1DPair& pair,
00039                     const DTSuperLayer& sl,
00040                     const edm::ESHandle<DTGeometry>& dtGeom) ;
00041 
00043     ~DTHitPairForFit() ;
00044 
00045 /* Operations */ 
00046     
00048     LocalPoint localPosition(DTEnums::DTCellSide s) const;
00049 
00051     LocalPoint leftPos() const { return theLeftPos; }
00052 
00054     LocalPoint rightPos() const { return theRightPos; }
00055 
00056     // Returns the LocalError
00057     LocalError localPositionError() const { return theError; }
00058 
00060     const DTWireId & id() const { return theWireId; }
00061 
00063     float digiTime() const {return theDigiTime;}
00064 
00068     std::pair<bool,bool> isCompatible(const LocalPoint& posIni, const LocalVector &dirIni) const;
00069     
00071     bool operator<(const DTHitPairForFit& hit) const ; 
00072 
00073     bool operator==(const DTHitPairForFit& hit) const ; 
00074 
00075   protected:
00076 
00077   private:
00078     LocalPoint theLeftPos ;         // left hit pos in SL ref frame
00079     LocalPoint theRightPos ;        // right hit pos in SL ref frame
00080     LocalError theError;            // it's the same for left and right
00081     DTWireId  theWireId;
00082     float theDigiTime;             // the time of the corresp. digi
00083 //    int theLayerNumber;             // the layer number
00084 
00085 };
00086 
00087 std::ostream& operator<<(std::ostream& out, const DTHitPairForFit& hit) ;
00088 #endif // DTSegment_DTHitPairForFit_h