21 const ::cluster::ClusterParamsAlg &cluster2)
25 double angle1 = cluster1.GetParams().angle_2d;
26 double angle2 = cluster2.GetParams().angle_2d;
28 double w_start1 = cluster1.GetParams().start_point.w;
29 double t_start1 = cluster1.GetParams().start_point.t;
30 double w_start2 = cluster2.GetParams().start_point.w;
31 double t_start2 = cluster2.GetParams().start_point.t;
33 double len1 = cluster1.GetParams().length;
34 double len2 = cluster2.GetParams().length;
36 size_t hits1 = cluster1.GetHitVector().size();
37 size_t hits2 = cluster1.GetHitVector().size();
41 or (angle1 < -360) or (angle2 < -360) )
46 std::cout <<
"\tStart: ( " << w_start1 <<
", " << t_start1 <<
" )" << std::endl;
47 std::cout <<
"\tAngle: " << angle1 << std::endl;
48 std::cout <<
"\tLength: " << len1 << std::endl;
49 std::cout <<
"\tN Hits: " << hits1 << std::endl;
52 std::cout <<
"\tStart: ( " << w_start2 <<
", " << t_start2 <<
" )" << std::endl;
53 std::cout <<
"\tAngle: " << angle2 << std::endl;
54 std::cout <<
"\tLength: " << len2 << std::endl;
55 std::cout <<
"\tN Hits: " << hits2 << std::endl;
63 if ( (t_start2-t_start1) == 0 )
66 double slope = (t_start2-t_start1)/(w_start2-w_start1);
67 angle = atan(slope)*180./3.14;
70 separation =
abs(angle-angle1);
72 std::cout <<
"Angle S1--S2: " << angle << std::endl;
73 std::cout <<
"Angle1--S2: " << separation << std::endl;
79 if (
_verbose) {
std::cout <<
"Separate! cluster 1 BIG" << std::endl << std::endl; }
85 angle = (int)(angle) % 360;
86 separation =
abs(angle-angle2);
88 std::cout <<
"Angle S2--S1: " << angle << std::endl;
89 std::cout <<
"Angle2--S1: " << separation << std::endl;
95 if (
_verbose) {
std::cout <<
"Separate! cluster 2 BIG" << std::endl << std::endl; }
return match has_match and(match.match_pdg==11 or match.match_pdg==-11)
finds tracks best matching by angle
BEGIN_PROLOG could also be cout