1 #ifndef MU_END_STRIP_ELECTRONICS_SIM_H 2 #define MU_END_STRIP_ELECTRONICS_SIM_H 25 class HepRandomEngine;
37 void fillMissingLayer(
const CSCLayer *layer,
40 CLHEP::HepRandomEngine *);
44 CSCAnalogSignal makeNoiseSignal(
int element, CLHEP::HepRandomEngine *)
override;
46 void createDigi(
int istrip,
48 std::vector<CSCStripDigi> &
result,
49 CLHEP::HepRandomEngine *);
53 void initParameters()
override;
55 int readoutElement(
int strip)
const override;
57 float calculateAmpResponse(
float t)
const override;
60 void runComparator(std::vector<CSCComparatorDigi> &result, CLHEP::HepRandomEngine *);
63 float comparatorReading(
const CSCAnalogSignal &signal,
float time, CLHEP::HepRandomEngine *)
const;
66 void getReadoutRange(
int inputStrip,
int &minStrip,
int &maxStrip);
69 std::list<int> getKeyStrips(
const std::vector<CSCComparatorDigi> &comparators)
const;
72 std::list<int> getKeyStripsFromMC()
const;
75 std::list<int> channelsToRead(
const std::list<int> &keyStrips,
int window)
const;
77 void fillStripDigis(
const std::list<int> &keyStrips,
CSCStripDigiCollection &digis, CLHEP::HepRandomEngine *);
79 void addCrosstalk(CLHEP::HepRandomEngine *);
80 void addCrosstalk(
const CSCAnalogSignal &signal,
int thisStrip,
int otherStrip, CLHEP::HepRandomEngine *);
82 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