Functions can now not only operate on parameters and maps but also on meta information
obtained from the data files. Currently the following meta information can be accessed if available: field in (G): B or b energy in (keV): En or en temperature in (K): since some data files contain a vector of temperature, they have to be accessed with an index, like T0 or t0, etc.
This commit is contained in:
@ -199,7 +199,7 @@ Double_t PRunAsymmetry::CalcChiSquare(const std::vector<Double_t>& par)
|
||||
|
||||
// calculate functions
|
||||
for (Int_t i=0; i<fMsrInfo->GetNoOfFuncs(); i++) {
|
||||
fFuncValues[i] = fMsrInfo->EvalFunc(fMsrInfo->GetFuncNo(i), *fRunInfo->GetMap(), par);
|
||||
fFuncValues[i] = fMsrInfo->EvalFunc(fMsrInfo->GetFuncNo(i), *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
|
||||
// calculate chi square
|
||||
@ -219,7 +219,7 @@ Double_t PRunAsymmetry::CalcChiSquare(const std::vector<Double_t>& par)
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetAlphaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
a = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
a = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
b = 1.0;
|
||||
break;
|
||||
@ -231,7 +231,7 @@ Double_t PRunAsymmetry::CalcChiSquare(const std::vector<Double_t>& par)
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetBetaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
b = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
b = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
break;
|
||||
case 4: // alpha != 1, beta != 1
|
||||
@ -241,7 +241,7 @@ Double_t PRunAsymmetry::CalcChiSquare(const std::vector<Double_t>& par)
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetAlphaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
a = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
a = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
if (fRunInfo->GetBetaParamNo() < MSR_PARAM_FUN_OFFSET) { // beta is a parameter
|
||||
b = par[fRunInfo->GetBetaParamNo()-1];
|
||||
@ -249,7 +249,7 @@ Double_t PRunAsymmetry::CalcChiSquare(const std::vector<Double_t>& par)
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetBetaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
b = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
b = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -455,7 +455,7 @@ void PRunAsymmetry::CalcTheory()
|
||||
|
||||
// calculate functions
|
||||
for (Int_t i=0; i<fMsrInfo->GetNoOfFuncs(); i++) {
|
||||
fFuncValues[i] = fMsrInfo->EvalFunc(fMsrInfo->GetFuncNo(i), *fRunInfo->GetMap(), par);
|
||||
fFuncValues[i] = fMsrInfo->EvalFunc(fMsrInfo->GetFuncNo(i), *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
|
||||
// calculate asymmetry
|
||||
@ -475,7 +475,7 @@ void PRunAsymmetry::CalcTheory()
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetAlphaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
a = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
a = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
f = fTheory->Func(time, par, fFuncValues);
|
||||
asymFcnValue = (f*(a+1.0)-(a-1.0))/((a+1.0)-f*(a-1.0));
|
||||
@ -487,7 +487,7 @@ void PRunAsymmetry::CalcTheory()
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetBetaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
b = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
b = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
f = fTheory->Func(time, par, fFuncValues);
|
||||
asymFcnValue = f*(b+1.0)/(2.0-f*(b-1.0));
|
||||
@ -499,7 +499,7 @@ void PRunAsymmetry::CalcTheory()
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetAlphaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
a = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
a = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
if (fRunInfo->GetBetaParamNo() < MSR_PARAM_FUN_OFFSET) { // beta is a parameter
|
||||
b = par[fRunInfo->GetBetaParamNo()-1];
|
||||
@ -507,7 +507,7 @@ void PRunAsymmetry::CalcTheory()
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetBetaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
b = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
b = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
f = fTheory->Func(time, par, fFuncValues);
|
||||
asymFcnValue = (f*(a*b+1.0)-(a-1.0))/((a+1.0)-f*(a*b-1.0));
|
||||
@ -560,11 +560,14 @@ Bool_t PRunAsymmetry::PrepareData()
|
||||
}
|
||||
|
||||
// keep the field from the meta-data from the data-file
|
||||
fField = runData->GetField();
|
||||
fMetaData.fField = runData->GetField();
|
||||
|
||||
// keep the energy from the meta-data from the data-file
|
||||
fMetaData.fEnergy = runData->GetEnergy();
|
||||
|
||||
// keep the temperature(s) from the meta-data from the data-file
|
||||
for (unsigned int i=0; i<runData->GetNoOfTemperatures(); i++)
|
||||
fTemp.push_back(runData->GetTemperature(i));
|
||||
fMetaData.fTemp.push_back(runData->GetTemperature(i));
|
||||
|
||||
// collect histogram numbers
|
||||
PUIntVector forwardHistoNo;
|
||||
@ -1219,7 +1222,7 @@ Bool_t PRunAsymmetry::PrepareViewData(PRawRunData* runData, UInt_t histoNo[2])
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetAlphaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
alpha = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
alpha = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
beta = 1.0;
|
||||
break;
|
||||
@ -1231,7 +1234,7 @@ Bool_t PRunAsymmetry::PrepareViewData(PRawRunData* runData, UInt_t histoNo[2])
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetBetaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
beta = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
beta = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
break;
|
||||
case 4: // alpha != 1, beta != 1
|
||||
@ -1241,7 +1244,7 @@ Bool_t PRunAsymmetry::PrepareViewData(PRawRunData* runData, UInt_t histoNo[2])
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetAlphaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
alpha = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
alpha = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
if (fRunInfo->GetBetaParamNo() < MSR_PARAM_FUN_OFFSET) { // beta is a parameter
|
||||
beta = par[fRunInfo->GetBetaParamNo()-1];
|
||||
@ -1249,7 +1252,7 @@ Bool_t PRunAsymmetry::PrepareViewData(PRawRunData* runData, UInt_t histoNo[2])
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetBetaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
beta = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
beta = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -1287,7 +1290,7 @@ Bool_t PRunAsymmetry::PrepareViewData(PRawRunData* runData, UInt_t histoNo[2])
|
||||
// fill theory vector for kView
|
||||
// calculate functions
|
||||
for (Int_t i=0; i<fMsrInfo->GetNoOfFuncs(); i++) {
|
||||
fFuncValues[i] = fMsrInfo->EvalFunc(fMsrInfo->GetFuncNo(i), *fRunInfo->GetMap(), par);
|
||||
fFuncValues[i] = fMsrInfo->EvalFunc(fMsrInfo->GetFuncNo(i), *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
|
||||
// calculate theory
|
||||
@ -1458,7 +1461,7 @@ Bool_t PRunAsymmetry::PrepareRRFViewData(PRawRunData* runData, UInt_t histoNo[2]
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetAlphaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
alpha = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
alpha = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
beta = 1.0;
|
||||
break;
|
||||
@ -1470,7 +1473,7 @@ Bool_t PRunAsymmetry::PrepareRRFViewData(PRawRunData* runData, UInt_t histoNo[2]
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetBetaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
beta = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
beta = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
break;
|
||||
case 4: // alpha != 1, beta != 1
|
||||
@ -1480,7 +1483,7 @@ Bool_t PRunAsymmetry::PrepareRRFViewData(PRawRunData* runData, UInt_t histoNo[2]
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetAlphaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
alpha = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
alpha = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
if (fRunInfo->GetBetaParamNo() < MSR_PARAM_FUN_OFFSET) { // beta is a parameter
|
||||
beta = par[fRunInfo->GetBetaParamNo()-1];
|
||||
@ -1488,7 +1491,7 @@ Bool_t PRunAsymmetry::PrepareRRFViewData(PRawRunData* runData, UInt_t histoNo[2]
|
||||
// get function number
|
||||
UInt_t funNo = fRunInfo->GetBetaParamNo()-MSR_PARAM_FUN_OFFSET;
|
||||
// evaluate function
|
||||
beta = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par);
|
||||
beta = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -1591,7 +1594,7 @@ Bool_t PRunAsymmetry::PrepareRRFViewData(PRawRunData* runData, UInt_t histoNo[2]
|
||||
|
||||
// calculate functions
|
||||
for (Int_t i=0; i<fMsrInfo->GetNoOfFuncs(); i++) {
|
||||
fFuncValues[i] = fMsrInfo->EvalFunc(fMsrInfo->GetFuncNo(i), *fRunInfo->GetMap(), par);
|
||||
fFuncValues[i] = fMsrInfo->EvalFunc(fMsrInfo->GetFuncNo(i), *fRunInfo->GetMap(), par, fMetaData);
|
||||
}
|
||||
|
||||
Double_t theoryValue;
|
||||
|
Reference in New Issue
Block a user