diff --git a/src/tests/PsiRoot/TPsiRunHeader.cpp b/src/tests/PsiRoot/TPsiRunHeader.cpp index 1ccf7ee6..c80bf7a2 100644 --- a/src/tests/PsiRoot/TPsiRunHeader.cpp +++ b/src/tests/PsiRoot/TPsiRunHeader.cpp @@ -1103,11 +1103,12 @@ void TPsiRunHeader::Set(TString pathName, TIntVector value) */ Bool_t TPsiRunHeader::ExtractHeaderInformation(TObjArray *headerInfo, TString requestedPath) { - TString name(""), path(""), pathName(""), str(""), strValue(""); + TString headerName(""), name(""), path(""), pathName(""), str(""), strValue(""); TObjString *ostr = 0; TObjArray *tokens = 0; Bool_t required=false; UInt_t idx; + Ssiz_t idx1, idx2; Int_t intValue; // go through all entries of this header information from the PSI-ROOT file @@ -1115,12 +1116,19 @@ Bool_t TPsiRunHeader::ExtractHeaderInformation(TObjArray *headerInfo, TString re required=false; ostr = dynamic_cast(headerInfo->At(i)); str = ostr->GetString(); + // get header name + idx1 = str.First('-'); + idx2 = str.First(':'); + headerName = TString(""); + for (Int_t j=idx1+2; j(headerInfo->At(i)); str = ostr->GetString(); + // get header name + idx1 = str.First('-'); + idx2 = str.First(':'); + headerName = TString(""); + for (Int_t j=idx1+2; jRunInfo/Red-Green Description TStringVector + + RunInfo/Slow Control Histo Names + TStringVector + SampleEnv/Cryo TString diff --git a/src/tests/PsiRoot/psi_runHeader_test.cpp b/src/tests/PsiRoot/psi_runHeader_test.cpp index 99e3119c..86a670f0 100644 --- a/src/tests/PsiRoot/psi_runHeader_test.cpp +++ b/src/tests/PsiRoot/psi_runHeader_test.cpp @@ -74,7 +74,7 @@ int main(int argc, char *argv[]) header->Set("RunInfo/Run Start Time", "2011-04-19 14:25:22"); header->Set("RunInfo/Run Stop Time", "2011-04-19 19:13:47"); - prop.Set("Time Resolution", 0.193525, "ns", "TDC 9999"); + prop.Set("Time Resolution", 0.1953125, "ns", "TDC 9999"); header->Set("RunInfo/Time Resolution", prop); prop.Set("Sample Temperature", 3.2, 3.21, 0.05, "K", "CF1"); @@ -153,8 +153,8 @@ int main(int argc, char *argv[]) } // root file header related things - TFolder *runHeader = gROOT->GetRootFolder()->AddFolder("RunHeaderInfo", "PSI Run Header Info"); - gROOT->GetListOfBrowsables()->Add(runHeader, "RunHeaderInfo"); + TFolder *runHeader = gROOT->GetRootFolder()->AddFolder("RunHeader", "PSI Run Header Info"); + gROOT->GetListOfBrowsables()->Add(runHeader, "RunHeader"); TObjArray runInfo; header->GetHeaderInfo("RunInfo", runInfo); @@ -200,9 +200,9 @@ int main(int argc, char *argv[]) } runHeader = 0; - f->GetObject("RunHeaderInfo", runHeader); + f->GetObject("RunHeader", runHeader); if (runHeader == 0) { - cerr << endl << ">> **ERROR** Couldn't get top folder RunHeaderInfo"; + cerr << endl << ">> **ERROR** Couldn't get top folder RunHeader"; f->Close(); return -1; } @@ -213,7 +213,7 @@ int main(int argc, char *argv[]) // get RunHeader oarray = (TObjArray*) runHeader->FindObjectAny("RunInfo"); if (oarray == 0) { - cerr << endl << ">> **ERROR** Couldn't get RunHeader" << endl; + cerr << endl << ">> **ERROR** Couldn't get RunInfo" << endl; } header->ExtractHeaderInformation(oarray, "RunInfo"); diff --git a/src/tests/PsiRoot/read_psi_runHeader.cpp b/src/tests/PsiRoot/read_psi_runHeader.cpp index 0b26f50f..cb68e2be 100644 --- a/src/tests/PsiRoot/read_psi_runHeader.cpp +++ b/src/tests/PsiRoot/read_psi_runHeader.cpp @@ -68,9 +68,9 @@ int main(int argc, char *argv[]) } TFolder *runHeader = 0; - f->GetObject("RunHeaderInfo", runHeader); + f->GetObject("RunHeader", runHeader); if (runHeader == 0) { - cerr << endl << ">> **ERROR** Couldn't get top folder RunHeaderInfo"; + cerr << endl << ">> **ERROR** Couldn't get top folder RunHeader"; f->Close(); return -1; } diff --git a/src/tests/PsiRoot/write_psi_runHeader.cpp b/src/tests/PsiRoot/write_psi_runHeader.cpp index 3644548a..7bebda04 100644 --- a/src/tests/PsiRoot/write_psi_runHeader.cpp +++ b/src/tests/PsiRoot/write_psi_runHeader.cpp @@ -117,7 +117,7 @@ int main(int argc, char *argv[]) header->Set("RunInfo/Histo Length", 8192); - prop.Set("Time Resolution", 0.193525, "ns", "TDC 9999"); + prop.Set("Time Resolution", 0.1953125, "ns", "TDC 9999"); header->Set("RunInfo/Time Resolution", prop); TIntVector t0; @@ -142,6 +142,11 @@ int main(int argc, char *argv[]) redGreenDescription.push_back("E-field/light on/on"); header->Set("RunInfo/Red-Green Description", redGreenDescription); + TStringVector scHistoNames; + scHistoNames.push_back("Sample Temperature"); + scHistoNames.push_back("Sample Magnetic Field"); + header->Set("RunInfo/Slow Control Histo Names", scHistoNames); + TStringVector dummyTest; dummyTest.push_back("dummy1"); dummyTest.push_back("dummy2"); @@ -199,8 +204,8 @@ int main(int argc, char *argv[]) } // root file header related things - TFolder *runHeader = gROOT->GetRootFolder()->AddFolder("RunHeaderInfo", "PSI Run Header Info"); - gROOT->GetListOfBrowsables()->Add(runHeader, "RunHeaderInfo"); + TFolder *runHeader = gROOT->GetRootFolder()->AddFolder("RunHeader", "PSI Run Header Info"); + gROOT->GetListOfBrowsables()->Add(runHeader, "RunHeader"); TObjArray runInfo; header->GetHeaderInfo("RunInfo", runInfo);