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 *);
94 virtual float signalDelay(
int element,
float pos)
const;
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
const CSCLayerGeometry * theLayerGeometry
uint16_t *__restrict__ id
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 *)
constexpr std::array< uint8_t, layerIndexSize > layer
void setLayer(const CSCLayer *layer)
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)
CSCDetId layerId() const
the CSCDetId corresponding to the current layer
CSCAnalogSignal & find(int element, CLHEP::HepRandomEngine *)
DigiSimLinks theDigiSimLinks
void addNoise(CLHEP::HepRandomEngine *)
virtual int channelIndex(int channel) const
lets users map channels to different indices for links
void simulate(const CSCLayer *layer, const std::vector< CSCDetectorHit > &inputHits, CLHEP::HepRandomEngine *)
virtual void initParameters()=0
double averageTimeOfFlight(const DetId &detId) const
CSCAnalogSignal & add(const CSCAnalogSignal &, CLHEP::HepRandomEngine *)
virtual ~CSCBaseElectronicsSim()
std::vector< double > theTimingCalibrationError