本文整理汇总了C++中geometry::IDetector_const_sptr::nDets方法的典型用法代码示例。如果您正苦于以下问题:C++ IDetector_const_sptr::nDets方法的具体用法?C++ IDetector_const_sptr::nDets怎么用?C++ IDetector_const_sptr::nDets使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类geometry::IDetector_const_sptr
的用法示例。
在下文中一共展示了IDetector_const_sptr::nDets方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: calcDetPar
/** Method calculates averaged polar coordinates of the detector's group
(which may consist of one detector)
*@param spDet -- shared pointer to the Mantid Detector
*@param Observer -- sample position or the centre of the polar system of
coordinates to calculate detector's parameters.
*@param Detector -- return Detector class containing averaged polar coordinates
of the detector or detector's group in
spherical coordinate system with centre at Observer
*/
void FindDetectorsPar::calcDetPar(const Geometry::IDetector_const_sptr &spDet,
const Kernel::V3D &Observer,
DetParameters &Detector) {
// get number of basic detectors within the composit detector
size_t nDetectors = spDet->nDets();
// define summator
AvrgDetector detSum;
// do we want spherical or linear box sizes?
detSum.setUseSpherical(!m_SizesAreLinear);
if (nDetectors == 1) {
detSum.addDetInfo(spDet, Observer);
} else {
// access contributing detectors;
Geometry::DetectorGroup_const_sptr spDetGroup =
boost::dynamic_pointer_cast<const Geometry::DetectorGroup>(spDet);
if (!spDetGroup) {
g_log.error() << "calc_cylDetPar: can not downcast IDetector_sptr to "
"detector group for det->ID: " << spDet->getID()
<< std::endl;
throw(std::bad_cast());
}
auto detectors = spDetGroup->getDetectors();
auto it = detectors.begin();
auto it_end = detectors.end();
for (; it != it_end; it++) {
detSum.addDetInfo(*it, Observer);
}
}
// calculate averages and return the detector parameters
detSum.returnAvrgDetPar(Detector);
}