00001 #ifndef _HHGate2D_h
00002 #define _HHGate2D_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 class HHGate2D
00013 {
00014 public:
00015 HHGate2D();
00016 HHGate2D( Id originalChanId, Id originalGateId );
00017
00018 double lookupA( vector< double > v ) const;
00019 double lookupB( vector< double > v ) const;
00020
00021
00022
00027 void lookupBoth( double v, double c, double* A, double* B) const;
00028
00034 bool checkOriginal( Id id, const string& field ) const;
00035
00040 bool isOriginalChannel( Id id ) const;
00041
00046 bool isOriginalGate( Id id ) const;
00047
00051 Id originalChannelId() const;
00052
00056 vector< vector< double > > getTableA(const Eref& e) const;
00057 void setTableA(const Eref& e, vector< vector< double > > value);
00058
00059
00063 vector< vector< double > > getTableB( const Eref& e ) const;
00064 void setTableB( const Eref& e, vector< vector< double > > value);
00065
00067
00069 double getXminA(const Eref& e) const;
00070 void setXminA(const Eref& e, double value);
00071 double getXmaxA(const Eref& e) const;
00072 void setXmaxA(const Eref& e, double value);
00073 unsigned int getXdivsA(const Eref& e) const;
00074 void setXdivsA(const Eref& e, unsigned int value);
00075 double getYminA(const Eref& e) const;
00076 void setYminA(const Eref& e, double value);
00077 double getYmaxA(const Eref& e) const;
00078 void setYmaxA(const Eref& e, double value);
00079 unsigned int getYdivsA(const Eref& e) const;
00080 void setYdivsA(const Eref& e, unsigned int value);
00081 double getXminB(const Eref& e) const;
00082 void setXminB(const Eref& e, double value);
00083 double getXmaxB(const Eref& e) const;
00084 void setXmaxB(const Eref& e, double value);
00085 unsigned int getXdivsB(const Eref& e) const;
00086 void setXdivsB(const Eref& e, unsigned int value);
00087 double getYminB(const Eref& e) const;
00088 void setYminB(const Eref& e, double value);
00089 double getYmaxB(const Eref& e) const;
00090 void setYmaxB(const Eref& e, double value);
00091 unsigned int getYdivsB(const Eref& e) const;
00092 void setYdivsB(const Eref& e, unsigned int value);
00093
00094 static const Cinfo* initCinfo();
00095 private:
00096 Interpol2D A_;
00097 Interpol2D B_;
00098
00099 Id originalChanId_;
00100 Id originalGateId_;
00101 };
00102
00103
00104
00105 #endif // _HHGate2D_h