All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BaseFlashHypothesis.h
Go to the documentation of this file.
1 /**
2  * \file FlashHypothesis.h
3  *
4  * \ingroup Base
5  *
6  * \brief Class def header for a class FlashHypothesis
7  *
8  * @author kazuhiro
9  */
10 
11 /** \addtogroup Base
12 
13  @{*/
14 #ifndef BASEFLASHHYPOTHESIS_H
15 #define BASEFLASHHYPOTHESIS_H
16 
17 #include "BaseAlgorithm.h"
18 
19 #if USING_LARSOFT == 1
21 #endif
22 
23 namespace flashmatch {
24  /**
25  \class FlashHypothesis
26  User defined class FlashHypothesis ... these comments are used to generate
27  doxygen documentation!
28  */
30 
31  public:
32 
33  /// Default constructor
34  BaseFlashHypothesis(const std::string name="noname")
35  : flashmatch::BaseAlgorithm(flashmatch::kFlashHypothesis,name)
36  {}
37 
38  /// Default destructor
40 
41  /// Method to create flashmatch::Flash_t object and return
42  Flash_t GetEstimate(const QCluster_t&) const;
43 
44  /// Method to simply fill provided reference of flashmatch::Flash_t
45  virtual void FillEstimate(const QCluster_t&, Flash_t&) const = 0;
46 
47  /// Sets the channels to use
48  void SetChannelMask(std::vector<int> ch_mask) { _channel_mask = ch_mask; }
49 
50  /// Sets the channels sensitive to visible light
51  void SetUncoatedPMTs(std::vector<int> ch_uncoated) { _uncoated_pmt_list = ch_uncoated; }
52 
53  #if USING_LARSOFT == 1
54  /// Sets the semi analytical model
55  void SetSemiAnalyticalModel(std::unique_ptr<SemiAnalyticalModel> model) { _semi_model = std::move(model); }
56  #endif
57 
58  protected:
59 
60  std::vector<int> _channel_mask; ///< The list of channels to use
61  std::vector<int> _uncoated_pmt_list; ///< A list of opdet sensitive to visible (reflected) light
62 
63  #if USING_LARSOFT == 1
64  std::unique_ptr<SemiAnalyticalModel> _semi_model;
65  #endif
66 
67  };
68 }
69 #endif
70 /** @} */ // end of doxygen group
71 
BaseFlashHypothesis(const std::string name="noname")
Default constructor.
Algorithm type to make QCluster_t =&gt; Flash_t hypothesis.
Class def header for a class BaseAlgorithm.
virtual void FillEstimate(const QCluster_t &, Flash_t &) const =0
Method to simply fill provided reference of flashmatch::Flash_t.
Struct to represent an optical flash.
Collection of charge deposition 3D point (cluster)
std::vector< int > _uncoated_pmt_list
A list of opdet sensitive to visible (reflected) light.
Flash_t GetEstimate(const QCluster_t &) const
Method to create flashmatch::Flash_t object and return.
void SetUncoatedPMTs(std::vector< int > ch_uncoated)
Sets the channels sensitive to visible light.
void SetSemiAnalyticalModel(std::unique_ptr< SemiAnalyticalModel > model)
Sets the semi analytical model.
void SetChannelMask(std::vector< int > ch_mask)
Sets the channels to use.
std::unique_ptr< SemiAnalyticalModel > _semi_model
const std::string & name() const
Name getter, defined in a logger instance attribute.
Definition: LoggerFeature.h:51
std::vector< int > _channel_mask
The list of channels to use.
~BaseFlashHypothesis()
Default destructor.