154 std::cout <<
"\t" <<
geo.DetHalfWidth() <<
" " <<
geo.DetHalfHeight() <<
" " <<
geo.DetLength() <<
std::endl;
161 int containment_level=0;
162 bool track_linked =
false;
163 std::size_t n_tracks=0;
178 for(
size_t i_tc=0; i_tc<tracksVec.size(); ++i_tc){
182 n_tracks += tracksVec[i_tc].size();
183 for(
size_t i_t=0; i_t<tracksVec[i_tc].size(); ++i_t){
186 if(!track_linked) track_linked=
true;
190 std::cout <<
"\tTrack (" << i_tc <<
"," << i_t <<
")" 191 <<
" " << containment_level <<
std::endl;
209 for(
size_t i_tc=0; i_tc<tracksVec.size(); ++i_tc){
210 for(
size_t i_t=0; i_t<tracksVec[i_tc].size(); ++i_t){
231 if(!track_linked) track_linked=
true;
236 std::cout <<
"\tTrackPair (" << i_tc <<
"," << i_t <<
") and (" << i_tr.first <<
"," << i_tr.second <<
")" 237 <<
" " << containment_level <<
std::endl;
252 std::cout <<
"All done! Now let's make the tree and tags!" <<
std::endl;
255 for(
size_t i_tc=0; i_tc<tracksVec.size(); ++i_tc){
256 for(
size_t i_t=0; i_t<tracksVec[i_tc].size(); ++i_t){
287 std::vector<float>{(
float)tracksVec[i_tc][i_t].
End().X(),
288 (
float)tracksVec[i_tc][i_t].
End().Y(),
289 (
float)tracksVec[i_tc][i_t].
End().Z()},
296 std::cout <<
"Track (" << i_tc <<
"," << i_t <<
")" 299 std::cout <<
"\tS_(X,Y,Z) = (" 300 << tracksVec[i_tc][i_t].Vertex().X() <<
"," 301 << tracksVec[i_tc][i_t].Vertex().Y() <<
"," 302 << tracksVec[i_tc][i_t].Vertex().Z() <<
")" <<
std::endl;
303 std::cout <<
"\tNearest wire ..." <<
std::endl;
304 for(
size_t i_p=0; i_p<
geo.Nplanes(); ++i_p)
305 std::cout <<
"\t\tPlane " << i_p <<
" " <<
geo.NearestWireID(tracksVec[i_tc][i_t].Vertex(),i_p).
Wire << std::endl;
306 std::cout <<
"\tE_(X,Y,Z) = (" 307 << tracksVec[i_tc][i_t].End().X() <<
"," 308 << tracksVec[i_tc][i_t].End().Y() <<
"," 309 << tracksVec[i_tc][i_t].End().Z() <<
")" <<
std::endl;
310 std::cout <<
"\tNearest wire ..." <<
std::endl;
311 for(
size_t i_p=0; i_p<
geo.Nplanes(); ++i_p)
312 std::cout <<
"\t\tPlane " << i_p <<
" " <<
geo.NearestWireID(tracksVec[i_tc][i_t].End(),i_p).
Wire << std::endl;
313 std::cout <<
"\tLength=" << tracksVec[i_tc][i_t].Length() <<
std::endl;
314 std::cout <<
"\tSimple_length=" << (tracksVec[i_tc][i_t].End()-tracksVec[i_tc][i_t].Vertex()).
R() <<
std::endl;
std::vector< std::vector< int > > fTrackContainmentLevel
double MinDistanceStartPt(recob::Track const &, recob::Track const &)
std::vector< std::vector< double > > fMinDistances
anab::CosmicTagID_t GetCosmicTagID(recob::Track const &, geo::GeometryCore const &)
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
std::vector< std::vector< std::pair< int, int > > > fTrackContainmentIndices
struct trk::TrackTree TrackTree_t
double MinDistanceEndPt(recob::Track const &, recob::Track const &)
std::vector< std::vector< anab::CosmicTag > > fCosmicTags
TrackTree_t fTrackTreeObj
boost::graph_traits< ModuleGraph >::vertex_descriptor Vertex
LArSoft geometry interface.
bool IsContained(recob::Track const &, geo::GeometryCore const &)
QTextStream & endl(QTextStream &s)