Ejemplo n.º 1
0
void BkgFitterTracker::SetRegionProcessOrder (const CommandLineOpts &inception_state)
{
  analysis_compute_plan.region_order.resize (numFitters);
  int numBeads;
  int zeroRegions = 0;
  for (int i=0; i<numFitters; ++i)
  {
    numBeads = sliced_chip[i]->GetNumLiveBeads();
    if (numBeads == 0)
      zeroRegions++;

    analysis_compute_plan.region_order[i] = beadRegion (i, numBeads);
  }
  std::sort (analysis_compute_plan.region_order.begin(), analysis_compute_plan.region_order.end(), sortregionProcessOrderVector);
  int nonZeroRegions = numFitters - zeroRegions;
  printf("Number of live bead regions (nonZeroRegions): %d\n",nonZeroRegions);

  if (analysis_compute_plan.gpu_work_load != 0)
  {
    int gpuRegions = int (analysis_compute_plan.gpu_work_load * float (nonZeroRegions));
    if (gpuRegions > 0)
      analysis_compute_plan.lastRegionToProcess = gpuRegions;
  }
  // bestRegion is used for beads_bestRegion output to hdf5 file
  if (nonZeroRegions>0)
  {
      int r = inception_state.bkg_control.pest_control.bkgModelHdf5Debug_region_r;
      int c = inception_state.bkg_control.pest_control.bkgModelHdf5Debug_region_c;
      if (r >= 0 && c >= 0)
      {
      int reg =  findRegion(r,c);
	  //cout << "SetRegionProcessOrder... findRegion(" << x << "," << y << ") => bestRegion=" << reg << endl << flush;
      if (reg>=0)
          bestRegion = beadRegion(reg,sliced_chip[reg]->GetNumLiveBeads());
      else
          bestRegion = analysis_compute_plan.region_order[0];
      }
      else
          bestRegion = analysis_compute_plan.region_order[0];
      bestRegion_region = sliced_chip[bestRegion.first]->get_region();
      sliced_chip[bestRegion.first]->isBestRegion = true;
	  //cout << "SetRegionProcessOrder... bestRegion_region.row=" << bestRegion_region->row << " bestRegion_region.col=" << bestRegion_region->col << endl << flush;
  }
  else
  {
    bestRegion = beadRegion(0,0);
    bestRegion_region = NULL;
  }
  printf("BkgFitterTracker::SetRegionProcessOrder... bestRegion=(%d,%d)\n",
    bestRegion.first,bestRegion.second);

  // Now that we have a best region, we can init h5.
  InitBeads_BestRegion( inception_state );
}
Ejemplo n.º 2
0
void BkgParamH5::TryInitBeads_BestRegion ( H5File &h5_local_ref, int nBeads_live, Region *region )
{
  ///------------------------------------------------------------------------------------------------------------
  /// region parameters
  ///------------------------------------------------------------------------------------------------------------
  try
  {
    InitBeads_BestRegion( h5_local_ref, nBeads_live, region);
  }
  catch ( char * str )
  {
    cout << "Exception raised while creating region datasets in BkgParamH5::TryInitBeadBestRegion(): " << str << '\n';
  }
}
Ejemplo n.º 3
0
void BkgParamH5::Init2 (int write_params_flag, int nBeads_live, const Region *region, int nRegions,int nSamples)
{
  if ( write_params_flag>1 )
  {
    ConstructOneFile ( h5TraceDbg, hgTraceDbgFile,local_results_directory, "trace.h5" );
    InitBeads_BestRegion ( h5TraceDbg,nBeads_live,region );
    saveBestRegionPointers();
    InitBeads_RegionSamples ( h5TraceDbg,nRegions,nSamples );
    saveRegionSamplesPointers();
    region_nSamples = nSamples;
  }
  else
  {
    hgTraceDbgFile = "";
    region_nSamples = 0;
  }
}