本文整理汇总了C++中PlacedVolume::isValid方法的典型用法代码示例。如果您正苦于以下问题:C++ PlacedVolume::isValid方法的具体用法?C++ PlacedVolume::isValid怎么用?C++ PlacedVolume::isValid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PlacedVolume
的用法示例。
在下文中一共展示了PlacedVolume::isValid方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: nodePlacement
/// Access the placement of a node in the chain of placements for this branch
PlacedVolume GlobalAlignment::nodePlacement(int level) const {
CheckHandle verify_handle(*this);
PlacedVolume pv = PlacedVolume(ptr()->GetNode(level));
if ( pv.isValid() ) return pv;
throw runtime_error("DD4hep: The object chain of "+string(placement().name())+
" is too short. [Invalid index]");
}
示例2: sensitiveDetector
/// Given a detector element, access it's sensitive detector (if the sub-detector is sensitive!)
SensitiveDetector LCDDHelper::sensitiveDetector(DetElement detector) const {
for(DetElement par = detector; par.isValid(); par = par.parent()) {
if ( par.ptr() != ptr()->world().ptr() ) {
PlacedVolume pv = par.placement();
if ( pv.isValid() ) {
const PlacedVolume::VolIDs& ids = pv.volIDs();
for(PlacedVolume::VolIDs::const_iterator i=ids.begin(); i!=ids.end();++i) {
if ( (*i).first == "system" ) {
return sensitiveDetector(par.name());
}
}
}
}
}
return SensitiveDetector(0);
}