Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:43

0001 #ifndef MU_END_WIRE_ELECTRONICS_SIM_H
0002 #define MU_END_WIRE_ELECTRONICS_SIM_H
0003 
0004 /** \class CSCWireElectronicsSim
0005  * Model the readout electronics chain for EMU CSC wires
0006  *
0007  * \author Rick Wilkinson
0008  *
0009  */
0010 
0011 #include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h"
0012 #include "SimMuon/CSCDigitizer/src/CSCBaseElectronicsSim.h"
0013 
0014 // declarations
0015 class CSCLayer;
0016 class CSCDetectorHit;
0017 class CSCWireDigi;
0018 class CSCAnalogSignal;
0019 
0020 class CSCWireElectronicsSim : public CSCBaseElectronicsSim {
0021 public:
0022   /// configurable parameters
0023   CSCWireElectronicsSim(const edm::ParameterSet &p);
0024 
0025   void setFraction(float newFraction) { theFraction = newFraction; };
0026 
0027   void fillDigis(CSCWireDigiCollection &digis, CLHEP::HepRandomEngine *);
0028 
0029 private:
0030   /// initialization for each layer
0031   void initParameters() override;
0032 
0033   // will return wire group, given wire.
0034   int readoutElement(int element) const override;
0035 
0036   float calculateAmpResponse(float t) const override;
0037 
0038   virtual float timeOfFlightCalibration(int wireGroup) const;
0039 
0040   /// we code strip indices from 1-80, and wire indices start at 100
0041   int channelIndex(int channel) const override { return channel + 100; }
0042 
0043   // member data
0044   // the fractional discriminator returns the time when the signal
0045   // reaches this fraction of its maximum
0046   float theFraction;
0047   float theWireNoise;
0048   float theWireThreshold;
0049 };
0050 
0051 #endif