CMS 3D CMS Logo

Public Member Functions | Private Attributes

RunSummaryRead Class Reference

#include <RunSummaryRead.h>

Inheritance diagram for RunSummaryRead:
TestBase

List of all members.

Public Member Functions

RunSummary readData (const std::string &table, const std::string &column, const int r_number)
void run ()
 RunSummaryRead (const std::string &connectionString, const std::string &user, const std::string &pass)
virtual ~RunSummaryRead ()

Private Attributes

std::string m_columnToRead
std::string m_connectionString
std::string m_pass
std::string m_tableToRead
std::string m_user

Detailed Description

Definition at line 11 of file RunSummaryRead.h.


Constructor & Destructor Documentation

RunSummaryRead::RunSummaryRead ( const std::string &  connectionString,
const std::string &  user,
const std::string &  pass 
)

Definition at line 34 of file RunSummaryRead.cc.

References m_columnToRead, and m_tableToRead.

                                    :
  TestBase(),
  
  m_connectionString( connectionString ),
  m_user( user ),
  m_pass( pass )
{

  m_tableToRead="";
  m_columnToRead="";

}
RunSummaryRead::~RunSummaryRead ( ) [virtual]

Definition at line 52 of file RunSummaryRead.cc.

{}

Member Function Documentation

RunSummary RunSummaryRead::readData ( const std::string &  table,
const std::string &  column,
const int  r_number 
)

The number of nanoseconds from epoch 01/01/1970 UTC, normally should fit into 64bit signed integer, depends on the BOOST installation

Definition at line 68 of file RunSummaryRead.cc.

References TestBase::connect(), gather_cfg::cout, RunSummary::CSC, BuildWebpage::date, cond::rpcobgas::day, dt, RunSummary::DT, RunSummary::ECAL, RunSummary::HCAL, m_columnToRead, m_connectionString, RunSummary::m_hltkey, RunSummary::m_lumisections, RunSummary::m_name, RunSummary::m_nevents, m_pass, RunSummary::m_rate, RunSummary::m_run, RunSummary::m_start_time_ll, RunSummary::m_start_time_str, RunSummary::m_stop_time_ll, RunSummary::m_stop_time_str, RunSummary::m_subdt_in, m_tableToRead, m_user, RunSummary::PIXEL, ExpressReco_HICollisions_FallBack::pt, RunSummary::RPC, python::IdGenerator::schema, edm::second(), python::CommonUtils::session, Sum, asciidump::table, and RunSummary::TRACKER.

Referenced by RunSummaryHandler::getNewObjects().

