本文整理汇总了C++中api::MatrixWorkspace_const_sptr::gravitationalDrop方法的典型用法代码示例。如果您正苦于以下问题:C++ MatrixWorkspace_const_sptr::gravitationalDrop方法的具体用法?C++ MatrixWorkspace_const_sptr::gravitationalDrop怎么用?C++ MatrixWorkspace_const_sptr::gravitationalDrop使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类api::MatrixWorkspace_const_sptr
的用法示例。
在下文中一共展示了MatrixWorkspace_const_sptr::gravitationalDrop方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
/** sets up the object with workspace data and calculates cached values ready to
* calculate gravitional
* effects across a spectrum
* @param ws :: the workspace that contains the neutron counts
* @param det :: the detector for which the calculations will be for
*/
GravitySANSHelper::GravitySANSHelper(API::MatrixWorkspace_const_sptr ws,
Geometry::IDetector_const_sptr det)
: m_beamLineNorm(-1), m_det(det), m_dropPerAngstrom2(-1), m_cachedDrop(0) {
m_samplePos = ws->getInstrument()->getSample()->getPos();
const V3D sourcePos = ws->getInstrument()->getSource()->getPos();
m_beamLine = m_samplePos - sourcePos;
m_beamLineNorm = 2.0 * (m_samplePos - sourcePos).norm();
// this is the LineOfSight assuming no drop, the drop is added (and
// subtracted) later in the code when required
m_cachedLineOfSight = m_det->getPos() - m_samplePos;
// the drop is proportional to the wave length squared and using this to do
// the full calculation only once increases the speed a lot
m_dropPerAngstrom2 = ws->gravitationalDrop(m_det, 1e-10);
}