CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/DataFormats/RPCRecHit/interface/RPCRecHit.h

Go to the documentation of this file.
00001 #ifndef DataFormats_RPCRecHit_H
00002 #define DataFormats_RPCRecHit_H
00003 
00013 #include "DataFormats/TrackingRecHit/interface/RecHit2DLocalPos.h"
00014 #include "DataFormats/MuonDetId/interface/RPCDetId.h"
00015 
00016 
00017 class RPCRecHit : public RecHit2DLocalPos {
00018  public:
00019 
00020   RPCRecHit(const RPCDetId& rpcId,
00021             int bx);
00022 
00024   RPCRecHit();
00025 
00030   RPCRecHit(const RPCDetId& rpcId,
00031             int bx,
00032             const LocalPoint& pos);
00033   
00034 
00036   RPCRecHit(const RPCDetId& rpcId,
00037             int bx,
00038             const LocalPoint& pos,
00039             const LocalError& err);
00040   
00041 
00043   RPCRecHit(const RPCDetId& rpcId,
00044             int bx,
00045             int firstStrip,
00046             int clustSize,
00047             const LocalPoint& pos,
00048             const LocalError& err);
00049   
00051   virtual ~RPCRecHit();
00052 
00053 
00055   virtual LocalPoint localPosition() const {
00056     return theLocalPosition;
00057   }
00058 
00059 
00061   virtual LocalError localPositionError() const {
00062     return theLocalError;
00063   }
00064 
00065 
00066   virtual RPCRecHit* clone() const;
00067 
00068   
00071   virtual std::vector<const TrackingRecHit*> recHits() const;
00072 
00073 
00076   virtual std::vector<TrackingRecHit*> recHits();
00077 
00078 
00080   void setPosition(LocalPoint pos) {
00081     theLocalPosition = pos;
00082   }
00083 
00084   
00086   void setError(LocalError err) {
00087     theLocalError = err;
00088   }
00089 
00090 
00092   void setPositionAndError(LocalPoint pos, LocalError err) {
00093     theLocalPosition = pos;
00094     theLocalError = err;
00095   }
00096   
00097 
00099   RPCDetId rpcId() const {
00100     return theRPCId;
00101   }
00102  
00103   int BunchX() const {
00104     return theBx;
00105   }
00106 
00107   int firstClusterStrip() const {
00108     return theFirstStrip;
00109   }
00110 
00111   int clusterSize() const {
00112     return theClusterSize;
00113   }
00114 
00116   bool operator==(const RPCRecHit& hit) const;
00117 
00118  private:
00119   RPCDetId theRPCId;
00120   int theBx;
00121   int theFirstStrip;
00122   int theClusterSize;
00123   // Position and error in the Local Ref. Frame of the RPCLayer
00124   LocalPoint theLocalPosition;
00125   LocalError theLocalError;
00126 
00127 };
00128 #endif
00129 
00131 std::ostream& operator<<(std::ostream& os, const RPCRecHit& hit);