newwave is hosted by Hepforge, IPPP Durham

New Wave - Noise Elimination With Wavelets At Vast Energies  0.1.0
code/include/NewWave/PixelDefinition.hh
Go to the documentation of this file.
00001 #ifndef NEWWAVE_PIXEL_DEFINITION_HH
00002 #define NEWWAVE_PIXEL_DEFINITION_HH
00003 
00004 #include <vector>
00005 
00006 #include "NewWave/PixelArray.hh"
00007 
00008 namespace NewWave{
00009   
00010   using std::size_t;
00011   using std::vector;
00012   
00014   
00020   class PixelDefinition{
00021     
00022   public:
00023     
00025 
00042     PixelDefinition(size_t nBins, double yMax, bool allowPadding=false);
00043     
00045 
00062     PixelDefinition(size_t nBinsPhi, double phiMin, double phiMax,
00063                     size_t nBinsY, double yMin, double yMax,
00064                     bool allowPhiPadding=false);
00065     
00067 
00074     PixelArray makeEmptyPixelArray()const;
00075     
00077     size_t phiPixelIndex(double phi)const;
00078     
00080     size_t yPixelIndex(double y)const;
00081     
00083     size_t nPixels()const;
00084     
00086     double yMin()const;
00087 
00089     double yMax()const;
00090     
00092 
00098     bool covers(double y, double phi)const;
00099     
00101 
00108     size_t nLevels()const;
00109     
00110   private:
00111     
00112     size_t _nBinsPhi;
00113     size_t _nBinsY;
00114     size_t _nBins;
00115 
00116     size_t _padPhi;
00117     size_t _padY;
00118     
00119     mutable double _rangePhi;
00120     mutable double _rangeY;
00121     
00122     double _phiToBin;
00123     double _yToBin;
00124     
00125     double _phiMin;
00126     double _yMin;
00127     
00128     double _phiMax;
00129     double _yMax;
00130     
00131     double _phi0;
00132     double _y0;
00133     
00134     mutable size_t _nLevels;
00135     mutable bool _gotLevels;
00136     
00137     vector<double> _phiAxis;
00138     vector<double> _yAxis;
00139     
00140   };
00141 }
00142 
00143 #endif