StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
DbSaveSnapshot.C
1 #include <iomanip>
2 
3 void DbSaveSnapshot(){
4 
5  // Baseline shared libraries
6  gSystem->Load("libTable");
7  gSystem->Load("St_Tables");
8  gSystem->Load("St_base");
9  gSystem->Load("StChain");
10  gSystem->Load("StStarLogger.so");
11  gSystem->Load("StUtilities.so");
12 
13  // DB-specific libs
14  gSystem->Load("StDbLib");
15  gSystem->Load("StDbBroker");
16  gSystem->Load("St_db_Maker");
17 
18 
19  // create makers connecting to databases RunParams & Geometry
20 
21  St_db_Maker *dbMk = new St_db_Maker("StarDb","MySQL:StarDb");
22  dbMk->SetMaxEntryTime(20100401,0); // DBV timestamp, must be set before Init() call
23  dbMk->SetFlavor("ofl+sim");
24  dbMk->Init();
25  dbMk->SetDateTime(20090320,45000); // SDT timestamp / event timestamp
26 
27  dbMk->SaveSnapshotPlus("Geometry"); // All three databases required
28  dbMk->SaveSnapshotPlus("Calibrations"); // to get a consistent snapshot.
29  dbMk->SaveSnapshotPlus("Conditions"); // RunLog databases are not covered yet..
30 
31  dbMk->SaveSnapshotPlus("RunLog/onl");
32  dbMk->SaveSnapshotPlus("RunLog/MagFactor");
33 
34  // Update for SIM tables :
35 
36  gSystem->Exec("rm ./StarDb/Geometry/tpc/tpcGlobalPosition*");
37  gSystem->Exec("rm ./StarDb/RunLog/onl/starClockOnl*");
38 
39  dbMk->SetFlavor("sim");
40  dbMk->SaveSnapshotPlus("Geometry/tpc/tpcGlobalPosition");
41  dbMk->SaveSnapshotPlus("RunLog/onl/starClockOnl");
42 
43 
44  std::string rm;
45  std::stringstream ostr;
46  ostr.str("");
47 
48  for (int i = 1; i <= 24; i++) {
49  ostr.str("");
50  ostr << "Geometry/tpc/Sector_";
51  ostr << std::setw(2) << std::setfill('0') << i << "/tpcSectorPosition";
52  std::cout << ostr.str() << std::endl;
53  rm = "rm ./StarDb/";
54  rm.append(ostr.str());
55  rm.append("*");
56  std::cout << rm << std::endl;
57  gSystem->Exec(rm.c_str());
58 
59  dbMk->SaveSnapshotPlus(ostr.str().c_str());
60  ostr.str("");
61  ostr << "Calibrations/tpc/Sector_";
62  ostr << std::setw(2) << std::setfill('0') << i << "/tpcISTimeOffsets";
63  std::cout << ostr.str() << std::endl;
64  rm = "rm ./StarDb/";
65  rm.append(ostr.str());
66  rm.append("*");
67  std::cout << rm << std::endl;
68  gSystem->Exec(rm.c_str());
69 
70 
71  dbMk->SaveSnapshotPlus(ostr.str().c_str());
72  ostr.str("");
73  ostr << "Calibrations/tpc/Sector_";
74  ostr << std::setw(2) << std::setfill('0') << i << "/tpcOSTimeOffsets";
75  std::cout << ostr.str() << std::endl;
76  rm = "rm ./StarDb/";
77  rm.append(ostr.str());
78  rm.append("*");
79  std::cout << rm << std::endl;
80  gSystem->Exec(rm.c_str());
81 
82  dbMk->SaveSnapshotPlus(ostr.str().c_str());
83  }
84 
85 }
86 
87 
88 
89 
90 
91 
92 
93