示例#1
0
// fits all wells one flow at a time, using a LevMarFitter derived class
// only the amplitude term is fit
void RefineFit::FitAmplitudePerFlow ()
{

  bkg.region_data->my_regions.cache_step.CalculateNucRiseFineStep (&bkg.region_data->my_regions.rp,bkg.region_data->time_c,bkg.region_data->my_flow); // the same for the whole region because time-shift happens per well
  bkg.region_data->my_regions.cache_step.CalculateNucRiseCoarseStep (&bkg.region_data->my_regions.rp,bkg.region_data->time_c,bkg.region_data->my_flow); // use for xtalk

  bkg.region_data->my_scratch.FillShiftedBkg (*bkg.region_data->emptytrace, bkg.region_data->my_regions.rp.tshift, bkg.region_data->time_c, true);

  if (bkg.xtalk_spec.simple_model)
    bkg.xtalk_execute.ComputeTypicalCrossTalk(bkg.xtalk_execute.my_generic_xtalk, NULL); // get the generic value set

  //SpecializedEmphasisFunctions();
  //TestXtalk();

  for (int ibd = 0;ibd < bkg.region_data->my_beads.numLBeads;ibd++)
  {
    if (FitBeadLogic (&bkg.region_data->my_beads.params_nn[ibd]))
      FitAmplitudePerBeadPerFlow (ibd,bkg.region_data->my_regions.cache_step);
  }

//    printf("krate fit reduction cnt:%d amt:%f\n",krate_cnt,krate_red);
}
示例#2
0
// fits all wells one flow at a time, using a LevMarFitter derived class
// only the amplitude term is fit
void RefineFit::FitAmplitudePerFlow ( int flow_block_size, int flow_block_start )
{

  bkg.region_data->my_regions.cache_step.CalculateNucRiseFineStep (&bkg.region_data->my_regions.rp,bkg.region_data->time_c,
    *bkg.region_data_extras.my_flow); // the same for the whole region because time-shift happens per well
  bkg.region_data->my_regions.cache_step.CalculateNucRiseCoarseStep (&bkg.region_data->my_regions.rp,bkg.region_data->time_c,*bkg.region_data_extras.my_flow); // use for xtalk

  bkg.region_data->my_scratch.FillShiftedBkg (*bkg.region_data->emptytrace, bkg.region_data->my_regions.rp.tshift, bkg.region_data->time_c, true, flow_block_size);

  if (bkg.trace_xtalk_spec.simple_model)
    bkg.trace_xtalk_execute.ComputeTypicalCrossTalk(bkg.trace_xtalk_execute.my_generic_xtalk, NULL, flow_block_size, flow_block_start ); // get the generic value set


  
  my_single_fit.SetUpEmphasisForLevMarOptimizer(&(bkg.region_data->emphasis_data));

  for (int ibd = 0;ibd < bkg.region_data->my_beads.numLBeads;ibd++)
  {
    if (bkg.region_data->my_beads.params_nn[ibd].FitBeadLogic ())
      FitAmplitudePerBeadPerFlow (ibd,bkg.region_data->my_regions.cache_step, flow_block_size, flow_block_start);
  }

//    printf("krate fit reduction cnt:%d amt:%f\n",krate_cnt,krate_red);
}