Только общий ход могу рассказать. Алгоритмы и код - дело святое да и нет их у меня уже. Кодить нужно будет довольно много и вдумчиво.
Для определенности введем систему координат (x, y, z). z - координата по пучку. Пусть далее, детекторы располагаются вдоль оси z в точках z[i], а всего их - n . Первичная вершина (мишень) допустим находится в точке (0, 0, 0) Тогда ваш массив данных для одного события будет выглядеть следующим образом (x[nhits1][n], y[nhits2][n]), где nhits - число срабатываний детектора по какой-то там координате.
Общая идея такова: нужно для каждой точки протянуть прямую линию в первичную вершину. Делают это по проекциям xz и yz. Взяли крайний детектор и точку x[0][n] и провели прямую в точку (0, 0, 0). Посмотрели в предыдущем слое - попали ли мы рядом с какой нибудь точкой из x[nhits1][n-1]. Если попали - хорошо, смотрим в слой n-2 и т.д, если нет - бросаем эту неблагодарную точку и переходим к следующей. Аналогично по игреку.
Теперь по вторичным вершинам. Тут несколько сложнее. Точно также тянете в первичную вершину. Но. Нужно некоторым образом заставить вихлять ваш трек с тем расчетом, чтобы минимизировать (по МНК) расстояние от собирающихся в прямую точек до вторичной вершине. Т.е. заниматься, грубо говоря, подбором набора точек для их приближения к прямой, которая воткнется в некоторую вторичную вершину, с наименьшей погрешностью. И это, если у вас шумов нет...
Короче говоря, суровая задача в общем виде. Я затрудняюсь тут что-то объяснять более тщательно - нужен нормальный научный руководитель, который будет все подсказывать.
Рекомендую литературу: "Методы анализа данных в физическом эксперименте" под ред. Реглера. Издательство Мир. Больше вы об этом нигде не найдете. Ну, разве что, тщательно подсматривая в выложенные фрагментики кода :-) Может быть, есть еще какая-нибудь литература, просто я не в курсе. Называется все енто дело: фитирование треков и вершин (track and vertex fitting)...
________________________________________________________________________________
______
Цитата(winny @ 30.09.2008, 21:18)
Статус: студент
Курс: 2
Это где это на втором курсе такие задачи дают?