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 ); }
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'; } }
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; } }