00001 #ifndef QSEEXAFSOPERATOR_H
00002 #define QSEEXAFSOPERATOR_H
00003
00004 #include "qseoperator.h"
00005 #include "qseregexpparameter.h"
00006 #include <QHash>
00007
00008 class QseDataSet;
00009 class QseScan;
00010 class QseColumn;
00011
00012 class QseEXAFSOperator : public QseOperator
00013 {
00014 Q_OBJECT;
00015
00016 public:
00017 QseEXAFSOperator(QseDataSet* inData,
00018 QseDataSet* outData,
00019 const QString& name,
00020 QObject* parent=0);
00021
00022 QseDataSet *inputData();
00023 QseDataSet *outputData();
00024
00025 public:
00026 bool matchesEnergyPattern(const QseColumn* col, int colnum);
00027 bool matchesEnergyColumn(const QseColumn* col, int colnum);
00028 bool matchesDetectorPattern(const QseColumn* col, int colnum);
00029 bool matchesDetectorColumn(const QseColumn* col, int colnum);
00030 bool matchesNormalizationPattern(const QseColumn* col, int colnum);
00031 bool matchesNormalizationColumn(const QseColumn* col, int colnum);
00032 bool matchesSecondsPattern(const QseColumn* col, int colnum);
00033 bool matchesSecondsColumn(const QseColumn* col, int colnum);
00034
00035 protected:
00036 QseDataSet *m_InputData;
00037 QseDataSet *m_OutputData;
00038
00039 QseRegExpParameter m_EnergyPattern;
00040 QseRegExpParameter m_DetectorPattern;
00041 QseRegExpParameter m_NormalizationPattern;
00042 QseRegExpParameter m_SecondsPattern;
00043
00044 typedef enum {
00045 UnspecifiedScanRole = -1,
00046 ScanNotUsedRole,
00047 ScanUsedRole } QseScanRole;
00048
00049 QHash<const QseScan*, QseScanRole> m_ScanExceptions;
00050
00051 typedef enum {
00052 UnspecifiedRole = -1,
00053 NotUsedRole,
00054 DetectorRole,
00055 NormalizationRole,
00056 EnergyRole,
00057 SecondsRole } QseColumnRole;
00058
00059 QHash<const QseColumn*, QseColumnRole> m_Exceptions;
00060 };
00061
00062 #endif