Analyze.
113 atLeastAQuery =
false;
115 std::vector<std::string> vars;
119 for(
unsigned int i=0;
i<
MEinfo_.size();
i++ ) {
131 atLeastAQuery =
true;
133 session->transaction().start(
true);
137 coral::IQuery*
query = schema.newQuery();
139 for(
unsigned int j=0; j<
MEinfo_[
i].queries.size(); j++ ) {
140 if( strcmp(
MEinfo_[
i].queries[j].query.c_str(),
"addToTableList") == 0 ) {
141 query->addToTableList(
MEinfo_[
i].queries[j].
arg );
143 else if( strcmp(
MEinfo_[
i].queries[j].query.c_str(),
"addToOutputList") == 0 ) {
145 vars.push_back(
MEinfo_[
i].queries[j].alias );
147 else if( strcmp(
MEinfo_[
i].queries[j].query.c_str(),
"setCondition") == 0 ) {
148 query->setCondition(
MEinfo_[
i].queries[j].arg, coral::AttributeList() );
150 else if( strcmp(
MEinfo_[
i].queries[j].query.c_str(),
"addToOrderList") == 0 ) {
151 query->addToOrderList(
MEinfo_[
i].queries[j].arg );
155 coral::ICursor& cursor = query->execute();
159 while ( cursor.next() && k <
MEinfo_[
i].loop ) {
162 const coral::AttributeList& row = cursor.currentRow();
164 std::vector<float> vvars;
166 for(
unsigned int l=0;
l<vars.size();
l++ ) {
168 vvars.push_back( row[vars[
l]].data<float>() );
171 if( vvars.size() == 2 ) {
173 MEs_[
i]->Fill( vvars[0], vvars[1] );
175 else if( vvars.size() == 3 ) {
177 MEs_[
i]->Fill( vvars[0], vvars[1], vvars[2] );
179 else if( vvars.size() == 4 ) {
181 MEs_[
i]->Fill( vvars[0], vvars[1], vvars[2], vvars[3] );
184 std::cerr <<
"Too many variables to plot..." << std::endl;
195 std::cerr <<
"CORAL Exception : " << e.what() << std::endl;
197 std::cerr <<
"Standard C++ exception : " << e.what() << std::endl;
203 if( atLeastAQuery )
session->transaction().commit();
def query(query_str, verbose=False)
std::vector< DB_ME > MEinfo_
std::vector< MonitorElement * > MEs_