some more work towards a full encapsulation

This commit is contained in:
nemu 2009-11-05 06:42:33 +00:00
parent 208e6b97c2
commit 588747bd13
10 changed files with 117 additions and 129 deletions

View File

@ -560,12 +560,12 @@ Int_t PMsrHandler::WriteMsrLogFile(const Bool_t messages)
fout.width(16); fout.width(16);
fout << left << "rrffrequency"; fout << left << "rrffrequency";
fout.precision(prec); fout.precision(prec);
fout << fRuns[runNo].fRRFFreq << endl; fout << fRuns[runNo].GetRRFFreq() << endl;
} else if (sstr.BeginsWith("rrfpacking")) { } else if (sstr.BeginsWith("rrfpacking")) {
fout.width(16); fout.width(16);
fout << left << "rrfpacking"; fout << left << "rrfpacking";
fout.precision(prec); fout.precision(prec);
fout << fRuns[runNo].fRRFPacking << endl; fout << fRuns[runNo].GetRRFPacking() << endl;
} else if (sstr.BeginsWith("alpha ")) { } else if (sstr.BeginsWith("alpha ")) {
fout.width(16); fout.width(16);
fout << left << "alpha"; fout << left << "alpha";
@ -577,11 +577,11 @@ Int_t PMsrHandler::WriteMsrLogFile(const Bool_t messages)
} else if (sstr.BeginsWith("alpha2")) { } else if (sstr.BeginsWith("alpha2")) {
fout.width(16); fout.width(16);
fout << left << "alpha2"; fout << left << "alpha2";
fout << fRuns[runNo].fAlpha2ParamNo << endl; fout << fRuns[runNo].GetAlpha2ParamNo() << endl;
} else if (sstr.BeginsWith("beta2")) { } else if (sstr.BeginsWith("beta2")) {
fout.width(16); fout.width(16);
fout << left << "beta2"; fout << left << "beta2";
fout << fRuns[runNo].fBeta2ParamNo << endl; fout << fRuns[runNo].GetBeta2ParamNo() << endl;
} else if (sstr.BeginsWith("norm")) { } else if (sstr.BeginsWith("norm")) {
fout.width(16); fout.width(16);
fout << left << "norm"; fout << left << "norm";
@ -630,11 +630,11 @@ Int_t PMsrHandler::WriteMsrLogFile(const Bool_t messages)
} else if (sstr.BeginsWith("right")) { } else if (sstr.BeginsWith("right")) {
fout.width(16); fout.width(16);
fout << left << "right"; fout << left << "right";
fout << fRuns[runNo].fRightHistoNo << endl; fout << fRuns[runNo].GetRightHistoNo() << endl;
} else if (sstr.BeginsWith("left")) { } else if (sstr.BeginsWith("left")) {
fout.width(16); fout.width(16);
fout << left << "left"; fout << left << "left";
fout << fRuns[runNo].fLeftHistoNo << endl; fout << fRuns[runNo].GetLeftHistoNo() << endl;
} else if (sstr.BeginsWith("backgr.fix")) { } else if (sstr.BeginsWith("backgr.fix")) {
fout.width(15); fout.width(15);
fout << left << "backgr.fix"; fout << left << "backgr.fix";
@ -669,28 +669,24 @@ Int_t PMsrHandler::WriteMsrLogFile(const Bool_t messages)
} }
fout << endl; fout << endl;
} else if (sstr.BeginsWith("xy-data")) { } else if (sstr.BeginsWith("xy-data")) {
if (fRuns[runNo].fXYDataIndex[0] != -1) { // indices if (fRuns[runNo].GetXDataIndex() != -1) { // indices
fout.width(16); fout.width(16);
fout << left << "xy-data"; fout << left << "xy-data";
for (UInt_t j=0; j<2; j++) { fout.width(8);
if (fRuns[runNo].fXYDataIndex[j] == -1) fout.precision(2);
break; fout << left << fixed << fRuns[runNo].GetXDataIndex();
fout.width(8); fout.width(8);
fout.precision(2); fout.precision(2);
fout << left << fixed << fRuns[runNo].fXYDataIndex[j]; fout << left << fixed << fRuns[runNo].GetYDataIndex();
}
fout << endl; fout << endl;
} else if (!fRuns[runNo].fXYDataLabel[0].IsWhitespace()) { // labels } else if (!fRuns[runNo].GetXDataLabel()->IsWhitespace()) { // labels
fout.width(16); fout.width(16);
fout << endl << left << "xy-data"; fout << endl << left << "xy-data";
for (UInt_t j=0; j<2; j++) { fout.width(8);
if (fRuns[runNo].fXYDataLabel[j].IsWhitespace()) fout << left << fixed << fRuns[runNo].GetXDataLabel()->Data();
break; fout << " ";
fout.width(8); fout.width(8);
fout << left << fixed << fRuns[runNo].fXYDataLabel[j].Data(); fout << left << fixed << fRuns[runNo].GetYDataLabel()->Data();
if (j == 0)
fout << " ";
}
fout << endl; fout << endl;
} }
} else if (sstr.BeginsWith("fit")) { } else if (sstr.BeginsWith("fit")) {
@ -707,7 +703,7 @@ Int_t PMsrHandler::WriteMsrLogFile(const Bool_t messages)
} else if (sstr.BeginsWith("packing")) { } else if (sstr.BeginsWith("packing")) {
fout.width(16); fout.width(16);
fout << left << "packing"; fout << left << "packing";
fout << fRuns[runNo].fPacking << endl; fout << fRuns[runNo].GetPacking() << endl;
} else { } else {
fout << str.Data() << endl; fout << str.Data() << endl;
} }
@ -1758,7 +1754,7 @@ Bool_t PMsrHandler::HandleRunEntry(PMsrLines &lines)
ostr = dynamic_cast<TObjString*>(tokens->At(1)); ostr = dynamic_cast<TObjString*>(tokens->At(1));
str = ostr->GetString(); str = ostr->GetString();
if (str.IsDigit()) if (str.IsDigit())
param.fPacking = str.Atoi(); param.SetPacking(str.Atoi());
else else
error = true; error = true;
} }
@ -1772,7 +1768,7 @@ Bool_t PMsrHandler::HandleRunEntry(PMsrLines &lines)
ostr = dynamic_cast<TObjString*>(tokens->At(1)); ostr = dynamic_cast<TObjString*>(tokens->At(1));
str = ostr->GetString(); str = ostr->GetString();
if (str.IsFloat()) if (str.IsFloat())
param.fRRFFreq = str.Atof(); param.SetRRFFreq(str.Atof());
else else
error = true; error = true;
} }
@ -1786,7 +1782,7 @@ Bool_t PMsrHandler::HandleRunEntry(PMsrLines &lines)
ostr = dynamic_cast<TObjString*>(tokens->At(1)); ostr = dynamic_cast<TObjString*>(tokens->At(1));
str = ostr->GetString(); str = ostr->GetString();
if (str.IsDigit()) if (str.IsDigit())
param.fRRFPacking = str.Atoi(); param.SetRRFPacking(str.Atoi());
else else
error = true; error = true;
} }
@ -1800,7 +1796,7 @@ Bool_t PMsrHandler::HandleRunEntry(PMsrLines &lines)
ostr = dynamic_cast<TObjString*>(tokens->At(1)); ostr = dynamic_cast<TObjString*>(tokens->At(1));
str = ostr->GetString(); str = ostr->GetString();
if (str.IsDigit()) if (str.IsDigit())
param.fAlpha2ParamNo = str.Atoi(); param.SetAlpha2ParamNo(str.Atoi());
else else
error = true; error = true;
} }
@ -1814,7 +1810,7 @@ Bool_t PMsrHandler::HandleRunEntry(PMsrLines &lines)
ostr = dynamic_cast<TObjString*>(tokens->At(1)); ostr = dynamic_cast<TObjString*>(tokens->At(1));
str = ostr->GetString(); str = ostr->GetString();
if (str.IsDigit()) if (str.IsDigit())
param.fBeta2ParamNo = str.Atoi(); param.SetBeta2ParamNo(str.Atoi());
else else
error = true; error = true;
} }
@ -1828,7 +1824,7 @@ Bool_t PMsrHandler::HandleRunEntry(PMsrLines &lines)
ostr = dynamic_cast<TObjString*>(tokens->At(1)); ostr = dynamic_cast<TObjString*>(tokens->At(1));
str = ostr->GetString(); str = ostr->GetString();
if (str.IsDigit()) if (str.IsDigit())
param.fRightHistoNo = str.Atoi(); param.SetRightHistoNo(str.Atoi());
else else
error = true; error = true;
} }
@ -1842,7 +1838,7 @@ Bool_t PMsrHandler::HandleRunEntry(PMsrLines &lines)
ostr = dynamic_cast<TObjString*>(tokens->At(1)); ostr = dynamic_cast<TObjString*>(tokens->At(1));
str = ostr->GetString(); str = ostr->GetString();
if (str.IsDigit()) if (str.IsDigit())
param.fLeftHistoNo = str.Atoi(); param.SetLeftHistoNo(str.Atoi());
else else
error = true; error = true;
} }
@ -1856,18 +1852,18 @@ Bool_t PMsrHandler::HandleRunEntry(PMsrLines &lines)
ostr = dynamic_cast<TObjString*>(tokens->At(1)); ostr = dynamic_cast<TObjString*>(tokens->At(1));
str = ostr->GetString(); str = ostr->GetString();
if (str.IsDigit()) { // xy-data indices given if (str.IsDigit()) { // xy-data indices given
param.fXYDataIndex[0] = str.Atoi(); // x-index param.SetXDataIndex(str.Atoi()); // x-index
ostr = dynamic_cast<TObjString*>(tokens->At(2)); ostr = dynamic_cast<TObjString*>(tokens->At(2));
str = ostr->GetString(); str = ostr->GetString();
if (str.IsDigit()) if (str.IsDigit())
param.fXYDataIndex[1] = str.Atoi(); // y-index param.SetYDataIndex(str.Atoi()); // y-index
else else
error = true; error = true;
} else { // xy-data labels given } else { // xy-data labels given
param.fXYDataLabel[0] = str; // x-label param.SetXDataLabel(str); // x-label
ostr = dynamic_cast<TObjString*>(tokens->At(2)); ostr = dynamic_cast<TObjString*>(tokens->At(2));
str = ostr->GetString(); str = ostr->GetString();
param.fXYDataLabel[1] = str; // y-label param.SetYDataLabel(str); // y-label
} }
} }
} }

