예제 #1
0
void BkgParamH5::IncrementalWrite(BkgFitterTracker &GlobalFitter, int flow, int numFlows, bool last_flow) {
  if (ptrs.mAmpl != NULL) {
    DumpBkgModelRegionInfoH5(GlobalFitter, flow, last_flow);

    IncrementalWriteParam(beadDC,beadDCDS,flow,1,numFlows);
    IncrementalWriteParam(amplMultiplier,amplDS,flow,1,numFlows);
    IncrementalWriteParam(kRateMultiplier,kRateDS,flow,1,numFlows);
    IncrementalWriteParam(bgResidualError,resErrorDS,flow,1,numFlows);
    IncrementalWriteParam(emptyOnceParam,emptyOnceParamDS,flow,1,numFlows);
    beadDC_bgDS->WriteMatrix(beadDC_bg,flow);

    if (CheckFlowForWrite(flow,false)) {
      beadInitParamDS->WriteDataCube(beadInitParam);
      darkOnceParamDS->WriteDataCube(darkOnceParam);
      //emptyOnceParamDS->WriteDataCube(emptyOnceParam);
      regionInitParamDS->WriteMatrix(regionInitParam);
      darknessParamDS->WriteMatrix(darknessParam);
      regionOffsetDS->WriteMatrix(regionOffset);
    }
    if (CheckFlowForWrite(flow,last_flow)) {
        int iBlk = ceil(float(flow+1)/NUMFB) - 1;
        emphasisParamDS[iBlk]->WriteDataCube(emphasisParam);
        beadFblk_avgErrDS[iBlk]->WriteMatrix(beadFblk_avgErr);
    }
  }
}
예제 #2
0
void BkgParamH5::IncrementalWriteBeads ( int flow, int iBlk )
{
  // every parameter checks itself to see if writing is useful or safe
  // every time we write, we write these
  IncrementalWriteParam ( bead_dc.source,bead_dc.h5_set,flow );
  IncrementalWriteParam ( Amplitude.source,Amplitude.h5_set,flow );
  IncrementalWriteParam ( krate_multiplier.source,krate_multiplier.h5_set,flow );
  IncrementalWriteParam ( residual_error.source,residual_error.h5_set,flow );

  // do compute blocks
  WriteOneBlock ( average_error_flow_block.source, average_error_flow_block.h5_set,iBlk );
  WriteOneBlock ( bead_clonal_compute_block.source, bead_clonal_compute_block.h5_set,iBlk );
  WriteOneBlock ( bead_corrupt_compute_block.source, bead_corrupt_compute_block.h5_set,iBlk );

  if ( iBlk==0 ) // only do the first compute block
  {
    bead_base_parameter.SafeWrite();
  }
}
예제 #3
0
void BkgParamH5::IncrementalWriteRegions ( int flow, int iBlk )
{
  // write to any live region parameters
  // every parameter checks itself to see if writing is useful or safe
  IncrementalWriteParam ( empty_trace.source,empty_trace.h5_set,flow );
  IncrementalWriteParam ( empty_dc.source, empty_dc.h5_set, flow );

  IncrementalWriteParam ( region_debug_bead_amplitude_krate.source, region_debug_bead_amplitude_krate.h5_set, flow );
  IncrementalWriteParam ( region_debug_bead_predicted.source, region_debug_bead_predicted.h5_set, flow );
  IncrementalWriteParam ( region_debug_bead_corrected.source, region_debug_bead_corrected.h5_set, flow );
  IncrementalWriteParam ( region_debug_bead_xtalk.source, region_debug_bead_xtalk.h5_set, flow );

  WriteOneBlock ( regional_params.source, regional_params.h5_set,iBlk );
  WriteOneBlock ( nuc_shape_params.source, nuc_shape_params.h5_set,iBlk );
  WriteOneBlock ( enzymatics_params.source, enzymatics_params.h5_set,iBlk );
  WriteOneBlock ( buffering_params.source, buffering_params.h5_set,iBlk );
  WriteOneBlock ( derived_params.source, derived_params.h5_set,iBlk );

  emphasis_val.SafeWrite ( iBlk ); // do every compute block

  if ( iBlk==0 ) // do only once at first compute block
  {
    region_debug_bead_location.SafeWrite();
    region_debug_bead.SafeWrite();
    dark_matter_trace.SafeWrite();
    darkness_val.SafeWrite();
    region_init_val.SafeWrite();
    region_offset_val.SafeWrite();
    time_compression.SafeWrite();
  }
}
예제 #4
0
파일: BkgModelHdf5.cpp 프로젝트: Lingrui/TS
void BkgParamH5::IncrementalWriteBestRegion ( int flow, bool lastflow )
{
    IncrementalWriteParam ( beads_bestRegion_predicted.source, beads_bestRegion_predicted.h5_set, flow );
    IncrementalWriteParam ( beads_bestRegion_corrected.source, beads_bestRegion_corrected.h5_set, flow );
    IncrementalWriteParam ( beads_bestRegion_amplitude.source, beads_bestRegion_amplitude.h5_set, flow );
    IncrementalWriteParam ( beads_bestRegion_residual.source, beads_bestRegion_residual.h5_set, flow );
    IncrementalWriteParam ( beads_bestRegion_fittype.source, beads_bestRegion_fittype.h5_set, flow );
    IncrementalWriteParam ( beads_bestRegion_taub.source, beads_bestRegion_taub.h5_set, flow );

    if ( lastflow ) // do only once at lastflow, for data independant of flow
    {
        beads_bestRegion_timeframe.SafeWrite(); // this only has to done once for all flows
        beads_bestRegion_location.SafeWrite(); // this only has to done once for all flows
        beads_bestRegion_gainSens.SafeWrite();
        beads_bestRegion_kmult.SafeWrite();
        beads_bestRegion_dmult.SafeWrite();
        beads_bestRegion_SP.SafeWrite();
        beads_bestRegion_R.SafeWrite();
     }
}
예제 #5
0
void BkgParamH5::IncrementalWriteRegionSamples ( int flow, bool lastflow )
{
  // trace
  IncrementalWriteParam ( beads_regionSamples_predicted.source, beads_regionSamples_predicted.h5_set, flow );
  IncrementalWriteParam ( beads_regionSamples_corrected.source, beads_regionSamples_corrected.h5_set, flow );
  IncrementalWriteParam ( beads_regionSamples_original.source, beads_regionSamples_original.h5_set, flow );
  IncrementalWriteParam ( beads_regionSamples_sbg.source, beads_regionSamples_sbg.h5_set, flow );
  // per bead per flow fitted
  IncrementalWriteParam ( beads_regionSamples_amplitude.source, beads_regionSamples_amplitude.h5_set, flow );
  IncrementalWriteParam ( beads_regionSamples_kmult.source, beads_regionSamples_kmult.h5_set, flow );
  // incidental data
  IncrementalWriteParam ( beads_regionSamples_residual.source, beads_regionSamples_residual.h5_set, flow );
  IncrementalWriteParam ( beads_regionSamples_fittype.source, beads_regionSamples_fittype.h5_set, flow );
  IncrementalWriteParam ( beads_regionSamples_converged.source, beads_regionSamples_converged.h5_set, flow );
  IncrementalWriteParam ( beads_regionSamples_bkg_leakage.source, beads_regionSamples_bkg_leakage.h5_set, flow );
  IncrementalWriteParam ( beads_regionSamples_initAk.source, beads_regionSamples_initAk.h5_set, flow );
  IncrementalWriteParam ( beads_regionSamples_tms.source, beads_regionSamples_tms.h5_set, flow );
  IncrementalWriteParam ( beads_regionSamples_taub.source, beads_regionSamples_taub.h5_set, flow );
  IncrementalWriteParam ( beads_regionSamples_etbR.source, beads_regionSamples_etbR.h5_set, flow );

  if ( lastflow ) // do only once at lastflow, for data independant of flow
  {
    beads_regionSamples_timeframe.SafeWrite(); // this only has to done once for all flows
    beads_regionSamples_location.SafeWrite(); // this only has to done once for all flows
    beads_regionSamples_gainSens.SafeWrite();

    beads_regionSamples_regionParams.SafeWrite();

    beads_regionSamples_dmult.SafeWrite();
    beads_regionSamples_SP.SafeWrite();
    beads_regionSamples_R.SafeWrite();
  }
}