Commit df0f0086bf3dd246874410cf02b51996a32dc2b1

Authored by Luigi Tibaldo
1 parent 62b6a252

test routine

Showing 1 changed file with 61 additions and 30 deletions
inst/cta/test/test_CTA.cpp
... ... @@ -2184,8 +2184,11 @@ void TestGCTAOptimize::test_stacked_optimizer(void)
2184 2184 ***************************************************************************/
2185 2185 void TestGCTAOptimize::test_onoff_optimizer(void)
2186 2186 {
2187   - // Set reference result
2188   - double fit_results[] = {83.6331, 0,
  2187 + //Testing for two different statistics available
  2188 + std::string stat[] = {"POISSON-MODELEDBKG",
  2189 + "POISSON-MEASUREDBKG"};
  2190 + // Reference result
  2191 + double fit_results0[] = {83.6331, 0,
2189 2192 22.0145, 0,
2190 2193 5.750910e-16, 7.604206e-18,
2191 2194 -2.472779, 0.012290,
... ... @@ -2195,35 +2198,63 @@ void TestGCTAOptimize::test_onoff_optimizer(void)
2195 2198 -0.015947, 0.029617,
2196 2199 1.0e6, 0,
2197 2200 1, 0};
  2201 + double fit_results1[] = {83.6331, 0,
  2202 + 22.0145, 0,
  2203 + 5.7443543e-16, 4.813498e-18,
  2204 + -2.473535, 0.007931,
  2205 + 300000, 0,
  2206 + 1, 0,
  2207 + 1.0, 0.,
  2208 + 0., 0.,
  2209 + 1.0e6, 0,
  2210 + 1, 0};
2198 2211  
2199   - // Load On/Off CTA observation
2200   - GObservations obs(cta_onoff_obs);
2201   -
2202   - // Load models from XML file
2203   - obs.models(cta_onoff_model);
2204   -
2205   - // Perform LM optimization
2206   - GOptimizerLM opt;
2207   - opt.max_iter(100);
2208   - obs.optimize(opt);
2209   - obs.errors(opt);
2210   - //std::cout << opt << std::endl;
2211   - //std::cout << obs << std::endl;
2212   - //std::cout << obs.models() << std::endl;
2213   -
2214   - // Verify fit results
2215   - for (int i = 0, j = 0; i < obs.models().size(); ++i) {
2216   - const GModel* model = obs.models()[i];
2217   - for (int k = 0; k < model->size(); ++k) {
2218   - GModelPar par = (*model)[k];
2219   - std::string msg = "Verify optimization result for " + par.print();
2220   - test_value(par.value(), fit_results[j],
2221   - std::abs(1.0e-4*fit_results[j]), msg);
2222   - j++;
2223   - test_value(par.error(), fit_results[j],
2224   - std::abs(1.0e-4*fit_results[j]), msg);
2225   - j++;
2226   - }
  2212 + // Loop over statistics
  2213 + for (int s = 0; s < 2; ++s) {
  2214 + // Set reference results
  2215 + double fit_results[20];
  2216 + for (int i = 0; i < 20; ++i){
  2217 + if (s == 0){
  2218 + fit_results[i] = fit_results0[i];
  2219 + }
  2220 + else if (s == 1){
  2221 + fit_results[i] = fit_results1[i];
  2222 + }
  2223 + }
  2224 + // Load On/Off CTA observation
  2225 + GObservations obs(cta_onoff_obs);
  2226 +
  2227 + // Set fit statistics
  2228 + for (int i = 0; i < obs.size(); ++i){
  2229 + obs[i]->statistics(stat[s]);
  2230 + }
  2231 +
  2232 + // Load models from XML file
  2233 + obs.models(cta_onoff_model);
  2234 +
  2235 + // Perform LM optimization
  2236 + GOptimizerLM opt;
  2237 + opt.max_iter(100);
  2238 + obs.optimize(opt);
  2239 + obs.errors(opt);
  2240 + //std::cout << opt << std::endl;
  2241 + //std::cout << obs << std::endl;
  2242 + //std::cout << obs.models() << std::endl;
  2243 +
  2244 + // Verify fit results
  2245 + for (int i = 0, j = 0; i < obs.models().size(); ++i) {
  2246 + const GModel* model = obs.models()[i];
  2247 + for (int k = 0; k < model->size(); ++k) {
  2248 + GModelPar par = (*model)[k];
  2249 + std::string msg = "Verify optimization result for " + par.print();
  2250 + test_value(par.value(), fit_results[j],
  2251 + std::abs(1.0e-4*fit_results[j]), msg);
  2252 + j++;
  2253 + test_value(par.error(), fit_results[j],
  2254 + std::abs(1.0e-4*fit_results[j]), msg);
  2255 + j++;
  2256 + }
  2257 + }
2227 2258 }
2228 2259  
2229 2260 // Return
... ...