/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/fit/mimir/include/mimir/Cost.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/fit/mimir/include/mimir/Cost.hh Source File
Ratpac-two
Cost.hh
1 #pragma once
2 #include <RAT/DB.hh>
3 #include <RAT/FitterInputHandler.hh>
4 #include <mimir/Common.hh>
5 #include <mimir/ParamSet.hh>
6 
7 namespace Mimir {
8 
9 class Cost {
10  public:
11  Cost() = default;
12  virtual bool Configure(RAT::DBLinkPtr db_link) = 0;
13  virtual double operator()(const ParamSet& params) const = 0;
14 
15  virtual void AddHit(const int pmtid, const RAT::FitterInputHandler& input_handler) {
16  hit_pmtids.push_back(pmtid);
17  hit_times.push_back(input_handler.GetTime(pmtid));
18  hit_charges.push_back(input_handler.GetCharge(pmtid));
19  }
20 
21  virtual void AddAllHits(const RAT::FitterInputHandler& input_handler) {
22  std::vector<int> pmtids = input_handler.GetAllHitPMTIDs();
23  for (int pmtid : pmtids) {
24  AddHit(pmtid, input_handler);
25  }
26  }
27 
28  virtual void ClearHits() {
29  hit_pmtids.clear();
30  hit_times.clear();
31  hit_charges.clear();
32  }
33 
34  const std::string GetName() const { return name; }
35 
36  void SetName(const std::string& _name) { name = _name; }
37 
38  protected:
39  std::vector<int> hit_pmtids;
40  std::vector<double> hit_times;
41  std::vector<double> hit_charges;
42  std::string name;
43 };
44 
45 } // namespace Mimir
Definition: Cost.hh:9
Definition: FitterInputHandler.hh:26
double GetTime(Int_t id) const
Get the earliest time for a hit PMT. In the case where a waveoform analyzer created multiple hits on ...
Definition: FitterInputHandler.hh:300
const std::vector< Int_t > & GetAllHitPMTIDs() const
Get PMTIDs for all pmts in the event. PMT will not be in the list if it never created a hit on DS::PM...
Definition: FitterInputHandler.hh:229
double GetCharge(Int_t id) const
Get the integrated charge of a PMT. This method returns the integrated charge of all hits on a PMT....
Definition: FitterInputHandler.hh:251
Definition: ParamSet.hh:56