1 #ifndef MU_END_BASE_ELECTRONICS_SIM_H 2 #define MU_END_BASE_ELECTRONICS_SIM_H 34 class HepRandomEngine;
39 typedef std::map<int, CSCAnalogSignal, std::less<int>>
CSCSignalMap;
44 void simulate(
const CSCLayer *
layer,
const std::vector<CSCDetectorHit> &inputHits, CLHEP::HepRandomEngine *);
73 void setNoise(
float rmsNoise,
float noiseSigmaThreshold);
82 void addNoise(CLHEP::HepRandomEngine *);
std::vector< double > theBunchTimingOffsets
double averageTimeOfFlight(const DetId &detId) const
CSCBaseElectronicsSim(const edm::ParameterSet &p)
const CSCLayer * theLayer
const CSCChamberSpecs * theSpecs
CSCSignalMap theSignalMap
const CSCLayerGeometry * theLayerGeometry
const DigiSimLinks & digiSimLinks() const
CSCDetId layerId() const
the CSCDetId corresponding to the current layer
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)
virtual CSCAnalogSignal makeNoiseSignal(int element, CLHEP::HepRandomEngine *)
void setLayer(const CSCLayer *layer)
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
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 & find(int element, CLHEP::HepRandomEngine *)
DigiSimLinks theDigiSimLinks
void addNoise(CLHEP::HepRandomEngine *)
void simulate(const CSCLayer *layer, const std::vector< CSCDetectorHit > &inputHits, CLHEP::HepRandomEngine *)
virtual void initParameters()=0
virtual float signalDelay(int element, float pos) const
CSCAnalogSignal & add(const CSCAnalogSignal &, CLHEP::HepRandomEngine *)
virtual ~CSCBaseElectronicsSim()
std::vector< double > theTimingCalibrationError
virtual int channelIndex(int channel) const
lets users map channels to different indices for links