View File

@ -485,8 +485,8 @@ PMsrRunBlock::PMsrRunBlock()
fLeftHistoNo = -1; // undefined left histogram number fLeftHistoNo = -1; // undefined left histogram number
fXYDataIndex[0] = -1; // undefined x data index (NonMusr) fXYDataIndex[0] = -1; // undefined x data index (NonMusr)
fXYDataIndex[1] = -1; // undefined y data index (NonMusr) fXYDataIndex[1] = -1; // undefined y data index (NonMusr)
fXYDataLabel[0] = TString("??"); // undefined x data label (NonMusr) fXYDataLabel[0] = TString(""); // undefined x data label (NonMusr)
fXYDataLabel[1] = TString("??"); // undefined y data label (NonMusr) fXYDataLabel[1] = TString(""); // undefined y data label (NonMusr)
} }
//-------------------------------------------------------------------------- //--------------------------------------------------------------------------

View File

@ -521,7 +521,7 @@ void PMusrCanvas::UpdateInfoPad()
// get/set run plot info // get/set run plot info
double dval; double dval;
vector< pair<double, double> > ddvec; const PDoublePairVector *ddvec;
Char_t sval[128]; Char_t sval[128];
UInt_t runNo; UInt_t runNo;
PMsrPlotStructure plotInfo = fMsrHandler->GetMsrPlotList()->at(fPlotNumber); PMsrPlotStructure plotInfo = fMsrHandler->GetMsrPlotList()->at(fPlotNumber);
@ -547,18 +547,18 @@ void PMusrCanvas::UpdateInfoPad()
} }
// temperature if present // temperature if present
ddvec = fRunList->GetTemp(*runs[runNo].GetRunName()); ddvec = fRunList->GetTemp(*runs[runNo].GetRunName());
if (ddvec.empty()) { if (ddvec->empty()) {
tstr += TString("T="); tstr += TString("T=");
tstr += TString("??,"); tstr += TString("??,");
} else if (ddvec.size() == 1){ } else if (ddvec->size() == 1){
tstr += TString("T="); tstr += TString("T=");
sprintf(sval, "%0.2lf", ddvec[0].first); sprintf(sval, "%0.2lf", ddvec->at(0).first);
tstr += TString(sval) + TString("K,"); tstr += TString(sval) + TString("K,");
} else { } else {
for(UInt_t i(0); i<ddvec.size(); ++i){ for(UInt_t i(0); i<ddvec->size(); ++i){
sprintf(sval, "T%u=", i); sprintf(sval, "T%u=", i);
tstr += TString(sval); tstr += TString(sval);
sprintf(sval, "%0.2lf", ddvec[i].first); sprintf(sval, "%0.2lf", ddvec->at(i).first);
tstr += TString(sval) + TString("K,"); tstr += TString(sval) + TString("K,");
} }
} }

