/** * * @param detectorInfo A reference to the workspace's detector info * @param detIndex The index of the detector whose parameters should be updated * @param pmap A reference to the ParameterMap instance to update * @param l2 The new l2 value * @param theta The new theta value * @param phi The new phi value * @param delay The new delay time * @param pressure The new pressure value * @param thickness The new thickness value */ void LoadDetectorInfo::updateParameterMap(Geometry::DetectorInfo &detectorInfo, const size_t detIndex, Geometry::ParameterMap &pmap, const double l2, const double theta, const double phi, const double delay, const double pressure, const double thickness) const { const auto detCompID = detectorInfo.detector(detIndex).getComponentID(); // store detector params that are different to instrument level if (fabs(delay - m_instDelta) > 1e-06) pmap.addDouble(detCompID, DELAY_PARAM, delay); if (fabs(pressure - m_instPressure) > 1e-06) pmap.addDouble(detCompID, PRESSURE_PARAM, pressure); if (fabs(thickness - m_instThickness) > 1e-06) pmap.addDouble(detCompID, THICKNESS_PARAM, thickness); // move if (m_moveDets) { V3D newPos; newPos.spherical(l2, theta, phi); // The sample position may not be at 0,0,0 newPos += m_samplePos; detectorInfo.setPosition(detIndex, newPos); } }
/** * * @param pmap A reference to the ParameterMap instance to update * @param det A pointer to the detector whose parameters should be updated * @param l2 The new l2 value * @param theta The new theta value * @param phi The new phi value * @param delay The new delay time * @param pressure The new pressure value * @param thickness The new thickness value */ void LoadDetectorInfo::updateParameterMap(Geometry::ParameterMap & pmap, const Geometry::IDetector_const_sptr & det, const double l2, const double theta, const double phi, const double delay, const double pressure, const double thickness) const { // store detector params that are different to instrument level if(fabs(delay - m_instDelta) > 1e-06) pmap.addDouble(det->getComponentID(), DELAY_PARAM, delay); if(fabs(pressure - m_instPressure) > 1e-06) pmap.addDouble(det->getComponentID(), PRESSURE_PARAM, pressure); if(fabs(thickness - m_instThickness) > 1e-06) pmap.addDouble(det->getComponentID(), THICKNESS_PARAM, thickness); // move if(m_moveDets) { V3D newPos; newPos.spherical(l2, theta, phi); // The sample position may not be at 0,0,0 newPos += m_samplePos; ComponentHelper::moveComponent(*det, pmap, newPos, ComponentHelper::Absolute); } }