10 #include <sys/types.h> 17 #include "canvas/Persistency/Common/FindManyP.h" 24 #include "art_root_io/TFileService.h" 25 #include "art_root_io/TFileDirectory.h" 26 #include "canvas/Persistency/Common/FindManyP.h" 81 produces< std::vector<recob::Vertex> >();
82 produces< art::Assns<recob::Vertex, recob::Hit> >();
83 produces< art::Assns<recob::Vertex, recob::Track> >();
84 produces< art::Assns<recob::Vertex, recob::Shower> >();
93 for(
size_t ii = 0; ii < epListHandle->size(); ++ii){
100 for(
size_t ii = 0; ii < trackListHandle->size(); ++ii){
123 std::unique_ptr< std::vector<recob::Vertex> > vcol (
MatchV2T(evt, *vtassn, *vsassn, *vhassn));
125 evt.
put(std::move(vcol));
126 evt.
put(std::move(vtassn));
127 evt.
put(std::move(vsassn));
128 evt.
put(std::move(vhassn));
137 mf::LogInfo(
"AggregateVertex") <<
"AggregateEvent::MatchV2T(): (strong) vertexlistStrong" 138 <<
" and tracklist lengths are " 146 return std::unique_ptr< std::vector<recob::Vertex> > (
new std::vector<recob::Vertex>);
150 std::unique_ptr< std::vector<recob::Vertex> > verts(
new std::vector<recob::Vertex>);
158 std::vector<size_t> trkIdx;
159 std::vector<size_t> shwIdx;
161 std::vector< art::Ptr<recob::Hit> > hitvertexlistStrong = fmhst.
at(epctr);
165 while (hvIter != hitvertexlistStrong.end()) {
171 std::vector< art::Ptr<recob::Hit> > hittlist = fmht.at(
t);
173 std::vector< art::Ptr<recob::Hit> >
::const_iterator htIter = hittlist.begin();
174 while (htIter != hittlist.end()) {
184 htIter = hittlist.end()-1;
193 if (tlistAssoc.
size() > 0){
196 double xyz[3] = {-999., -999., -999.};
203 for(
auto const&
t : trkIdx){
204 std::vector< art::Ptr<recob::Hit> > hits = fmht.at(
t);
209 if (slistAssoc.
size() > 0){
212 double xyz[3] = {-999., -999., -999.};
221 for(
auto const&
s : shwIdx){
222 std::vector< art::Ptr<recob::Hit> > hits = fmhs.at(
s);
void produce(art::Event &evt) override
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)
art::PtrVector< recob::EndPoint2D > feplist
std::string fTrack3DModuleLabel
MaybeLogger_< ELseverityLevel::ELsev_info, false > LogInfo
Declaration of signal hit object.
EDProducer(fhicl::ParameterSet const &pset)
AggregateVertex(fhicl::ParameterSet const &pset)
Definition of vertex object for LArSoft.
bool getByLabel(std::string const &label, std::string const &instance, Handle< PROD > &result) const
std::string fHoughModuleLabel
typename data_t::const_iterator const_iterator
#define DEFINE_ART_MODULE(klass)
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.
reference at(size_type n)
Declaration of cluster object.
Provides recob::Track data product.
Utility object to perform functions of association.
art::PtrVector< recob::EndPoint2D > feplistStrong
ProductID put(std::unique_ptr< PROD > &&edp, FullSemantic< Level::Run > const semantic)
std::string fDBScanModuleLabel
art::PtrVector< recob::Track > ftracklist