00001 00011 #ifndef EFRESULT_H 00012 #define EFRESULT_H 00013 00014 #include <vector> 00015 #include <string> 00016 #include <stdint.h> 00017 00018 #include "GaudiKernel/DataObject.h" 00019 00020 //hxt #include "CLIDSvc/CLASS_DEF.h" 00021 00022 static const CLID& CLID_EFResult=11006; 00023 00024 class EFResult: public DataObject 00025 { 00026 00027 public: 00028 00029 /* Constructor: Fill possible answers list */ 00030 EFResult(std::vector<std::string>); 00031 /* Constructor: Fill data members vector */ 00032 EFResult(std::vector<uint32_t>,uint32_t); 00033 /* Empty constructor: Init to 0 */ 00034 EFResult(); 00035 /* Destructor */ 00036 virtual ~EFResult(); 00037 00038 /*EFResult CLID accessor.*/ 00039 static const CLID& classID(); 00040 /*EFResult CLID accessor.*/ 00041 virtual const CLID& clID() const; 00042 00043 /* Method returning the EFResult 32bit ints vector contents */ 00044 const std::vector<uint32_t> getEFVec() const; 00045 const uint32_t getEFVec(uint32_t pos) const; 00046 00047 /* Method appending 32bit ints to the EF vector contents */ 00048 bool push_back(uint32_t val); 00049 bool appToEFVec(double val,uint32_t pos); 00050 bool addToEFVec(uint32_t val,uint32_t pos); 00051 bool setVecBit(uint32_t val,uint32_t vecpos,uint32_t bbegin,uint32_t bend); 00052 bool setVecBit(bool val,uint32_t vecpos,uint32_t bitpos); 00053 00054 /* Method to store the EF answer */ 00055 void setAnswer(std::string &answer); 00056 void setMidAnswer(std::string &answer); 00058 void reset(); 00059 00060 /* Method to retrieve the EF answer string */ 00061 const std::string getAnswer() const; 00062 const std::string getMidAnswer() const; 00063 00064 /* Method to retrieve the EF answer (string vector) index */ 00065 const int getAnswerIndex() const; 00066 const int getMidAnswerIndex() const; 00067 00068 const int getDecNum() const{ 00069 if(m_efVec.size()>=54)return m_efVec.size()-54; 00070 else return 0; 00071 } 00072 private: 00073 std::vector<std::string> m_answerVector; 00074 int m_answerIndex; 00075 int m_midanswerIndex; 00076 std::vector<uint32_t> m_efVec; 00077 }; 00078 00079 //hxt CLASS_DEF(EFResult ,11006,0) 00080 00081 #endif