00001 #ifndef DTOccupancyPoint_H 00002 #define DTOccupancyPoint_H 00003 00013 #include <DataFormats/MuonDetId/interface/DTLayerId.h> 00014 00015 class DTOccupancyPoint { 00016 public: 00018 DTOccupancyPoint(); 00019 00020 DTOccupancyPoint(double mean, double rms); 00021 00022 DTOccupancyPoint(double mean, double rms, DTLayerId layerId); 00023 00025 virtual ~DTOccupancyPoint(); 00026 00027 // Operations 00028 00030 double mean() const; 00031 00033 double rms() const; 00034 00036 double distance(const DTOccupancyPoint& anotherPoint) const; 00037 00038 double deltaMean(const DTOccupancyPoint& anotherPoint) const; 00039 00040 double deltaRMS(const DTOccupancyPoint& anotherPoint) const; 00041 00042 bool operator==(const DTOccupancyPoint& other) const; 00043 00044 bool operator!=(const DTOccupancyPoint& other) const; 00045 00046 bool operator<(const DTOccupancyPoint& other) const; 00047 00048 void setLayerId(DTLayerId layerId); 00049 00050 DTLayerId layerId() const; 00051 00052 private: 00053 00054 double theMean; 00055 double theRMS; 00056 DTLayerId theLayerId; 00057 00058 bool debug; // FIXME: to be removed 00059 00060 }; 00061 00062 // Compute the average RMS among two DTOccupancyPoints 00063 double computeAverageRMS(const DTOccupancyPoint& onePoint, const DTOccupancyPoint& anotherPoint); 00064 00065 // Compute the min RMS among two DTOccupancyPoints 00066 double computeMinRMS(const DTOccupancyPoint& onePoint, const DTOccupancyPoint& anotherPoint); 00067 00068 #endif 00069