diff --git a/src/external/MusrRoot/TMusrRunHeader.cpp b/src/external/MusrRoot/TMusrRunHeader.cpp
index a129dafd..11029a2a 100644
--- a/src/external/MusrRoot/TMusrRunHeader.cpp
+++ b/src/external/MusrRoot/TMusrRunHeader.cpp
@@ -214,9 +214,9 @@ ClassImp(TMusrRunHeader)
/**
*
Constructor.
*
- * \param quite if set to true, warnings will be omited. Default is false.
+ * \param quiet if set to true, warnings will be omited. Default is false.
*/
-TMusrRunHeader::TMusrRunHeader(bool quite) : fQuite(quite)
+TMusrRunHeader::TMusrRunHeader(bool quiet) : fQuiet(quiet)
{
Init();
}
@@ -228,11 +228,11 @@ TMusrRunHeader::TMusrRunHeader(bool quite) : fQuite(quite)
*
Constructor.
*
* \param fileName file name of the MusrRoot file.
- * \param quite if set to true, warnings will be omited. Default is false.
+ * \param quiet if set to true, warnings will be omited. Default is false.
*/
-TMusrRunHeader::TMusrRunHeader(const char *fileName, bool quite)
+TMusrRunHeader::TMusrRunHeader(const char *fileName, bool quiet)
{
- fQuite = quite;
+ fQuiet = quiet;
Init(TString(fileName));
}
@@ -564,7 +564,7 @@ void TMusrRunHeader::Set(TString pathName, TString value)
UInt_t i=0;
for (i=0; i> **WARNING** " << pathName.Data() << " already exists, will replace it." << endl;
fStringObj[i].SetType("TString");
fStringObj[i].SetValue(value);
@@ -598,7 +598,7 @@ void TMusrRunHeader::Set(TString pathName, Int_t value)
UInt_t i=0;
for (i=0; i> **WARNING** " << pathName.Data() << " already exists, will replace it." << endl;
fIntObj[i].SetType("Int_t");
fIntObj[i].SetValue(value);
@@ -632,7 +632,7 @@ void TMusrRunHeader::Set(TString pathName, Double_t value)
UInt_t i=0;
for (i=0; i> **WARNING** " << pathName.Data() << " already exists, will replace it." << endl;
fDoubleObj[i].SetType("Double_t");
fDoubleObj[i].SetValue(value);
@@ -666,7 +666,7 @@ void TMusrRunHeader::Set(TString pathName, TMusrRunPhysicalQuantity value)
UInt_t i=0;
for (i=0; i> **WARNING** " << pathName.Data() << " already exists, will replace it." << endl;
fMusrRunPhysQuantityObj[i].SetType("TMusrRunHeader");
fMusrRunPhysQuantityObj[i].SetValue(value);
@@ -700,7 +700,7 @@ void TMusrRunHeader::Set(TString pathName, TStringVector value)
UInt_t i=0;
for (i=0; i> **WARNING** " << pathName.Data() << " already exists, will replace it." << endl;
fStringVectorObj[i].SetType("TStringVector");
fStringVectorObj[i].SetValue(value);
@@ -734,7 +734,7 @@ void TMusrRunHeader::Set(TString pathName, TIntVector value)
UInt_t i=0;
for (i=0; i> **WARNING** " << pathName.Data() << " already exists, will replace it." << endl;
fIntVectorObj[i].SetType("TIntVector");
fIntVectorObj[i].SetValue(value);
@@ -768,7 +768,7 @@ void TMusrRunHeader::Set(TString pathName, TDoubleVector value)
UInt_t i=0;
for (i=0; i> **WARNING** " << pathName.Data() << " already exists, will replace it." << endl;
fDoubleVectorObj[i].SetType("TDoubleVector");
fDoubleVectorObj[i].SetValue(value);
@@ -843,8 +843,8 @@ Bool_t TMusrRunHeader::ExtractHeaderInformation(TObjArray *headerInfo, TString r
// get the run header label
label = GetLabel(str);
- if (label == "n/a")
- return false;
+ if (label == "n/a") // not a TMusrRunHeader object, hence ignore it
+ continue;
// get the run header 'value'
strValue = GetStrValue(str);
@@ -854,6 +854,8 @@ Bool_t TMusrRunHeader::ExtractHeaderInformation(TObjArray *headerInfo, TString r
// get type from map
type = GetType(str);
+ if (type == "n/a") // not a TMusrRunHeader object, hence ignore it
+ continue;
if (type == "TString") {
Set(pathName, strValue);
@@ -1302,7 +1304,10 @@ TString TMusrRunHeader::GetLabel(TString str)
Ssiz_t idx1 = str.First('-');
Ssiz_t idx2 = str.First(':');
if ((idx1 == -1) || (idx2 == -1)) {
- cerr << endl << ">> TMusrRunHeader::GetLabel(): **ERROR** str='" << str << "', seems not correctly encoded." << endl;
+ if (!fQuiet) {
+ cerr << endl << ">> TMusrRunHeader::GetLabel(): **WARNING** str='" << str << "', seems not correctly encoded.";
+ cerr << endl << ">> Will omit it." << endl;
+ }
return label;
}
@@ -1331,7 +1336,10 @@ TString TMusrRunHeader::GetStrValue(TString str)
Ssiz_t idx1 = str.First(':');
Ssiz_t idx2 = str.Last('-');
if ((idx1 == -1) || (idx2 == -1)) {
- cerr << endl << ">> TMusrRunHeader::GetStrValue(): **ERROR** str='" << str << "', seems not correctly encoded." << endl;
+ if (!fQuiet) {
+ cerr << endl << ">> TMusrRunHeader::GetStrValue(): **WARNING** str='" << str << "', seems not correctly encoded.";
+ cerr << endl << ">> Will omit it." << endl;
+ }
return strValue;
}
@@ -1359,7 +1367,10 @@ TString TMusrRunHeader::GetType(TString str)
Ssiz_t pos = str.Last('@');
if (pos == -1) { // i.e. NOT found
- cerr << endl << ">> TMusrRunHeader::GetType(): **ERROR** str=" << str << " seems to be an invalid MusrROOT run header string." << endl;
+ if (!fQuiet) {
+ cerr << endl << ">> TMusrRunHeader::GetType(): **WARNING** str=" << str << " seems to be an invalid MusrROOT run header string.";
+ cerr << endl << ">> Will omit it." << endl;
+ }
return result;
}
diff --git a/src/external/MusrRoot/TMusrRunHeader.h b/src/external/MusrRoot/TMusrRunHeader.h
index 0e18acf7..77211e44 100644
--- a/src/external/MusrRoot/TMusrRunHeader.h
+++ b/src/external/MusrRoot/TMusrRunHeader.h
@@ -125,8 +125,8 @@ private:
class TMusrRunHeader : public TObject
{
public:
- TMusrRunHeader(bool quite=false);
- TMusrRunHeader(const char *fileName, bool quite=false);
+ TMusrRunHeader(bool quiet=false);
+ TMusrRunHeader(const char *fileName, bool quiet=false);
virtual ~TMusrRunHeader();
virtual TString GetFileName() { return fFileName; }
@@ -158,7 +158,7 @@ public:
virtual void DrawHeader();
private:
- bool fQuite;
+ bool fQuiet;
TString fFileName;
TString fVersion;
diff --git a/src/read_musrRoot_runHeader.cpp b/src/read_musrRoot_runHeader.cpp
index 774b2d03..062b53c2 100644
--- a/src/read_musrRoot_runHeader.cpp
+++ b/src/read_musrRoot_runHeader.cpp
@@ -50,21 +50,35 @@ void closeFile(TFile *f)
void read_musrRoot_runHeader_syntax()
{
- cout << endl << "usage: read_musrRoot_runHeader [] | --version";
+ cout << endl << "usage: read_musrRoot_runHeader [ [--all-messages]] | --version";
cout << endl << " is the file name including the extention root, e.g. test.root";
+ cout << endl << " --all-messages: display all warnings.";
+ cout << endl << " --version: display the current version.";
cout << endl << endl;
}
int main(int argc, char *argv[])
{
- if (argc != 2) {
+ if (argc == 1) {
read_musrRoot_runHeader_syntax();
- return 1;
+ return -1;
}
- if (!strcmp(argv[1], "--version")) {
- cout << endl << "read_musrRoot_runHeader version: " << PMUSR_VERSION << " / $Id$" << endl << endl;
- return 0;
+ if (argc == 2) {
+ if (!strcmp(argv[1], "--version")) {
+ cout << endl << "read_musrRoot_runHeader version: " << PMUSR_VERSION << " / $Id$" << endl << endl;
+ return 0;
+ }
+ }
+
+ bool quiet = true;
+ if (argc == 3) {
+ if (!strcmp(argv[2], "--all-messages")) {
+ quiet = false;
+ } else {
+ read_musrRoot_runHeader_syntax();
+ return -1;
+ }
}
// read the file back and extract the header info
@@ -82,7 +96,7 @@ int main(int argc, char *argv[])
return -1;
}
- TMusrRunHeader *header = new TMusrRunHeader(argv[1]);
+ TMusrRunHeader *header = new TMusrRunHeader(argv[1], quiet);
if (!header->ExtractAll(runHeader)) {
cerr << endl << ">> **ERROR** couldn't extract all RunHeader information :-(" << endl << endl;