Merged muonspin/musrfit into master
This commit is contained in:
@ -1643,13 +1643,23 @@ bool PMsr2Data::PrepareNewSortedInputFile(unsigned int tempRun) const
|
||||
* - -2 if a fit has not converged (and the data is not appended to the output file)
|
||||
*
|
||||
* \param outfile name of the DB/ASCII output file
|
||||
* \param paramList parameter list which shall be written to the output file
|
||||
* \param db DB or plain ASCII output
|
||||
* \param withHeader write output file header or not
|
||||
* \param global global mode or not
|
||||
* \param counter counter used within the global mode to determine how many runs have been processed already
|
||||
*/
|
||||
int PMsr2Data::WriteOutput(const string &outfile, bool db, unsigned int withHeader, bool global, unsigned int counter) const
|
||||
int PMsr2Data::WriteOutput(const string &outfile, const vector<unsigned int>& paramList, bool db,
|
||||
unsigned int withHeader, bool global, unsigned int counter) const
|
||||
{
|
||||
// make sure that the parameter number of the parameter list stays within proper bounds
|
||||
for (unsigned int i=0; i<paramList.size(); i++) {
|
||||
if (paramList[i] > fMsrHandler->GetMsrParamList()->size()) {
|
||||
cerr << "msr2data: **ERROR** found parameter " << paramList[i] << " which is out of bound (>" << fMsrHandler->GetMsrParamList()->size() << ")." << endl;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (!to_lower_copy(outfile).compare("none")) {
|
||||
fRunVectorIter++;
|
||||
return PMUSR_SUCCESS;
|
||||
@ -2008,7 +2018,7 @@ int PMsr2Data::WriteOutput(const string &outfile, bool db, unsigned int withHead
|
||||
|
||||
if (fDataHandler) {
|
||||
for (unsigned int i(0); i < dataParamLabels.size(); ++i) {
|
||||
outFile << dataParamLabels[i] << endl;
|
||||
outFile << dataParamLabels[i] << endl;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2022,22 +2032,26 @@ int PMsr2Data::WriteOutput(const string &outfile, bool db, unsigned int withHead
|
||||
if (global) {
|
||||
string tempName;
|
||||
for (unsigned int i(0); i < fNumGlobalParam; ++i) {
|
||||
outFile << (*msrParamList)[i].fName.Data() << endl;
|
||||
if (InParameterList(i, paramList))
|
||||
outFile << (*msrParamList)[i].fName.Data() << endl;
|
||||
}
|
||||
for (unsigned int i(0); i < fNumSpecParam; ++i) {
|
||||
tempName = (*msrParamList)[fNumGlobalParam + fNumSpecParam*counter + i].fName.Data();
|
||||
string::size_type loc = tempName.rfind(curRunNumber.str());
|
||||
if (loc == tempName.length() - fRunNumberDigits) {
|
||||
outFile << tempName.substr(0, loc) << endl;
|
||||
} else {
|
||||
cerr << endl << ">> msr2data: **ERROR** The run index of some parameter does not match the run number being processed!";
|
||||
cerr << endl << ">> msr2data: **ERROR** The output will be flawed!";
|
||||
cerr << endl;
|
||||
if (InParameterList(fNumGlobalParam + fNumSpecParam*counter + i, paramList)) {
|
||||
tempName = (*msrParamList)[fNumGlobalParam + fNumSpecParam*counter + i].fName.Data();
|
||||
string::size_type loc = tempName.rfind(curRunNumber.str());
|
||||
if (loc == tempName.length() - fRunNumberDigits) {
|
||||
outFile << tempName.substr(0, loc) << endl;
|
||||
} else {
|
||||
cerr << endl << ">> msr2data: **ERROR** The run index of some parameter does not match the run number being processed!";
|
||||
cerr << endl << ">> msr2data: **ERROR** The output will be flawed!";
|
||||
cerr << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (unsigned int i(0); i < msrNoOfParams; ++i) {
|
||||
outFile << (*msrParamList)[i].fName.Data() << endl;
|
||||
if (InParameterList(i, paramList))
|
||||
outFile << (*msrParamList)[i].fName.Data() << endl;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2073,22 +2087,26 @@ int PMsr2Data::WriteOutput(const string &outfile, bool db, unsigned int withHead
|
||||
if (global) {
|
||||
string tempName;
|
||||
for (unsigned int i(0); i < fNumGlobalParam; ++i) {
|
||||
outFile << " " << (*msrParamList)[i].fName.Data();
|
||||
if (InParameterList(i, paramList))
|
||||
outFile << " " << (*msrParamList)[i].fName.Data();
|
||||
}
|
||||
for (unsigned int i(0); i < fNumSpecParam; ++i) {
|
||||
tempName = (*msrParamList)[fNumGlobalParam + fNumSpecParam*counter + i].fName.Data();
|
||||
string::size_type loc = tempName.rfind(curRunNumber.str());
|
||||
if (loc == tempName.length() - fRunNumberDigits) {
|
||||
outFile << " " << tempName.substr(0, loc);
|
||||
} else {
|
||||
cerr << endl << ">> msr2data: **ERROR** The run index of some parameter does not match the run number being processed!";
|
||||
cerr << endl << ">> msr2data: **ERROR** The output will be flawed!";
|
||||
cerr << endl;
|
||||
if (InParameterList(i, paramList)) {
|
||||
tempName = (*msrParamList)[fNumGlobalParam + fNumSpecParam*counter + i].fName.Data();
|
||||
string::size_type loc = tempName.rfind(curRunNumber.str());
|
||||
if (loc == tempName.length() - fRunNumberDigits) {
|
||||
outFile << " " << tempName.substr(0, loc);
|
||||
} else {
|
||||
cerr << endl << ">> msr2data: **ERROR** The run index of some parameter does not match the run number being processed!";
|
||||
cerr << endl << ">> msr2data: **ERROR** The output will be flawed!";
|
||||
cerr << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (unsigned int i(0); i < msrNoOfParams; ++i) {
|
||||
outFile << " " << (*msrParamList)[i].fName.Data();
|
||||
if (InParameterList(i, paramList))
|
||||
outFile << " " << (*msrParamList)[i].fName.Data();
|
||||
}
|
||||
}
|
||||
|
||||
@ -2132,61 +2150,67 @@ int PMsr2Data::WriteOutput(const string &outfile, bool db, unsigned int withHead
|
||||
string tempName;
|
||||
unsigned int idx;
|
||||
for (unsigned int i(0); i < fNumGlobalParam; ++i) {
|
||||
outFile << (*msrParamList)[i].fName.Data() << " = ";
|
||||
if ((*msrParamList)[i].fPosErrorPresent) {
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, (*msrParamList)[i].fPosError, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
} else {
|
||||
outFile << (*msrParamList)[i].fValue << ", ";
|
||||
}
|
||||
if (InParameterList(i, paramList)) {
|
||||
outFile << (*msrParamList)[i].fName.Data() << " = ";
|
||||
if ((*msrParamList)[i].fPosErrorPresent) {
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, (*msrParamList)[i].fPosError, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
} else {
|
||||
outFile << (*msrParamList)[i].fValue << ", ";
|
||||
}
|
||||
|
||||
if ((*msrParamList)[i].fPosErrorPresent)
|
||||
outFile << (*msrParamList)[i].fPosError << ", ";
|
||||
else
|
||||
outFile << fabs((*msrParamList)[i].fStep) << ", ";
|
||||
outFile << fabs((*msrParamList)[i].fStep) << ",\\" << endl;
|
||||
if ((*msrParamList)[i].fPosErrorPresent)
|
||||
outFile << (*msrParamList)[i].fPosError << ", ";
|
||||
else
|
||||
outFile << fabs((*msrParamList)[i].fStep) << ", ";
|
||||
outFile << fabs((*msrParamList)[i].fStep) << ",\\" << endl;
|
||||
}
|
||||
}
|
||||
for (unsigned int i(0); i < fNumSpecParam; ++i) {
|
||||
idx = fNumGlobalParam + fNumSpecParam*counter + i;
|
||||
tempName = (*msrParamList)[idx].fName.Data();
|
||||
string::size_type loc = tempName.rfind(curRunNumber.str());
|
||||
if (loc == tempName.length() - fRunNumberDigits) {
|
||||
outFile << tempName.substr(0, loc) << " = ";
|
||||
if ((*msrParamList)[idx].fPosErrorPresent) {
|
||||
WriteValue(outFile, (*msrParamList)[idx].fValue, (*msrParamList)[idx].fPosError, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
} else {
|
||||
outFile << (*msrParamList)[idx].fValue << ", ";
|
||||
}
|
||||
if ((*msrParamList)[idx].fPosErrorPresent) {
|
||||
WriteValue(outFile, (*msrParamList)[idx].fPosError, (*msrParamList)[idx].fPosError, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
} else {
|
||||
if (InParameterList(idx, paramList)) {
|
||||
tempName = (*msrParamList)[idx].fName.Data();
|
||||
string::size_type loc = tempName.rfind(curRunNumber.str());
|
||||
if (loc == tempName.length() - fRunNumberDigits) {
|
||||
outFile << tempName.substr(0, loc) << " = ";
|
||||
if ((*msrParamList)[idx].fPosErrorPresent) {
|
||||
WriteValue(outFile, (*msrParamList)[idx].fValue, (*msrParamList)[idx].fPosError, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
} else {
|
||||
outFile << (*msrParamList)[idx].fValue << ", ";
|
||||
}
|
||||
if ((*msrParamList)[idx].fPosErrorPresent) {
|
||||
WriteValue(outFile, (*msrParamList)[idx].fPosError, (*msrParamList)[idx].fPosError, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
} else {
|
||||
WriteValue(outFile, (*msrParamList)[idx].fStep, (*msrParamList)[idx].fStep, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
}
|
||||
WriteValue(outFile, (*msrParamList)[idx].fStep, (*msrParamList)[idx].fStep, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
outFile << ",\\" << endl;
|
||||
}
|
||||
WriteValue(outFile, (*msrParamList)[idx].fStep, (*msrParamList)[idx].fStep, outFile.width(), db);
|
||||
outFile << ",\\" << endl;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (unsigned int i(0); i < msrNoOfParams; ++i) {
|
||||
outFile << (*msrParamList)[i].fName.Data() << " = ";
|
||||
if ((*msrParamList)[i].fPosErrorPresent) {
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, (*msrParamList)[i].fPosError, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
} else {
|
||||
outFile << (*msrParamList)[i].fValue << ", ";
|
||||
}
|
||||
if ((*msrParamList)[i].fPosErrorPresent) {
|
||||
WriteValue(outFile, (*msrParamList)[i].fPosError, (*msrParamList)[i].fPosError, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
} else {
|
||||
if (InParameterList(i, paramList)) {
|
||||
outFile << (*msrParamList)[i].fName.Data() << " = ";
|
||||
if ((*msrParamList)[i].fPosErrorPresent) {
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, (*msrParamList)[i].fPosError, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
} else {
|
||||
outFile << (*msrParamList)[i].fValue << ", ";
|
||||
}
|
||||
if ((*msrParamList)[i].fPosErrorPresent) {
|
||||
WriteValue(outFile, (*msrParamList)[i].fPosError, (*msrParamList)[i].fPosError, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
} else {
|
||||
WriteValue(outFile, (*msrParamList)[i].fStep, (*msrParamList)[i].fStep, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
}
|
||||
WriteValue(outFile, (*msrParamList)[i].fStep, (*msrParamList)[i].fStep, outFile.width(), db);
|
||||
outFile << ", ";
|
||||
outFile << ",\\" << endl;
|
||||
}
|
||||
WriteValue(outFile, (*msrParamList)[i].fStep, (*msrParamList)[i].fStep, outFile.width(), db);
|
||||
outFile << ",\\" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2221,30 +2245,38 @@ int PMsr2Data::WriteOutput(const string &outfile, bool db, unsigned int withHead
|
||||
string s;
|
||||
if (global) {
|
||||
for (unsigned int i(0); i < fNumGlobalParam; ++i) {
|
||||
s = (*msrParamList)[i].fName.Data();
|
||||
length = s.length();
|
||||
if (length > maxlength)
|
||||
maxlength = length;
|
||||
}
|
||||
for (unsigned int i(0); i < fNumSpecParam; ++i) {
|
||||
s = (*msrParamList)[fNumGlobalParam + fNumSpecParam*counter + i].fName.Data();
|
||||
string::size_type loc = s.rfind(curRunNumber.str());
|
||||
if (loc == s.length() - fRunNumberDigits) {
|
||||
length = s.length() - fRunNumberDigits;
|
||||
if (InParameterList(i, paramList)) {
|
||||
s = (*msrParamList)[i].fName.Data();
|
||||
length = s.length();
|
||||
if (length > maxlength)
|
||||
maxlength = length;
|
||||
} else {
|
||||
cerr << endl << ">> msr2data: **ERROR** The run index of some parameter does not match the run number being processed!";
|
||||
cerr << endl << ">> msr2data: **ERROR** The output will be flawed!";
|
||||
cerr << endl;
|
||||
}
|
||||
}
|
||||
unsigned int idx;
|
||||
for (unsigned int i(0); i < fNumSpecParam; ++i) {
|
||||
idx = fNumGlobalParam + fNumSpecParam*counter + i;
|
||||
if (InParameterList(idx, paramList)) {
|
||||
s = (*msrParamList)[idx].fName.Data();
|
||||
string::size_type loc = s.rfind(curRunNumber.str());
|
||||
if (loc == s.length() - fRunNumberDigits) {
|
||||
length = s.length() - fRunNumberDigits;
|
||||
if (length > maxlength)
|
||||
maxlength = length;
|
||||
} else {
|
||||
cerr << endl << ">> msr2data: **ERROR** The run index of some parameter does not match the run number being processed!";
|
||||
cerr << endl << ">> msr2data: **ERROR** The output will be flawed!";
|
||||
cerr << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (unsigned int i(0); i < msrNoOfParams; ++i) {
|
||||
s = (*msrParamList)[i].fName.Data();
|
||||
length = s.length();
|
||||
if (length > maxlength)
|
||||
maxlength = length;
|
||||
if (InParameterList(i, paramList)) {
|
||||
s = (*msrParamList)[i].fName.Data();
|
||||
length = s.length();
|
||||
if (length > maxlength)
|
||||
maxlength = length;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (maxlength < 13)
|
||||
@ -2274,31 +2306,39 @@ int PMsr2Data::WriteOutput(const string &outfile, bool db, unsigned int withHead
|
||||
// in the GLOBAL mode write only global parameters and those which belong to the actual run - in the NORMAL mode write all parameters
|
||||
if (global) {
|
||||
for (unsigned int i(0); i < fNumGlobalParam; ++i) {
|
||||
s = (*msrParamList)[i].fName.Data();
|
||||
outFile << setw(maxlength) << left << s \
|
||||
<< setw(maxlength + 6) << left << s + "PosErr" \
|
||||
<< setw(maxlength + 6) << left << s + "NegErr";
|
||||
}
|
||||
for (unsigned int i(0); i < fNumSpecParam; ++i) {
|
||||
s = (*msrParamList)[fNumGlobalParam + fNumSpecParam*counter + i].fName.Data();
|
||||
string::size_type loc = s.rfind(curRunNumber.str());
|
||||
if (loc == s.length() - fRunNumberDigits) {
|
||||
s = s.substr(0, loc);
|
||||
if (InParameterList(i, paramList)) {
|
||||
s = (*msrParamList)[i].fName.Data();
|
||||
outFile << setw(maxlength) << left << s \
|
||||
<< setw(maxlength + 6) << left << s + "PosErr" \
|
||||
<< setw(maxlength + 6) << left << s + "NegErr";
|
||||
} else {
|
||||
cerr << endl << ">> msr2data: **ERROR** The run index of some parameter does not match the run number being processed!";
|
||||
cerr << endl << ">> msr2data: **ERROR** The output will be flawed!";
|
||||
cerr << endl;
|
||||
}
|
||||
}
|
||||
unsigned int idx;
|
||||
for (unsigned int i(0); i < fNumSpecParam; ++i) {
|
||||
idx = fNumGlobalParam + fNumSpecParam*counter + i;
|
||||
if (InParameterList(idx, paramList)) {
|
||||
s = (*msrParamList)[idx].fName.Data();
|
||||
string::size_type loc = s.rfind(curRunNumber.str());
|
||||
if (loc == s.length() - fRunNumberDigits) {
|
||||
s = s.substr(0, loc);
|
||||
outFile << setw(maxlength) << left << s \
|
||||
<< setw(maxlength + 6) << left << s + "PosErr" \
|
||||
<< setw(maxlength + 6) << left << s + "NegErr";
|
||||
} else {
|
||||
cerr << endl << ">> msr2data: **ERROR** The run index of some parameter does not match the run number being processed!";
|
||||
cerr << endl << ">> msr2data: **ERROR** The output will be flawed!";
|
||||
cerr << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (unsigned int i(0); i < msrNoOfParams; ++i) {
|
||||
s = (*msrParamList)[i].fName.Data();
|
||||
outFile << setw(maxlength) << left << s \
|
||||
<< setw(maxlength + 6) << left << s + "PosErr" \
|
||||
<< setw(maxlength + 6) << left << s + "NegErr";
|
||||
if (InParameterList(i, paramList)) {
|
||||
s = (*msrParamList)[i].fName.Data();
|
||||
outFile << setw(maxlength) << left << s \
|
||||
<< setw(maxlength + 6) << left << s + "PosErr" \
|
||||
<< setw(maxlength + 6) << left << s + "NegErr";
|
||||
}
|
||||
}
|
||||
}
|
||||
s.clear();
|
||||
@ -2340,46 +2380,52 @@ int PMsr2Data::WriteOutput(const string &outfile, bool db, unsigned int withHead
|
||||
// in the GLOBAL mode write only global parameters and those which belong to the actual run - in the NORMAL mode write all parameters
|
||||
if (global) {
|
||||
for (unsigned int i(0); i < fNumGlobalParam; ++i) {
|
||||
if ((*msrParamList)[i].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, (*msrParamList)[i].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, maxlength);
|
||||
if (InParameterList(i, paramList)) {
|
||||
if ((*msrParamList)[i].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, (*msrParamList)[i].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, maxlength);
|
||||
|
||||
if ((*msrParamList)[i].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[i].fPosError, (*msrParamList)[i].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, fabs((*msrParamList)[i].fStep), (*msrParamList)[i].fStep, maxlength, db);
|
||||
|
||||
if ((*msrParamList)[i].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[i].fPosError, (*msrParamList)[i].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, fabs((*msrParamList)[i].fStep), (*msrParamList)[i].fStep, maxlength, db);
|
||||
|
||||
WriteValue(outFile, fabs((*msrParamList)[i].fStep), (*msrParamList)[i].fStep, maxlength, db);
|
||||
}
|
||||
}
|
||||
unsigned int idx;
|
||||
for (unsigned int i(0); i < fNumSpecParam; ++i) {
|
||||
idx = fNumGlobalParam + fNumSpecParam*counter + i;
|
||||
if ((*msrParamList)[idx].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[idx].fValue, (*msrParamList)[idx].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, (*msrParamList)[idx].fValue, maxlength);
|
||||
if (InParameterList(idx, paramList)) {
|
||||
if ((*msrParamList)[idx].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[idx].fValue, (*msrParamList)[idx].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, (*msrParamList)[idx].fValue, maxlength);
|
||||
|
||||
if ((*msrParamList)[idx].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[idx].fPosError, (*msrParamList)[idx].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, (*msrParamList)[idx].fStep, (*msrParamList)[idx].fStep, maxlength, db);
|
||||
|
||||
if ((*msrParamList)[idx].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[idx].fPosError, (*msrParamList)[idx].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, (*msrParamList)[idx].fStep, (*msrParamList)[idx].fStep, maxlength, db);
|
||||
|
||||
WriteValue(outFile, (*msrParamList)[idx].fStep, (*msrParamList)[idx].fStep, maxlength, db);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (unsigned int i(0); i < msrNoOfParams; ++i) {
|
||||
if ((*msrParamList)[i].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, (*msrParamList)[i].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, maxlength);
|
||||
if (InParameterList(i, paramList)) {
|
||||
if ((*msrParamList)[i].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, (*msrParamList)[i].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, (*msrParamList)[i].fValue, maxlength);
|
||||
|
||||
if ((*msrParamList)[i].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[i].fPosError, (*msrParamList)[i].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, fabs((*msrParamList)[i].fStep), fabs((*msrParamList)[i].fStep), maxlength, db);
|
||||
|
||||
if ((*msrParamList)[i].fPosErrorPresent)
|
||||
WriteValue(outFile, (*msrParamList)[i].fPosError, (*msrParamList)[i].fPosError, maxlength, db);
|
||||
else
|
||||
WriteValue(outFile, fabs((*msrParamList)[i].fStep), fabs((*msrParamList)[i].fStep), maxlength, db);
|
||||
|
||||
WriteValue(outFile, fabs((*msrParamList)[i].fStep), fabs((*msrParamList)[i].fStep), maxlength, db);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2505,6 +2551,24 @@ int PMsr2Data::GetFirstSignificantDigit(const double &value) const
|
||||
return prec+1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------
|
||||
/**
|
||||
*
|
||||
*/
|
||||
bool PMsr2Data::InParameterList(const unsigned int ¶mValue, const vector<unsigned int> ¶mList) const
|
||||
{
|
||||
// if paramList.size() == 0, i.e. use ALL parameters
|
||||
if (paramList.size() == 0)
|
||||
return true;
|
||||
|
||||
for (unsigned int i=0; i<paramList.size(); i++) {
|
||||
if (paramValue+1 == paramList[i])
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
// end
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
|
@ -71,7 +71,7 @@ class PMsr2Data
|
||||
bool PrepareNewInputFile(unsigned int, bool) const; // template
|
||||
bool PrepareGlobalInputFile(unsigned int, const string&, unsigned int) const; // generate msr-input file for a global fit
|
||||
|
||||
int WriteOutput(const string&, bool, unsigned int, bool global = false, unsigned int counter = 0) const;
|
||||
int WriteOutput(const string&, const vector<unsigned int>&, bool, unsigned int, bool global = false, unsigned int counter = 0) const;
|
||||
|
||||
private:
|
||||
bool PrepareNewSortedInputFile(unsigned int) const; // template
|
||||
@ -80,6 +80,7 @@ class PMsr2Data
|
||||
void WriteValue(fstream &outFile, const double &value, const unsigned int &width) const;
|
||||
void WriteValue(fstream &outFile, const double &value, const double &errValue, const unsigned int &width, const bool &db) const;
|
||||
int GetFirstSignificantDigit(const double &value) const;
|
||||
bool InParameterList(const unsigned int ¶mValue, const vector<unsigned int>&) const;
|
||||
|
||||
string fFileExtension;
|
||||
vector<unsigned int> fRunVector;
|
||||
|
165
src/msr2data.cpp
165
src/msr2data.cpp
@ -49,6 +49,7 @@
|
||||
using namespace std;
|
||||
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/algorithm/string/case_conv.hpp> // for to_lower() in std::string
|
||||
using namespace boost::algorithm;
|
||||
|
||||
@ -84,14 +85,10 @@ bool isNumber(const string &s)
|
||||
void msr2data_syntax()
|
||||
{
|
||||
cout << endl << "usage 0: msr2data [--version] | [--help]";
|
||||
cout << endl << "usage 1: msr2data <run> <extension> [-o<outputfile>] [new] [data] [[no]header] [nosummary] [global[+[!]]]";
|
||||
cout << endl << " [fit [-k] [-t] | fit-<template>[!] [-k] [-t] | msr-<template>]";
|
||||
cout << endl << "usage 2: msr2data <run1> <run2> <extension> [-o<outputfile>] [new] [data] [[no]header] [nosummary] [global[+[!]]]";
|
||||
cout << endl << " [fit [-k] [-t] | fit-<template>[!] [-k] [-t] | msr-<template>]";
|
||||
cout << endl << "usage 3: msr2data \\[<runList>\\] <extension> [-o<outputfile> ] [new] [data] [[no]header] [nosummary] [global[+[!]]]";
|
||||
cout << endl << " [fit [-k] [-t] | fit-<template>[!] [-k] [-t] | msr-<template>]";
|
||||
cout << endl << "usage 4: msr2data <runlist> <extension> [-o<outputfile>] [new] [data] [[no]header] [nosummary] [global[+[!]]]";
|
||||
cout << endl << " [fit [-k] [-t] | fit-<template>[!] [-k] [-t] | msr-<template>]";
|
||||
cout << endl << "usage 1: msr2data <run> <extension> options";
|
||||
cout << endl << "usage 2: msr2data <run1> <run2> <extension> options";
|
||||
cout << endl << "usage 3: msr2data \\[<runList>\\] <extension> options";
|
||||
cout << endl << "usage 4: msr2data <runListFileName> <extension> options";
|
||||
cout << endl;
|
||||
cout << endl << " <runList> can be:";
|
||||
cout << endl << " (i) <run0>, <run1>, <run2>, ... <runN> : run numbers, e.g. 123 124";
|
||||
@ -99,7 +96,12 @@ void msr2data_syntax()
|
||||
cout << endl << " (iii) <run0>:<runN>:<step> : a sequence, e.g. 123:127:2 -> 123 125 127";
|
||||
cout << endl << " <step> will give the step width and has to be a positive number!";
|
||||
cout << endl << " a <runList> can also combine (i)-(iii), e.g. 123 128-130 133, etc.";
|
||||
cout << endl << " <runListFileName> : an ASCII file containing a list of run numbers and optional";
|
||||
cout << endl << " external parameters is passed to msr2data. For details see";
|
||||
cout << endl << " the online documentation: http://lmu.web.psi.ch/musrfit/user/MUSR/Msr2Data.html";
|
||||
cout << endl << " <extension> : msr-file extension, e.g. _tf_h13 for the file name 8472_tf_h13.msr";
|
||||
cout << endl;
|
||||
cout << endl << "options:";
|
||||
cout << endl << " -o<outputfile> : specify the name of the DB or column-data output file; default: out.db/out.dat";
|
||||
cout << endl << " if the option '-o none' is used, no output file will be written.";
|
||||
cout << endl << " new : before writing a new output file, delete the contents of any existing file with the same name";
|
||||
@ -109,6 +111,10 @@ void msr2data_syntax()
|
||||
cout << endl << " If either none or both of the header options are given, the file header will be written";
|
||||
cout << endl << " if a new file is created, but not if the output file exists already!";
|
||||
cout << endl << " nosummary : no additional data from the run data file is written to the output file";
|
||||
cout << endl << " paramList <param> : option used to select the parameters which shall be exported.";
|
||||
cout << endl << " <param> is a list of parameter numbers to be exported. Allowed lists are:";
|
||||
cout << endl << " 1-16 will export parameters 1 to 16. 1 3 5 will export parameters 1 3 5.";
|
||||
cout << endl << " A combination of both is possible, e.g. 1-16 19 31 62, and so on.";
|
||||
cout << endl << " fit : invoke musrfit to fit the specified runs";
|
||||
cout << endl << " All msr input files are assumed to be present, none is newly generated!";
|
||||
cout << endl << " fit-<template>! : generate msr files for the runs to be processed from the <template> run";
|
||||
@ -149,6 +155,10 @@ void msr2data_syntax()
|
||||
cout << endl << " will use 2045_tf_histo.msr as templete, and subsequently generating msr-files from the run-list:";
|
||||
cout << endl << " 2047 2049 2051 2053 2056 (2047_tf_histo.msr etc.) and fit them.";
|
||||
cout << endl;
|
||||
cout << endl << " msr2data 2046 2058 _tf_histo paramList 1-12 data -o fitParam.dat";
|
||||
cout << endl << " will export the parameters number 1 trough 12 in a column like fashion of the runs 2046 to 2058,";
|
||||
cout << endl << " collected form the msr-files 2046_tf_histo.msr and so on.";
|
||||
cout << endl;
|
||||
cout << endl << " For further information please refer to";
|
||||
cout << endl << " http://lmu.web.psi.ch/musrfit/user/MUSR/Msr2Data.html";
|
||||
cout << endl << " https://intranet.psi.ch/MUSR/Msr2Data";
|
||||
@ -208,7 +218,8 @@ string msr2data_validArguments(const vector<string> &arg)
|
||||
if ( (!iter->compare("header")) || (!iter->compare("noheader")) || (!iter->compare("nosummary")) \
|
||||
|| (!iter->substr(0,3).compare("fit")) || (!iter->compare("-k")) || (!iter->compare("-t")) \
|
||||
|| (!iter->compare("data")) || (!iter->substr(0,4).compare("msr-")) || (!iter->compare("global")) \
|
||||
|| (!iter->compare("global+")) || (!iter->compare("global+!")) || (!iter->compare("new")) )
|
||||
|| (!iter->compare("global+")) || (!iter->compare("global+!")) || (!iter->compare("new")) \
|
||||
|| !iter->compare("paramList") )
|
||||
word.clear();
|
||||
else if (!iter->substr(0,2).compare("-o")) {
|
||||
word.clear();
|
||||
@ -393,6 +404,91 @@ int msr2data_doInputCreation(vector<string> &arg, bool &inputOnly)
|
||||
return temp;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
*/
|
||||
int msr2data_paramList(vector<string> &arg, vector<unsigned int> ¶mList)
|
||||
{
|
||||
paramList.clear(); // make sure paramList is empty
|
||||
|
||||
unsigned int idx=0;
|
||||
// check if paramList tag is present
|
||||
for (unsigned int i=0; i<arg.size(); i++) {
|
||||
if (!arg[i].compare("paramList")) {
|
||||
idx = i+1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (idx == 0) { // paramList tag NOT present
|
||||
return 0;
|
||||
}
|
||||
|
||||
// make sure there are parameter list elements to follow
|
||||
if (idx == arg.size()) {
|
||||
cerr << endl << "**ERROR** found paramList without any arguments!" << endl;
|
||||
msr2data_syntax();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// paramList tag present and further elements present: collect them
|
||||
vector<string> str;
|
||||
unsigned int idx_end=0;
|
||||
size_t pos=string::npos;
|
||||
for (unsigned int i=idx; i<arg.size(); i++) {
|
||||
pos = arg[i].find("-");
|
||||
if (pos == 0) { // likely something like -o, -k, etc.
|
||||
idx_end = i;
|
||||
break;
|
||||
} else if (pos != string::npos) { // looks like a parameter list like n0-n1
|
||||
boost::split(str, arg[i], boost::is_any_of("-"));
|
||||
if (str.size() != 2) { // something is wrong, since the structure n0-n1 is expected
|
||||
cerr << endl << "**ERROR** found token " << arg[i] << " in paramList command which cannot be handled." << endl;
|
||||
msr2data_syntax();
|
||||
return -1;
|
||||
}
|
||||
if (!str[0].compare("fit") || !str[0].compare("msr")) {
|
||||
idx_end = i;
|
||||
break;
|
||||
}
|
||||
if (!isNumber(str[0]) || !isNumber(str[1])) {
|
||||
cerr << endl << "**ERROR** found token " << arg[i] << " in paramList command which cannot be handled." << endl;
|
||||
msr2data_syntax();
|
||||
return -1;
|
||||
}
|
||||
unsigned int start=boost::lexical_cast<unsigned int>(str[0]);
|
||||
unsigned int end=boost::lexical_cast<unsigned int>(str[1]);
|
||||
for (unsigned int j=start; j<=end; j++)
|
||||
paramList.push_back(j);
|
||||
} else if (isNumber(arg[i])) { // a single number
|
||||
paramList.push_back(boost::lexical_cast<unsigned int>(arg[i]));
|
||||
} else { // likely the next argument not related to paramList
|
||||
idx_end = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (idx_end == 0)
|
||||
idx_end = arg.size();
|
||||
|
||||
// remove all the paramList arguments for arg
|
||||
arg.erase(arg.begin()+idx-1, arg.begin()+idx_end);
|
||||
|
||||
// go through the parameter list and make sure the values are unique
|
||||
for (unsigned int i=0; i<paramList.size(); i++) {
|
||||
for (unsigned int j=i+1; j<paramList.size(); j++) {
|
||||
if (paramList[i] == paramList[j]) {
|
||||
cerr << endl << "**ERROR** the parameter list numbers have to be unique. Found " << paramList[i] << " at least 2 times." << endl;
|
||||
msr2data_syntax();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return paramList.size();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
/**
|
||||
* <p>msr2data is used to generate msr-files based on template msr-files, automatically fit these new msr-files,
|
||||
@ -441,6 +537,7 @@ int main(int argc, char *argv[])
|
||||
vector<unsigned int> run_vec;
|
||||
string run_list;
|
||||
string msrExtension;
|
||||
vector<unsigned int> param_vec;
|
||||
|
||||
try {
|
||||
if (arg[0].at(0) == '[') { // In case a list of runs is given by [...]
|
||||
@ -557,7 +654,14 @@ int main(int argc, char *argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
// check the validity of the command line given command line arguments
|
||||
// check if parameter list is given
|
||||
int noParamList(msr2data_paramList(arg, param_vec));
|
||||
if (noParamList == -1) {
|
||||
arg.clear();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// check the validity of the command line given command line arguments
|
||||
string wrongArgument(msr2data_validArguments(arg));
|
||||
if (!wrongArgument.empty()) {
|
||||
cerr << endl;
|
||||
@ -567,18 +671,18 @@ int main(int argc, char *argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
// check if the output format is DB or data
|
||||
// check if the output format is DB or data
|
||||
bool db(msr2data_useOption(arg, "data"));
|
||||
|
||||
// check the arguments for the "-o" option and set the output filename
|
||||
// check the arguments for the "-o" option and set the output filename
|
||||
string outputFile(msr2data_outputfile(arg, db));
|
||||
|
||||
// introduce check, if no output should be generated - in that case we do not need msrfile and rundata handlers later
|
||||
// introduce check, if no output should be generated - in that case we do not need msrfile and rundata handlers later
|
||||
bool realOutput(true);
|
||||
if (!to_lower_copy(outputFile).compare("none"))
|
||||
realOutput = false;
|
||||
|
||||
// create the msr2data-object and set the run numbers according to the runTAG above
|
||||
// create the msr2data-object and set the run numbers according to the runTAG above
|
||||
PMsr2Data *msr2dataHandler = new PMsr2Data(msrExtension);
|
||||
|
||||
int status;
|
||||
@ -615,7 +719,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
run_vec.clear();
|
||||
|
||||
// check if fitting should be done and in case, which template run number to use
|
||||
// check if fitting should be done and in case, which template run number to use
|
||||
int temp(0);
|
||||
bool chainfit(true), onlyInputCreation(false);
|
||||
string musrfitOptions;
|
||||
@ -635,7 +739,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
|
||||
// check if any options should be passed to musrfit
|
||||
// check if any options should be passed to musrfit
|
||||
if (temp) {
|
||||
if (!msr2data_useOption(arg, "-k"))
|
||||
musrfitOptions.append("-k ");
|
||||
@ -643,9 +747,8 @@ int main(int argc, char *argv[])
|
||||
musrfitOptions.append("-t ");
|
||||
}
|
||||
|
||||
// if no fitting should be done, check if only the input files should be created
|
||||
|
||||
if(!temp) {
|
||||
// if no fitting should be done, check if only the input files should be created
|
||||
if (!temp) {
|
||||
temp = msr2data_doInputCreation(arg, onlyInputCreation);
|
||||
if (onlyInputCreation) {
|
||||
// if only input files should be created, do not write data to an output file (no matter, what has been determined earlier)
|
||||
@ -672,8 +775,8 @@ int main(int argc, char *argv[])
|
||||
globalMode = 2;
|
||||
}
|
||||
|
||||
// At this point it should be clear if any template for input-file generation is given or not.
|
||||
// Therefore, the number of digits in the run number format is determined only here.
|
||||
// At this point it should be clear if any template for input-file generation is given or not.
|
||||
// Therefore, the number of digits in the run number format is determined only here.
|
||||
if(temp > 0) {
|
||||
status = msr2dataHandler->DetermineRunNumberDigits(temp, setNormalMode);
|
||||
} else {
|
||||
@ -685,7 +788,7 @@ int main(int argc, char *argv[])
|
||||
return status;
|
||||
}
|
||||
|
||||
// Check if all given run numbers are covered by the formatting of the data file name
|
||||
// Check if all given run numbers are covered by the formatting of the data file name
|
||||
status = msr2dataHandler->CheckRunNumbersInRange();
|
||||
if(status) {
|
||||
cerr << endl;
|
||||
@ -736,7 +839,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
// GLOBAL MODE
|
||||
// GLOBAL MODE
|
||||
if (!setNormalMode) {
|
||||
ostringstream strInfile;
|
||||
strInfile << msr2dataHandler->GetPresentRun() << "+global" << msrExtension << ".msr";
|
||||
@ -798,7 +901,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
while (msr2dataHandler->GetPresentRun()) {
|
||||
// write DB or dat file
|
||||
status = msr2dataHandler->WriteOutput(outputFile, db, writeHeader, !setNormalMode, counter);
|
||||
status = msr2dataHandler->WriteOutput(outputFile, param_vec, db, writeHeader, !setNormalMode, counter);
|
||||
if (status == -1) {
|
||||
msr2data_cleanup(msr2dataHandler, arg);
|
||||
return status;
|
||||
@ -842,7 +945,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
// and do the fitting
|
||||
// and do the fitting
|
||||
if (!onlyInputCreation) {
|
||||
// check if MUSRFITPATH is set, if not issue a warning
|
||||
string path("");
|
||||
@ -866,12 +969,12 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
// read msr-file
|
||||
// read msr-file
|
||||
if (realOutput) {
|
||||
status = msr2dataHandler->ReadMsrFile(strInfile.str());
|
||||
if (status != PMUSR_SUCCESS) {
|
||||
// if the msr-file cannot be read, write no output but proceed to the next run
|
||||
status = msr2dataHandler->WriteOutput("none", db, writeHeader);
|
||||
status = msr2dataHandler->WriteOutput("none", param_vec, db, writeHeader);
|
||||
if (status == -1) {
|
||||
msr2data_cleanup(msr2dataHandler, arg);
|
||||
return status;
|
||||
@ -881,12 +984,12 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
// read data files
|
||||
// read data files
|
||||
if (writeSummary)
|
||||
status = msr2dataHandler->ReadRunDataFile();
|
||||
|
||||
// write DB or dat file
|
||||
status = msr2dataHandler->WriteOutput(outputFile, db, writeHeader);
|
||||
// write DB or dat file
|
||||
status = msr2dataHandler->WriteOutput(outputFile, param_vec, db, writeHeader);
|
||||
if (status == -1) {
|
||||
msr2data_cleanup(msr2dataHandler, arg);
|
||||
return status;
|
||||
@ -899,7 +1002,7 @@ int main(int argc, char *argv[])
|
||||
// Unfortunately, this can be done in a coherent way only on that level
|
||||
// Unfortunately, there are also problems with boost::filesystem::exists(outputFile)
|
||||
// Therefore, first try to open the file for reading and if this works, write to it - not clean but it works
|
||||
if(realOutput) {
|
||||
if (realOutput) {
|
||||
fileOutput = new fstream;
|
||||
fileOutput->open(outputFile.c_str(), ios::in);
|
||||
if (fileOutput->is_open()) {
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2012-2014 by Andreas Suter *
|
||||
* Copyright (C) 2012-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2012-2014 by Andreas Suter *
|
||||
* Copyright (C) 2012-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2015 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2015 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
@ -88,6 +88,10 @@ PMsr2DataDialog::PMsr2DataDialog(PMsr2DataParam *msr2DataParam, const QString he
|
||||
fDataOutputFileName_lineEdit->setText(fMsr2DataParam->dbOutputFileName);
|
||||
}
|
||||
|
||||
if (!fMsr2DataParam->paramList.isEmpty()) {
|
||||
fParamList_lineEdit->setText(fMsr2DataParam->paramList);
|
||||
}
|
||||
|
||||
fWriteDataHeader_checkBox->setChecked(fMsr2DataParam->writeDbHeader);
|
||||
fIgnoreDataHeaderInfo_checkBox->setChecked(fMsr2DataParam->ignoreDataHeaderInfo);
|
||||
fKeepMinuit2Output_checkBox->setChecked(fMsr2DataParam->keepMinuit2Output);
|
||||
@ -129,6 +133,7 @@ PMsr2DataParam* PMsr2DataDialog::getMsr2DataParam()
|
||||
} else {
|
||||
fMsr2DataParam->templateRunNo = fTemplateRunNumber_lineEdit->text().toInt();
|
||||
}
|
||||
fMsr2DataParam->paramList = fParamList_lineEdit->text();
|
||||
fMsr2DataParam->dbOutputFileName = fDataOutputFileName_lineEdit->text();
|
||||
fMsr2DataParam->writeDbHeader = fWriteDataHeader_checkBox->isChecked();
|
||||
fMsr2DataParam->ignoreDataHeaderInfo = fIgnoreDataHeaderInfo_checkBox->isChecked();
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
@ -1963,6 +1963,14 @@ void PTextEdit::musrMsr2Data()
|
||||
|
||||
// options
|
||||
|
||||
// parameter export list
|
||||
if (!fMsr2DataParam->paramList.isEmpty()) {
|
||||
cmd.append("paramList");
|
||||
QStringList list = fMsr2DataParam->paramList.split(' ');
|
||||
for (int i=0; i<list.size(); i++)
|
||||
cmd.append(list[i]);
|
||||
}
|
||||
|
||||
// no header flag?
|
||||
if (!fMsr2DataParam->writeDbHeader)
|
||||
cmd.append("noheader");
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -10,7 +10,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>552</width>
|
||||
<height>551</height>
|
||||
<height>599</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@ -64,7 +64,14 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fFirst_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fFirst_lineEdit">
|
||||
<property name="toolTip">
|
||||
<string>start run number</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string>start run number</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
@ -90,7 +97,14 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fLast_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fLast_lineEdit">
|
||||
<property name="toolTip">
|
||||
<string>end run number</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string>end run number</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
@ -130,7 +144,19 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fRunList_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fRunList_lineEdit">
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The run list consists of a collection of run number. Accepted input formats are:</p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(i) &lt;run0&gt; &lt;run1&gt; ... &lt;runN&gt;, e.g. 124 126 129</p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(ii) &lt;run0&gt;-&lt;runN&gt;, e.g. 124-126, i.e. 124 125 126</p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(iii) &lt;run0&gt;:&lt;runN&gt;:&lt;step&gt;, e.g 124:128:2, i.e. 124 126 128</p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">or combination of those three.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
@ -170,7 +196,16 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fRunListFileName_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fRunListFileName_lineEdit">
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">an ASCII file containing a list of run numbers and optional external parameters is passed to msr2data. </p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">For details see the online documentation.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_5">
|
||||
@ -236,7 +271,11 @@
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fMsrFileExtension_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fMsrFileExtension_lineEdit">
|
||||
<property name="whatsThis">
|
||||
<string>the extension will be used together with the run number to generate the msr-file name. For example: the run number being 123 and the extension _tf_h13, an msr-file name 123_tf_h13.msr will result.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_7">
|
||||
@ -284,10 +323,22 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fTemplateRunNumber_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fTemplateRunNumber_lineEdit">
|
||||
<property name="whatsThis">
|
||||
<string>the run number given here will be used as a msr-file template number to generate/fit the run's given in the 'Run List Input'.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fChainFit_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">unselected means: all msr-files generated and fitted will start from the given template.</p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">selected means: the msr-files generated and fitted will use the previously fitted msr-file as an input. This makes sense if the run list given has continously changing parameters, e.g. as function of the temperature.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Chain Fit</string>
|
||||
</property>
|
||||
@ -339,7 +390,11 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fDataOutputFileName_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fDataOutputFileName_lineEdit">
|
||||
<property name="whatsThis">
|
||||
<string>db- or dat-output file name for the parameter files.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_9">
|
||||
@ -366,7 +421,7 @@
|
||||
<x>0</x>
|
||||
<y>360</y>
|
||||
<width>551</width>
|
||||
<height>141</height>
|
||||
<height>172</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
@ -386,6 +441,9 @@
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fWriteDataHeader_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string>For db-files, a Data Header will be written.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Write Data Header</string>
|
||||
</property>
|
||||
@ -393,6 +451,13 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fIgnoreDataHeaderInfo_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This tag is used in conjunction with LEM. If <span style=" font-weight:600;">not</span> selected, it will try to extract experiment specific parameters from the data file like implantation energy, transport HV settings, etc.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Ignore Data Header Info</string>
|
||||
</property>
|
||||
@ -400,6 +465,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fKeepMinuit2Output_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string>selected: for each run fitted, two additional files will be written, namely a <msr-filename>-mn2.output and <msr-filename>-mn2.root, which contain a richer set of information about fit, i.e. the covariance matrix, the correlation coefficients, etc.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Keep Minuit2 Output</string>
|
||||
</property>
|
||||
@ -411,6 +479,14 @@
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fWriteColumnData_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">unselected: the output parameter file is written in so called db-format.</p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">selected: the output parameter file is written in column like ascii-format.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Write Column Data</string>
|
||||
</property>
|
||||
@ -418,6 +494,14 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fRecreateDataFile_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">unselected: if the parameter output file already exists, the parameters will be appended.</p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">selected: if the parameter output file already exists: it will be deleted and a new one will be written.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Recreate Data File</string>
|
||||
</property>
|
||||
@ -425,6 +509,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fOpenFilesAfterFitting_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string>selected: the newly generated msr-files will be opened in musredit after the fit took place.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Open Files after Fitting</string>
|
||||
</property>
|
||||
@ -436,6 +523,9 @@
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fTitleFromData_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string>if selected: the run title of the generated msr-file will be the one given in the muSR data file.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Take Data File Title</string>
|
||||
</property>
|
||||
@ -443,6 +533,13 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fCreateMsrFileOnly_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:10pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">if selected: the msr-files will be created, but <span style=" font-weight:600;">no </span>fitting will take place.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Create msr-File only</string>
|
||||
</property>
|
||||
@ -450,6 +547,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fFitOnly_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string>selected: it is assumed that the msr-files already exist, and only musrfit is called.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Fit Only</string>
|
||||
</property>
|
||||
@ -459,6 +559,9 @@
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fGlobal_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string>selected: will generate a msr-file for a global fit. Please check the online documentation for further details.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Global</string>
|
||||
</property>
|
||||
@ -466,6 +569,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fGlobalPlus_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string>selected: will generate a msr-file for a global fit. The difference between Global and Global+ is that for Global+ the input parameters of the msr-file are originating from the single run fits. Please check the online documentation for further details.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Global+</string>
|
||||
</property>
|
||||
@ -477,12 +583,38 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QLabel" name="fParamList_label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>143</y>
|
||||
<width>161</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Parameter Export List</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="fParamList_lineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>170</x>
|
||||
<y>140</y>
|
||||
<width>371</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string>parameter numbers to be exported, e.g. 1-16, or 1 3-7, etc.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>5</x>
|
||||
<y>500</y>
|
||||
<y>540</y>
|
||||
<width>541</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -5,12 +5,10 @@
|
||||
Author: Andreas Suter
|
||||
e-mail: andreas.suter@psi.ch
|
||||
|
||||
$Id$
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
@ -49,6 +47,7 @@ typedef struct {
|
||||
QString runListFileName; ///< run list filename (usage 4 of msr2data)
|
||||
QString msrFileExtension; ///< msr filename extension, e.g. '0100_h13.msr' -> '_h13'
|
||||
int templateRunNo; ///< fit template run number
|
||||
QString paramList; ///< parameter list to be exported.
|
||||
QString dbOutputFileName; ///< output file name for the generated (trumf-like) db-file.
|
||||
bool writeDbHeader; ///< flag indicating if a db header shall be generated (== !noheader in msr2data)
|
||||
bool ignoreDataHeaderInfo; ///< flag indicating if data header info (like temp.) shall be ignored (== nosummary in msr2data)
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2012-2014 by Andreas Suter *
|
||||
* Copyright (C) 2012-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2012-2014 by Andreas Suter *
|
||||
* Copyright (C) 2012-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2015 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2015 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2015 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
@ -88,6 +88,10 @@ PMsr2DataDialog::PMsr2DataDialog(PMsr2DataParam *msr2DataParam, const QString he
|
||||
fDataOutputFileName_lineEdit->setText(fMsr2DataParam->dbOutputFileName);
|
||||
}
|
||||
|
||||
if (!fMsr2DataParam->paramList.isEmpty()) {
|
||||
fParamList_lineEdit->setText(fMsr2DataParam->paramList);
|
||||
}
|
||||
|
||||
fWriteDataHeader_checkBox->setChecked(fMsr2DataParam->writeDbHeader);
|
||||
fIgnoreDataHeaderInfo_checkBox->setChecked(fMsr2DataParam->ignoreDataHeaderInfo);
|
||||
fKeepMinuit2Output_checkBox->setChecked(fMsr2DataParam->keepMinuit2Output);
|
||||
@ -129,6 +133,7 @@ PMsr2DataParam* PMsr2DataDialog::getMsr2DataParam()
|
||||
} else {
|
||||
fMsr2DataParam->templateRunNo = fTemplateRunNumber_lineEdit->text().toInt();
|
||||
}
|
||||
fMsr2DataParam->paramList = fParamList_lineEdit->text();
|
||||
fMsr2DataParam->dbOutputFileName = fDataOutputFileName_lineEdit->text();
|
||||
fMsr2DataParam->writeDbHeader = fWriteDataHeader_checkBox->isChecked();
|
||||
fMsr2DataParam->ignoreDataHeaderInfo = fIgnoreDataHeaderInfo_checkBox->isChecked();
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2009-2014 by Andreas Suter *
|
||||
* Copyright (C) 2009-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
@ -1961,6 +1961,14 @@ void PTextEdit::musrMsr2Data()
|
||||
|
||||
// options
|
||||
|
||||
// parameter export list
|
||||
if (!fMsr2DataParam->paramList.isEmpty()) {
|
||||
cmd.append("paramList");
|
||||
QStringList list = fMsr2DataParam->paramList.split(' ');
|
||||
for (int i=0; i<list.size(); i++)
|
||||
cmd.append(list[i]);
|
||||
}
|
||||
|
||||
// no header flag?
|
||||
if (!fMsr2DataParam->writeDbHeader)
|
||||
cmd.append("noheader");
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -10,14 +10,14 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>552</width>
|
||||
<height>551</height>
|
||||
<height>594</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>msr2data input</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="../musredit.qrc">
|
||||
<iconset>
|
||||
<normaloff>:/images/musrmsr2data.xpm</normaloff>:/images/musrmsr2data.xpm</iconset>
|
||||
</property>
|
||||
<widget class="QGroupBox" name="fRunListInput_groupBox">
|
||||
@ -64,7 +64,14 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fFirst_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fFirst_lineEdit">
|
||||
<property name="toolTip">
|
||||
<string>start run number</string>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string>start run number</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
@ -90,7 +97,14 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fLast_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fLast_lineEdit">
|
||||
<property name="toolTip">
|
||||
<string>end run number</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string>end run number</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
@ -130,7 +144,11 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fRunList_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fRunList_lineEdit">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>The run list consists of a collection of run number. Accepted input formats are:</p><p>(i) &lt;run0&gt; &lt;run1&gt; ... &lt;runN&gt;, e.g. 124 126 129</p><p>(ii) &lt;run0&gt;-&lt;runN&gt;, e.g. 124-126, i.e. 124 125 126</p><p>(iii) &lt;run0&gt;:&lt;runN&gt;:&lt;step&gt;, e.g 124:128:2, i.e. 124 126 128</p><p>or combination of those three.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_4">
|
||||
@ -170,7 +188,11 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fRunListFileName_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fRunListFileName_lineEdit">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>an ASCII file containing a list of run numbers and optional external parameters is passed to msr2data. </p><p>For details see the online documentation.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_5">
|
||||
@ -236,7 +258,11 @@
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fMsrFileExtension_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fMsrFileExtension_lineEdit">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>the extension will be used together with the run number to generate the msr-file name. For example: the run number being 123 and the extension _tf_h13, an msr-file name 123_tf_h13.msr will result.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_7">
|
||||
@ -284,10 +310,17 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fTemplateRunNumber_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fTemplateRunNumber_lineEdit">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>the run number given here will be used as a msr-file template number to generate/fit the run's given in the 'Run List Input'.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fChainFit_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>unselected means: all msr-files generated and fitted will start from the given template.</p><p>selected means: the msr-files generated and fitted will use the previously fitted msr-file as an input. This makes sense if the run list given has continously changing parameters, e.g. as function of the temperature.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Chain Fit</string>
|
||||
</property>
|
||||
@ -319,7 +352,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Data Output File Name</string>
|
||||
<string>Parameter Output File Name</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
@ -334,12 +367,16 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="fDataOutputFileName_label">
|
||||
<property name="text">
|
||||
<string>Data Output File Name</string>
|
||||
<string>Parameters Output File Name</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="fDataOutputFileName_lineEdit"/>
|
||||
<widget class="QLineEdit" name="fDataOutputFileName_lineEdit">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>db- or dat-output file name for the parameter files.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_9">
|
||||
@ -366,7 +403,7 @@
|
||||
<x>0</x>
|
||||
<y>360</y>
|
||||
<width>551</width>
|
||||
<height>141</height>
|
||||
<height>171</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
@ -386,6 +423,9 @@
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fWriteDataHeader_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>For db-files, a Data Header will be written.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Write Data Header</string>
|
||||
</property>
|
||||
@ -393,6 +433,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fIgnoreDataHeaderInfo_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>This tag is used in conjunction with LEM. If <span style=" font-weight:600;">not</span> selected, it will try to extract experiment specific parameters from the data file like implantation energy, transport HV settings, etc.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Ignore Data Header Info</string>
|
||||
</property>
|
||||
@ -400,6 +443,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fKeepMinuit2Output_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>selected: for each run fitted, two additional files will be written, namely a &lt;msr-filename&gt;-mn2.output and &lt;msr-filename&gt;-mn2.root, which contain a richer set of information about fit, i.e. the covariance matrix, the correlation coefficients, etc.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Keep Minuit2 Output</string>
|
||||
</property>
|
||||
@ -411,6 +457,9 @@
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fWriteColumnData_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>unselected: the output parameter file is written in so called db-format.</p><p>selected: the output parameter file is written in column like ascii-format.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Write Column Data</string>
|
||||
</property>
|
||||
@ -418,6 +467,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fRecreateDataFile_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>unselected: if the parameter output file already exists, the parameters will be appended.</p><p>selected: if the parameter output file already exists: it will be deleted and a new one will be written.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Recreate Data File</string>
|
||||
</property>
|
||||
@ -425,6 +477,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fOpenFilesAfterFitting_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>selected: the newly generated msr-files will be opened in musredit after the fit took place.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Open Files after Fitting</string>
|
||||
</property>
|
||||
@ -436,6 +491,9 @@
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fTitleFromData_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>if selected: the run title of the generated msr-file will be the one given in the muSR data file.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Take Data File Title</string>
|
||||
</property>
|
||||
@ -443,6 +501,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fCreateMsrFileOnly_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>if selected: the msr-files will be created, but <span style=" font-weight:600;">no </span>fitting will take place.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Create msr-File only</string>
|
||||
</property>
|
||||
@ -450,6 +511,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fFitOnly_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>selected: it is assumed that the msr-files already exist, and only musrfit is called.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Fit Only</string>
|
||||
</property>
|
||||
@ -459,6 +523,9 @@
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fGlobal_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>selected: will generate a msr-file for a global fit. Please check the online documentation for further details.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Global</string>
|
||||
</property>
|
||||
@ -466,6 +533,9 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="fGlobalPlus_checkBox">
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>selected: will generate a msr-file for a global fit. The difference between Global and Global+ is that for Global+ the input parameters of the msr-file are originating from the single run fits. Please check the online documentation for further details.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Global+</string>
|
||||
</property>
|
||||
@ -477,12 +547,41 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QLabel" name="fParamList_label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>9</x>
|
||||
<y>143</y>
|
||||
<width>141</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>parameter numbers to be exported, e.g. 1-16, or 1 3-7, etc.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Parameter Export List</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="fParamList_lineEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>150</x>
|
||||
<y>140</y>
|
||||
<width>395</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string><html><head/><body><p>parameter numbers to be exported, e.g. 1-16, or 1 3-7, etc.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>5</x>
|
||||
<y>500</y>
|
||||
<y>540</y>
|
||||
<width>541</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
@ -556,9 +655,10 @@
|
||||
<tabstop>fFitOnly_checkBox</tabstop>
|
||||
<tabstop>fGlobal_checkBox</tabstop>
|
||||
<tabstop>fGlobalPlus_checkBox</tabstop>
|
||||
<tabstop>fOk_pushButton</tabstop>
|
||||
<tabstop>fParamList_lineEdit</tabstop>
|
||||
<tabstop>fCancel_pushButton</tabstop>
|
||||
<tabstop>fHelp_pushButton</tabstop>
|
||||
<tabstop>fOk_pushButton</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="../musredit.qrc"/>
|
||||
|
@ -8,7 +8,7 @@
|
||||
*****************************************************************************/
|
||||
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2010-2014 by Andreas Suter *
|
||||
* Copyright (C) 2010-2016 by Andreas Suter *
|
||||
* andreas.suter@psi.ch *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user