198 for (
size_t cstat = 0; cstat < geom->
Ncryostats(); ++cstat) {
199 for (
size_t tpc = 0; tpc < geom->
Cryostat(cstat).
NTPC(); ++tpc) {
208 auto vcol = std::make_unique<std::vector<recob::Vertex>>();
209 auto epcol = std::make_unique<std::vector<recob::EndPoint2D>>();
210 auto assnep = std::make_unique<art::Assns<recob::EndPoint2D, recob::Hit>>();
211 auto assnsh = std::make_unique<art::Assns<recob::Vertex, recob::Shower>>();
212 auto assntr = std::make_unique<art::Assns<recob::Vertex, recob::Track>>();
213 auto assnh = std::make_unique<art::Assns<recob::Vertex, recob::Hit>>();
222 std::vector<art::Ptr<recob::EndPoint2D>> ccrawlerEndPoints;
229 mf::LogWarning(
"FeatureVertexFinder") <<
"Failed to get EndPoint2d's from Cluster Crawler";
238 std::vector<art::Ptr<recob::EndPoint2D>> cornerEndPoints;
245 mf::LogWarning(
"FeatureVertexFinder") <<
"Failed to get EndPoint2d's from Corner Finder";
260 for (
unsigned int ii = 0; ii < clusterListHandle->size(); ++ii) {
272 mf::LogWarning(
"FeatureVertexFinder") <<
"Failed to get Cluster from default cluster module";
294 double tempxyz[3] = {
299 if (tempxyz[0] == 0 && tempxyz[1] == 0 && tempxyz[2] == 0) {
continue; }
301 vcol->push_back(the3Dvertex);
307 for (
size_t cstat = 0; cstat < geom->
Ncryostats(); ++cstat) {
308 for (
size_t tpc = 0; tpc < geom->
Cryostat(cstat).
NTPC(); ++tpc) {
310 double temp2dXYZ[3] = {
316 if (temp2dXYZ[0] == 0 && temp2dXYZ[1] == 0 && temp2dXYZ[2] == 0) {
continue; }
321 double EndPoint2d_TimeTick = detProp.ConvertXToTicks(temp2dXYZ[0], plane, tpc, cstat);
322 int EndPoint2d_Wire = 0;
323 int EndPoint2d_Channel = 0;
326 EndPoint2d_Wire = geom->
NearestWire(temp2dXYZ, plane, tpc, cstat);
334 EndPoint2d_Channel = geom->
NearestChannel(temp2dXYZ, plane, tpc, cstat);
343 geo::WireID wireID(cstat, tpc, plane, EndPoint2d_Wire);
373 double tempxyz[3] = {
378 if (bail > 0) {
continue; }
379 if (tempxyz[0] == 0 && tempxyz[1] == 0 && tempxyz[2] == 0) {
continue; }
383 vcol->push_back(the3Dvertex);
392 for (
size_t cstat = 0; cstat < geom->
Ncryostats(); ++cstat) {
394 for (
size_t tpc = 0; tpc < geom->
Cryostat(cstat).
NTPC(); ++tpc) {
405 double EndPoint2d_TimeTick = detProp.ConvertXToTicks(temp2dXYZ[0], plane, tpc, cstat);
406 int EndPoint2d_Wire = 0;
407 int EndPoint2d_Channel = 0;
410 EndPoint2d_Wire = geom->
NearestWire(temp2dXYZ, plane, tpc, cstat);
418 EndPoint2d_Channel = geom->
NearestChannel(temp2dXYZ, plane, tpc, cstat);
427 geo::WireID wireID(cstat, tpc, plane, EndPoint2d_Wire);
445 for (
size_t i = 0; i < epcol->size(); ++i)
447 for (
size_t i = 0; i < vcol->size(); ++i)
467 MergeSort3dVtx_zpos.clear();
std::vector< double > Clu_Plane
MaybeLogger_< ELseverityLevel::ELsev_info, true > LogVerbatim
void MergeAndSort3dVtxCandidate(std::vector< double > merge_vtxX, std::vector< double > merge_vtxY, std::vector< double > merge_vtxZ, std::vector< double > merge_vtxStgth)
std::vector< double > TwoDvtx_wire
AdcChannelData::View View
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
unsigned int Nplanes() const
Number of planes in this tpc.
std::vector< double > TwoDvtx_time
std::vector< double > Clu_EndPos_Wire
std::vector< double > candidate_y
std::vector< double > candidate_strength
std::vector< double > Clu_Length
std::vector< double > Clu_Yintercept
std::vector< double > Clu_EndPos_TimeTick
std::vector< double > MergeSort3dVtx_strength
unsigned int Ncryostats() const
Returns the number of cryostats in the detector.
std::vector< double > candidate_z
Definition of vertex object for LArSoft.
std::vector< double > Clu_StartPos_TimeTick
void Find3dVtxFrom2dClusterVtxCand(detinfo::DetectorPropertiesData const &detProp, std::vector< double > const &Wire_2dvtx, std::vector< double > const &Time_2dvtx, std::vector< double > const &Plane_2dvtx)
bool getByLabel(std::string const &label, std::string const &instance, Handle< PROD > &result) const
void push_back(Ptr< U > const &p)
void Get3dVertexCandidates(detinfo::DetectorPropertiesData const &detProp, std::vector< art::Ptr< recob::EndPoint2D >> EndPoints, bool PlaneDet)
std::vector< double > Clu_StartPos_Wire
std::vector< double > MergeSort3dVtx_zpos
geo::WireID::WireID_t NearestWire(geo::Point_t const &point, geo::PlaneID const &planeid) const
Returns the index of wire closest to position in the specified TPC.
std::string fClusterModuleLabel
unsigned int NTPC() const
Number of TPCs in this cryostat.
void Find2dClusterVertexCandidates(detinfo::DetectorPropertiesData const &detProp, art::PtrVector< recob::Cluster > RawClusters, art::FindManyP< recob::Hit > fmhit)
CryostatGeo const & Cryostat(geo::CryostatID const &cryoid) const
Returns the specified cryostat.
ProductID put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
std::string fCornerFinderModuleLabel
std::vector< double > dtdwstart
View_t View(geo::PlaneID const &pid) const
Returns the view (wire orientation) on the channels of specified TPC plane.
std::vector< double > MergeSort3dVtx_ypos
Q_EXPORT QTSManip setw(int w)
std::vector< double > MergeSort3dVtx_xpos
const TPCGeo & TPC(unsigned int itpc) const
Return the itpc'th TPC in the cryostat.
std::vector< double > Clu_Slope
std::vector< double > TwoDvtx_plane
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
std::vector< double > dtdwstartError
std::vector< double > candidate_x
std::string fCCrawlerEndPoint2dModuleLabel
void fill_ptr_vector(std::vector< Ptr< T >> &ptrs, H const &h)
raw::ChannelID_t NearestChannel(geo::Point_t const &worldLoc, geo::PlaneID const &planeid) const
Returns the ID of the channel nearest to the specified position.
Q_EXPORT QTSManip setfill(int f)
QTextStream & endl(QTextStream &s)
std::vector< double > Clu_Yintercept2