All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HitTagAssociatorAlg.cxx
Go to the documentation of this file.
1 /*!
2  * Title: Hit <--> Cosmic Tag Associator Alg
3  * Author: Wes Ketchum (wketchum@lanl.gov)
4  *
5  * Description: Algorithm that will provide associations of Hits to
6  * cosmic tags, where both of those are associated to some
7  * intermediate object (like a track or cluster)
8  * Input: Assn<recob::Hit,???> and Assn<???,anab::CosmicTag>
9  * Output: Assn<recob::Hit,anab::CosmicTag>
10 */
11 
12 #include "HitTagAssociatorAlg.h"
13 #include <limits>
14 
16 {}
17 
18 void cosmic::HitTagAssociatorAlg::MakeHitTagAssociations(std::vector< std::vector<size_t> > const& bridges_per_hit,
19  std::vector< std::vector<size_t> > const& tags_per_bridges,
20  std::vector< std::vector<size_t> >& tags_per_hit)
21 {
22 
23  const size_t N_HITS = bridges_per_hit.size();
24  tags_per_hit.clear();
25  tags_per_hit.resize(N_HITS);
26 
27  for(size_t i_hit=0; i_hit<N_HITS; i_hit++){
28  for(size_t i_bridge=0; i_bridge<bridges_per_hit[i_hit].size(); i_bridge++){
29  tags_per_hit[i_hit].insert(tags_per_hit[i_hit].end(),
30  tags_per_bridges[i_bridge].begin(),
31  tags_per_bridges[i_bridge].end());
32  }
33  }
34 
35 }
36 
37 void cosmic::HitTagAssociatorAlg::MakeHitTagAssociations(std::vector< std::vector<size_t> > const& bridges_per_hit,
38  std::vector<size_t> const& tag_per_bridge,
39  std::vector< std::vector<size_t> >& tags_per_hit)
40 {
41 
42  const size_t N_HITS = bridges_per_hit.size();
43 
44  tags_per_hit.clear();
45  tags_per_hit.resize(N_HITS);
46 
47  for(size_t i_hit=0; i_hit<N_HITS; i_hit++){
48 
49  for(size_t i_bridge=0; i_bridge<bridges_per_hit[i_hit].size(); i_bridge++){
50 
51  if(i_bridge >= tag_per_bridge.size()) continue;
52 
53  if(tag_per_bridge[i_bridge]==std::numeric_limits<size_t>::max()) continue;
54 
55  tags_per_hit[i_hit].push_back(tag_per_bridge[i_bridge]);
56  }//end loop over bridges
57 
58  }//end loop over hits
59 
60 }
pdgs p
Definition: selectors.fcl:22
HitTagAssociatorAlg(fhicl::ParameterSet const &p)
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Definition: DumpUtils.h:265
auto end(FixedBins< T, C > const &) noexcept
Definition: FixedBins.h:585
auto begin(FixedBins< T, C > const &) noexcept
Definition: FixedBins.h:573
void MakeHitTagAssociations(std::vector< std::vector< size_t > > const &bridges_per_hit, std::vector< std::vector< size_t > > const &tags_per_bridges, std::vector< std::vector< size_t > > &tags_per_hit)