minor changes

This commit is contained in:
nemu 2008-05-14 14:47:38 +00:00
parent 0ee32cf526
commit fb8e96b2ee
2 changed files with 37 additions and 8 deletions

View File

@ -118,6 +118,7 @@ PRawRunData* PRunDataHandler::GetRunData(TString runName)
unsigned int i;
for (i=0; i<fData.size(); i++) {
cout << endl << ">> run name = " << fData[i].fRunName.Data();
if (!fData[i].fRunName.CompareTo(runName)) // run found
break;
}
@ -299,6 +300,7 @@ bool PRunDataHandler::FileExistsCheck(PMsrRunStructure &runInfo)
runInfo.fInstitute + TString("/") +
runInfo.fBeamline + TString("/") +
runInfo.fRunName + TString(".") + ext;
cout << endl << ">> generated path: " << str.Data() << endl;
if (gSystem->AccessPathName(str.Data())!=true) { // found
pathName = str;
break;
@ -798,7 +800,7 @@ bool PRunDataHandler::ReadMudFile()
// ReadAsciiFile
//--------------------------------------------------------------------------
/**
* <p>Reads ascii files. Intended for the No-muSR data.
* <p>Reads ascii files. Intended for the nonMuSR data.
*
* The file format definition is:
* Comment lines start with a '#' or '%' character.
@ -843,6 +845,8 @@ bool PRunDataHandler::ReadAsciiFile()
PRawRunData runData;
runData.fRunName = fRunName; // keep the run name
int lineNo = 0;
char instr[512];
TString line, workStr;

View File

@ -60,12 +60,9 @@ PRunNonMusr::PRunNonMusr() : PRunBase()
*/
PRunNonMusr::PRunNonMusr(PMsrHandler *msrInfo, PRunDataHandler *rawData, unsigned int runNo, EPMusrHandleTag tag) : PRunBase(msrInfo, rawData, runNo, tag)
{
bool success;
// calculate fFitData
if (success) {
success = PrepareData();
}
// calculate fData
if (!PrepareData())
fValid = false;
}
//--------------------------------------------------------------------------
@ -92,6 +89,23 @@ double PRunNonMusr::CalcChiSquare(const std::vector<double>& par)
double chisq = 0.0;
double diff = 0.0;
// calculate functions
for (int i=0; i<fMsrInfo->GetNoOfFuncs(); i++) {
fFuncValues[i] = fMsrInfo->EvalFunc(fMsrInfo->GetFuncNo(i), fRunInfo->fMap, par);
}
// calculate chi square
double x;
for (unsigned int i=0; i<fData.fValue.size(); i++) {
x = fData.fX[i];
if ((x>=fFitStartTime) && (x<=fFitStopTime)) {
diff = fData.fValue[i] - fTheory->Func(x, par, fFuncValues);
chisq += diff*diff / (fData.fError[i]*fData.fError[i]);
}
}
//cout << endl << ">> chisq=" << chisq;
return chisq;
}
@ -169,8 +183,11 @@ bool PRunNonMusr::PrepareFitData()
// pack the raw data
double value = 0.0;
double err = 0.0;
cout << endl << ">> runData->fXData.size()=" << runData->fXData.size();
for (unsigned int i=0; i<runData->fXData.size(); i++) {
cout << endl << ">> i=" << i << ", packing=" << fRunInfo->fPacking;
if ((i % fRunInfo->fPacking == 0) && (i != 0)) { // fill data
cout << endl << "-> i=" << i;
fData.fX.push_back(runData->fXData[i]-(runData->fXData[i]-runData->fXData[i-fRunInfo->fPacking])/2.0);
fData.fValue.push_back(value);
fData.fError.push_back(TMath::Sqrt(err));
@ -181,9 +198,17 @@ bool PRunNonMusr::PrepareFitData()
value += runData->fYData[i];
err += runData->fErrYData[i]*runData->fErrYData[i];
}
cout << endl << ">> fData.fValue.size()=" << fData.fValue.size();
// count the number of bins to be fitted
fNoOfFitBins=0; // STILL MISSING!!
fNoOfFitBins=0;
double x;
for (unsigned int i=0; i<fData.fValue.size(); i++) {
x = fData.fX[i];
if ((x >= fFitStartTime) && (x <= fFitStopTime))
fNoOfFitBins++;
}
cout << endl << ">> fNoOfFitBins=" << fNoOfFitBins;
return success;
}