1 #ifndef MU_END_STRIP_ELECTRONICS_SIM_H 2 #define MU_END_STRIP_ELECTRONICS_SIM_H 25 class HepRandomEngine;
38 CLHEP::HepRandomEngine*);
45 CSCAnalogSignal makeNoiseSignal(
int element, CLHEP::HepRandomEngine*)
override;
47 void createDigi(
int istrip,
const CSCAnalogSignal & signal, std::vector<CSCStripDigi> &
result, CLHEP::HepRandomEngine*);
51 void initParameters()
override;
53 int readoutElement(
int strip)
const override;
55 float calculateAmpResponse(
float t)
const override;
58 void runComparator(std::vector<CSCComparatorDigi> & result, CLHEP::HepRandomEngine*);
61 float comparatorReading(
const CSCAnalogSignal & signal,
float time, CLHEP::HepRandomEngine*)
const;
64 void getReadoutRange(
int inputStrip,
65 int & minStrip,
int & maxStrip);
69 getKeyStrips(
const std::vector<CSCComparatorDigi> & comparators)
const;
73 getKeyStripsFromMC()
const;
77 channelsToRead(
const std::list<int> & keyStrips,
int window)
const;
79 void fillStripDigis(
const std::list<int> & keyStrips,
81 CLHEP::HepRandomEngine*);
83 void addCrosstalk(CLHEP::HepRandomEngine*);
85 int thisStrip,
int otherStrip, CLHEP::HepRandomEngine*);
88 void selfTest()
const;
double theComparatorTimeOffset
int theComparatorClockJump
float theComparatorDeadTime
void setStripConditions(CSCStripConditions *cond)
CSCStripConditions * theStripConditions
std::vector< double > theSCATimingOffsets
float theComparatorRMSOffset
def window(xmin, xmax, ymin, ymax, x=0, y=0, width=100, height=100, xlogbase=None, ylogbase=None, minusInfinity=-1000, flipx=False, flipy=True)
CSCCrosstalkGenerator * theCrosstalkGenerator
float theComparatorThreshold
double theComparatorTimeBinOffset
float theComparatorSaturation
double theComparatorSamplingTime
float theAverageTimeOfFlight
CSCStripAmpResponse theAmpResponse