00001 #ifndef pomFITS_MAIN_TASK_H
00002 #define pomFITS_MAIN_TASK_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __cplusplus
00022 #error This is a C++ include file and cannot be used from plain C
00023 #endif
00024
00025 #include "pom.h"
00026
00027 struct MeasureStat {
00028 int i;
00029 double dx,
00030 dd,
00031 ds,
00032 dz,
00033 dr,
00034 score;
00035 MeasureStat (int _i, double _dx, double _dd,
00036 double _ds, double _dz, double _dr, double _sc):
00037 i(_i), dx(_dx), dd(_dd),
00038 ds(_ds), dz(_dz), dr(_dr),
00039 score(_sc)
00040 {}
00041 };
00042
00043
00044 class pomFITS_MAIN_TASK : public tcsSTATE
00045 {
00046 public:
00047 pomFITS_MAIN_TASK(const dbSYMADDRESS dbPoint, vltLOGICAL initTpoint = ccsTRUE);
00048 virtual ~pomFITS_MAIN_TASK();
00049
00050
00051 virtual evhCB_COMPL_STAT StopCB(msgMESSAGE &msg, void *);
00052 virtual evhCB_COMPL_STAT OnlineCB(msgMESSAGE &msg, void *);
00053 virtual evhCB_COMPL_STAT StandbyCB(msgMESSAGE &msg, void *);
00054 virtual evhCB_COMPL_STAT OffCB(msgMESSAGE &msg, void *);
00055 virtual evhCB_COMPL_STAT StatusCB(msgMESSAGE &msg, void *udata);
00056
00057
00058 virtual evhCB_COMPL_STAT AppendCB(msgMESSAGE &msg, void *);
00059 virtual evhCB_COMPL_STAT CallCB(msgMESSAGE &msg, void *);
00060 virtual evhCB_COMPL_STAT ClistCB(msgMESSAGE &msg, void *);
00061 virtual evhCB_COMPL_STAT EndCB(msgMESSAGE &msg, void *);
00062 virtual evhCB_COMPL_STAT FinCB(msgMESSAGE &msg, void *);
00063 virtual evhCB_COMPL_STAT FitCB(msgMESSAGE &msg, void *);
00064 virtual evhCB_COMPL_STAT FixCB(msgMESSAGE &msg, void *);
00065 virtual evhCB_COMPL_STAT GCB(msgMESSAGE &msg, void *);
00066 virtual evhCB_COMPL_STAT GcCB(msgMESSAGE &msg, void *);
00067 virtual evhCB_COMPL_STAT GamCB(msgMESSAGE &msg, void *);
00068 virtual evhCB_COMPL_STAT GdistCB(msgMESSAGE &msg, void *);
00069 virtual evhCB_COMPL_STAT GhystCB(msgMESSAGE &msg, void *);
00070 virtual evhCB_COMPL_STAT GmapCB(msgMESSAGE &msg, void *);
00071 virtual evhCB_COMPL_STAT GscatCB(msgMESSAGE &msg, void *);
00072 virtual evhCB_COMPL_STAT IndatCB(msgMESSAGE &msg, void *);
00073 virtual evhCB_COMPL_STAT InmodCB(msgMESSAGE &msg, void *);
00074 virtual evhCB_COMPL_STAT InproCB(msgMESSAGE &msg, void *);
00075 virtual evhCB_COMPL_STAT LoseCB(msgMESSAGE &msg, void *);
00076 virtual evhCB_COMPL_STAT MeslevCB(msgMESSAGE &msg, void *);
00077 virtual evhCB_COMPL_STAT OutmodCB(msgMESSAGE &msg, void *);
00078 virtual evhCB_COMPL_STAT PloteqCB(msgMESSAGE &msg, void *);
00079 virtual evhCB_COMPL_STAT PlotaaCB(msgMESSAGE &msg, void *);
00080 virtual evhCB_COMPL_STAT ShowCB(msgMESSAGE &msg, void *);
00081 virtual evhCB_COMPL_STAT SlistCB(msgMESSAGE &msg, void *);
00082 virtual evhCB_COMPL_STAT StartCB(msgMESSAGE &msg, void *);
00083 virtual evhCB_COMPL_STAT UnfitCB(msgMESSAGE &msg, void *);
00084 virtual evhCB_COMPL_STAT UseCB(msgMESSAGE &msg, void *);
00085 virtual evhCB_COMPL_STAT TptrunCB(msgMESSAGE &msg, void *);
00086
00087 virtual evhCB_COMPL_STAT myslistCB(msgMESSAGE &msg, void *);
00088 virtual evhCB_COMPL_STAT sweightCB(msgMESSAGE &msg, void *);
00089 virtual evhCB_COMPL_STAT streshCB(msgMESSAGE &msg, void *);
00090 virtual evhCB_COMPL_STAT scoresCB(msgMESSAGE &msg, void *);
00091 virtual evhCB_COMPL_STAT analCB(msgMESSAGE &msg, void *);
00092 virtual evhCB_COMPL_STAT resetCB(msgMESSAGE &msg, void *);
00093
00094 ccsCOMPL_STAT Recover();
00095
00096
00097 protected:
00098
00099 virtual evhCB_COMPL_STAT ExitCB(msgMESSAGE &msg, void *udata);
00100 virtual evhCB_COMPL_STAT InitCB(msgMESSAGE &msg, void *udata);
00101
00102 virtual ccsCOMPL_STAT Stop();
00103 virtual ccsCOMPL_STAT Init(vltLOGICAL initTpoint = ccsTRUE);
00104 virtual ccsCOMPL_STAT SwitchOff();
00105
00106 virtual void tPtHandleCommand(tcsCMD_HANDLER *h, const char* cmd,
00107 const char *parm=0) const;
00108 virtual void tPtCommand (const char * command, const char *Parm=0) const;
00109 virtual ccsCOMPL_STAT FindIniFile(const char *name);
00110 virtual void startLib();
00111
00112 tcsCMD_HANDLER * startHandler;
00113
00114 private:
00115 dbSYMADDRESS dbPoint;
00116
00117 char pointDir[256];
00118
00119 protected:
00120
00121 tcsCMD_HANDLER *initHandler;
00122 tcsCMD_HANDLER *exitHandler;
00123 tcsCMD_HANDLER *stopHandler;
00124 tcsCMD_HANDLER *onlineHandler;
00125 tcsCMD_HANDLER *standbyHandler;
00126 tcsCMD_HANDLER *offHandler;
00127 tcsCMD_HANDLER *statusHandler;
00128
00129
00130 tcsCMD_HANDLER * appendHandler;
00131 tcsCMD_HANDLER * callHandler;
00132 tcsCMD_HANDLER * clistHandler;
00133 tcsCMD_HANDLER * endHandler;
00134 tcsCMD_HANDLER * finHandler;
00135 tcsCMD_HANDLER * fitHandler;
00136 tcsCMD_HANDLER * fixHandler;
00137 tcsCMD_HANDLER * gHandler;
00138 tcsCMD_HANDLER * gcHandler;
00139 tcsCMD_HANDLER * gamHandler;
00140 tcsCMD_HANDLER * gdistHandler;
00141 tcsCMD_HANDLER * ghystHandler;
00142 tcsCMD_HANDLER * gmapHandler;
00143 tcsCMD_HANDLER * gscatHandler;
00144 tcsCMD_HANDLER * indatHandler;
00145 tcsCMD_HANDLER * inmodHandler;
00146 tcsCMD_HANDLER * inproHandler;
00147 tcsCMD_HANDLER * loseHandler;
00148 tcsCMD_HANDLER * meslevHandler;
00149 tcsCMD_HANDLER * outmodHandler;
00150 tcsCMD_HANDLER * ploteqHandler;
00151 tcsCMD_HANDLER * plotaaHandler;
00152 tcsCMD_HANDLER * showHandler;
00153 tcsCMD_HANDLER * slistHandler;
00154 tcsCMD_HANDLER * unfitHandler;
00155 tcsCMD_HANDLER * useHandler;
00156 tcsCMD_HANDLER * tptrunHandler;
00157
00158 tcsCMD_HANDLER * myslistHandler;
00159 tcsCMD_HANDLER * sweightHandler;
00160 tcsCMD_HANDLER * streshHandler;
00161 tcsCMD_HANDLER * scoresHandler;
00162 tcsCMD_HANDLER * analHandler;
00163 tcsCMD_HANDLER * resetHandler;
00164
00165
00166 void ScoreMeasures(void);
00167 int myslist(void);
00168 int rejectBadMeasures(bool=true);
00169
00170
00171
00172 vector<MeasureStat*> svector;
00173
00174 vltDOUBLE
00175 dxPosTresh,dxNegTresh,
00176 ddPosTresh, ddNegTresh,
00177 dsPosTresh, dsNegTresh,
00178 dzPosTresh, dzNegTresh,
00179 drPosTresh, drNegTresh;
00180
00181
00182 eccsDB_DOUBLE wdx, wdd, wds, wdz, wdr;
00183 eccsDB_DOUBLE rejectTreshold;
00184 eccsDB_DOUBLE sigmaFactor;
00185 eccsDB_DOUBLE sigmaIncrement;
00186 };
00187
00188
00189 #endif