1 #ifndef MU_END_BASE_ELECTRONICS_SIM_H
2 #define MU_END_BASE_ELECTRONICS_SIM_H
23 #include "CLHEP/Random/RandGaussQ.h"
38 typedef std::map<int, CSCAnalogSignal, std::less<int> >
CSCSignalMap;
46 const std::vector<CSCDetectorHit> & inputHits);
75 void setNoise(
float rmsNoise,
float noiseSigmaThreshold);
std::vector< double > theBunchTimingOffsets
CSCBaseElectronicsSim(const edm::ParameterSet &p)
virtual float signalDelay(int element, float pos) const
const CSCLayer * theLayer
const CSCChamberSpecs * theSpecs
CSCSignalMap theSignalMap
virtual CSCAnalogSignal makeNoiseSignal(int element)
const CSCLayerGeometry * theLayerGeometry
std::multimap< int, CSCDetectorHit, std::less< int > > DetectorHitMap
void combineAnalogSignals(const std::vector< CSCAnalogSignal > &)
std::map< int, CSCAnalogSignal, std::less< int > > CSCSignalMap
virtual float calculateAmpResponse(float t) const =0
CSCAnalogSignal amplifySignal(const CSCDetectorHit &)
void setNoise(float rmsNoise, float noiseSigmaThreshold)
void setRandomEngine(CLHEP::HepRandomEngine &engine)
void setLayer(const CSCLayer *layer)
CLHEP::RandGaussQ * theRandGaussQ
const DigiSimLinks & digiSimLinks() const
CSCAnalogSignal theAmpResponse
void setLayerId(const CSCDetId &id)
for standalone apps who don't calculate it from the geometry
std::vector< double > theSignalPropagationSpeed
edm::DetSet< StripDigiSimLink > DigiSimLinks
virtual int readoutElement(int element) const =0
virtual void addLinks(int channelIndex)
DetectorHitMap theDetectorHitMap
void setSignalTimeRange(double startTime, double stopTime)
CSCAnalogSignal & add(const CSCAnalogSignal &)
void simulate(const CSCLayer *layer, const std::vector< CSCDetectorHit > &inputHits)
CSCDetId layerId() const
the CSCDetId corresponding to the current layer
DigiSimLinks theDigiSimLinks
CSCAnalogSignal & find(int element)
virtual int channelIndex(int channel) const
lets users map channels to different indices for links
virtual void initParameters()=0
double averageTimeOfFlight(const DetId &detId) const
the average time-of-flight from the interaction point to the given detector
virtual ~CSCBaseElectronicsSim()
std::vector< double > theTimingCalibrationError