Merged muonspin/musrfit:root6 into master
This commit is contained in:
commit
76c2a98f5a
@ -5,7 +5,7 @@ if (CMAKE_VERSION GREATER_EQUAL 3.12)
|
|||||||
cmake_policy(SET CMP0075 NEW)
|
cmake_policy(SET CMP0075 NEW)
|
||||||
endif (CMAKE_VERSION GREATER_EQUAL 3.12)
|
endif (CMAKE_VERSION GREATER_EQUAL 3.12)
|
||||||
|
|
||||||
project(musrfit VERSION 1.7.3 LANGUAGES C CXX)
|
project(musrfit VERSION 1.7.4 LANGUAGES C CXX)
|
||||||
|
|
||||||
#--- musrfit specific options -------------------------------------------------
|
#--- musrfit specific options -------------------------------------------------
|
||||||
option(nexus "build optional NeXus support. Needed for ISIS" OFF)
|
option(nexus "build optional NeXus support. Needed for ISIS" OFF)
|
||||||
|
@ -12,11 +12,16 @@ or
|
|||||||
|
|
||||||
https://bitbucket.org/muonspin/musrfit/commits/all
|
https://bitbucket.org/muonspin/musrfit/commits/all
|
||||||
|
|
||||||
|
Release of V1.7.4, 2021/06/16
|
||||||
|
=============================
|
||||||
|
|
||||||
|
allow in asymmetry fits #forward groups != #backward groups
|
||||||
|
|
||||||
Release of V1.7.3, 2021/06/01
|
Release of V1.7.3, 2021/06/01
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
making musrfit Apple Silicon M1 ready. Currently there is still an open issue
|
making musrfit Apple Silicon M1 ready. Currently there is still an open issue
|
||||||
with NeXus.
|
with NeXus (HDF4 only).
|
||||||
|
|
||||||
Release of V1.7.2, 2021/04/16
|
Release of V1.7.2, 2021/04/16
|
||||||
=============================
|
=============================
|
||||||
|
@ -6335,15 +6335,6 @@ Bool_t PMsrHandler::CheckHistoGrouping()
|
|||||||
Bool_t result = true;
|
Bool_t result = true;
|
||||||
|
|
||||||
for (UInt_t i=0; i<fRuns.size(); i++) {
|
for (UInt_t i=0; i<fRuns.size(); i++) {
|
||||||
if (fRuns[i].GetFitType() == MSR_FITTYPE_ASYM || fRuns[i].GetFitType() == MSR_FITTYPE_BNMR) {
|
|
||||||
if (fRuns[i].GetForwardHistoNoSize() != fRuns[i].GetBackwardHistoNoSize()) {
|
|
||||||
std::cerr << std::endl << ">> PMsrHandler::CheckHistoGrouping: **ERROR** # of forward histos != # of backward histos.";
|
|
||||||
std::cerr << std::endl << ">> Run #" << i+1;
|
|
||||||
std::cerr << std::endl;
|
|
||||||
result = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// check grouping entries are not identical, e.g. forward 1 1 2
|
// check grouping entries are not identical, e.g. forward 1 1 2
|
||||||
if (fRuns[i].GetForwardHistoNoSize() > 1) {
|
if (fRuns[i].GetForwardHistoNoSize() > 1) {
|
||||||
for (UInt_t j=0; j<fRuns[i].GetForwardHistoNoSize(); j++) {
|
for (UInt_t j=0; j<fRuns[i].GetForwardHistoNoSize(); j++) {
|
||||||
|
@ -602,16 +602,6 @@ Bool_t PRunAsymmetry::PrepareData()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (forwardHistoNo.size() != backwardHistoNo.size()) {
|
|
||||||
std::cerr << std::endl << ">> PRunAsymmetry::PrepareData(): **PANIC ERROR**:";
|
|
||||||
std::cerr << std::endl << ">> # of forward histograms different from # of backward histograms.";
|
|
||||||
std::cerr << std::endl << ">> Will quit :-(";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
// clean up
|
|
||||||
forwardHistoNo.clear();
|
|
||||||
backwardHistoNo.clear();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// keep the time resolution in (us)
|
// keep the time resolution in (us)
|
||||||
fTimeResolution = runData->GetTimeResolution()/1.0e3;
|
fTimeResolution = runData->GetTimeResolution()/1.0e3;
|
||||||
@ -626,11 +616,13 @@ Bool_t PRunAsymmetry::PrepareData()
|
|||||||
// keep the histo of each group at this point (addruns handled below)
|
// keep the histo of each group at this point (addruns handled below)
|
||||||
std::vector<PDoubleVector> forward, backward;
|
std::vector<PDoubleVector> forward, backward;
|
||||||
forward.resize(forwardHistoNo.size()); // resize to number of groups
|
forward.resize(forwardHistoNo.size()); // resize to number of groups
|
||||||
backward.resize(backwardHistoNo.size()); // resize to numer of groups
|
|
||||||
for (UInt_t i=0; i<forwardHistoNo.size(); i++) {
|
for (UInt_t i=0; i<forwardHistoNo.size(); i++) {
|
||||||
forward[i].resize(runData->GetDataBin(forwardHistoNo[i])->size());
|
forward[i].resize(runData->GetDataBin(forwardHistoNo[i])->size());
|
||||||
backward[i].resize(runData->GetDataBin(backwardHistoNo[i])->size());
|
|
||||||
forward[i] = *runData->GetDataBin(forwardHistoNo[i]);
|
forward[i] = *runData->GetDataBin(forwardHistoNo[i]);
|
||||||
|
}
|
||||||
|
backward.resize(backwardHistoNo.size()); // resize to number of groups
|
||||||
|
for (UInt_t i=0; i<backwardHistoNo.size(); i++) {
|
||||||
|
backward[i].resize(runData->GetDataBin(backwardHistoNo[i])->size());
|
||||||
backward[i] = *runData->GetDataBin(backwardHistoNo[i]);
|
backward[i] = *runData->GetDataBin(backwardHistoNo[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -676,9 +668,11 @@ Bool_t PRunAsymmetry::PrepareData()
|
|||||||
|
|
||||||
// set forward/backward histo data of the first group
|
// set forward/backward histo data of the first group
|
||||||
fForward.resize(forward[0].size());
|
fForward.resize(forward[0].size());
|
||||||
fBackward.resize(backward[0].size());
|
|
||||||
for (UInt_t i=0; i<fForward.size(); i++) {
|
for (UInt_t i=0; i<fForward.size(); i++) {
|
||||||
fForward[i] = forward[0][i];
|
fForward[i] = forward[0][i];
|
||||||
|
}
|
||||||
|
fBackward.resize(backward[0].size());
|
||||||
|
for (UInt_t i=0; i<fBackward.size(); i++) {
|
||||||
fBackward[i] = backward[0][i];
|
fBackward[i] = backward[0][i];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1677,7 +1671,7 @@ Bool_t PRunAsymmetry::PrepareRRFViewData(PRawRunData* runData, UInt_t histoNo[2]
|
|||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* <p>Get the proper t0 for the single histogram run.
|
* <p>Get the proper t0 for the single histogram run.
|
||||||
* -# the t0 vector size = number of detectors (grouping) for forward.
|
* -# the t0 vector size = number of detectors (grouping) for forward + backward.
|
||||||
* -# initialize t0's with -1
|
* -# initialize t0's with -1
|
||||||
* -# fill t0's from RUN block
|
* -# fill t0's from RUN block
|
||||||
* -# if t0's are missing (i.e. t0 == -1), try to fill from the GLOBAL block.
|
* -# if t0's are missing (i.e. t0 == -1), try to fill from the GLOBAL block.
|
||||||
@ -1698,7 +1692,11 @@ Bool_t PRunAsymmetry::GetProperT0(PRawRunData* runData, PMsrGlobalBlock *globalB
|
|||||||
// feed all T0's
|
// feed all T0's
|
||||||
// first init T0's, T0's are stored as (forward T0, backward T0, etc.)
|
// first init T0's, T0's are stored as (forward T0, backward T0, etc.)
|
||||||
fT0s.clear();
|
fT0s.clear();
|
||||||
fT0s.resize(2*forwardHistoNo.size());
|
// this strange fT0 size estimate is needed in case #forw histos != #back histos
|
||||||
|
size_t size = 2*forwardHistoNo.size();
|
||||||
|
if (backwardHistoNo.size() > forwardHistoNo.size())
|
||||||
|
size = 2*backwardHistoNo.size();
|
||||||
|
fT0s.resize(size);
|
||||||
for (UInt_t i=0; i<fT0s.size(); i++) {
|
for (UInt_t i=0; i<fT0s.size(); i++) {
|
||||||
fT0s[i] = -1.0;
|
fT0s[i] = -1.0;
|
||||||
}
|
}
|
||||||
@ -1765,6 +1763,8 @@ Bool_t PRunAsymmetry::GetProperT0(PRawRunData* runData, PMsrGlobalBlock *globalB
|
|||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
for (UInt_t i=0; i<backwardHistoNo.size(); i++) {
|
||||||
if ((fT0s[2*i+1] < 0) || (fT0s[2*i+1] > static_cast<Int_t>(runData->GetDataBin(backwardHistoNo[i])->size()))) {
|
if ((fT0s[2*i+1] < 0) || (fT0s[2*i+1] > static_cast<Int_t>(runData->GetDataBin(backwardHistoNo[i])->size()))) {
|
||||||
std::cerr << std::endl << ">> PRunAsymmetry::PrepareData(): **ERROR** t0 data bin (" << fT0s[2*i+1] << ") doesn't make any sense!";
|
std::cerr << std::endl << ">> PRunAsymmetry::PrepareData(): **ERROR** t0 data bin (" << fT0s[2*i+1] << ") doesn't make any sense!";
|
||||||
std::cerr << std::endl << ">> backwardHistoNo " << backwardHistoNo[i];
|
std::cerr << std::endl << ">> backwardHistoNo " << backwardHistoNo[i];
|
||||||
|
@ -640,6 +640,7 @@ Bool_t PRunAsymmetryBNMR::PrepareData()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* //as35
|
||||||
if (forwardHistoNo.size() != backwardHistoNo.size()) {
|
if (forwardHistoNo.size() != backwardHistoNo.size()) {
|
||||||
std::cerr << std::endl << ">> PRunAsymmetryBNMR::PrepareData(): **PANIC ERROR**:";
|
std::cerr << std::endl << ">> PRunAsymmetryBNMR::PrepareData(): **PANIC ERROR**:";
|
||||||
std::cerr << std::endl << ">> # of forward histograms different from # of backward histograms.";
|
std::cerr << std::endl << ">> # of forward histograms different from # of backward histograms.";
|
||||||
@ -650,6 +651,7 @@ Bool_t PRunAsymmetryBNMR::PrepareData()
|
|||||||
backwardHistoNo.clear();
|
backwardHistoNo.clear();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
*/ //as35
|
||||||
|
|
||||||
// keep the time resolution in (s)
|
// keep the time resolution in (s)
|
||||||
fTimeResolution = runData->GetTimeResolution()/1.0e3;
|
fTimeResolution = runData->GetTimeResolution()/1.0e3;
|
||||||
@ -664,11 +666,13 @@ Bool_t PRunAsymmetryBNMR::PrepareData()
|
|||||||
// keep the histo of each group at this point (addruns handled below)
|
// keep the histo of each group at this point (addruns handled below)
|
||||||
std::vector<PDoubleVector> forward, backward;
|
std::vector<PDoubleVector> forward, backward;
|
||||||
forward.resize(forwardHistoNo.size()); // resize to number of groups
|
forward.resize(forwardHistoNo.size()); // resize to number of groups
|
||||||
backward.resize(backwardHistoNo.size()); // resize to numer of groups
|
|
||||||
for (UInt_t i=0; i<forwardHistoNo.size(); i++) {
|
for (UInt_t i=0; i<forwardHistoNo.size(); i++) {
|
||||||
forward[i].resize(runData->GetDataBin(forwardHistoNo[i])->size());
|
forward[i].resize(runData->GetDataBin(forwardHistoNo[i])->size());
|
||||||
backward[i].resize(runData->GetDataBin(backwardHistoNo[i])->size());
|
|
||||||
forward[i] = *runData->GetDataBin(forwardHistoNo[i]);
|
forward[i] = *runData->GetDataBin(forwardHistoNo[i]);
|
||||||
|
}
|
||||||
|
backward.resize(backwardHistoNo.size()); // resize to number of groups
|
||||||
|
for (UInt_t i=0; i<backwardHistoNo.size(); i++) {
|
||||||
|
backward[i].resize(runData->GetDataBin(backwardHistoNo[i])->size());
|
||||||
backward[i] = *runData->GetDataBin(backwardHistoNo[i]);
|
backward[i] = *runData->GetDataBin(backwardHistoNo[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -712,15 +716,18 @@ Bool_t PRunAsymmetryBNMR::PrepareData()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// set forward/backward histo data of the first group
|
// set forward histo data of the first group
|
||||||
fForwardp.resize(forward[0].size());
|
fForwardp.resize(forward[0].size());
|
||||||
fBackwardp.resize(backward[0].size());
|
|
||||||
fForwardm.resize(forward[0].size());
|
fForwardm.resize(forward[0].size());
|
||||||
fBackwardm.resize(backward[0].size());
|
|
||||||
for (UInt_t i=0; i<fForwardp.size(); i++) {
|
for (UInt_t i=0; i<fForwardp.size(); i++) {
|
||||||
fForwardp[i] = forward[0][i];
|
fForwardp[i] = forward[0][i];
|
||||||
fBackwardp[i] = backward[0][i];
|
|
||||||
fForwardm[i] = forward[1][i];
|
fForwardm[i] = forward[1][i];
|
||||||
|
}
|
||||||
|
// set backward histo data of the first group
|
||||||
|
fBackwardp.resize(backward[0].size());
|
||||||
|
fBackwardm.resize(backward[0].size());
|
||||||
|
for (UInt_t i=0; i<fBackwardp.size(); i++) {
|
||||||
|
fBackwardp[i] = backward[0][i];
|
||||||
fBackwardm[i] = backward[1][i];
|
fBackwardm[i] = backward[1][i];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1529,7 +1536,11 @@ Bool_t PRunAsymmetryBNMR::GetProperT0(PRawRunData* runData, PMsrGlobalBlock *glo
|
|||||||
// feed all T0's
|
// feed all T0's
|
||||||
// first init T0's, T0's are stored as (forward T0, backward T0, etc.)
|
// first init T0's, T0's are stored as (forward T0, backward T0, etc.)
|
||||||
fT0s.clear();
|
fT0s.clear();
|
||||||
fT0s.resize(2*forwardHistoNo.size());
|
// this strange fT0 size estimate is needed in case #forw histos != #back histos
|
||||||
|
size_t size = 2*forwardHistoNo.size();
|
||||||
|
if (backwardHistoNo.size() > forwardHistoNo.size())
|
||||||
|
size = 2*backwardHistoNo.size();
|
||||||
|
fT0s.resize(size);
|
||||||
for (UInt_t i=0; i<fT0s.size(); i++) {
|
for (UInt_t i=0; i<fT0s.size(); i++) {
|
||||||
fT0s[i] = -1.0;
|
fT0s[i] = -1.0;
|
||||||
}
|
}
|
||||||
@ -1596,6 +1607,8 @@ Bool_t PRunAsymmetryBNMR::GetProperT0(PRawRunData* runData, PMsrGlobalBlock *glo
|
|||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
for (UInt_t i=0; i<backwardHistoNo.size(); i++) {
|
||||||
if ((fT0s[2*i+1] < 0) || (fT0s[2*i+1] > static_cast<Int_t>(runData->GetDataBin(backwardHistoNo[i])->size()))) {
|
if ((fT0s[2*i+1] < 0) || (fT0s[2*i+1] > static_cast<Int_t>(runData->GetDataBin(backwardHistoNo[i])->size()))) {
|
||||||
std::cerr << std::endl << ">> PRunAsymmetryBNMR::PrepareData(): **ERROR** t0 data bin (" << fT0s[2*i+1] << ") doesn't make any sense!";
|
std::cerr << std::endl << ">> PRunAsymmetryBNMR::PrepareData(): **ERROR** t0 data bin (" << fT0s[2*i+1] << ") doesn't make any sense!";
|
||||||
std::cerr << std::endl << ">> backwardHistoNo " << backwardHistoNo[i];
|
std::cerr << std::endl << ">> backwardHistoNo " << backwardHistoNo[i];
|
||||||
|
@ -584,16 +584,6 @@ Bool_t PRunAsymmetryRRF::PrepareData()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (forwardHistoNo.size() != backwardHistoNo.size()) {
|
|
||||||
std::cerr << std::endl << ">> PRunAsymmetryRRF::PrepareData(): **PANIC ERROR**:";
|
|
||||||
std::cerr << std::endl << ">> # of forward histograms different from # of backward histograms.";
|
|
||||||
std::cerr << std::endl << ">> Will quit :-(";
|
|
||||||
std::cerr << std::endl;
|
|
||||||
// clean up
|
|
||||||
forwardHistoNo.clear();
|
|
||||||
backwardHistoNo.clear();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// keep the time resolution in (us)
|
// keep the time resolution in (us)
|
||||||
fTimeResolution = runData->GetTimeResolution()/1.0e3;
|
fTimeResolution = runData->GetTimeResolution()/1.0e3;
|
||||||
@ -608,11 +598,13 @@ Bool_t PRunAsymmetryRRF::PrepareData()
|
|||||||
// keep the histo of each group at this point (addruns handled below)
|
// keep the histo of each group at this point (addruns handled below)
|
||||||
std::vector<PDoubleVector> forward, backward;
|
std::vector<PDoubleVector> forward, backward;
|
||||||
forward.resize(forwardHistoNo.size()); // resize to number of groups
|
forward.resize(forwardHistoNo.size()); // resize to number of groups
|
||||||
backward.resize(backwardHistoNo.size()); // resize to numer of groups
|
|
||||||
for (UInt_t i=0; i<forwardHistoNo.size(); i++) {
|
for (UInt_t i=0; i<forwardHistoNo.size(); i++) {
|
||||||
forward[i].resize(runData->GetDataBin(forwardHistoNo[i])->size());
|
forward[i].resize(runData->GetDataBin(forwardHistoNo[i])->size());
|
||||||
backward[i].resize(runData->GetDataBin(backwardHistoNo[i])->size());
|
|
||||||
forward[i] = *runData->GetDataBin(forwardHistoNo[i]);
|
forward[i] = *runData->GetDataBin(forwardHistoNo[i]);
|
||||||
|
}
|
||||||
|
backward.resize(backwardHistoNo.size()); // resize to number of groups
|
||||||
|
for (UInt_t i=0; i<backwardHistoNo.size(); i++) {
|
||||||
|
backward[i].resize(runData->GetDataBin(backwardHistoNo[i])->size());
|
||||||
backward[i] = *runData->GetDataBin(backwardHistoNo[i]);
|
backward[i] = *runData->GetDataBin(backwardHistoNo[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1281,7 +1273,11 @@ Bool_t PRunAsymmetryRRF::GetProperT0(PRawRunData* runData, PMsrGlobalBlock *glob
|
|||||||
// feed all T0's
|
// feed all T0's
|
||||||
// first init T0's, T0's are stored as (forward T0, backward T0, etc.)
|
// first init T0's, T0's are stored as (forward T0, backward T0, etc.)
|
||||||
fT0s.clear();
|
fT0s.clear();
|
||||||
fT0s.resize(2*forwardHistoNo.size());
|
// this strange fT0 size estimate is needed in case #forw histos != #back histos
|
||||||
|
size_t size = 2*forwardHistoNo.size();
|
||||||
|
if (backwardHistoNo.size() > forwardHistoNo.size())
|
||||||
|
size = 2*backwardHistoNo.size();
|
||||||
|
fT0s.resize(size);
|
||||||
for (UInt_t i=0; i<fT0s.size(); i++) {
|
for (UInt_t i=0; i<fT0s.size(); i++) {
|
||||||
fT0s[i] = -1.0;
|
fT0s[i] = -1.0;
|
||||||
}
|
}
|
||||||
@ -1348,6 +1344,8 @@ Bool_t PRunAsymmetryRRF::GetProperT0(PRawRunData* runData, PMsrGlobalBlock *glob
|
|||||||
std::cerr << std::endl;
|
std::cerr << std::endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
for (UInt_t i=0; i<backwardHistoNo.size(); i++) {
|
||||||
if ((fT0s[2*i+1] < 0) || (fT0s[2*i+1] > static_cast<Int_t>(runData->GetDataBin(backwardHistoNo[i])->size()))) {
|
if ((fT0s[2*i+1] < 0) || (fT0s[2*i+1] > static_cast<Int_t>(runData->GetDataBin(backwardHistoNo[i])->size()))) {
|
||||||
std::cerr << std::endl << ">> PRunAsymmetryRRF::PrepareData(): **ERROR** t0 data bin (" << fT0s[2*i+1] << ") doesn't make any sense!";
|
std::cerr << std::endl << ">> PRunAsymmetryRRF::PrepareData(): **ERROR** t0 data bin (" << fT0s[2*i+1] << ") doesn't make any sense!";
|
||||||
std::cerr << std::endl << ">> backwardHistoNo " << backwardHistoNo[i];
|
std::cerr << std::endl << ">> backwardHistoNo " << backwardHistoNo[i];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user