UCL / STIR

Software for Tomographic Image Reconstruction
http://stir.sourceforge.net/
Other
111 stars 93 forks source link

automatically set use-time-of-flight-sensitivities in Poisson...ProjData #1456

Closed KrisThielemans closed 3 months ago

KrisThielemans commented 3 months ago

At present, we default use_tofsens=false, as this is the best for most scanners. However, for Siemens Vision 600 (and others), the e7tools norm is TOF. At present, this will result in a run-time error https://github.com/UCL/STIR/blob/4cb2a5d885fea5d2aa4d2f8c53ce8e14561df117/src/recon_buildblock/PoissonLogLikelihoodWithLinearModelForMeanAndProjData.cxx#L561-L564

We could try and detect this though, e.g. insert some lines like this here

if (auto norm_pd_ptr = dynamic_cast<BinNormalisationFromProjData const *>(this->normalisation_sptr.get()))
{
  if (!this->use_tofsens && norm_pd_ptr->get_norm_proj_data_sptr()->get_num_timing_poss() > 1)
   {
      info("Detected TOF normalisation data, so using time-of-flight sensitivities");
      this->use_tofsens = true;
    }
}

@NicoleJurjew what do you think?