def _detector(self): d = FormatCBFMultiTileHierarchyStill._detector(self) try: # a header only CBF file will not have a beam object beam = self._beam() except Exception as e: if "CBF_NOTFOUND" not in str(e): raise e return d # take into consideration here the thickness of the sensor also the # wavelength of the radiation (which we have in the same file...) wavelength = beam.get_wavelength() thickness = 0.5 # mm, see Hart et al. 2012 from cctbx.eltbx import attenuation_coefficient table = attenuation_coefficient.get_table("Si") # mu_at_angstrom returns cm^-1 mu = table.mu_at_angstrom(wavelength) / 10.0 # mu: mm^-1 t0 = thickness for panel in d: panel.set_px_mm_strategy(ParallaxCorrectedPxMmStrategy(mu, t0)) return d
def get_raw_data(self): # need to specify the get_raw_data function needed return FormatCBFMultiTileHierarchyStill.get_raw_data(self)