All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IResponse.h
Go to the documentation of this file.
1 ///////////////////////////////////////////////////////////////////////
2 ///
3 /// \file IResponse.h
4 ///
5 /// \brief This is the interface class for a tool to handle the field response
6 /// It is assumed that the field response is described in a to be
7 /// input histogram, the member
8 ///
9 /// \author T. Usher
10 ///
11 ////////////////////////////////////////////////////////////////////////
12 
13 #ifndef IResponse_H
14 #define IResponse_H
15 
16 #include "fhiclcpp/ParameterSet.h"
21 
22 namespace icarusutil
23 {
24  class SignalShapingICARUS;
25 }
26 
27 namespace art
28 {
29  class TFileDirectory;
30 }
31 
32 namespace icarus_tool
33 {
34 
35 class IResponse
36 {
37 public:
38  virtual ~IResponse() noexcept = default;
39 
40  /**
41  * @brief Setup routines
42  *
43  * @param output the object containting the art output
44  * @param clusHitPairVector List of 3D hits to output as "extreme" space points
45  */
46  virtual void configure(const fhicl::ParameterSet& pset) = 0;
47  virtual void setResponse(double sampling_rate, double weight) = 0; // rate in ns
48  virtual void outputHistograms(double sampling_rate, art::TFileDirectory&) const = 0;
49 
50  /**
51  * @brief Return the plane these functions represent
52  */
53  virtual size_t getPlane() const = 0;
54 
55  /**
56  * @brief Recover the individual response elements
57  */
58  virtual const IFieldResponse* getFieldResponse() const = 0;
59  virtual const IElectronicsResponse* getElectronicsResponse() const = 0;
60  virtual const IFilter* getFilter() const = 0;
61 
62  /**
63  * @brief here recover the combined response elements
64  *
65  * @param output the object containting the art output
66  * @param clusHitPairVector List of 3D hits to output as "extreme" space points
67  */
68  virtual size_t getNumberTimeSamples() const = 0;
69  virtual const icarusutil::TimeVec& getResponse() const = 0;
70  virtual const icarusutil::FrequencyVec& getConvKernel() const = 0;
71  virtual const icarusutil::FrequencyVec& getDeconvKernel() const = 0;
72  virtual double getTOffset() const = 0;
73 };
74 }
75 
76 #endif
virtual const IFieldResponse * getFieldResponse() const =0
Recover the individual response elements.
virtual double getTOffset() const =0
virtual const icarusutil::FrequencyVec & getConvKernel() const =0
virtual const IFilter * getFilter() const =0
virtual const IElectronicsResponse * getElectronicsResponse() const =0
std::vector< ComplexVal > FrequencyVec
virtual const icarusutil::TimeVec & getResponse() const =0
std::vector< SigProcPrecision > TimeVec
virtual void setResponse(double sampling_rate, double weight)=0
virtual size_t getNumberTimeSamples() const =0
here recover the combined response elements
This is the interface class for a tool to handle a filter for the overall response.
virtual ~IResponse() noexcept=default
virtual const icarusutil::FrequencyVec & getDeconvKernel() const =0
virtual void configure(const fhicl::ParameterSet &pset)=0
Setup routines.
virtual void outputHistograms(double sampling_rate, art::TFileDirectory &) const =0
This is the interface class for a tool to handle the field response It is assumed that the field resp...
virtual size_t getPlane() const =0
Return the plane these functions represent.
This is the interface class for a tool to handle the electronics response.
Useful definitions.
double sampling_rate(DetectorClocksData const &data)
Returns the period of the TPC readout electronics clock.