1 #ifndef RECOTOOL_CBALGOSTARTTRACK_CXX 2 #define RECOTOOL_CBALGOSTARTTRACK_CXX 58 const ::cluster::ClusterParamsAlg &cluster2)
62 if(cluster1.GetHitVector().size() <
_min_hits ||
63 cluster2.GetHitVector().size() <
_min_hits )
66 bool FirstTrackSecondBlob =
false;
67 bool SecondTrackFirstBlob =
false;
70 FirstTrackSecondBlob =
true;
72 SecondTrackFirstBlob =
true;
75 if(FirstTrackSecondBlob){
76 std::cout<<
"*********************************************"<<std::endl;
77 std::cout<<
"First track second blob! First has params:"<<std::endl;
78 std::cout<<
"Angle 2D = "<<cluster1.GetParams().angle_2d<<std::endl;
79 std::cout<<
"Opening Angle = "<<cluster1.GetParams().opening_angle<<std::endl;
80 std::cout<<
"Sum charge = "<<cluster1.GetParams().sum_charge<<std::endl;
81 std::cout<<
"Length = "<<cluster1.GetParams().length<<std::endl;
82 std::cout<<
"Width = "<<cluster1.GetParams().width<<std::endl;
83 std::cout<<
"N_Hits = "<<cluster1.GetHitVector().size()<<std::endl;
84 std::cout<<
"eigenvalue_principal = "<<cluster1.GetParams().eigenvalue_principal<<std::endl;
85 std::cout<<
"Second has params:"<<std::endl;
86 std::cout<<
"Angle 2D = "<<cluster2.GetParams().angle_2d<<std::endl;
87 std::cout<<
"Opening Angle = "<<cluster2.GetParams().opening_angle<<std::endl;
88 std::cout<<
"Sum charge = "<<cluster2.GetParams().sum_charge<<std::endl;
89 std::cout<<
"Length = "<<cluster2.GetParams().length<<std::endl;
90 std::cout<<
"Width = "<<cluster2.GetParams().width<<std::endl;
91 std::cout<<
"N_Hits = "<<cluster2.GetHitVector().size()<<std::endl;
92 std::cout<<
"eigenvalue_principal = "<<cluster2.GetParams().eigenvalue_principal<<std::endl;
100 if (FirstTrackSecondBlob)
102 std::pair<float,float> trackEndPoint =
103 std::pair<float,float>( cluster1.GetParams().end_point.w, cluster1.GetParams().end_point.t );
106 if(cluster2.GetParams().PolyObject.PointInside(trackEndPoint))
113 else if (SecondTrackFirstBlob)
115 std::pair<float,float> trackEndPoint =
116 std::pair<float,float>( cluster2.GetParams().end_point.w, cluster2.GetParams().end_point.t );
119 if(cluster1.GetParams().PolyObject.PointInside(trackEndPoint))
149 if(cluster.GetParams().eigenvalue_principal >
_min_EP)
160 cluster.GetParams().eigenvalue_principal <
_min_EP)
Cluster finding and building.
This merge algo is looking for short tracks from the start of a shower that are overlapping a blob th...