View File

@ -544,7 +544,7 @@ Bool_t PRunAsymmetry::SubtractEstimatedBkg()
// calculate proper background range // calculate proper background range
for (UInt_t i=0; i<2; i++) { for (UInt_t i=0; i<2; i++) {
if (beamPeriod != 0.0) { if (beamPeriod != 0.0) {
Double_t beamPeriodBins = beamPeriod/fRunInfo->fPacking; Double_t beamPeriodBins = beamPeriod/fRunInfo->GetPacking();
UInt_t periods = (UInt_t)((Double_t)(end[i] - start[i] + 1) / beamPeriodBins); UInt_t periods = (UInt_t)((Double_t)(end[i] - start[i] + 1) / beamPeriodBins);
end[i] = start[i] + (UInt_t)round((Double_t)periods*beamPeriodBins); end[i] = start[i] + (UInt_t)round((Double_t)periods*beamPeriodBins);
cout << "PRunAsymmetry::SubtractEstimatedBkg(): Background " << start[i] << ", " << end[i] << endl; cout << "PRunAsymmetry::SubtractEstimatedBkg(): Background " << start[i] << ", " << end[i] << endl;
@ -654,19 +654,19 @@ Bool_t PRunAsymmetry::PrepareFitData(PRawRunData* runData, UInt_t histoNo[2])
Double_t error = 0.0; Double_t error = 0.0;
// forward // forward
for (Int_t i=start[0]; i<end[0]; i++) { for (Int_t i=start[0]; i<end[0]; i++) {
if (fRunInfo->fPacking == 1) { if (fRunInfo->GetPacking() == 1) {
forwardPacked.AppendValue(fForward[i]); forwardPacked.AppendValue(fForward[i]);
forwardPacked.AppendErrorValue(fForwardErr[i]); forwardPacked.AppendErrorValue(fForwardErr[i]);
} else { // packed data, i.e. fRunInfo->fPacking > 1 } else { // packed data, i.e. fRunInfo->GetPacking() > 1
if (((i-start[0]) % fRunInfo->fPacking == 0) && (i != start[0])) { // fill data if (((i-start[0]) % fRunInfo->GetPacking() == 0) && (i != start[0])) { // fill data
// in order that after rebinning the fit does not need to be redone (important for plots) // in order that after rebinning the fit does not need to be redone (important for plots)
// the value is normalize to per bin // the value is normalize to per bin
value /= fRunInfo->fPacking; value /= fRunInfo->GetPacking();
forwardPacked.AppendValue(value); forwardPacked.AppendValue(value);
if (value == 0.0) if (value == 0.0)
forwardPacked.AppendErrorValue(1.0); forwardPacked.AppendErrorValue(1.0);
else else
forwardPacked.AppendErrorValue(TMath::Sqrt(error)/fRunInfo->fPacking); forwardPacked.AppendErrorValue(TMath::Sqrt(error)/fRunInfo->GetPacking());
value = 0.0; value = 0.0;
error = 0.0; error = 0.0;
} }
@ -676,19 +676,19 @@ Bool_t PRunAsymmetry::PrepareFitData(PRawRunData* runData, UInt_t histoNo[2])
} }
// backward // backward
for (Int_t i=start[1]; i<end[1]; i++) { for (Int_t i=start[1]; i<end[1]; i++) {
if (fRunInfo->fPacking == 1) { if (fRunInfo->GetPacking() == 1) {
backwardPacked.AppendValue(fBackward[i]); backwardPacked.AppendValue(fBackward[i]);
backwardPacked.AppendErrorValue(fBackwardErr[i]); backwardPacked.AppendErrorValue(fBackwardErr[i]);
} else { // packed data, i.e. fRunInfo->fPacking > 1 } else { // packed data, i.e. fRunInfo->GetPacking() > 1
if (((i-start[1]) % fRunInfo->fPacking == 0) && (i != start[1])) { // fill data if (((i-start[1]) % fRunInfo->GetPacking() == 0) && (i != start[1])) { // fill data
// in order that after rebinning the fit does not need to be redone (important for plots) // in order that after rebinning the fit does not need to be redone (important for plots)
// the value is normalize to per bin // the value is normalize to per bin
value /= fRunInfo->fPacking; value /= fRunInfo->GetPacking();
backwardPacked.AppendValue(value); backwardPacked.AppendValue(value);
if (value == 0.0) if (value == 0.0)
backwardPacked.AppendErrorValue(1.0); backwardPacked.AppendErrorValue(1.0);
else else
backwardPacked.AppendErrorValue(TMath::Sqrt(error)/fRunInfo->fPacking); backwardPacked.AppendErrorValue(TMath::Sqrt(error)/fRunInfo->GetPacking());
value = 0.0; value = 0.0;
error = 0.0; error = 0.0;
} }
@ -709,8 +709,8 @@ Bool_t PRunAsymmetry::PrepareFitData(PRawRunData* runData, UInt_t histoNo[2])
Double_t f, b, ef, eb; Double_t f, b, ef, eb;
// fill data time start, and step // fill data time start, and step
// data start at data_start-t0 shifted by (pack-1)/2 // data start at data_start-t0 shifted by (pack-1)/2
fData.SetDataTimeStart(fTimeResolution*((Double_t)start[0]-t0[0]+(Double_t)(fRunInfo->fPacking-1)/2.0)); fData.SetDataTimeStart(fTimeResolution*((Double_t)start[0]-t0[0]+(Double_t)(fRunInfo->GetPacking()-1)/2.0));
fData.SetDataTimeStep(fTimeResolution*(Double_t)fRunInfo->fPacking); fData.SetDataTimeStep(fTimeResolution*(Double_t)fRunInfo->GetPacking());
for (UInt_t i=0; i<noOfBins; i++) { for (UInt_t i=0; i<noOfBins; i++) {
// to make the formulae more readable // to make the formulae more readable
f = forwardPacked.GetValue()->at(i); f = forwardPacked.GetValue()->at(i);
@ -759,7 +759,7 @@ Bool_t PRunAsymmetry::PrepareFitData(PRawRunData* runData, UInt_t histoNo[2])
Bool_t PRunAsymmetry::PrepareViewData(PRawRunData* runData, UInt_t histoNo[2]) Bool_t PRunAsymmetry::PrepareViewData(PRawRunData* runData, UInt_t histoNo[2])
{ {
// check if view_packing is wished // check if view_packing is wished
Int_t packing = fRunInfo->fPacking; Int_t packing = fRunInfo->GetPacking();
if (fMsrInfo->GetMsrPlotList()->at(0).fViewPacking > 0) { if (fMsrInfo->GetMsrPlotList()->at(0).fViewPacking > 0) {
packing = fMsrInfo->GetMsrPlotList()->at(0).fViewPacking; packing = fMsrInfo->GetMsrPlotList()->at(0).fViewPacking;
} }

View File

@ -445,7 +445,7 @@ PRunData* PRunListCollection::GetNonMusr(UInt_t index, EDataSwitch tag)
* *
* \param runName * \param runName
*/ */
PDoublePairVector PRunListCollection::GetTemp(const TString &runName) const const PDoublePairVector* PRunListCollection::GetTemp(const TString &runName) const
{ {
return fData->GetRunData(runName)->GetTemperature(); return fData->GetRunData(runName)->GetTemperature();
} }

View File

@ -197,15 +197,15 @@ Bool_t PRunNonMusr::PrepareFitData()
Double_t err = 0.0; Double_t err = 0.0;
// cout << endl << ">> fRawRunData->fDataNonMusr.fData[" << xIndex << "].size()=" << fRawRunData->fDataNonMusr.fData[xIndex].size(); // cout << endl << ">> fRawRunData->fDataNonMusr.fData[" << xIndex << "].size()=" << fRawRunData->fDataNonMusr.fData[xIndex].size();
for (UInt_t i=0; i<fRawRunData->fDataNonMusr.GetData()->at(xIndex).size(); i++) { for (UInt_t i=0; i<fRawRunData->fDataNonMusr.GetData()->at(xIndex).size(); i++) {
// cout << endl << ">> i=" << i << ", packing=" << fRunInfo->fPacking; // cout << endl << ">> i=" << i << ", packing=" << fRunInfo->GetPacking();
if (fRunInfo->fPacking == 1) { if (fRunInfo->GetPacking() == 1) {
fData.AppendXValue(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i)); fData.AppendXValue(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i));
fData.AppendValue(fRawRunData->fDataNonMusr.GetData()->at(yIndex).at(i)); fData.AppendValue(fRawRunData->fDataNonMusr.GetData()->at(yIndex).at(i));
fData.AppendErrorValue(fRawRunData->fDataNonMusr.GetErrData()->at(yIndex).at(i)); fData.AppendErrorValue(fRawRunData->fDataNonMusr.GetErrData()->at(yIndex).at(i));
} else { // packed data, i.e. fRunInfo->fPacking > 1 } else { // packed data, i.e. fRunInfo->GetPacking() > 1
if ((i % fRunInfo->fPacking == 0) && (i != 0)) { // fill data if ((i % fRunInfo->GetPacking() == 0) && (i != 0)) { // fill data
// cout << endl << "-> i=" << i; // cout << endl << "-> i=" << i;
fData.AppendXValue(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i)-(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i)-fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i-fRunInfo->fPacking))/2.0); fData.AppendXValue(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i)-(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i)-fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i-fRunInfo->GetPacking()))/2.0);
fData.AppendValue(value); fData.AppendValue(value);
fData.AppendErrorValue(TMath::Sqrt(err)); fData.AppendErrorValue(TMath::Sqrt(err));
value = 0.0; value = 0.0;
@ -255,15 +255,15 @@ Bool_t PRunNonMusr::PrepareViewData()
Double_t err = 0.0; Double_t err = 0.0;
// cout << endl << ">> fRawRunData->fDataNonMusr.fData[" << xIndex << "].size()=" << fRawRunData->fDataNonMusr.fData[xIndex].size(); // cout << endl << ">> fRawRunData->fDataNonMusr.fData[" << xIndex << "].size()=" << fRawRunData->fDataNonMusr.fData[xIndex].size();
for (UInt_t i=0; i<fRawRunData->fDataNonMusr.GetData()->at(xIndex).size(); i++) { for (UInt_t i=0; i<fRawRunData->fDataNonMusr.GetData()->at(xIndex).size(); i++) {
// cout << endl << ">> i=" << i << ", packing=" << fRunInfo->fPacking; // cout << endl << ">> i=" << i << ", packing=" << fRunInfo->GetPacking();
if (fRunInfo->fPacking == 1) { if (fRunInfo->GetPacking() == 1) {
fData.AppendXValue(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i)); fData.AppendXValue(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i));
fData.AppendValue(fRawRunData->fDataNonMusr.GetData()->at(yIndex).at(i)); fData.AppendValue(fRawRunData->fDataNonMusr.GetData()->at(yIndex).at(i));
fData.AppendErrorValue(fRawRunData->fDataNonMusr.GetErrData()->at(yIndex).at(i)); fData.AppendErrorValue(fRawRunData->fDataNonMusr.GetErrData()->at(yIndex).at(i));
} else { // packed data, i.e. fRunInfo->fPacking > 1 } else { // packed data, i.e. fRunInfo->GetPacking() > 1
if ((i % fRunInfo->fPacking == 0) && (i != 0)) { // fill data if ((i % fRunInfo->GetPacking() == 0) && (i != 0)) { // fill data
// cout << endl << "-> i=" << i; // cout << endl << "-> i=" << i;
fData.AppendXValue(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i)-(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i)-fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i-fRunInfo->fPacking))/2.0); fData.AppendXValue(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i)-(fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i)-fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i-fRunInfo->GetPacking()))/2.0);
fData.AppendValue(value); fData.AppendValue(value);
fData.AppendErrorValue(TMath::Sqrt(err)); fData.AppendErrorValue(TMath::Sqrt(err));
value = 0.0; value = 0.0;
@ -382,14 +382,14 @@ UInt_t PRunNonMusr::GetXIndex()
found = true; found = true;
} else { // db-file format } else { // db-file format
//cout << endl << ">> PRunNonMusr::GetXIndex: db-file format"; //cout << endl << ">> PRunNonMusr::GetXIndex: db-file format";
if (fRunInfo->fXYDataIndex[0] > 0) { // xy-data already indices if (fRunInfo->GetXDataIndex() > 0) { // xy-data already indices
//cout << endl << ">> PRunNonMusr::GetXIndex: xy-data are already indices, i.e. not labels"; //cout << endl << ">> PRunNonMusr::GetXIndex: xy-data are already indices, i.e. not labels";
index = fRunInfo->fXYDataIndex[0]-1; // since xy-data start with 1 ... index = fRunInfo->GetXDataIndex()-1; // since xy-data start with 1 ...
found = true; found = true;
} else { // xy-data data tags which needs to be converted to an index } else { // xy-data data tags which needs to be converted to an index
//cout << endl << ">> fDataTags.size()=" << fRawRunData->fDataNonMusr.fDataTags.size(); //cout << endl << ">> fDataTags.size()=" << fRawRunData->fDataNonMusr.fDataTags.size();
for (UInt_t i=0; i<fRawRunData->fDataNonMusr.GetDataTags()->size(); i++) { for (UInt_t i=0; i<fRawRunData->fDataNonMusr.GetDataTags()->size(); i++) {
if (fRawRunData->fDataNonMusr.GetDataTags()->at(i).CompareTo(fRunInfo->fXYDataLabel[0]) == 0) { if (fRawRunData->fDataNonMusr.GetDataTags()->at(i).CompareTo(*fRunInfo->GetXDataLabel()) == 0) {
//cout << endl << ">> i=" << i << ", fRawRunData->fDataNonMusr.fDataTags[i]=" << fRawRunData->fDataNonMusr.fDataTags[i].Data(); //cout << endl << ">> i=" << i << ", fRawRunData->fDataNonMusr.fDataTags[i]=" << fRawRunData->fDataNonMusr.fDataTags[i].Data();
//cout << endl << ">> fRunInfo->fXYDataLabel[0]=" << fRunInfo->fXYDataLabel[0].Data(); //cout << endl << ">> fRunInfo->fXYDataLabel[0]=" << fRunInfo->fXYDataLabel[0].Data();
index = i; index = i;
@ -426,12 +426,12 @@ UInt_t PRunNonMusr::GetYIndex()
index = 1; index = 1;
found = true; found = true;
} else { // db-file format } else { // db-file format
if (fRunInfo->fXYDataIndex[1] > 0) { // xy-data already indices if (fRunInfo->GetYDataIndex() > 0) { // xy-data already indices
index = fRunInfo->fXYDataIndex[1]-1; // since xy-data start with 1 ... index = fRunInfo->GetYDataIndex()-1; // since xy-data start with 1 ...
found = true; found = true;
} else { // xy-data data tags which needs to be converted to an index } else { // xy-data data tags which needs to be converted to an index
for (UInt_t i=0; i<fRawRunData->fDataNonMusr.GetDataTags()->size(); i++) { for (UInt_t i=0; i<fRawRunData->fDataNonMusr.GetDataTags()->size(); i++) {
if (fRawRunData->fDataNonMusr.GetDataTags()->at(i).CompareTo(fRunInfo->fXYDataLabel[1]) == 0) { if (fRawRunData->fDataNonMusr.GetDataTags()->at(i).CompareTo(*fRunInfo->GetYDataLabel()) == 0) {
// cout << endl << ">> i=" << i << ", fRawRunData->fDataNonMusr.fDataTags[i]=" << fRawRunData->fDataNonMusr.fDataTags[i].Data(); // cout << endl << ">> i=" << i << ", fRawRunData->fDataNonMusr.fDataTags[i]=" << fRawRunData->fDataNonMusr.fDataTags[i].Data();
// cout << endl << ">> fRunInfo->fXYDataLabel[1]=" << fRunInfo->fXYDataLabel[1].Data(); // cout << endl << ">> fRunInfo->fXYDataLabel[1]=" << fRunInfo->fXYDataLabel[1].Data();
index = i; index = i;

View File

@ -85,7 +85,7 @@ PRunSingleHisto::~PRunSingleHisto()
/** /**
* <p> * <p>
* *
* The return value is chisq * fRunInfo->fPacking, the reason is: * The return value is chisq * fRunInfo->GetPacking(), the reason is:
* the data d_i and the theory t_i are scaled by the packing, i.e. d_i -> d_i / packing. * the data d_i and the theory t_i are scaled by the packing, i.e. d_i -> d_i / packing.
* Since the error is 1/sqrt(d_i) and hence error^2 = d_i it follows that * Since the error is 1/sqrt(d_i) and hence error^2 = d_i it follows that
* (d_i - t_i)^2 ~ 1/packing^2 and error^2 ~ 1/packing, and hence the chisq needs * (d_i - t_i)^2 ~ 1/packing^2 and error^2 ~ 1/packing, and hence the chisq needs
@ -497,23 +497,23 @@ Bool_t PRunSingleHisto::PrepareFitData(PRawRunData* runData, const UInt_t histoN
Double_t normalizer = 1.0; Double_t normalizer = 1.0;
// data start at data_start-t0 // data start at data_start-t0
// time shifted so that packing is included correctly, i.e. t0 == t0 after packing // time shifted so that packing is included correctly, i.e. t0 == t0 after packing
fData.SetDataTimeStart(fTimeResolution*((Double_t)start-(Double_t)t0+(Double_t)(fRunInfo->fPacking-1)/2.0)); fData.SetDataTimeStart(fTimeResolution*((Double_t)start-(Double_t)t0+(Double_t)(fRunInfo->GetPacking()-1)/2.0));
fData.SetDataTimeStep(fTimeResolution*fRunInfo->fPacking); fData.SetDataTimeStep(fTimeResolution*fRunInfo->GetPacking());
for (Int_t i=start; i<end; i++) { for (Int_t i=start; i<end; i++) {
if (fRunInfo->fPacking == 1) { if (fRunInfo->GetPacking() == 1) {
value = runData->GetDataBin(histoNo)->at(i); value = runData->GetDataBin(histoNo)->at(i);
normalizer = fRunInfo->fPacking * (fTimeResolution * 1e3); // fTimeResolution us->ns normalizer = fRunInfo->GetPacking() * (fTimeResolution * 1e3); // fTimeResolution us->ns
value /= normalizer; value /= normalizer;
fData.AppendValue(value); fData.AppendValue(value);
if (value == 0.0) if (value == 0.0)
fData.AppendErrorValue(1.0); fData.AppendErrorValue(1.0);
else else
fData.AppendErrorValue(TMath::Sqrt(value)); fData.AppendErrorValue(TMath::Sqrt(value));
} else { // packed data, i.e. fRunInfo->fPacking > 1 } else { // packed data, i.e. fRunInfo->GetPacking() > 1
if (((i-start) % fRunInfo->fPacking == 0) && (i != start)) { // fill data if (((i-start) % fRunInfo->GetPacking() == 0) && (i != start)) { // fill data
// in order that after rebinning the fit does not need to be redone (important for plots) // in order that after rebinning the fit does not need to be redone (important for plots)
// the value is normalize to per 1 nsec // the value is normalize to per 1 nsec
normalizer = fRunInfo->fPacking * (fTimeResolution * 1e3); // fTimeResolution us->ns normalizer = fRunInfo->GetPacking() * (fTimeResolution * 1e3); // fTimeResolution us->ns
value /= normalizer; value /= normalizer;
fData.AppendValue(value); fData.AppendValue(value);
if (value == 0.0) if (value == 0.0)
@ -550,7 +550,7 @@ Bool_t PRunSingleHisto::PrepareFitData(PRawRunData* runData, const UInt_t histoN
Bool_t PRunSingleHisto::PrepareRawViewData(PRawRunData* runData, const UInt_t histoNo) Bool_t PRunSingleHisto::PrepareRawViewData(PRawRunData* runData, const UInt_t histoNo)
{ {
// check if view_packing is wished // check if view_packing is wished
Int_t packing = fRunInfo->fPacking; Int_t packing = fRunInfo->GetPacking();
if (fMsrInfo->GetMsrPlotList()->at(0).fViewPacking > 0) { if (fMsrInfo->GetMsrPlotList()->at(0).fViewPacking > 0) {
packing = fMsrInfo->GetMsrPlotList()->at(0).fViewPacking; packing = fMsrInfo->GetMsrPlotList()->at(0).fViewPacking;
} }
@ -710,7 +710,7 @@ cout << endl << ">> data start time = " << fData.GetDataTimeStart();
Bool_t PRunSingleHisto::PrepareViewData(PRawRunData* runData, const UInt_t histoNo) Bool_t PRunSingleHisto::PrepareViewData(PRawRunData* runData, const UInt_t histoNo)
{ {
// check if view_packing is wished // check if view_packing is wished
Int_t packing = fRunInfo->fPacking; Int_t packing = fRunInfo->GetPacking();
if (fMsrInfo->GetMsrPlotList()->at(0).fViewPacking > 0) { if (fMsrInfo->GetMsrPlotList()->at(0).fViewPacking > 0) {
packing = fMsrInfo->GetMsrPlotList()->at(0).fViewPacking; packing = fMsrInfo->GetMsrPlotList()->at(0).fViewPacking;
} }
@ -891,7 +891,7 @@ Bool_t PRunSingleHisto::EstimateBkg(UInt_t histoNo)
// calculate proper background range // calculate proper background range
if (beamPeriod != 0.0) { if (beamPeriod != 0.0) {
Double_t beamPeriodBins = beamPeriod/fRunInfo->fPacking; Double_t beamPeriodBins = beamPeriod/fRunInfo->GetPacking();
UInt_t periods = (UInt_t)((Double_t)(end - start + 1) / beamPeriodBins); UInt_t periods = (UInt_t)((Double_t)(end - start + 1) / beamPeriodBins);
end = start + (UInt_t)round((Double_t)periods*beamPeriodBins); end = start + (UInt_t)round((Double_t)periods*beamPeriodBins);
cout << endl << "PRunSingleHisto::EstimatBkg(): Background " << start << ", " << end; cout << endl << "PRunSingleHisto::EstimatBkg(): Background " << start << ", " << end;

View File

@ -255,7 +255,7 @@ class PRawRunData {
virtual const TString* GetSetup() { return &fSetup; } virtual const TString* GetSetup() { return &fSetup; }
virtual const Double_t GetField() { return fField; } virtual const Double_t GetField() { return fField; }
virtual const UInt_t GetNoOfTemperatures() { return fTemp.size(); } virtual const UInt_t GetNoOfTemperatures() { return fTemp.size(); }
virtual const PDoublePairVector GetTemperature() { return fTemp; } virtual const PDoublePairVector* GetTemperature() const { return &fTemp; }
virtual const Double_t GetTemperature(const UInt_t idx); virtual const Double_t GetTemperature(const UInt_t idx);
virtual const Double_t GetTempError(const UInt_t idx); virtual const Double_t GetTempError(const UInt_t idx);
virtual const Double_t GetEnergy() { return fEnergy; } virtual const Double_t GetEnergy() { return fEnergy; }
@ -392,16 +392,17 @@ class PMsrRunBlock {
virtual UInt_t GetT0Size() { return fT0.size(); } virtual UInt_t GetT0Size() { return fT0.size(); }
virtual Int_t GetT0(UInt_t i=0); virtual Int_t GetT0(UInt_t i=0);
virtual Double_t GetFitRange(UInt_t i); virtual Double_t GetFitRange(UInt_t i);
// virtual Int_t GetPacking() { return fPacking; } virtual Int_t GetPacking() { return fPacking; }
// virtual Double_t GetRRFFreq() { return fRRFFreq; } virtual Double_t GetRRFFreq() { return fRRFFreq; }
// virtual Int_t GetAlpha2ParamNo() { return fAlpha2ParamNo; } virtual Int_t GetRRFPacking() { return fRRFPacking; }
// virtual Int_t GetBeta2ParamNo() { return fBeta2ParamNo; } virtual Int_t GetAlpha2ParamNo() { return fAlpha2ParamNo; }
// virtual Int_t GetRightHistoNo() { return fRightHistoNo; } virtual Int_t GetBeta2ParamNo() { return fBeta2ParamNo; }
// virtual Int_t GetLeftHistoNo() { return fLeftHistoNo; } virtual Int_t GetRightHistoNo() { return fRightHistoNo; }
// virtual Int_t GetXDataIndex() { return fXYDataIndex[0]; } virtual Int_t GetLeftHistoNo() { return fLeftHistoNo; }
// virtual Int_t GetYDataIndex() { return fXYDataIndex[1]; } virtual Int_t GetXDataIndex() { return fXYDataIndex[0]; }
// virtual TString* GetXDataLabel() { return &fXYDataLabel[0]; } virtual Int_t GetYDataIndex() { return fXYDataIndex[1]; }
// virtual TString* GetYDataLabel() { return &fXYDataLabel[1]; } virtual TString* GetXDataLabel() { return &fXYDataLabel[0]; }
virtual TString* GetYDataLabel() { return &fXYDataLabel[1]; }
virtual void AppendRunName(TString str) { fRunName.push_back(str); } virtual void AppendRunName(TString str) { fRunName.push_back(str); }
virtual void SetRunName(TString &str, UInt_t i); virtual void SetRunName(TString &str, UInt_t i);
@ -432,26 +433,17 @@ class PMsrRunBlock {
virtual void AppendT0(Int_t ival) { fT0.push_back(ival); } virtual void AppendT0(Int_t ival) { fT0.push_back(ival); }
virtual void SetT0(Int_t ival, UInt_t idx); virtual void SetT0(Int_t ival, UInt_t idx);
virtual void SetFitRange(Double_t dval, UInt_t idx); virtual void SetFitRange(Double_t dval, UInt_t idx);
// virtual void SetPacking(Int_t ival) { fPacking = ival; } virtual void SetPacking(Int_t ival) { fPacking = ival; }
// virtual void SetRRFFreq(Double_t dval) { fRRFFreq = dval; } virtual void SetRRFFreq(Double_t dval) { fRRFFreq = dval; }
// virtual void SetAlpha2ParamNo(Int_t ival) { fAlpha2ParamNo = ival; } virtual void SetRRFPacking(Int_t ival) { fRRFPacking = ival; }
// virtual void SetBeta2ParamNo(Int_t ival) { fBeta2ParamNo = ival; } virtual void SetAlpha2ParamNo(Int_t ival) { fAlpha2ParamNo = ival; }
// virtual void SetRightHistoNo(Int_t ival) { fRightHistoNo = ival; } virtual void SetBeta2ParamNo(Int_t ival) { fBeta2ParamNo = ival; }
// virtual void SetLeftHistoNo(Int_t ival) { fLeftHistoNo = ival; } virtual void SetRightHistoNo(Int_t ival) { fRightHistoNo = ival; }
// virtual void SetXDataIndex(Int_t ival) { fXYDataIndex[0] = ival; } virtual void SetLeftHistoNo(Int_t ival) { fLeftHistoNo = ival; }
// virtual void SetYDataIndex(Int_t ival) { fXYDataIndex[1] = ival; } virtual void SetXDataIndex(Int_t ival) { fXYDataIndex[0] = ival; }
// virtual void SetXDataLabel(TString& str) { fXYDataLabel[0] = str; } virtual void SetYDataIndex(Int_t ival) { fXYDataIndex[1] = ival; }
// virtual void SetYDataLabel(TString& str) { fXYDataLabel[1] = str; } virtual void SetXDataLabel(TString& str) { fXYDataLabel[0] = str; }
virtual void SetYDataLabel(TString& str) { fXYDataLabel[1] = str; }
Int_t fPacking; ///< packing/rebinning
Double_t fRRFFreq; ///< rotating reference frequency (fit type 4)
Int_t fRRFPacking; ///< rotating reference packing (fit type 4)
Int_t fAlpha2ParamNo; ///< rotating reference alpha2 (fit type 4)
Int_t fBeta2ParamNo; ///< rotating reference beta2 (fit type 4)
Int_t fRightHistoNo; ///< rotating reference right histogram number (fit type 4)
Int_t fLeftHistoNo; ///< rotating reference left histogram number (fit type 4)
Int_t fXYDataIndex[2]; ///< used to get the data indices when using db-files (fit type 8)
TString fXYDataLabel[2]; ///< used to get the indices via labels when using db-files (fit type 8)
private: private:
PStringVector fRunName; ///< name of the run file PStringVector fRunName; ///< name of the run file
@ -470,19 +462,19 @@ class PMsrRunBlock {
Int_t fForwardHistoNo; ///< forward histogram number (fit type 0, 2, 4) Int_t fForwardHistoNo; ///< forward histogram number (fit type 0, 2, 4)
Int_t fBackwardHistoNo; ///< backward histogram number (fit type 2, 4) Int_t fBackwardHistoNo; ///< backward histogram number (fit type 2, 4)
PDoubleVector fBkgFix; ///< fixed background in (1/ns) (fit type 0, 2, 4) PDoubleVector fBkgFix; ///< fixed background in (1/ns) (fit type 0, 2, 4)
PIntVector fBkgRange; ///< background bin range (fit type 0, 2, 4) PIntVector fBkgRange; ///< background bin range (fit type 0, 2, 4)
PIntVector fDataRange; ///< data bin range (fit type 0, 2, 4) PIntVector fDataRange; ///< data bin range (fit type 0, 2, 4)
PIntVector fT0; ///< t0 bins (fit type 0, 2, 4). if fit type 0 -> f0, f1, f2, ...; if fit type 2, 4 -> f0, b0, f1, b1, ... PIntVector fT0; ///< t0 bins (fit type 0, 2, 4). if fit type 0 -> f0, f1, f2, ...; if fit type 2, 4 -> f0, b0, f1, b1, ...
Double_t fFitRange[2]; ///< fit range in (us) Double_t fFitRange[2]; ///< fit range in (us)
// Int_t fPacking; ///< packing/rebinning Int_t fPacking; ///< packing/rebinning
// Double_t fRRFFreq; ///< rotating reference frequency (fit type 4) Double_t fRRFFreq; ///< rotating reference frequency (fit type 4)
// Int_t fRRFPacking; ///< rotating reference packing (fit type 4) Int_t fRRFPacking; ///< rotating reference packing (fit type 4)
// Int_t fAlpha2ParamNo; ///< rotating reference alpha2 (fit type 4) Int_t fAlpha2ParamNo; ///< rotating reference alpha2 (fit type 4)
// Int_t fBeta2ParamNo; ///< rotating reference beta2 (fit type 4) Int_t fBeta2ParamNo; ///< rotating reference beta2 (fit type 4)
// Int_t fRightHistoNo; ///< rotating reference right histogram number (fit type 4) Int_t fRightHistoNo; ///< rotating reference right histogram number (fit type 4)
// Int_t fLeftHistoNo; ///< rotating reference left histogram number (fit type 4) Int_t fLeftHistoNo; ///< rotating reference left histogram number (fit type 4)
// Int_t fXYDataIndex[2]; ///< used to get the data indices when using db-files (fit type 8) Int_t fXYDataIndex[2]; ///< used to get the data indices when using db-files (fit type 8)
// TString fXYDataLabel[2]; ///< used to get the indices via labels when using db-files (fit type 8) TString fXYDataLabel[2]; ///< used to get the indices via labels when using db-files (fit type 8)
}; };
//------------------------------------------------------------- //-------------------------------------------------------------

View File

@ -75,7 +75,7 @@ class PRunListCollection
virtual PRunData* GetRRF(UInt_t index, EDataSwitch tag=kIndex); virtual PRunData* GetRRF(UInt_t index, EDataSwitch tag=kIndex);
virtual PRunData* GetNonMusr(UInt_t index, EDataSwitch tag=kIndex); virtual PRunData* GetNonMusr(UInt_t index, EDataSwitch tag=kIndex);
virtual vector< pair<Double_t, Double_t> > GetTemp(const TString &runName) const; virtual const PDoublePairVector *GetTemp(const TString &runName) const;
virtual Double_t GetField(const TString &runName) const; virtual Double_t GetField(const TString &runName) const;
virtual Double_t GetEnergy(const TString &runName) const; virtual Double_t GetEnergy(const TString &runName) const;
virtual const Char_t* GetSetup(const TString &runName) const; virtual const Char_t* GetSetup(const TString &runName) const;

View File

@ -274,11 +274,11 @@ int main(int argc, char *argv[])
musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler);
exit(0); exit(0);
} }
if (!musrt0_item(app, msrHandler, dataHandler->GetRunData(*(runList->at(i).GetRunName(j))), i, runList->at(i).fRightHistoNo, 2, j)) { if (!musrt0_item(app, msrHandler, dataHandler->GetRunData(*(runList->at(i).GetRunName(j))), i, runList->at(i).GetRightHistoNo(), 2, j)) {
musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler);
exit(0); exit(0);
} }
if (!musrt0_item(app, msrHandler, dataHandler->GetRunData(*(runList->at(i).GetRunName(j))), i, runList->at(i).fLeftHistoNo, 3, j)) { if (!musrt0_item(app, msrHandler, dataHandler->GetRunData(*(runList->at(i).GetRunName(j))), i, runList->at(i).GetLeftHistoNo(), 3, j)) {
musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler); musrt0_cleanup(saxParser, startupHandler, msrHandler, dataHandler);
exit(0); exit(0);
} }