CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/DataFormats/DTRecHit/interface/DTRecHit1D.h

Go to the documentation of this file.
00001 #ifndef DTRecHit_DTRecHit1D_H
00002 #define DTRecHit_DTRecHit1D_H
00003 
00017 //#include "DataFormats/GeometrySurface/interface/LocalError.h"
00018 
00019 #include "DataFormats/TrackingRecHit/interface/RecHit1D.h"
00020 
00021 #include "DataFormats/DTRecHit/interface/DTEnums.h"
00022 #include "DataFormats/MuonDetId/interface/DTWireId.h"
00023 
00024 
00025 class DTLayer;
00026 class GeomDet;
00027 
00028 class DTRecHit1D : public RecHit1D {
00029  public:
00030 
00032   DTRecHit1D(const DTWireId& wireId,
00033              DTEnums::DTCellSide lr,
00034              float digiTime);
00035 
00037   DTRecHit1D();
00038 
00043   DTRecHit1D(const DTWireId& wireId,
00044              DTEnums::DTCellSide lr,
00045              float digiTime,
00046              const LocalPoint& pos);
00047   
00048 
00050   DTRecHit1D(const DTWireId& wireId,
00051              DTEnums::DTCellSide lr,
00052              float digiTime,
00053              const LocalPoint& pos,
00054              const LocalError& err);
00055 
00056 
00058   virtual ~DTRecHit1D();
00059 
00060 
00062   virtual LocalPoint localPosition() const {
00063     return theLocalPosition;
00064   }
00065 
00066 
00068   virtual LocalError localPositionError() const {
00069     return theLocalError;
00070   }
00071 
00072   virtual  DTRecHit1D* clone() const;
00073 
00074   
00076   virtual std::vector<const TrackingRecHit*> recHits() const;
00077 
00078 
00080   virtual std::vector<TrackingRecHit*> recHits();
00081 
00082 
00084   DTEnums::DTCellSide lrSide() const {
00085     return theLRSide;
00086   }
00087 
00088 
00090   void setPosition(LocalPoint pos) {
00091     theLocalPosition = pos;
00092   }
00093 
00094   
00096   void setError(LocalError err) {
00097     theLocalError = err;
00098   }
00099 
00100 
00102   void setPositionAndError(LocalPoint pos, LocalError err) {
00103     theLocalPosition = pos;
00104     theLocalError = err;
00105   }
00106 
00107 
00109   DTWireId wireId() const {
00110     return theWireId;
00111   }
00112 
00113   
00115   float digiTime() const {
00116     return theDigiTime;
00117   }
00118 
00119 
00121   bool operator==(const DTRecHit1D& hit) const;
00122 
00123  private:
00124   // The wire id
00125   DTWireId theWireId;
00126 
00127   // Left/Right side code
00128   DTEnums::DTCellSide theLRSide;
00129 
00130   // The digi time used to reconstruct the hit
00131   float theDigiTime;
00132 
00133   // Position and error in the Local Ref. Frame of the DTLayer
00134   LocalPoint theLocalPosition;
00135   LocalError theLocalError;
00136 
00137 
00138 };
00139 #endif
00140 
00141 
00143 std::ostream& operator<<(std::ostream& os, const DTRecHit1D& hit);
00144 
00145