1 |
// |
2 |
// C/C++ headers |
3 |
// |
4 |
#include <iostream> |
5 |
#include <sstream> |
6 |
// |
7 |
// ROOT headers |
8 |
// |
9 |
#include <TString.h> |
10 |
#include <TSQLServer.h> |
11 |
#include <TFile.h> |
12 |
#include <TSystem.h> |
13 |
// |
14 |
#include <RunInfo.h> |
15 |
using namespace std; |
16 |
// |
17 |
int RunInfoCore(UInt_t run, TFile *processFile, TSQLServer *dbc, TString DVV, Int_t runargc, char *runargv[]){ |
18 |
Int_t i = 0; |
19 |
Int_t sgnl = 0; |
20 |
// |
21 |
TString processFolder = Form("runinfoFolder_%u",run); |
22 |
if ( runargc > 0 ){ |
23 |
i = 0; |
24 |
while ( i < runargc ){ |
25 |
if ( !strcmp(runargv[i],"-processFolder") ) { |
26 |
if ( runargc < i+1 ){ |
27 |
throw -3; |
28 |
}; |
29 |
processFolder = (TString)runargv[i+1]; |
30 |
i++; |
31 |
}; |
32 |
i++; |
33 |
}; |
34 |
}; |
35 |
ItoRunInfo *runinfo = 0; |
36 |
stringstream temprname; |
37 |
const char* routdir = gSystem->DirName(gSystem->DirName(processFile->GetPath())); |
38 |
temprname.str(""); |
39 |
temprname << routdir; |
40 |
temprname << "/" << processFolder.Data(); |
41 |
// |
42 |
if ( !dbc->IsConnected() ) throw -807; |
43 |
runinfo = new ItoRunInfo(dbc,processFile,processFolder); |
44 |
sgnl = runinfo->Update(run,"NONE",""); |
45 |
gSystem->Unlink(temprname.str().c_str()); |
46 |
// |
47 |
runinfo->Close(); |
48 |
processFile->cd(); |
49 |
if ( processFile ) processFile->Write("Run"); |
50 |
runinfo->Clear(); |
51 |
// |
52 |
if ( sgnl < 0 ) throw sgnl; |
53 |
// |
54 |
delete runinfo; |
55 |
// |
56 |
runinfo = new ItoRunInfo(processFile); |
57 |
sgnl = runinfo->Update(run,"DV",DVV); |
58 |
gSystem->Unlink(temprname.str().c_str()); |
59 |
runinfo->Close(); |
60 |
processFile->cd(); |
61 |
if ( processFile ) processFile->Write("Run"); |
62 |
// |
63 |
if ( sgnl < 0 ) throw sgnl; |
64 |
// |
65 |
runinfo->Clear(); |
66 |
delete runinfo; |
67 |
// |
68 |
return(sgnl); |
69 |
} |