CMS 3D CMS Logo

CSCCrosstalkGenerator.cc
Go to the documentation of this file.
3 
5  int nBins = inputSignal.getSize();
6  float binSize = inputSignal.getBinSize();
7  std::vector<float> binValues(nBins);
8 
9  for(int outputBin = 0; outputBin < nBins; ++outputBin) {
10  float aTime = outputBin*binSize - theDelay;
11  float slope = inputSignal.getValue(aTime) - inputSignal.getValue(aTime-1.);
12  binValues[outputBin] = slope * theCrosstalk
13  + theResistiveFraction * inputSignal.getValue(aTime);
14  }
15 
16  return CSCAnalogSignal(0, binSize, binValues, 0., inputSignal.getTimeOffset());
17 }
18 
19 
20 float CSCCrosstalkGenerator::ratio(const CSCAnalogSignal & crosstalkSignal, const CSCAnalogSignal & signal) const
21 {
22 
23  float maxFirst = 0., maxSecond = 0.;
24  int nbins = signal.getSize();
25  for(int i = 1; i < nbins; ++i)
26  {
27  float v1 = signal.getBinValue(i);
28  float v2 = crosstalkSignal.getBinValue(i);
29 
30  if(v1 > maxFirst) maxFirst = v1;
31  if(v2 > maxSecond) maxSecond = v2;
32 
33  }
34 
35  return maxSecond/maxFirst;
36 }
37 
float getBinValue(int i) const
float getBinSize() const
static const double slope[3]
float ratio(const CSCAnalogSignal &crosstalkSignal, const CSCAnalogSignal &signal) const
analyzes the ratio between two signals.
float getTimeOffset() const
int getSize() const
CSCAnalogSignal getCrosstalk(const CSCAnalogSignal &inputSignal) const
float getValue(float t) const