5 : m_answerVector( ans ), m_answerIndex( -1 ), m_midanswerIndex( -1 ), m_efVec() {}
8 : m_answerVector(), m_answerIndex( -1 ), m_midanswerIndex( -1 ), m_efVec() {
9 if (
vec.size() + pos > 54 )
11 std::cout <<
"***EFResult:EFResult(): vector size error!" << std::endl;
12 m_efVec.resize( 54, 0 );
16 for ( unsigned int i = 0; i < 54; ++i )
18 if ( i < pos || i >= vec.size() + pos ) m_efVec.push_back( 0 );
19 else m_efVec.push_back( vec[i - pos] );
25 : m_answerVector(), m_answerIndex( -1 ), m_midanswerIndex( -1 ), m_efVec() {}
37 if ( pos >= m_efVec.size() )
return 0;
38 else return m_efVec[pos];
42 if ( m_efVec.size() > 0 && m_efVec.size() < 54 )
return false;
43 if ( m_efVec.size() == 0 ) m_efVec.resize( 54, 0 );
44 m_efVec.push_back( val );
49 if ( pos >= 54 )
return false;
50 if ( m_efVec.size() != 0 && m_efVec.size() < 54 )
51 { std::cout <<
"EFResult::appToEFVec-->size error!" << std::endl; }
52 if ( m_efVec.size() == 0 ) m_efVec.resize( 54, 0 );
54 float*
f = (
float*)&m_efVec[pos];
60 if ( pos >= 54 )
return false;
61 if ( m_efVec.size() != 0 && m_efVec.size() < 54 )
62 { std::cout <<
"EFResult::addToEFVec-->size error!" << std::endl; }
63 if ( m_efVec.size() == 0 ) m_efVec.resize( 54, 0 );
71 if ( vecpos >= 54 )
return false;
72 if ( bend >= 32 || bbegin > bend )
return false;
73 if ( m_efVec.size() == 0 ) m_efVec.resize( 54, 0 );
74 uint32_t bits = 0xFFFFFFFF >> ( 31 - bend + bbegin );
75 m_efVec[vecpos] &= ( ~( ( bits ) << bbegin ) );
76 m_efVec[vecpos] |= ( val & bits ) << bbegin;
81 if ( vecpos >= 54 )
return false;
82 if ( bitpos >= 32 )
return false;
83 if ( m_efVec.size() == 0 ) m_efVec.resize( 54, 0 );
84 if ( val ) m_efVec[vecpos] |= ( 1 << bitpos );
85 else m_efVec[vecpos] &= ( ~( 1 << bitpos ) );
92 std::vector<std::string>::iterator itVs = m_answerVector.begin();
93 std::vector<std::string>::iterator endVs = m_answerVector.end();
94 for ( ; itVs != endVs && m_answerIndex == -1; ++itVs )
96 if ( *itVs == answer )
98 m_answerIndex = iCount;
111 std::vector<std::string>::iterator itVs = m_answerVector.begin();
112 std::vector<std::string>::iterator endVs = m_answerVector.end();
113 for ( ; itVs != endVs && m_answerIndex == -1; ++itVs )
115 if ( *itVs == answer )
117 m_midanswerIndex = iCount;
131 m_midanswerIndex = -1;
132 if ( m_efVec.size() >= 54 )
134 m_efVec.resize( 54, 0 );
135 for (
unsigned int i = 0; i < m_efVec.size(); ++i ) m_efVec[i] = 0;
137 else if ( m_efVec.size() != 0 )
138 { std::cout <<
"EFResult::reset(): m_efVec size check error!" << std::endl; }
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
Defines the EFResult RDO structure.
bool addToEFVec(uint32_t val, uint32_t pos)
const std::string getAnswer() const
const int getMidAnswerIndex() const
static const CLID & classID()
void setAnswer(std::string &answer)
bool appToEFVec(double val, uint32_t pos)
const int getAnswerIndex() const
void setMidAnswer(std::string &answer)
const std::string getMidAnswer() const
virtual const CLID & clID() const
bool setVecBit(uint32_t val, uint32_t vecpos, uint32_t bbegin, uint32_t bend)
const std::vector< uint32_t > getEFVec() const
bool push_back(uint32_t val)