113 double min_distance = 9e12;
124 return std::sqrt(min_distance);
129 double min_distance = 9e12;
139 return std::sqrt(min_distance);
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;
329 <<
"Cosmic tags not created. Set MakeCosmicTags to true in fcl paramters.";
std::vector< std::vector< int > > fTrackContainmentLevel
double MinDistanceStartPt(recob::Track const &, recob::Track const &)
geo::Length_t DetHalfWidth(geo::TPCID const &tpcid) const
Returns the half width of the active volume of the specified TPC.
enum anab::cosmic_tag_id CosmicTagID_t
Point_t const & LocationAtPoint(size_t i) const
void SetupOutputTree(TTree *)
std::vector< std::vector< double > > fMinDistances
size_t NumberTrajectoryPoints() const
Various functions related to the presence and the number of (valid) points.
anab::CosmicTagID_t GetCosmicTagID(recob::Track const &, geo::GeometryCore const &)
void ProcessTracks(std::vector< std::vector< 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
unsigned int Nplanes(unsigned int tpc=0, unsigned int cstat=0) const
Returns the total number of wire planes in the specified TPC.
geo::Length_t DetHalfHeight(geo::TPCID const &tpcid) const
Returns the half height of the active volume of the specified TPC.
struct trk::TrackTree TrackTree_t
T get(std::string const &key) const
Point_t const & Vertex() const
geo::Length_t DetLength(geo::TPCID const &tpcid) const
Returns the length of the active volume of the specified TPC.
void Configure(fhicl::ParameterSet const &)
void SetRunEvent(unsigned int const &, unsigned int const &)
Description of geometry of one entire detector.
double MinDistanceEndPt(recob::Track const &, recob::Track const &)
std::vector< std::vector< anab::CosmicTag > > fCosmicTags
std::vector< std::vector< anab::CosmicTag > > const & GetTrackCosmicTags()
TrackContainmentAlg()
Default constructor.
Point_t const & End() const
geo::WireID NearestWireID(geo::Point_t const &point, geo::PlaneID const &planeid) const
Returns the ID of wire closest to position in the specified TPC.
Access the description of detector geometry.
TrackTree_t fTrackTreeObj
boost::graph_traits< ModuleGraph >::vertex_descriptor Vertex
LArSoft geometry interface.
Track from a non-cascading particle.A recob::Track consists of a recob::TrackTrajectory, plus additional members relevant for a "fitted" track:
bool IsContained(recob::Track const &, geo::GeometryCore const &)
cet::coded_exception< error, detail::translate > exception
QTextStream & endl(QTextStream &s)
Event finding and building.