コード例 #1
0
void getBeginTime(int runNumber = 15047028)
{
  const char* database = "mysql://db04.star.bnl.gov:3413/RunLog?timeout=60";
  const char* user = "******";
  const char* pass = "";
  TMySQLServer* mysql = TMySQLServer::Connect(database,user,pass);
  gSystem->mkdir("beginTimes");
  ofstream of(Form("beginTimes_t/%0.8d.beginTimes.txt", runNumber));
  if (!mysql) {
    cerr << "Connection to " << database << " failed" << endl;
    return;
  }

  TString query;
  TMySQLResult* result;
  
  query = Form("select distinct beginTime from `RunLog`.`runDescriptor` where runNumber = %d",runNumber);

  result = (TMySQLResult*)mysql->Query(query);
  if (result) {
    TMySQLRow* row;
    while (row = (TMySQLRow*)result->Next()) {
      TString str(Form("%s", row->GetField(0)));
      cout<<str.Data()<<endl;
      TString str_new = str;
      cout<<str_new.Data()<<endl;
      of<<str_new.Data()<<endl;
      delete row;
    }
    result->Close();
  }
  of.close();
  mysql->Close();  
}
コード例 #2
0
TObjArray readOnline(int runNumber)
{
  // Open connection to online database
  const char* database = "mysql://db04.star.bnl.gov:3411/Conditions_rts?timeout=60";
  const char* user = "******";
  const char* pass = "";
  TMySQLServer* mysql = TMySQLServer::Connect(database,user,pass);

  if (!mysql) {
    cerr << "Connection to " << database << " failed" << endl;
    return;
  }

  TObjArray arr;
  TString query;
  TMySQLResult* result;
  //  TDatime beginTime;


  query = Form("select object,idx,reg,label,value,defaultvalue from `Conditions_rts`.`dict` where hash=(select dicthash from run where idx_rn = %d)",runNumber);

  result = (TMySQLResult*)mysql->Query(query);
  if (result) {
    TMySQLRow* row;
    while (row = (TMySQLRow*)result->Next()) {
      StTriggerThreshold* th = new StTriggerThreshold;
      th->object = atoi(row->GetField(0));
      th->index = atoi(row->GetField(1));
      th->reg = atoi(row->GetField(2));
      th->label = row->GetField(3);
      th->value = atoi(row->GetField(4));
      th->defaultvalue = atoi(row->GetField(5));
      delete row;
      arr.Add(th);
    }
    result->Close();
  }

  mysql->Close();

  for (int i = 0; i < arr.GetEntriesFast(); ++i) {
    StTriggerThreshold* th = (StTriggerThreshold*)arr.At(i);
    th->print();
  }
  return arr;
}