20 #include <framework/database/DBObjPtr.h>
21 #include <framework/database/DBStore.h>
22 #include <framework/datastore/StoreObjPtr.h>
23 #include <framework/datastore/DataStore.h>
24 #include <framework/dataobjects/EventMetaData.h>
25 #include <framework/database/Configuration.h>
26 #include <ecl/dbobjects/ECLCrystalCalib.h>
36 void setupDatabase(
int exp,
int run,
int eventNr = 1)
41 evtPtr.registerInDataStore();
43 std::cout <<
"about to construct EventMetaData, exp = " << exp <<
" run = " << run <<
" eventNr = " << eventNr << std::endl;
52 int main(
int argc,
char** argv)
54 if (argc < 4 || argc > 5) {
55 std::cout <<
"incorrect number of arguments for eclDumpECLCrystalCalib" << std::endl;
58 std::string payloadName = argv[1];
59 std::string gtName = argv[2];
60 int experiment = std::stoi(argv[3]);
61 int run = std::stoi(argv[4]);
62 std::cout <<
"eclDumpECLCrystalCalib called with arguments " << payloadName <<
" " << gtName <<
" " << experiment <<
" " << run <<
69 conf.prependGlobalTag(gtName);
70 conf.prependTestingPayloadLocation(
"localdb/database.txt");
73 std::cout <<
"calling setupDatabase " << std::endl;
74 setupDatabase(experiment, run);
79 std::cout <<
"Dumping " << payloadName << std::endl;
80 existingObject->Dump();
83 std::vector<float> currentValues = existingObject->getCalibVector();
84 std::vector<float> currentUnc = existingObject->getCalibUncVector();
87 std::cout << std::endl <<
"Values read from database " << std::endl;
88 for (
int ic = 0; ic < 9000; ic += 1000) {
89 std::cout <<
"cellID " << ic + 1 <<
" " << currentValues[ic] <<
" +/- " << currentUnc[ic] << std::endl;
91 std::cout << std::endl;
93 TString payloadTitle = payloadName;
95 payloadTitle += experiment;
98 TString fname = payloadTitle;
100 TFile hfile(fname,
"recreate");
101 TString htitle = payloadTitle;
102 htitle +=
" values;cellID";
103 TH1F* existingPayload =
new TH1F(
"existingPayload", htitle, 8736, 1, 8737);
105 for (
int cellID = 1; cellID <= 8736; cellID++) {
106 existingPayload->SetBinContent(cellID, currentValues[cellID - 1]);
107 existingPayload->SetBinError(cellID, currentUnc[cellID - 1]);
113 std::cout << std::endl <<
"Values written to " << fname << std::endl;