BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EFResult Class Reference

#include <EFResult.h>

Inheritance diagram for EFResult:

Public Member Functions

 EFResult (std::vector< std::string >)
 EFResult (std::vector< uint32_t >, uint32_t)
 EFResult ()
virtual ~EFResult ()
virtual const CLID & clID () const
const std::vector< uint32_t > getEFVec () const
const uint32_t getEFVec (uint32_t pos) const
bool push_back (uint32_t val)
bool appToEFVec (double val, uint32_t pos)
bool addToEFVec (uint32_t val, uint32_t pos)
bool setVecBit (uint32_t val, uint32_t vecpos, uint32_t bbegin, uint32_t bend)
bool setVecBit (bool val, uint32_t vecpos, uint32_t bitpos)
void setAnswer (std::string &answer)
void setMidAnswer (std::string &answer)
void reset ()
const std::string getAnswer () const
const std::string getMidAnswer () const
const int getAnswerIndex () const
const int getMidAnswerIndex () const
const int getDecNum () const

Static Public Member Functions

static const CLID & classID ()

Detailed Description

Definition at line 24 of file EFResult.h.

Constructor & Destructor Documentation

◆ EFResult() [1/3]

EFResult::EFResult ( std::vector< std::string > ans)

Definition at line 4 of file EFResult.cxx.

5 : m_answerVector( ans ), m_answerIndex( -1 ), m_midanswerIndex( -1 ), m_efVec() {}

◆ EFResult() [2/3]

EFResult::EFResult ( std::vector< uint32_t > vec,
uint32_t pos )

Definition at line 7 of file EFResult.cxx.

8 : m_answerVector(), m_answerIndex( -1 ), m_midanswerIndex( -1 ), m_efVec() {
9 if ( vec.size() + pos > 54 )
10 {
11 std::cout << "***EFResult:EFResult(): vector size error!" << std::endl;
12 m_efVec.resize( 54, 0 );
13 }
14 else
15 {
16 for ( unsigned int i = 0; i < 54; ++i )
17 {
18 if ( i < pos || i >= vec.size() + pos ) m_efVec.push_back( 0 );
19 else m_efVec.push_back( vec[i - pos] );
20 }
21 }
22}
dble_vec_t vec[12]

◆ EFResult() [3/3]

EFResult::EFResult ( )

Definition at line 24 of file EFResult.cxx.

25 : m_answerVector(), m_answerIndex( -1 ), m_midanswerIndex( -1 ), m_efVec() {}

◆ ~EFResult()

EFResult::~EFResult ( )
virtual

Definition at line 27 of file EFResult.cxx.

27{}

Member Function Documentation

◆ addToEFVec()

bool EFResult::addToEFVec ( uint32_t val,
uint32_t pos )

Definition at line 59 of file EFResult.cxx.

59 {
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 );
64
65 m_efVec[pos] += val;
66
67 return true;
68}

◆ appToEFVec()

bool EFResult::appToEFVec ( double val,
uint32_t pos )

Definition at line 48 of file EFResult.cxx.

48 {
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 );
53 float a = val;
54 float* f = (float*)&m_efVec[pos];
55 *f = a;
56 return true;
57}
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")

◆ classID()

const CLID & EFResult::classID ( )
static

Definition at line 29 of file EFResult.cxx.

29 {
30 return CLID_EFResult; // hxt ClassID_traits<EFResult>::ID();
31}

Referenced by clID().

◆ clID()

const CLID & EFResult::clID ( ) const
virtual

Definition at line 33 of file EFResult.cxx.

33{ return EFResult::classID(); }
static const CLID & classID()
Definition EFResult.cxx:29

◆ getAnswer()

const std::string EFResult::getAnswer ( ) const

Definition at line 141 of file EFResult.cxx.

141{ return m_answerVector[m_answerIndex]; }

Referenced by CheckEFResult::execute(), and EFtoTDS::execute().

◆ getAnswerIndex()

