My Project
|
00001 /* 00002 $Id: DoubleBinArrange.hh 2273 2011-06-22 09:38:14Z jisuzuki $ 00003 */ 00004 00005 00006 #ifndef DOUBLEBINARRANGE 00007 #define DOUBLEBINARRANGE 00008 00009 #include "Header.hh" 00010 #include "HeaderBase.hh" 00011 #include "NeutronVector.hh" 00012 00014 00025 class DoubleBinArrange 00026 { 00027 private: 00028 UInt4 SourceBinNumber; 00029 UInt4 ResultBinNumber; 00030 vector<Double> SourceBinMin; 00031 vector<Double> SourceBinMax; 00032 vector<Double> SourceValue; 00033 vector<Double> SourceError; 00034 vector<Double> ResultBinMin; 00035 vector<Double> ResultBinMax; 00036 vector<Double> ResultValue; 00037 vector<Double> ResultError; 00038 NeutronVector< vector<Double>, HeaderBase > * CPercent; 00039 NeutronVector< vector<UInt4>, HeaderBase > * CNumber; 00040 00041 void MakeArray(); 00042 Int4 SelectOrigBin( Double value ); 00043 Int4 SelectResultBin( Double value ); 00044 00045 void SetSourceBinBoundary( const vector<Double> &array ); 00046 void SetResultBinBoundary( const vector<Double> &array ); 00047 void SetSourceValue( const vector<Double> &array ); 00048 void SetSourceError( const vector<Double> &array ); 00049 void FormatBin(); 00050 00051 UInt4 AveFlag; 00052 UInt4 BinFlag; 00053 00054 public: 00055 DoubleBinArrange( UInt4 SourceBinNumber, 00056 UInt4 ResultBinNumber ); 00059 ~DoubleBinArrange(); 00060 00061 void SetHist( const vector<Double> &SourceBinBoundary, 00062 const vector<Double> &SourceValue, 00063 const vector<Double> &SourceError, 00064 const vector<Double> &ResultBinBoundary ); 00071 vector<Double> &PutResultBinMin(); 00077 vector<Double> &PutResultBinMax(); 00083 vector<Double> PutResultBin(); 00089 vector<Double> PutResultBinVector(); 00096 vector<Double> &PutResultValue(); 00101 vector<Double> &PutResultError(); 00107 void Binning( Int4 DefaultErrorValue=0 ); 00109 void Averaging(); 00111 }; 00112 00113 #endif 00114