LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
IPhotonCalibrator.h
Go to the documentation of this file.
1 // \file IPhotonCalibrator.h
3 //
4 // \brief Generic interface for service provider for calibrating optical hits
5 //
6 // \author ahimmel@fnal.gov
7 //
9 
10 #ifndef IPHOTONCALIBRATOR_H
11 #define IPHOTONCALIBRATOR_H
12 
13 // LArSoft includes
16 
17 // ART includes
18 #include "fhiclcpp/ParameterSet.h"
22 
23 
24 
25 
26 namespace calib
27 {
31  {
32  public:
33  // Make non-copiable
34  IPhotonCalibrator(IPhotonCalibrator const &) = delete;
38 
40  virtual ~IPhotonCalibrator() = default;
41 
42  virtual double PE(double adcs, int opchannel) const = 0;
43  virtual bool UseArea() const = 0;
44 
47  // virtual double GeV(double PE, int opchannel, TVector3 pos) = 0;
48 
50  double PE(const recob::OpHit& oh) const
51  {
52  return oh.PE();
53  }
54 
55  double PE(const recob::OpFlash& of) const
56  {
57  return of.TotalPE();
58  }
59 
60  // double GeV(const recob::OpHit& oh, TVector3 pos)
61  //{
62  // return GeV(oh.PE(), oh.OpChannel(), pos);
63  //}
64 
65  //double GeV(const OpFlash& of, TVector3 pos)
66  //{
67  // // This function would be in the .cxx in practice
68  // const std::vector<double>& pes = of.PEs();
69  // double ret = 0;
70  // for(int chan = 0; chan < pes.size(); ++chan)
71  // ret += GeV(of.PE(chan), chan, pos);
72  // return ret;
73  //}
74 
75 
76  };
77 
78 }
79 
80 
81 #endif
IPhotonCalibrator & operator=(IPhotonCalibrator const &)=delete
virtual bool UseArea() const =0
virtual double PE(double adcs, int opchannel) const =0
double PE(const recob::OpHit &oh) const
Convenience.
virtual ~IPhotonCalibrator()=default
double PE() const
Definition: OpHit.h:69
double PE(const recob::OpFlash &of) const
double TotalPE() const
Definition: OpFlash.cxx:56