예제 #1
0
///
/// Perform the prob scan.
///
/// \param scanner - the scanner to run the scan with
/// \param cId - the id of this combination on the command line
///
void GammaComboEngine::make1dProbScan(MethodProbScan *scanner, int cId)
{
    // load start parameters
    ParameterCache *pCache = new ParameterCache(arg);
    loadStartParameters(scanner, pCache, cId);

    scanner->initScan();
    scanStrategy1d(scanner, pCache);
    cout << "\nResults:" << endl;
    cout <<   "========\n" << endl;
    scanner->printLocalMinima();
    scanner->calcCLintervals();
    if (!arg->isAction("pluginbatch") && !arg->plotpluginonly) {
        if ( arg->plotpulls ) scanner->plotPulls();
        if ( arg->parevol ) {
            ParameterEvolutionPlotter plotter(scanner);
            plotter.plotParEvolution();
        }
        if ( isScanVarObservable(scanner->getCombiner(), arg->var[0]) ) {
            ParameterEvolutionPlotter plotter(scanner);
            plotter.plotObsScanCheck();
        }
        if (!arg->isAction("plugin")) {
            scanner->saveScanner(m_fnamebuilder->getFileNameScanner(scanner));
            pCache->cacheParameters(scanner,m_fnamebuilder->getFileNamePar(scanner));
        }
    }
}
예제 #2
0
///
/// Make a 2D prob scan.
/// - load start parameters
/// - perform scan
/// - save scanner and parameters
///
/// \param scanner - the scanner
/// \param cId - the id of this combination on the command line
///
void GammaComboEngine::make2dProbScan(MethodProbScan *scanner, int cId)
{
    // load start parameters
    ParameterCache *pCache = new ParameterCache(arg);
    loadStartParameters(scanner, pCache, cId);
    // scan
    scanner->initScan();
    scanStrategy2d(scanner,pCache);
    cout << endl;
    scanner->printLocalMinima();
    // save
    scanner->saveScanner(m_fnamebuilder->getFileNameScanner(scanner));
    pCache->cacheParameters(scanner, m_fnamebuilder->getFileNamePar(scanner));
}