{
  m_tableToRead = table; // to be  cms_runinfo.runsession_parameter
  m_columnToRead= column;  // to be string_value;
  
  /* query to execute:
     1) to extract the seq_name 
     select  string_value from cms_runinfo.runsession_parameter where cms_runinfo.runsession_parameter.runnumber=r_number AND   cms_runinfo.runsession_parameter.name='CMS.LVL0:SEQ_NAME'
     

3) to extract the start_time 

select id from cms_runinfo.runsession_parameter where runnumber=45903 and cms_runinfo.runsession_parameter.name='CMS.LVL0:START_TIME_T';

and then 
select value from  runsession_date where runsession_parameter_id=1647783


4) the same for stop_time
 
select string_value from cms_runinfo.runsession_parameter where cms_runinfo.runsession_parameter.runnumber=runnumber AND   cms_runinfo.runsession_parameter.name='CMS.LVL0:STOP_TIME_T'

5) to extract the lumisections number for the run
select MAX(lsnumber)   FROM cms_runinfo.hlt_supervisor_lumisections where cms_runinfo.hlt_supervisor_lumisections.runnr=runnumber

6) for extract subdt_joined:
select  string_value from cms_runinfo.runsession_parameter   where cms_runinfo.runsession_parameter.runnumber=51770 AND cms_runinfo.runsession_parameter.name LIKE 'CMS.LVL0%' RPC, ECAL,....
  */  
  
  RunSummary  sum;
  RunSummary temp_sum;
  RunSummary Sum; 



  // if cursor is null  setting null values  
  temp_sum.m_run = r_number;

  std::cout<< "entering readData" << std::endl;
  coral::ISession* session = this->connect( m_connectionString,
                                            m_user, m_pass );
  session->transaction().start( );
  std::cout<< "starting session " << std::endl;
  coral::ISchema& schema = session->nominalSchema();
  std::cout<< " accessing schema " << std::endl;
  std::cout<< " trying to handle table ::  " << m_tableToRead << std::endl;
  // coral::IQuery* queryI = schema.newQuery();
  coral::IQuery* queryI = schema.tableHandle( m_tableToRead).newQuery();

 queryI->addToOutputList( m_tableToRead + "." +  m_columnToRead, m_columnToRead  );
  //  condition 
 
 coral::AttributeList conditionData;
  conditionData.extend<int>( "n_run" );
 conditionData[0].data<int>() = r_number;


  //  condition 
  std::string condition1 = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.LVL0:SEQ_NAME'";
  queryI->setCondition( condition1, conditionData );
  coral::ICursor& cursorI = queryI->execute();
  
  if ( cursorI.next()!=0  ) {
    const coral::AttributeList& row = cursorI.currentRow();
     temp_sum.m_name = row[m_columnToRead].data<std::string>();
    std::cout<< " name extracted == " << temp_sum.m_name   << std::endl;
  }
  else{
     temp_sum.m_name = "null";
    std::cout<< " name extracted == " << temp_sum.m_name   << std::endl;
  }
   delete queryI;
   
   
   std::string m_columnToRead_id = "ID";
   long long id_start=0;
   // new query to obtain the start_time, fist obtaining the id
   coral::IQuery* queryII = schema.tableHandle( m_tableToRead).newQuery();  
   //queryIII->addToTableList( m_tableToRead );
   // implemating the query here....... 
   queryII->addToOutputList( m_tableToRead + "." +  m_columnToRead_id, m_columnToRead_id    );
   //  condition 
   std::string condition2 = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.LVL0:START_TIME_T'";
   queryII->setCondition( condition2, conditionData );
   coral::ICursor& cursorII = queryII->execute();
   
 if ( cursorII.next()!=0 ) {
   const coral::AttributeList& row = cursorII.currentRow();
   id_start= row[m_columnToRead_id].data<long long>();
   std::cout<< " id for  start time time extracted == " <<id_start   << std::endl;
 }
 else{
   id_start=-1;
   std::cout<< " id for  start time time extracted == " <<id_start   << std::endl;
 }
 
 delete queryII;
 
 // now exctracting the start time
 std::string m_tableToRead_date= "RUNSESSION_DATE";
 std::string m_columnToRead_val= "VALUE";
 // new query to obtain the start_time, fist obtaining the id
 coral::IQuery* queryIII = schema.tableHandle( m_tableToRead_date).newQuery();  
 //queryIII->addToTableList( m_tableToRead );
 // implemating the query here....... 
 queryIII->addToOutputList( m_tableToRead_date + "." +  m_columnToRead_val, m_columnToRead_val    );
  //  condition 
 coral::AttributeList conditionData3;
 conditionData3.extend<long long>( "n_id" );
 conditionData3[0].data<long long>() = id_start;
 std::string condition3 = m_tableToRead_date + ".runsession_parameter_id=:n_id";
 queryIII->setCondition( condition3, conditionData3 );
 coral::ICursor& cursorIII = queryIII->execute();
 
 if ( cursorIII.next()!=0 ) {
   const coral::AttributeList& row = cursorIII.currentRow();
   coral::TimeStamp ts =  row[m_columnToRead_val].data<coral::TimeStamp>();    
   int  year= ts.year();
   int  month= ts.month();
   int  day= ts.day();
   int  hour= ts.hour();
   int  minute= ts.minute();
   int  second = ts.second();
   long nanosecond =  ts.nanosecond();
   //const std::string toString= ts.toString() ;    
   //const signed long long int  total_nanoseconds=ts.total_nanoseconds() ;
   
   
   std::cout<< "  start time time extracted == " << "-->year " << year
            << "-- month " << month
            << "-- day " << day
            << "-- hour " << hour 
            << "-- minute " << minute 
            << "-- second " << second
            << "-- nanosecond " << nanosecond<<std::endl;
   boost::gregorian::date dt(year,month,day);
   // td in microsecond, fix to utc.....
   boost::posix_time::time_duration td(hour-1,minute,second,nanosecond/1000);  
   
   boost::posix_time::ptime pt( dt, td); 
   //boost::gregorian::date(year,month,day),
   //boost::posix_time::hours(hour)+boost::posix_time::minutes(minute)+ 
   //boost::posix_time::seconds(second)+ 
   //nanosec(nanosecond));
   // boost::posix_time::ptime pt(ts);
   std::cout<<"ptime == "<< pt <<std::endl;          
   
   temp_sum.m_start_time_str = boost::posix_time::to_iso_extended_string(pt);
   std::cout<<"start time string  extracted  == "<<temp_sum.m_start_time_str   <<std::endl;   
   boost::posix_time::ptime time_at_epoch( boost::gregorian::date( 1970, 1, 1 ) ) ;
   // Subtract time_at_epoch from current time to get the required value.
   boost::posix_time::time_duration time_diff = ( pt - time_at_epoch ) ;
   temp_sum.m_start_time_ll = time_diff.total_microseconds();
   std::cout << "microsecond since Epoch (UTC) : " <<temp_sum.m_start_time_ll  <<std::endl;    
 }
 else 
   {
     temp_sum.m_start_time_str = "null";
     temp_sum.m_start_time_ll = -1;
   }
 delete queryIII;
 
 
 // new query to obtain the stop_time, fist obtaining the id
 coral::IQuery* queryIV = schema.tableHandle( m_tableToRead).newQuery();  
 //queryIII->addToTableList( m_tableToRead );
 // implemating the query here....... 
 queryIV->addToOutputList( m_tableToRead + "." +  m_columnToRead_id, m_columnToRead_id    );
 //  condition 
 std::string condition4 = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.LVL0:STOP_TIME_T'";
 
 queryIV->setCondition( condition4, conditionData );
 
 coral::ICursor& cursorIV = queryIV->execute();
 
 
 long long id_stop=0;
 if ( cursorIV.next()!=0 ) {
   const coral::AttributeList& row = cursorIV.currentRow();
        
   id_stop= row[m_columnToRead_id].data<long long>();
   std::cout<< " id for  stop time time extracted == " <<id_stop   << std::endl;
 }
 else{
  id_stop=-1;
 }
 delete queryIV;
 
 // now exctracting the start time
 // new query to obtain the start_time, fist obtaining the id
 coral::IQuery* queryIVbis = schema.tableHandle( m_tableToRead_date).newQuery(); 
 //queryIII->addToTableList( m_tableToRead );
 // implemating the query here....... 
 queryIVbis->addToOutputList( m_tableToRead_date + "." +  m_columnToRead_val, m_columnToRead_val    );
 //  condition 
 coral::AttributeList conditionData4bis;
 conditionData4bis.extend<long long>( "n_id" );
 conditionData4bis[0].data<long long>() = id_stop;
 std::string condition4bis = m_tableToRead_date + ".runsession_parameter_id=:n_id";
 queryIVbis->setCondition( condition4bis, conditionData4bis );
 coral::ICursor& cursorIVbis = queryIVbis->execute();
 if ( cursorIVbis.next()!=0 ) {
   const coral::AttributeList& row = cursorIVbis.currentRow();
   coral::TimeStamp ts =  row[m_columnToRead_val].data<coral::TimeStamp>(); 
   int  year= ts.year();
   int  month= ts.month();
   int  day= ts.day();
   int  hour= ts.hour();
   int  minute= ts.minute();
   int  second = ts.second();
   long nanosecond =  ts.nanosecond();
   std::cout<< "  stop time time extracted == " << "-->year " << year
            << "-- month " << month
            << "-- day " << day
            << "-- hour " << hour 
            << "-- minute " << minute 
            << "-- second " << second
            << "-- nanosecond " << nanosecond<<std::endl;
   boost::gregorian::date dt(year,month,day);
   // fix to utc....
   boost::posix_time::time_duration td(hour-1,minute,second,nanosecond/1000);  
   boost::posix_time::ptime pt( dt, td); 
   std::cout<<"ptime == "<< pt <<std::endl;          
   temp_sum.m_stop_time_str = boost::posix_time::to_iso_extended_string(pt);
   std::cout<<"stop time string  extracted  == "<<temp_sum.m_stop_time_str   <<std::endl;   
   boost::posix_time::ptime time_at_epoch( boost::gregorian::date( 1970, 1, 1 ) ) ;
   // Subtract time_at_epoch from current time to get the required value.
   boost::posix_time::time_duration time_diff = ( pt - time_at_epoch ) ;
   temp_sum.m_stop_time_ll = time_diff.total_microseconds();
   std::cout << "microsecond since Epoch (UTC) : " <<temp_sum.m_stop_time_ll  <<std::endl;    
 }
 else{
   temp_sum.m_stop_time_str="null";
   temp_sum.m_stop_time_ll=-1;
 }
 delete queryIVbis;
 
 // new query to obtain the lumisections number
 const std::string m_tableToRead_ls="HLT_SUPERVISOR_LUMISECTIONS_V2";
 const std::string m_columnToRead_ls = "LSNUMBER";
 
 coral::IQuery* queryV = schema.tableHandle( m_tableToRead_ls ).newQuery(); 
 queryV->addToOutputList( "MAX(" + m_tableToRead_ls + "." +  m_columnToRead_ls +")", m_columnToRead_ls  );
 std::string condition5 = m_tableToRead_ls + ".runnr=:n_run " ;
 //coral::AttributeList conditionData5;
 //conditionData5.extend<double>( "n_run" );
 queryV->setCondition( condition5, conditionData );
 // queryV->setCondition(std::string("max_lsnumber"),coral::AttributeList() );
 // queryV->defineOutputType( m_columnToRead_ls, "double" );
 coral::ICursor& cursorV = queryV->execute();
 if ( cursorV.next()!=0  ) {
   const coral::AttributeList& row = cursorV.currentRow();
   double lumisections =  row[m_columnToRead_ls].data<double>();
   temp_sum.m_lumisections = static_cast<int>(lumisections);
   std::cout<<" lumisections number extracted == "<<temp_sum.m_lumisections  << std::endl;  
 }
 else{
   temp_sum.m_lumisections=-1; 
 }
 std::cout<<" leaving the query  "<< std::endl;  
 delete queryV;





 
 // new queries to obtain the subdetector joining or not

coral::IQuery* queryVIPIXEL = schema.tableHandle( m_tableToRead).newQuery();  
  queryVIPIXEL->addToOutputList( m_tableToRead + "." +  m_columnToRead, m_columnToRead  );
  //  condition 
  std::string condition6PIXEL = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.LVL0:PIXEL'";
  queryVIPIXEL->setCondition( condition6PIXEL, conditionData );
  coral::ICursor& cursorVIPIXEL = queryVIPIXEL->execute();
  
  if ( cursorVIPIXEL.next()!=0  ) {
    const coral::AttributeList& row = cursorVIPIXEL.currentRow();
    //      temp_sum.m_subdt_joining.push_back("PIXEL:" + row[m_columnToRead].data<std::string>());
    if (row[m_columnToRead].data<std::string>()=="In") temp_sum.m_subdt_in.push_back(Sum.PIXEL) ;
      }
   else{
    //   temp_sum.m_subdt_joining.push_back("PIXEL:null");
    
   }
   delete queryVIPIXEL;

coral::IQuery* queryVITRACKER = schema.tableHandle( m_tableToRead).newQuery();  
  queryVITRACKER->addToOutputList( m_tableToRead + "." +  m_columnToRead, m_columnToRead  );
  //  condition 
  std::string condition6TRACKER = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.LVL0:TRACKER'";
  queryVITRACKER->setCondition( condition6TRACKER, conditionData );
  coral::ICursor& cursorVITRACKER = queryVITRACKER->execute();
  
  if ( cursorVITRACKER.next()!=0  ) {
    const coral::AttributeList& row = cursorVITRACKER.currentRow();
    
    //  temp_sum.m_subdt_joining.push_back("TRACKER:" + row[m_columnToRead].data<std::string>());
    if (row[m_columnToRead].data<std::string>()=="In") temp_sum.m_subdt_in.push_back(Sum.TRACKER) ;
  }
  else{
    // temp_sum.m_subdt_joining.push_back("TRACKER:null");
    
  }
   delete queryVITRACKER;

coral::IQuery* queryVIECAL = schema.tableHandle( m_tableToRead).newQuery();  
  queryVIECAL->addToOutputList( m_tableToRead + "." +  m_columnToRead, m_columnToRead  );
  //  condition 
  std::string condition6ECAL = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.LVL0:ECAL'";
  queryVIECAL->setCondition( condition6ECAL, conditionData );
  coral::ICursor& cursorVIECAL = queryVIECAL->execute();
  
  if ( cursorVIECAL.next()!=0  ) {
    const coral::AttributeList& row = cursorVIECAL.currentRow();
    
    // temp_sum.m_subdt_joining.push_back("ECAL:" + row[m_columnToRead].data<std::string>());
    if (row[m_columnToRead].data<std::string>()=="In") temp_sum.m_subdt_in.push_back(Sum.ECAL) ;
  }
  else{
    // temp_sum.m_subdt_joining.push_back("ECAL:null");
    
  }
   delete queryVIECAL;

coral::IQuery* queryVIHCAL = schema.tableHandle( m_tableToRead).newQuery();  
  queryVIHCAL->addToOutputList( m_tableToRead + "." +  m_columnToRead, m_columnToRead  );
  //  condition 
  std::string condition6HCAL = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.LVL0:HCAL'";
  queryVIHCAL->setCondition( condition6HCAL, conditionData );
  coral::ICursor& cursorVIHCAL = queryVIHCAL->execute();
  
  if ( cursorVIHCAL.next()!=0  ) {
    const coral::AttributeList& row = cursorVIHCAL.currentRow();
    
    //temp_sum.m_subdt_joining.push_back("HCAL:" + row[m_columnToRead].data<std::string>());
    if (row[m_columnToRead].data<std::string>()=="In") temp_sum.m_subdt_in.push_back(Sum.HCAL) ;
  }
  else{
    // temp_sum.m_subdt_joining.push_back("HCAL:null");
    
  }
   delete queryVIHCAL;


coral::IQuery* queryVIDT = schema.tableHandle( m_tableToRead).newQuery();  
  queryVIDT->addToOutputList( m_tableToRead + "." +  m_columnToRead, m_columnToRead  );
  //  condition 
  std::string condition6DT = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.LVL0:DT'";
  queryVIDT->setCondition( condition6DT, conditionData );
  coral::ICursor& cursorVIDT = queryVIDT->execute();
  
  if ( cursorVIDT.next()!=0  ) {
    const coral::AttributeList& row = cursorVIDT.currentRow();
    
    //  temp_sum.m_subdt_joining.push_back("DT:" + row[m_columnToRead].data<std::string>());
    if (row[m_columnToRead].data<std::string>()=="In") temp_sum.m_subdt_in.push_back(Sum.DT) ;
  }
  else{
    //   temp_sum.m_subdt_joining.push_back("DT:null");
    
  }
   delete queryVIDT;

coral::IQuery* queryVICSC = schema.tableHandle( m_tableToRead).newQuery();  
  queryVICSC->addToOutputList( m_tableToRead + "." +  m_columnToRead, m_columnToRead  );
  //  condition 
  std::string condition6CSC = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.LVL0:CSC'";
  queryVICSC->setCondition( condition6CSC, conditionData );
  coral::ICursor& cursorVICSC = queryVICSC->execute();
  
  if ( cursorVICSC.next()!=0  ) {
    const coral::AttributeList& row = cursorVICSC.currentRow();
    
    //  temp_sum.m_subdt_joining.push_back("CSC:" + row[m_columnToRead].data<std::string>());
    if (row[m_columnToRead].data<std::string>()=="In") temp_sum.m_subdt_in.push_back(Sum.CSC) ;
  }
  else{
    //   temp_sum.m_subdt_joining.push_back("CSC:null");
    
  }
   delete queryVICSC;

coral::IQuery* queryVIRPC = schema.tableHandle( m_tableToRead).newQuery();  
  queryVIRPC->addToOutputList( m_tableToRead + "." +  m_columnToRead, m_columnToRead  );
  //  condition 
  std::string condition6RPC = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.LVL0:RPC'";
  queryVIRPC->setCondition( condition6RPC, conditionData );
  coral::ICursor& cursorVIRPC = queryVIRPC->execute();
  
  if ( cursorVIRPC.next()!=0  ) {
    const coral::AttributeList& row = cursorVIRPC.currentRow();
    
    //  temp_sum.m_subdt_joining.push_back("RPC:" + row[m_columnToRead].data<std::string>());
    if (row[m_columnToRead].data<std::string>()=="In") temp_sum.m_subdt_in.push_back(Sum.RPC) ;
  }
  else{
    //   temp_sum.m_subdt_joining.push_back("RPC:null");
    
  }
   delete queryVIRPC;

 
   //  for (size_t pos=0; pos<  temp_sum.m_subdt_joining.size(); ++pos){ 
   //   std::cout <<" value for subdetector joined extracted " <<temp_sum.m_subdt_joining[pos] << std::endl;
   //   }

   // new query to catch hlt key
   coral::IQuery* queryVII = schema.tableHandle( m_tableToRead).newQuery();

 queryVII->addToOutputList( m_tableToRead + "." +  m_columnToRead, m_columnToRead  );
  //  condition 
 
 coral::AttributeList conditionData7;
  conditionData7.extend<int>( "n_run" );
 conditionData7[0].data<int>() = r_number;


  //  condition 
  std::string condition7 = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.LVL0:HLT_KEY_DESCRIPTION'";
  queryVII->setCondition( condition7, conditionData7 );
  coral::ICursor& cursorVII = queryVII->execute();
  
  if ( cursorVII.next()!=0  ) {
    const coral::AttributeList& row = cursorVII.currentRow();
     temp_sum.m_hltkey = row[m_columnToRead].data<std::string>();
    std::cout<< " hlt key extracted == " << temp_sum.m_hltkey   << std::endl;
  }
  else{
    temp_sum.m_hltkey = "null";
    std::cout<< " hlt key extracted == " << temp_sum.m_hltkey   << std::endl;
  }
   delete queryVII;
  
   // new query to catch event number
   coral::IQuery* queryVIII = schema.tableHandle( m_tableToRead).newQuery();

 queryVIII->addToOutputList( m_tableToRead + "." +  m_columnToRead, m_columnToRead  );
  //  condition 
 
 coral::AttributeList conditionData8;
  conditionData8.extend<int>( "n_run" );
 conditionData8[0].data<int>() = r_number;


  //  condition 
  std::string condition8 = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.TRG:EVNR' ORDER BY TIME DESC";
  queryVIII->setCondition( condition8, conditionData8 );
  coral::ICursor& cursorVIII = queryVIII->execute();
  
  if ( cursorVIII.next()!=0  ) {
    const coral::AttributeList& row = cursorVIII.currentRow();

    temp_sum.m_nevents=atoll(row[m_columnToRead].data<std::string>().c_str());
     
   
    std::cout<< " number of events extracted == " << temp_sum.m_nevents   << std::endl;
  }
  else{
    temp_sum.m_nevents = -1;
    std::cout<< " number of events extracted == " << temp_sum.m_nevents   << std::endl;
  }
   delete queryVIII;
    
 // new query to catch event number
   coral::IQuery* queryIX = schema.tableHandle( m_tableToRead).newQuery();

 queryIX->addToOutputList( "AVG(" + m_tableToRead + "." +  m_columnToRead + ")", m_columnToRead );
  //  condition 
 

 coral::AttributeList conditionData9;
  conditionData9.extend<int>( "n_run" );
 conditionData9[0].data<int>() = r_number;


  //  condition 
  std::string condition9 = m_tableToRead + ".runnumber=:n_run AND " +  m_tableToRead +  ".name='CMS.TRG:Rate' ORDER BY TIME";

  queryIX->setCondition( condition9, conditionData9 );
   coral::ICursor& cursorIX = queryIX->execute();
  
  if ( cursorIX.next()!=0  ) {
    const coral::AttributeList& row = cursorIX.currentRow();
     
    temp_sum.m_rate=(float)row[m_columnToRead].data<double>();
     
   
    std::cout<< " rate extracted == " << temp_sum.m_rate   << std::endl;
  }
  else{
    temp_sum.m_rate = -1;
    std::cout<< " rate  extracted == " << temp_sum.m_rate   << std::endl;
  }
   delete queryIX;




 session->transaction().commit();
 delete session;
 
 
 sum= temp_sum;
 return sum;
}
void RunSummaryRead::run ( ) [virtual]

Implements TestBase.

Definition at line 58 of file RunSummaryRead.cc.

{
  
}

Member Data Documentation

std::string RunSummaryRead::m_columnToRead [private]

Definition at line 26 of file RunSummaryRead.h.

Referenced by readData(), and RunSummaryRead().

std::string RunSummaryRead::m_connectionString [private]

Definition at line 27 of file RunSummaryRead.h.

Referenced by readData().

std::string RunSummaryRead::m_pass [private]

Definition at line 29 of file RunSummaryRead.h.

Referenced by readData().

std::string RunSummaryRead::m_tableToRead [private]

Definition at line 25 of file RunSummaryRead.h.

Referenced by readData(), and RunSummaryRead().

std::string RunSummaryRead::m_user [private]

Definition at line 28 of file RunSummaryRead.h.

Referenced by readData().