const int EFResult::getAnswerIndex ( ) const

Definition at line 143 of file EFResult.cxx.

143{ return m_answerIndex; }

Referenced by CheckEFResult::execute(), and EFtoTDS::execute().

◆ getDecNum()

const int EFResult::getDecNum ( ) const
inline

Definition at line 66 of file EFResult.h.

66 {
67 if ( m_efVec.size() >= 54 ) return m_efVec.size() - 54;
68 else return 0;
69 }

Referenced by EFtoTDS::execute().

◆ getEFVec() [1/2]

const std::vector< uint32_t > EFResult::getEFVec ( ) const

Definition at line 35 of file EFResult.cxx.

35{ return m_efVec; }

Referenced by CheckEFResult::execute(), and EFtoTDS::execute().

◆ getEFVec() [2/2]

const uint32_t EFResult::getEFVec ( uint32_t pos) const

Definition at line 36 of file EFResult.cxx.

36 {
37 if ( pos >= m_efVec.size() ) return 0;
38 else return m_efVec[pos];
39}

◆ getMidAnswer()

const std::string EFResult::getMidAnswer ( ) const

Definition at line 145 of file EFResult.cxx.

145{ return m_answerVector[m_midanswerIndex]; }

◆ getMidAnswerIndex()

const int EFResult::getMidAnswerIndex ( ) const

Definition at line 147 of file EFResult.cxx.

147{ return m_midanswerIndex; }

◆ push_back()

bool EFResult::push_back ( uint32_t val)

Definition at line 41 of file EFResult.cxx.

41 {
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 );
45 return true;
46}

◆ reset()

void EFResult::reset ( )

Definition at line 129 of file EFResult.cxx.

129 {
130 m_answerIndex = -1;
131 m_midanswerIndex = -1;
132 if ( m_efVec.size() >= 54 )
133 {
134 m_efVec.resize( 54, 0 );
135 for ( unsigned int i = 0; i < m_efVec.size(); ++i ) m_efVec[i] = 0;
136 }
137 else if ( m_efVec.size() != 0 )
138 { std::cout << "EFResult::reset(): m_efVec size check error!" << std::endl; }
139}

◆ setAnswer()

void EFResult::setAnswer ( std::string & answer)

Definition at line 89 of file EFResult.cxx.

89 {
90 int iCount = 0;
91
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 )
95 {
96 if ( *itVs == answer )
97 {
98 m_answerIndex = iCount;
99
100 // Store the answer index in the first data member field
101 // zoujh: memory leak ... what's the use of m_efVec ?
102 // m_efVec.push_back(m_answerIndex);
103 }
104 iCount++;
105 }
106}

◆ setMidAnswer()

void EFResult::setMidAnswer ( std::string & answer)

Definition at line 108 of file EFResult.cxx.

108 {
109 int iCount = 0;
110 // cout << "EFResult::setMidAnswer "<<answer<<" ("<<m_answerVector.size()<<")"<<endl;
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 )
114 {
115 if ( *itVs == answer )
116 {
117 m_midanswerIndex = iCount;
118
119 // Store the answer index in the first data member field
120 // zoujh: memory leak ... what's the use of m_efVec ?
121 // m_efVec.push_back(m_answerIndex);
122 }
123 // cout<<(*itVs)<<endl;
124 iCount++;
125 }
126 // cout<<m_midanswerIndex<<endl;
127}

◆ setVecBit() [1/2]

bool EFResult::setVecBit ( bool val,
uint32_t vecpos,
uint32_t bitpos )

Definition at line 80 of file EFResult.cxx.

80 {
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 ) );
86 return true;
87}

◆ setVecBit() [2/2]

bool EFResult::setVecBit ( uint32_t val,
uint32_t vecpos,
uint32_t bbegin,
uint32_t bend )

Definition at line 70 of file EFResult.cxx.

70 {
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;
77 return true;
78}

The documentation for this class was generated from the following files: