本文整理汇总了C++中KVDetector::GetAlignedIDTelescopes方法的典型用法代码示例。如果您正苦于以下问题:C++ KVDetector::GetAlignedIDTelescopes方法的具体用法?C++ KVDetector::GetAlignedIDTelescopes怎么用?C++ KVDetector::GetAlignedIDTelescopes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KVDetector
的用法示例。
在下文中一共展示了KVDetector::GetAlignedIDTelescopes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FillTrajectoryIDTelescopeLists
void KVINDRA::FillTrajectoryIDTelescopeLists()
{
// Kludge to make INDRA ROOT geometry work like any other
// Normally ID telescopes are deduced from successive detectors on the different trajectories
// Each trajectory then possesses its list of ID telescopes
// These lists are then used when reconstruction trajectories are calculated
//
// When INDRA ROOT geometry is used, trajectory lists need to be filled
// by hand before reconstruction trajectories are calculated
TIter it_traj(GetTrajectories());
KVGeoDNTrajectory* tr;
while ((tr = (KVGeoDNTrajectory*)it_traj())) {
// get first detector on trajectory
KVDetector* det = tr->GetNodeAt(0)->GetDetector();
// list of 'aligned' id telescopes
TIter it_idt(det->GetAlignedIDTelescopes());
KVIDTelescope* idt;
while ((idt = (KVIDTelescope*)it_idt())) {
if (tr->ContainsAll(idt->GetDetectors())) { // all detectors on trajectory
if (idt->GetDetectors()->GetEntries() > 1) {
// make sure dE and E detector are consecutive on trajectory
// i.e. dE has to be immediately in front of E on the trajectory
if (tr->GetNodeInFront(idt->GetDetector(2)->GetNode()) == idt->GetDetector(1)->GetNode())
tr->AccessIDTelescopeList()->Add(idt);
}
else
tr->AccessIDTelescopeList()->Add(idt);//single-detector telescope
}
}
}
}