29 #ifndef SIGNALSHAPINGSERVICELARIAT_H
30 #define SIGNALSHAPINGSERVICELARIAT_H
34 #include "fhiclcpp/ParameterSet.h"
35 #include "art/Framework/Services/Registry/ActivityRegistry.h"
36 #include "art/Framework/Services/Registry/ServiceDeclarationMacros.h"
41 namespace detinfo {
class DetectorClocksData; }
56 art::ActivityRegistry& reg);
64 double GetASICGain(
unsigned int const channel)
const;
67 double GetRawNoise(
unsigned int const channel)
const;
75 unsigned int const channel)
const;
80 unsigned int channel, std::vector<T>& func)
const;
85 unsigned int channel, std::vector<T>& func)
const;
180 unsigned int channel, std::vector<T>& func)
const
188 if (time_offset <= 0) {
189 temp.assign(func.begin(),func.begin()-time_offset);
190 func.erase(func.begin(),func.begin()-time_offset);
191 func.insert(func.end(),temp.begin(),temp.end());
193 temp.assign(func.end()-time_offset,func.end());
194 func.erase(func.end()-time_offset,func.end());
195 func.insert(func.begin(),temp.begin(),temp.end());
203 unsigned int channel, std::vector<T>& func)
const
208 int time_offset = FieldResponseTOffset(clockData, channel);
211 if (time_offset <= 0) {
212 temp.assign(func.end()+time_offset,func.end());
213 func.erase(func.end()+time_offset,func.end());
214 func.insert(func.begin(),temp.begin(),temp.end());
216 temp.assign(func.begin(),func.begin()+time_offset);
217 func.erase(func.begin(),func.begin()+time_offset);
218 func.insert(func.end(),temp.begin(),temp.end());
~SignalShapingServiceSBND()
double GetDeconNoise(unsigned int const channel) const
void Convolute(detinfo::DetectorClocksData const &clockData, unsigned int channel, std::vector< T > &func) const
std::vector< double > DoubleVec
void Deconvolute(std::vector< T > &func) const
TH1 const * fFilterHist[3]
Histogram used to hold the collection filter, hardcoded for the time being.
bool fInit
Initialization flag.
enum geo::_plane_proj View_t
Enumerate the possible plane projections.
std::vector< double > fShapeTimeConst
time constants for exponential shaping
std::vector< double > fColFieldResponse
TF1 * fColFilterFunc
Parameterized collection filter function.
double fIndUFieldRespAmp
amplitude of response to field in U plane
std::vector< TComplex > fIndUFilter
double GetRawNoise(unsigned int const channel) const
void SetElectResponse(double shapingtime, double gain)
double fInputFieldRespSamplingPeriod
Sampling Period in the input field response.
TF1 * fIndVFieldFunc
Parameterized induction field shape function for V plane.
int fNFieldBins
number of bins for field response
TF1 * fColFieldFunc
Parameterized collection field shape function.
void Convolute(std::vector< T > &func) const
bool fUseSimpleFieldShape
Flag that turns on new field response shapes.
Generic class for shaping signals on wires.
std::vector< double > fFieldResponseTOffset
Time offset for field response in ns.
std::vector< TComplex > fColFilter
bool fUseFunctionFieldShape
Flag that allows to use a parameterized field response instead of the hardcoded version.
const util::SignalShaping & SignalShaping(unsigned int channel) const
TF1 * fIndUFieldFunc
Parameterized induction field shape function for U plane.
bool fUseHistogramFieldShape
Flag that truns on field response shaped from histograms.
double GetASICGain(unsigned int const channel) const
TF1 * fIndUFilterFunc
Parameterized induction filter function for U plane.
std::vector< DoubleVec > fNoiseFactVec
Pulse amplitude gain for a 1 pc charge impulse after convoluting it with field and electronics respon...
void SetResponseSampling()
TH1 const * fFieldResponseHist[3]
Histogram used to hold the field response, hardcoded for the time being.
std::vector< TComplex > fIndVFilter
util::SignalShaping fColSignalShaping
double fColFieldRespAmp
amplitude of response to field
SignalShapingServiceSBND(const fhicl::ParameterSet &pset, art::ActivityRegistry ®)
std::vector< double > fASICGainInMVPerFC
double fIndVFieldRespAmp
amplitude of response to field in V plane
Encapsulate the construction of a single detector plane.
std::vector< double > fElectResponse
Contains all timing reference information for the detector.
util::SignalShaping fIndVSignalShaping
bool fGetFilterFromHisto
Flag that allows to use a filter function from a histogram instead of the functional dependency...
std::vector< double > fIndVFieldResponse
int FieldResponseTOffset(detinfo::DetectorClocksData const &clockData, unsigned int const channel) const
void Deconvolute(detinfo::DetectorClocksData const &clockData, unsigned int channel, std::vector< T > &func) const
std::vector< DoubleVec > GetNoiseFactVec()
geo::View_t GetView(unsigned int chan) const
util::SignalShaping fIndUSignalShaping
TF1 * fIndVFilterFunc
Parameterized induction filter function for V plane.
std::vector< double > fIndUFieldResponse
double fADCPerPCAtLowestASICGain
art framework interface to geometry description
Encapsulate the construction of a single detector plane.
void reconfigure(const fhicl::ParameterSet &pset)