17 {
18
20
21 if (argc < 3) {
22 Error(
APP_NAME,
"No scale factors or configuration file name received!");
24 return 1;
25 }
26
27 std::ofstream confFileStream(argv[1], std::ofstream::out);
28
29 TFile*
file = TFile::Open(argv[2]);
32 return 1;
33 }
34
35 std::string quality = "Medium";
36 TDirectory* qualityDirectory =
file->GetDirectory(quality.c_str());
37 if (!qualityDirectory) {
38 Error(
"MuonTriggerSFConfGenerator",
" Directory for quality %s is missing", quality.c_str());
39 return 1;
40 }
41 TKey* periodKey;
42 TIter nextPeriod(qualityDirectory->GetListOfKeys());
43 while ((periodKey = (TKey*)nextPeriod())) {
44 std::string
period = periodKey->GetName();
45 TDirectory* periodDirectory = qualityDirectory->GetDirectory(
period.c_str());
46 confFileStream <<
period <<
": ";
47
48 TKey* triggerKey;
49 TIter nextTrigger(periodDirectory->GetListOfKeys());
50 bool isFirst = true;
51 while ((triggerKey = (TKey*)nextTrigger())) {
52 if (isFirst) isFirst = false;
53 else confFileStream << ", ";
54 std::string trigger = triggerKey->GetName();
55 confFileStream << triggerKey->GetName();
56 }
57 confFileStream << ";\n";
58 }
61 confFileStream.close();
62
63 return 0;
64}
Error
The different types of error that can be flagged in the L1TopoRDO.