(i) added cross-check for Asymmetry view which makes sure that fbg-t0 is equal for forward and backward histo. (ii) extended the command block for the test-nonlocal.msr in order to have an example which shows the more 'advanced' features of minuit.

This commit is contained in:
suter_a 2014-11-10 15:57:07 +01:00
parent 78fa497de6
commit 89ae45b769
3 changed files with 65 additions and 26 deletions

View File

@ -60,6 +60,11 @@ FIXED 2012-09-23 fixed wrong chisq output in musrview if expected chisq is
present. present.
FIXED 2012-05-30 fixed RRF bug in single histo plotting. FIXED 2012-05-30 fixed RRF bug in single histo plotting.
FIXED 2012-05-18 fixed wrong forward/backward tag for ROOT-PPC (MUSR-215) FIXED 2012-05-18 fixed wrong forward/backward tag for ROOT-PPC (MUSR-215)
CHANGED 2014-11-10 (i) added cross-check for Asymmetry view which makes sure that
fbg-t0 is equal for forward and backward histo.
(ii) extended the command block for the test-nonlocal.msr in
order to have an example which shows the more 'advanced' features
of minuit.
CHANGED 2014-10-28 BMWlibs, calculation of superconducting gap functions: CHANGED 2014-10-28 BMWlibs, calculation of superconducting gap functions:
allow to choose between to different parameterization of the allow to choose between to different parameterization of the
temperature dependence of the gap. For details see the memo temperature dependence of the gap. For details see the memo

View File

@ -4,22 +4,22 @@ FITPARAMETER
# Nr. Name Value Step Pos_Error Boundaries # Nr. Name Value Step Pos_Error Boundaries
1 one 1 0 none 1 one 1 0 none
2 zero 0 0 none 2 zero 0 0 none
3 Asy 0.2133 -0.0053 0.0056 0 0.33 3 Asy 0.2235 -0.0066 0.0072 0 0.33
4 energy 22 0 none 4 energy 22 0 none
5 redTemp 0.8683 0 none 5 redTemp 0.8683 0 none
6 thickness 5000 0 none 6 thickness 5000 0 none
7 ell 12000 0 none 7 ell 12000 0 none
8 xi 94 0 none 8 xi 94 0 none
9 lambdaL 48.21 0.98 none 9 lambdaL 52.5 -1.4 1.2
10 Bext 47.11 0 none 10 Bext 47.11 0 none
11 deadLayer 15.555 0.063 none 0 none 11 deadLayer 0.00052 -0.00052 6.89563 0 none
12 RateSmear 0.363 -0.016 0.016 12 RateSmear 0.418 -0.015 0.015
13 N0_L 299.40 -0.99 1.02 13 N0_L 301.61 0.62 none
14 Bkg_L 24.535 -0.089 0.089 14 Bkg_L 24.442 0.076 none
15 Phase_L 35.5 -2.0 2.1 15 Phase_L 42.0 -2.2 2.2
16 Alpha_LR 1.0734 -0.0059 0.0057 16 Alpha_LR 1.0614 -0.0066 0.0064
17 Bkg_R 27.611 -0.088 0.088 17 Bkg_R 27.646 -0.090 0.090
18 RelPhase_R 153.4 -1.1 1.1 18 RelPhase_R 154.4 -1.1 1.1
############################################################### ###############################################################
THEORY THEORY
@ -60,6 +60,8 @@ packing 250
############################################################### ###############################################################
COMMANDS COMMANDS
MAX_LIKELIHOOD MAX_LIKELIHOOD
PRINT_LEVEL 3
STRATEGY=2
MINIMIZE MINIMIZE
#HESSE #HESSE
MINOS MINOS
@ -82,8 +84,8 @@ phase 8.5
range 0.0 200.0 range 0.0 200.0
############################################################### ###############################################################
STATISTIC --- 2013-11-12 10:23:31 STATISTIC --- 2014-11-05 12:34:54
maxLH = 415.7, NDF = 358, maxLH/NDF = 1.161264 maxLH = 415.6, NDF = 358, maxLH/NDF = 1.160933

View File

