ShowerRecoAlgBase.h
Go to the documentation of this file.
1 /**
2  * \file ShowerRecoAlgBase.h
3  *
4  * \ingroup ShowerReco3D
5  *
6  * \brief Class def header for a class ShowerRecoAlgBase
7  *
8  * @author kazuhiro
9  */
10 
11 /** \addtogroup ShowerReco3D
12 
13  @{*/
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 
45  /**
46  \class ShowerRecoAlgBase
47  User defined class ShowerRecoAlgBase ... these comments are used to generate
48  doxygen documentation!
49  */
51  public:
52  virtual ~ShowerRecoAlgBase() = default;
53 
54  /// Function to reset algorithm, to be called @ beginning of each event
55  virtual void Reset();
56 
57  /// Setter for a matched combination of clusters
58  virtual void AppendInputClusters(const std::vector<cluster::ClusterParamsAlg>& cpan_v);
59 
60  /// Execute reconstruction
61  std::vector<recob::Shower> Reconstruct(geo::GeometryCore const& geom,
62  detinfo::DetectorClocksData const& clockData,
63  detinfo::DetectorPropertiesData const& detProp);
64 
65  protected:
66  /// Function to reorganize input cluster information
67  virtual void
69  {}
70 
71  /// Function to reconstruct one shower
72  virtual ::recob::Shower RecoOneShower(
73  geo::GeometryCore const& geom,
74  detinfo::DetectorClocksData const& clockData,
75  detinfo::DetectorPropertiesData const& detProp,
76  const std::vector<showerreco::ShowerCluster_t>& clusters) = 0;
77 
78  protected:
79  /// Input clusters
80  std::vector<std::vector<showerreco::ShowerCluster_t>> fInputClusters;
81  };
82 }
83 
84 #endif
85 /** @} */ // 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
General LArSoft Utilities.
Description of geometry of one entire detector.
Contains all timing reference information for the detector.
LArSoft geometry interface.
Definition: ChannelGeo.h:16
calorimetry