Rev 173 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 173 | Rev 181 | ||
|---|---|---|---|
| Line 57... | Line 57... | ||
| 57 | resol2d->widgetNE[1]->SetNumber(40); |
57 | resol2d->widgetNE[1]->SetNumber(40); |
| 58 | } |
58 | } |
| 59 | else if(analTab->GetCurrent() == 1) // Relative PDE |
59 | else if(analTab->GetCurrent() == 1) // Relative PDE |
| 60 | { |
60 | { |
| 61 | relPde->widgetChBox[0]->SetState(kButtonDown); |
61 | relPde->widgetChBox[0]->SetState(kButtonDown); |
| 62 | relPde->widgetChBox[1]->SetState(kButtonUp); |
- | |
| 63 | midPeak->widgetChBox[0]->SetState(kButtonUp); |
62 | midPeak->widgetChBox[0]->SetState(kButtonUp); |
| 64 | zeroAngle->widgetNE[0]->SetNumber(0.00); |
63 | zeroAngle->widgetNE[0]->SetNumber(0.00); |
| 65 | } |
64 | } |
| 66 | else if(analTab->GetCurrent() == 2) // Breakdown voltage |
65 | else if(analTab->GetCurrent() == 2) // Breakdown voltage |
| 67 | { |
66 | { |
| Line 693... | Line 692... | ||
| 693 | float progVal = 0; |
692 | float progVal = 0; |
| 694 | analysisProgress->widgetPB->SetPosition(progVal); |
693 | analysisProgress->widgetPB->SetPosition(progVal); |
| 695 | gVirtualX->Update(1); |
694 | gVirtualX->Update(1); |
| 696 | 695 | ||
| 697 | // Check if the checkbox for no peaks is selected - TODO: Still need the situation when we do not have a peaked ADC spectrum |
696 | // Check if the checkbox for no peaks is selected - TODO: Still need the situation when we do not have a peaked ADC spectrum |
| 698 |
|
697 | /* if(relPde->widgetChBox[1]->IsDown()) |
| 699 | { |
698 | { |
| 700 | printf("PhotonMu(): ADC spectrum has no peak structure.\n"); |
699 | printf("PhotonMu(): ADC spectrum has no peak structure.\n"); |
| 701 | nopeaks = 1; |
700 | nopeaks = 1; |
| 702 | 701 | ||
| 703 | // Error if there is no darkhist |
702 | // Error if there is no darkhist |
| Line 710... | Line 709... | ||
| 710 | delete[] pdeval; |
709 | delete[] pdeval; |
| 711 | delete[] muval; |
710 | delete[] muval; |
| 712 | return; |
711 | return; |
| 713 | } |
712 | } |
| 714 | 713 | ||
| 715 |
|
714 | }*/ |
| 716 | 715 | ||
| 717 | // Start if we select at least one file |
716 | // Start if we select at least one file |
| 718 | if(nrfiles > 0) |
717 | if(nrfiles > 0) |
| 719 | { |
718 | { |
| 720 | // Find the pedestal peak for the dark histogram, and use it for all if there are no peaks |
719 | // Find the pedestal peak for the dark histogram, and use it for all if there are no peaks |
| Line 1194... | Line 1193... | ||
| 1194 | exclude = false; |
1193 | exclude = false; |
| 1195 | 1194 | ||
| 1196 | // Get next point values (if zero value -> need to add the dark hist value again) |
1195 | // Get next point values (if zero value -> need to add the dark hist value again) |
| 1197 | pointest[10] = angle[i]; |
1196 | pointest[10] = angle[i]; |
| 1198 | pointest[11] = muval[i]; |
1197 | pointest[11] = muval[i]; |
| - | 1198 | // printf("Last point = [%lf,%lf]\n", pointest[10], pointest[11]); |
|
| 1199 | 1199 | ||
| 1200 | // Check if next point has larger error than acceptable (if yes, set exclude signal to true), reuse meansel[0] |
1200 | // Check if next point has larger error than acceptable (if yes, set exclude signal to true), reuse meansel[0] |
| 1201 | meansel[0] = PointEstimate(5, pointest); // PointEstimate only works with very small step size |
1201 | meansel[0] = PointEstimate(5, pointest); // PointEstimate only works with very small step size |
| 1202 | if(meansel[0] > accError->widgetNE[0]->GetNumber()) |
1202 | if(meansel[0] > accError->widgetNE[0]->GetNumber()) |
| 1203 | { |
1203 | { |
| 1204 | printf("PhotonMu(): Point (%lf, %lf) excluded due to error: %lf\n", pointest[10], pointest[11], meansel[0]); |
1204 | printf("PhotonMu(): Point (%lf, %lf) excluded due to error: %lf\n", pointest[10], pointest[11], meansel[0]); |
| - | 1205 | exclude = true; |
|
| - | 1206 | } |
|
| - | 1207 | ||
| - | 1208 | if(isinf(meansel[0])) |
|
| - | 1209 | { |
|
| - | 1210 | printf("PhotonMu(): Point (%lf, %lf) excluded due to being infinite: %lf\n", pointest[10], pointest[11], meansel[0]); |
|
| 1205 | exclude = true; |
1211 | exclude = true; |
| 1206 | } |
1212 | } |
| 1207 | 1213 | ||
| 1208 | // Value with 0 angle and dark histogram are always needed, so should not be excluded |
1214 | // Value with 0 angle and dark histogram are always needed, so should not be excluded |
| 1209 | if(i == darkhist) |
1215 | if(i == darkhist) |
| 1210 | exclude = false; |
1216 | exclude = false; |
| 1211 | 1217 | ||
| 1212 | // If nothing excluded, pass the points in pointest variable like in a FIFO |
1218 | // If nothing excluded, pass the points in pointest variable like in a FIFO |
| 1213 | if(!exclude) |
1219 | if(!exclude) |
| 1214 | { |
1220 | { |
| 1215 | for(int j = 0; j < 10; j++) |
1221 | for(int j = 0; j < 10; j++) |
| 1216 | { |
1222 | { |
| 1217 | if(DBGSIG) printf("PhotonMu(): j = %d: Old X value = %lf\n", j, pointest[j]); |
1223 | if(DBGSIG) printf("PhotonMu(): j = %d: Old X value = %lf\n", j, pointest[j]); |
| 1218 | pointest[j] = pointest[j+2]; |
1224 | pointest[j] = pointest[j+2]; |
| 1219 | } |
1225 | } |
| 1220 | } |
1226 | } |
| 1221 | else |
1227 | else |
| 1222 | { |
1228 | { |
| 1223 | for(int j = 0; j < 10; j++) |
1229 | for(int j = 0; j < 10; j++) |
| 1224 | if(DBGSIG) printf("PhotonMu(): No j = %d: Old X value = %lf\n", j, pointest[j]); |
1230 | if(DBGSIG) printf("PhotonMu(): No j = %d: Old X value = %lf\n", j, pointest[j]); |
| 1225 | } |
1231 | } |
| 1226 | } |
1232 | } |
| 1227 | else |
1233 | else |
| 1228 | { |
1234 | { |
| 1229 | // First 5 points act as estimator points for next one |
1235 | // First 5 points act as estimator points for next one |
| 1230 | pointest[2*m] = angle[i]; |
1236 | pointest[2*m] = angle[i]; |
| 1231 | pointest[2*m+1] = muval[i]; |
1237 | pointest[2*m+1] = muval[i]; |
| 1232 | } |
1238 | } |
| - | 1239 | ||
| - | 1240 | printf("Exclude signal = %d\n", (int)exclude); |
|
| 1233 | 1241 | ||
| 1234 | // Run only if we have a dark run histogram and middle pedestal peak estimation |
1242 | // Run only if we have a dark run histogram and middle pedestal peak estimation |
| 1235 | if( (darkhist != -1) && midPeak->widgetChBox[0]->IsDown() ) |
1243 | if( (darkhist != -1) && midPeak->widgetChBox[0]->IsDown() ) |
| 1236 | { |
1244 | { |
| 1237 | if(DBGSIG) printf("PhotonMu(): m = %d, i = %d: muval = %lf, ", m, i, muval[i]); |
1245 | if(DBGSIG) printf("PhotonMu(): m = %d, i = %d: muval = %lf, ", m, i, muval[i]); |