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