Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:42

0001 #ifndef MU_END_CROSSTALK_GENERATOR_H
0002 #define MU_END_CROSSTALK_GENERATOR_H
0003 
0004 class CSCAnalogSignal;
0005 
0006 /** \class CSCCrosstalkGenerator
0007  *
0008  * Cross-talk generator for digitization simulation of Endcap Muon CSCs.
0009  * We model crosstalk by making the signal on a neighboring
0010  *    strip or wire proportional to the slope of the original
0011  *    signal.  The constant should be chosen to give the appropriate
0012  *    level of crosstalk, maybe 10% of the signal. The user is responsible
0013  *    for subtracting the crosstalk from the input signal,
0014  *    and adding the crosstalk signal to the neighbors.
0015  *
0016  *  \author Rick Wilkinson,
0017  */
0018 
0019 class CSCCrosstalkGenerator {
0020 public:
0021   CSCCrosstalkGenerator() : theCrosstalk(0), theDelay(0), theResistiveFraction(0.){};
0022 
0023   void setParameters(float crosstalk, float delay, float resistiveFraction) {
0024     theCrosstalk = crosstalk;
0025     theDelay = delay;
0026     theResistiveFraction = resistiveFraction;
0027   }
0028 
0029   CSCAnalogSignal getCrosstalk(const CSCAnalogSignal &inputSignal) const;
0030 
0031   /// analyzes the ratio between two signals.
0032   float ratio(const CSCAnalogSignal &crosstalkSignal, const CSCAnalogSignal &signal) const;
0033 
0034 private:
0035   float theCrosstalk;
0036   float theDelay;
0037   // what fraction of the neighboring signal goes unaltered onto this element
0038   float theResistiveFraction;
0039 };
0040 
0041 #endif