29 #ifndef SIGNALSHAPINGSERVICEDUNE34KT_H 30 #define SIGNALSHAPINGSERVICEDUNE34KT_H 41 class DetectorClocksData;
42 class DetectorPropertiesData;
63 double GetASICGain(
unsigned int const channel)
const;
64 double GetShapingTime(
unsigned int const channel)
const;
66 double GetRawNoise(
unsigned int const channel)
const ;
67 double GetDeconNoise(
unsigned int const channel)
const;
73 unsigned int const channel)
const;
79 unsigned int channel, std::vector<T>&
func)
const;
84 unsigned int channel, std::vector<T>& func)
const;
101 void SetElectResponse(
double shapingtime,
double gain);
150 TH1F *fFieldResponseHist[3];
151 TH1D *fFilterHist[3];
184 int time_offset = FieldResponseTOffset(clockData, channel);
187 if (time_offset <=0){
188 temp.assign(func.begin(),func.begin()-time_offset);
189 func.erase(func.begin(),func.begin()-time_offset);
190 func.insert(func.end(),temp.begin(),temp.end());
192 temp.assign(func.end()-time_offset,func.end());
193 func.erase(func.end()-time_offset,func.end());
194 func.insert(func.begin(),temp.begin(),temp.end());
206 int time_offset = FieldResponseTOffset(clockData, channel);
209 if (time_offset <=0){
210 temp.assign(func.end()+time_offset,func.end());
211 func.erase(func.end()+time_offset,func.end());
212 func.insert(func.begin(),temp.begin(),temp.end());
214 temp.assign(func.begin(),func.begin()+time_offset);
215 func.erase(func.begin(),func.begin()+time_offset);
216 func.insert(func.end(),temp.begin(),temp.end());
std::vector< DoubleVec > GetNoiseFactVec()
double fIndVFieldRespAmp
amplitude of response to field
TF1 * fIndUFilterFunc
Parameterized induction filter function.
std::vector< TComplex > fIndVFilter
std::vector< double > fShapeTimeConst
time constants for exponential shaping
std::vector< double > fFieldResponseTOffset
Time offset for field response in ns.
void Deconvolute(std::vector< T > &func) const
Namespace for general, non-LArSoft-specific utilities.
TF1 * fIndVFieldFunc
Parameterized induction field shape function.
bool fUseFunctionFieldShape
Flag that allows to use a parameterized field response instead of the hardcoded version.
bool fInit
Initialization flag.
util::SignalShaping fColSignalShaping
std::vector< TComplex > fColFilter
util::SignalShaping fIndVSignalShaping
std::vector< double > fIndUFieldResponse
std::vector< double > fCalibResponseTOffset
void Convolute(std::vector< T > &func) const
double fInputFieldRespSamplingPeriod
Sampling period in the input field response.
Generic class for shaping signals on wires.
TF1 * fColFilterFunc
Parameterized collection filter function.
TF1 * fColFieldFunc
Parameterized collection field shape function.
double fColFieldRespAmp
amplitude of response to field
virtual void reconfigure(fhicl::ParameterSet const &pset)
std::vector< DoubleVec > fNoiseFactVec
#define DECLARE_ART_SERVICE(svc, scope)
std::vector< double > fElectResponse
TF1 * fIndUFieldFunc
Parameterized induction field shape function.
General LArSoft Utilities.
bool fUseHistogramFieldShape
Flag that turns on field response shapes from histograms.
double fIndUFieldRespAmp
amplitude of response to field
void Deconvolute(detinfo::DetectorClocksData const &clockData, unsigned int channel, std::vector< T > &func) const
bool fGetFilterFromHisto
Flag that allows to use a filter function from a histogram instead of the functional dependency...
std::vector< double > fIndVFieldResponse
std::vector< double > fASICGainInMVPerFC
Contains all timing reference information for the detector.
int fNFieldBins
number of bins for field response
util::SignalShaping fIndUSignalShaping
double fADCPerPCAtLowestASICGain
Pulse amplitude gain for a 1 pc charge impulse after convoluting it the with field and electronics re...
void Convolute(detinfo::DetectorClocksData const &clockData, unsigned int channel, std::vector< T > &func) const
std::vector< double > fColFieldResponse
std::vector< TComplex > fIndUFilter
TF1 * fIndVFilterFunc
Parameterized induction filter function.
std::vector< double > DoubleVec