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