8 #ifndef AGGREGATEVERTEX_H 9 #define AGGREGATEVERTEX_H 12 #include <sys/types.h> 86 produces< std::vector<recob::Vertex> >();
87 produces< art::Assns<recob::Vertex, recob::Hit> >();
88 produces< art::Assns<recob::Vertex, recob::Track> >();
89 produces< art::Assns<recob::Vertex, recob::Shower> >();
108 for(
size_t ii = 0; ii < epListHandle->size(); ++ii){
115 for(
size_t ii = 0; ii < trackListHandle->size(); ++ii){
138 std::unique_ptr< std::vector<recob::Vertex> > vcol (
MatchV2T(evt, *vtassn, *vsassn, *vhassn));
140 evt.
put(std::move(vcol));
141 evt.
put(std::move(vtassn));
142 evt.
put(std::move(vsassn));
143 evt.
put(std::move(vhassn));
152 mf::LogInfo(
"AggregateVertex") <<
"AggregateEvent::MatchV2T(): (strong) vertexlistStrong" 153 <<
" and tracklist lengths are " 161 return std::unique_ptr< std::vector<recob::Vertex> > (
new std::vector<recob::Vertex>);
165 std::unique_ptr< std::vector<recob::Vertex> > verts(
new std::vector<recob::Vertex>);
173 std::vector<size_t> trkIdx;
174 std::vector<size_t> shwIdx;
176 std::vector< art::Ptr<recob::Hit> > hitvertexlistStrong = fmhst.at(epctr);
180 while (hvIter != hitvertexlistStrong.end()) {
186 std::vector< art::Ptr<recob::Hit> > hittlist = fmht.at(t);
188 std::vector< art::Ptr<recob::Hit> >
::const_iterator htIter = hittlist.begin();
189 while (htIter != hittlist.end()) {
199 htIter = hittlist.end()-1;
208 if (tlistAssoc.
size() > 0){
211 double xyz[3] = {-999., -999., -999.};
218 for(
auto const& t : trkIdx){
219 std::vector< art::Ptr<recob::Hit> >
hits = fmht.at(t);
224 if (slistAssoc.
size() > 0){
227 double xyz[3] = {-999., -999., -999.};
236 for(
auto const&
s : shwIdx){
237 std::vector< art::Ptr<recob::Hit> >
hits = fmhs.at(
s);
258 #endif // AGGREGATEVERTEX_H
std::unique_ptr< std::vector< recob::Vertex > > MatchV2T(art::Event &evt, art::Assns< recob::Vertex, recob::Track > &vtassn, art::Assns< recob::Vertex, recob::Shower > &vsassn, art::Assns< recob::Vertex, recob::Hit > &vhassn)
virtual ~AggregateVertex()
art::PtrVector< recob::EndPoint2D > feplist
std::string fTrack3DModuleLabel
MaybeLogger_< ELseverityLevel::ELsev_info, false > LogInfo
Declaration of signal hit object.
AggregateVertex(fhicl::ParameterSet const &pset)
Definition of vertex object for LArSoft.
ProductID put(std::unique_ptr< PROD > &&product)
std::string fHoughModuleLabel
#define DEFINE_ART_MODULE(klass)
Provides recob::Track data product.
void push_back(Ptr< U > const &p)
std::string fEndPointModuleLabel
bool CreateAssn(PRODUCER const &prod, art::Event &evt, std::vector< T > const &a, art::Ptr< U > const &b, art::Assns< U, T > &assn, std::string a_instance, size_t indx=UINT_MAX)
Creates a single one-to-one association.
Declaration of cluster object.
data_t::const_iterator const_iterator
Utility object to perform functions of association.
bool getByLabel(std::string const &label, std::string const &productInstanceName, Handle< PROD > &result) const
void produce(art::Event &evt)
art::PtrVector< recob::EndPoint2D > feplistStrong
std::string fDBScanModuleLabel
art::PtrVector< recob::Track > ftracklist