LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ShowerRecoAlgBase.h
Go to the documentation of this file.
1 
14 #ifndef RECOTOOL_SHOWERRECOALGBASE_H
15 #define RECOTOOL_SHOWERRECOALGBASE_H
16 
17 #include <vector>
18 
21 namespace geo {
22  class GeometryCore;
23 }
24 namespace calo {
25  class CalorimetryAlg;
26 }
27 namespace cluster {
28  class ClusterParamsAlg;
29 }
30 namespace detinfo {
31  class DetectorClocksData;
32  class DetectorPropertiesData;
33 }
34 
35 namespace showerreco {
36 
37  struct ShowerCluster_t {
40  double angle_2d;
41  unsigned short plane_id;
42  std::vector<::util::PxHit> hit_vector;
43  };
44 
51  public:
52  virtual ~ShowerRecoAlgBase() = default;
53 
55  virtual void Reset();
56 
58  virtual void AppendInputClusters(const std::vector<cluster::ClusterParamsAlg>& cpan_v);
59 
61  std::vector<recob::Shower> Reconstruct(geo::GeometryCore const& geom,
62  detinfo::DetectorClocksData const& clockData,
63  detinfo::DetectorPropertiesData const& detProp);
64 
65  protected:
67  virtual void ProcessInputClusters() {}
68 
70  virtual ::recob::Shower RecoOneShower(
71  geo::GeometryCore const& geom,
72  detinfo::DetectorClocksData const& clockData,
73  detinfo::DetectorPropertiesData const& detProp,
74  const std::vector<showerreco::ShowerCluster_t>& clusters) = 0;
75 
76  protected:
78  std::vector<std::vector<showerreco::ShowerCluster_t>> fInputClusters;
79  };
80 }
81 
82 #endif
83  // end of doxygen group
virtual void ProcessInputClusters()
Function to reorganize input cluster information.
std::vector< std::vector< showerreco::ShowerCluster_t > > fInputClusters
Input clusters.
Cluster finding and building.
std::vector<::util::PxHit > hit_vector
ntupleExperimental Reset()
General LArSoft Utilities.
Description of geometry of one entire detector.
Definition: GeometryCore.h:119
Contains all timing reference information for the detector.
Namespace collecting geometry-related classes utilities.
calorimetry