@ -1216,20 +1216,33 @@ Bool_t PRunAsymmetry::PrepareViewData(PRawRunData* runData, UInt_t histoNo[2])
cerr << endl << ">> NO WARRANTY THAT THIS DOES MAKE ANY SENSE."; cerr << endl << ">> NO WARRANTY THAT THIS DOES MAKE ANY SENSE.";
cerr << endl; cerr << endl;
} else { } else {
// calculate the max(data range start[i]-t0[i]) // check if the data ranges and t0's between forward/backward are compatible
Int_t diff = fRunInfo->GetDataRange(0)-static_cast<Int_t>(t0[0]); Int_t fgb[2];
if (abs(diff) < abs(fRunInfo->GetDataRange(2)-static_cast<Int_t>(t0[1]))) if (fRunInfo->GetDataRange(0)-t0[0] != fRunInfo->GetDataRange(2)-t0[1]) { // wrong fgb aligning
diff = fRunInfo->GetDataRange(0)-static_cast<Int_t>(t0[0]); if (fabs(fRunInfo->GetDataRange(0)-t0[0]) > fabs(fRunInfo->GetDataRange(2)-t0[1])) {
fgb[0] = fRunInfo->GetDataRange(0);
fgb[1] = static_cast<Int_t>(t0[1]) + fRunInfo->GetDataRange(0)-t0[0];
cerr << endl << ">> PRunAsymmetry::PrepareViewData(): **WARNING** needed to shift backward fgb from ";
cerr << fRunInfo->GetDataRange(2) << " to " << fgb[1] << endl;
} else {
fgb[0] = static_cast<Int_t>(t0[0]) + fRunInfo->GetDataRange(2)-t0[1];
fgb[1] = fRunInfo->GetDataRange(2);
cerr << endl << ">> PRunAsymmetry::PrepareViewData(): **WARNING** needed to shift forward fgb from ";
cerr << fRunInfo->GetDataRange(0) << " to " << fgb[0] << endl;
}
} else { // fgb aligning is correct
fgb[0] = fRunInfo->GetDataRange(0);
fgb[1] = fRunInfo->GetDataRange(2);
}
// calculate start position for plotting Int_t val = fgb[0]-packing*(fgb[0]/packing);
Int_t val = static_cast<Int_t>(t0[1])+diff-packing*((static_cast<Int_t>(t0[1])+diff)/packing);
do { do {
if (static_cast<Double_t>(val)+t0[1]-t0[0] < 0.0) if (fgb[1] - fgb[0] < 0)
val += packing; val += packing;
} while (static_cast<Double_t>(val) + t0[1] - t0[0] < 0.0); } while (val + fgb[1] - fgb[0] < 0);
start[0] = val; start[0] = val;
start[1] = val + static_cast<Int_t>(t0[1] - t0[0]); start[1] = val + fgb[1] - fgb[0];
} }
// make sure that there are equal number of rebinned bins in forward and backward // make sure that there are equal number of rebinned bins in forward and backward
@ -1468,15 +1481,34 @@ Bool_t PRunAsymmetry::PrepareRRFViewData(PRawRunData* runData, UInt_t histoNo[2]
cerr << endl << ">> PRunAsymmetry::PrepareRRFViewData(): **WARNING** data range (backward) was not provided, will try data range start = " << start[1] << "."; cerr << endl << ">> PRunAsymmetry::PrepareRRFViewData(): **WARNING** data range (backward) was not provided, will try data range start = " << start[1] << ".";
cerr << endl << ">> NO WARRANTY THAT THIS DOES MAKE ANY SENSE."; cerr << endl << ">> NO WARRANTY THAT THIS DOES MAKE ANY SENSE.";
cerr << endl; cerr << endl;
} else { // data range has been provided
// check if the data ranges and t0's between forward/backward are compatible
Int_t fgb[2];
if (fRunInfo->GetDataRange(0)-t0[0] != fRunInfo->GetDataRange(2)-t0[1]) { // wrong fgb aligning
if (fabs(fRunInfo->GetDataRange(0)-t0[0]) > fabs(fRunInfo->GetDataRange(2)-t0[1])) {
fgb[0] = fRunInfo->GetDataRange(0);
fgb[1] = static_cast<Int_t>(t0[1]) + fRunInfo->GetDataRange(0)-t0[0];
cerr << endl << ">> PRunAsymmetry::PrepareRRFViewData(): **WARNING** needed to shift backward fgb from ";
cerr << fRunInfo->GetDataRange(2) << " to " << fgb[1] << endl;
} else { } else {
Int_t val = fRunInfo->GetDataRange(0)-packing*(fRunInfo->GetDataRange(0)/packing); fgb[0] = static_cast<Int_t>(t0[0]) + fRunInfo->GetDataRange(2)-t0[1];
fgb[1] = fRunInfo->GetDataRange(2);
cerr << endl << ">> PRunAsymmetry::PrepareRRFViewData(): **WARNING** needed to shift forward fgb from ";
cerr << fRunInfo->GetDataRange(0) << " to " << fgb[0] << endl;
}
} else { // fgb aligning is correct
fgb[0] = fRunInfo->GetDataRange(0);
fgb[1] = fRunInfo->GetDataRange(2);
}
Int_t val = fgb[0]-packing*(fgb[0]/packing);
do { do {
if (fRunInfo->GetDataRange(2) - fRunInfo->GetDataRange(0) < 0) if (fgb[1] - fgb[0] < 0)
val += packing; val += packing;
} while (val + fRunInfo->GetDataRange(2) - fRunInfo->GetDataRange(0) < 0); } while (val + fgb[1] - fgb[0] < 0);
start[0] = val; start[0] = val;
start[1] = val + fRunInfo->GetDataRange(2) - fRunInfo->GetDataRange(0); start[1] = val + fgb[1] - fgb[0];
} }
// make sure that there are equal number of rebinned bins in forward and backward // make sure that there are equal number of rebinned bins in forward and backward