diff --git a/src/classes/PRunSingleHisto.cpp b/src/classes/PRunSingleHisto.cpp index 1a44839cf..83deca84f 100644 --- a/src/classes/PRunSingleHisto.cpp +++ b/src/classes/PRunSingleHisto.cpp @@ -38,12 +38,13 @@ #include #include #include +#include +#include #include -#include -#include #include "PMusr.h" +#include "PStringUtils.h" #include "PRunSingleHisto.h" //-------------------------------------------------------------------------- @@ -844,18 +845,15 @@ UInt_t PRunSingleHisto::GetNoOfFitBins() */ void PRunSingleHisto::SetFitRangeBin(const TString fitRange) { - TObjArray *tok = nullptr; - TObjString *ostr = nullptr; TString str; Ssiz_t idx = -1; Int_t offset = 0; - tok = fitRange.Tokenize(" \t"); + std::vector tok = PStringUtils::Split(fitRange.Data(), " \t"); - if (tok->GetEntries() == 3) { // structure FIT_RANGE fgb+n0 lgb-n1 + if (tok.size() == 3) { // structure FIT_RANGE fgb+n0 lgb-n1 // handle fgb+n0 entry - ostr = dynamic_cast(tok->At(1)); - str = ostr->GetString(); + str = tok[1]; // check if there is an offset present idx = str.First("+"); if (idx != -1) { // offset present @@ -866,8 +864,7 @@ void PRunSingleHisto::SetFitRangeBin(const TString fitRange) fFitStartTime = (fGoodBins[0] + offset - fT0s[0]) * fTimeResolution; // handle lgb-n1 entry - ostr = dynamic_cast(tok->At(2)); - str = ostr->GetString(); + str = tok[2]; // check if there is an offset present idx = str.First("-"); if (idx != -1) { // offset present @@ -876,16 +873,15 @@ void PRunSingleHisto::SetFitRangeBin(const TString fitRange) offset = str.Atoi(); } fFitEndTime = (fGoodBins[1] - offset - fT0s[0]) * fTimeResolution; - } else if ((tok->GetEntries() > 3) && (tok->GetEntries() % 2 == 1)) { // structure FIT_RANGE fgb[+n00] lgb[-n01] [fgb[+n10] lgb[-n11] ... fgb[+nN0] lgb[-nN1]] - Int_t pos = 2*(fRunNo+1)-1; + } else if ((tok.size() > 3) && (tok.size() % 2 == 1)) { // structure FIT_RANGE fgb[+n00] lgb[-n01] [fgb[+n10] lgb[-n11] ... fgb[+nN0] lgb[-nN1]] + UInt_t pos = 2*(fRunNo+1)-1; - if (pos + 1 >= tok->GetEntries()) { + if (pos + 1 >= tok.size()) { std::cerr << std::endl << ">> PRunSingleHisto::SetFitRangeBin(): **ERROR** invalid FIT_RANGE command found: '" << fitRange << "'"; std::cerr << std::endl << ">> will ignore it. Sorry ..." << std::endl; } else { // handle fgb+n0 entry - ostr = dynamic_cast(tok->At(pos)); - str = ostr->GetString(); + str = tok[pos]; // check if there is an offset present idx = str.First("+"); if (idx != -1) { // offset present @@ -896,8 +892,7 @@ void PRunSingleHisto::SetFitRangeBin(const TString fitRange) fFitStartTime = (fGoodBins[0] + offset - fT0s[0]) * fTimeResolution; // handle lgb-n1 entry - ostr = dynamic_cast(tok->At(pos+1)); - str = ostr->GetString(); + str = tok[pos+1]; // check if there is an offset present idx = str.First("-"); if (idx != -1) { // offset present @@ -911,11 +906,6 @@ void PRunSingleHisto::SetFitRangeBin(const TString fitRange) std::cerr << std::endl << ">> PRunSingleHisto::SetFitRangeBin(): **ERROR** invalid FIT_RANGE command found: '" << fitRange << "'"; std::cerr << std::endl << ">> will ignore it. Sorry ..." << std::endl; } - - // clean up - if (tok) { - delete tok; - } } //-------------------------------------------------------------------------- @@ -2430,23 +2420,15 @@ Bool_t PRunSingleHisto::IsScaleN0AndBkg() PMsrLines *cmd = fMsrInfo->GetMsrCommands(); for (UInt_t i=0; isize(); i++) { if (cmd->at(i).fLine.Contains("SCALE_N0_BKG", TString::kIgnoreCase)) { - TObjArray *tokens = nullptr; - TObjString *ostr = nullptr; - TString str; - tokens = cmd->at(i).fLine.Tokenize(" \t"); - if (tokens->GetEntries() != 2) { + std::vector tokens = PStringUtils::Split(cmd->at(i).fLine.Data(), " \t"); + if (tokens.size() != 2) { std::cerr << std::endl << ">> PRunSingleHisto::IsScaleN0AndBkg(): **WARNING** Found uncorrect 'SCALE_N0_BKG' command, will ignore it."; std::cerr << std::endl << ">> Allowed commands: SCALE_N0_BKG TRUE | FALSE" << std::endl; return willScale; } - ostr = dynamic_cast(tokens->At(1)); - str = ostr->GetString(); - if (!str.CompareTo("FALSE", TString::kIgnoreCase)) { + if (PStringUtils::IsEqualNoCase(tokens[1], "FALSE")) { willScale = false; } - // clean up - if (tokens) - delete tokens; } }