From cb73f8bfa0827599d619f1b932ef715f0f4a58fc Mon Sep 17 00:00:00 2001 From: Suter Andreas Date: Thu, 17 Sep 2015 14:51:51 +0200 Subject: [PATCH] in PMsr2Data::PrepareGlobalInputFile() there seem to be 'unmotivated' break; commands in some loops. They prevent a proper map handling. For now they are commented out, which results in a proper functioning. --- ChangeLog | 5 ++++- src/classes/PMsr2Data.cpp | 17 ++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 37f7c0cd..51e8c3c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,7 +5,10 @@ changes since 0.14.0 =================================== NEW 2015-02-23 implemented an average-per-data-set option for musrFT. -NEW 2015-02-21 add proper Mac icon to musredit +NEW 2015-02-21 add proper Mac icon to musredit +FIXED 2015-09-17 in PMsr2Data::PrepareGlobalInputFile() there seem to be 'unmotivated' + break; commands in some loops. They prevent a proper map handling. + Since this is a real puzzle I contacted BMW for clarification. FIXED 2015-09-14 any2many export of MusrRoot crashed when first histo group was != 0. This happend when exporting to PSI-BIN or WKM. This is fixed now. FIXED 2015-09-08 fixed error in view_packing for single histo (wrong norm of the theory). diff --git a/src/classes/PMsr2Data.cpp b/src/classes/PMsr2Data.cpp index de96b237..bf5fd68e 100644 --- a/src/classes/PMsr2Data.cpp +++ b/src/classes/PMsr2Data.cpp @@ -8,7 +8,7 @@ ***************************************************************************/ /*************************************************************************** - * Copyright (C) 2009-2014 by Bastian M. Wojek / Andreas Suter * + * Copyright (C) 2009-2015 by Bastian M. Wojek / Andreas Suter * * andreas.suter@psi.ch * * * * This program is free software; you can redistribute it and/or modify * @@ -170,7 +170,7 @@ int PMsr2Data::DetermineRunNumberDigits(unsigned int runNo, bool normalMode) con string::size_type loc = firstOnLine.rfind(tempRunNumber.str()); if ( loc != string::npos ) { while ( loc > 0 ) { - if(isdigit(firstOnLine.at(--loc))) { + if (isdigit(firstOnLine.at(--loc))) { ++fRunNumberDigits; } else { break; @@ -731,7 +731,7 @@ bool PMsr2Data::PrepareGlobalInputFile(unsigned int tempRun, const string &msrOu msrParamList->at(i).fIsGlobal = true; ++fNumGlobalParam; } - //cout << msrParamList->at(i).fNo << " is global: " << msrParamList->at(i).fIsGlobal << endl; + // cout << "debug> " << msrParamList->at(i).fNo << ": " << msrParamList->at(i).fName.Data() << " is global: " << msrParamList->at(i).fIsGlobal << endl; } // check if parameters have been sorted correctly from the beginning @@ -760,7 +760,7 @@ bool PMsr2Data::PrepareGlobalInputFile(unsigned int tempRun, const string &msrOu bool mapExists(false); for (unsigned int i(0); i < tempLines->size(); ++i) { line = (*tempLines)[i].fLine.Data(); - split( tempVec, line, is_any_of(" \t") ); // split the theory line at spaces + split( tempVec, line, is_any_of(" \t"), token_compress_on ); // split the theory line at spaces for (unsigned int j(1); j < tempVec.size(); ++j) { try { tempPar = boost::lexical_cast(tempVec[j]); @@ -813,7 +813,7 @@ bool PMsr2Data::PrepareGlobalInputFile(unsigned int tempRun, const string &msrOu tempVec[j].append(boost::lexical_cast(l + 1)); } } - break; +//as break; } } } @@ -902,7 +902,7 @@ bool PMsr2Data::PrepareGlobalInputFile(unsigned int tempRun, const string &msrOu } mapExists = false; } - break; +//as break; } } } @@ -1060,12 +1060,11 @@ bool PMsr2Data::PrepareGlobalInputFile(unsigned int tempRun, const string &msrOu tempLines = fMsrHandler->GetMsrTheory(); for (unsigned int i(0); i < tempLines->size(); ++i) { line = (*tempLines)[i].fLine.Data(); - split( tempVec, line, is_any_of(" \t") ); // split the theory line at spaces + split( tempVec, line, is_any_of(" \t"), token_compress_on ); // split the theory line at spaces for (unsigned int j(1); j < tempVec.size(); ++j) { try { tempPar = boost::lexical_cast(tempVec[j]); - if (!msrParamList->at(tempPar - 1).fIsGlobal) { cerr << endl << ">> msr2data: **WARNING** The parameter " << msrParamList->at(tempPar - 1).fName.Data() \ << " is recognized as run specific!"; @@ -1112,7 +1111,7 @@ bool PMsr2Data::PrepareGlobalInputFile(unsigned int tempRun, const string &msrOu lineChanged = true; } } - break; +//as break; } catch(boost::bad_lexical_cast &) { // in case the cast does not work: do nothing - this means the entry is not a simple parameter