File indexing completed on 2024-09-10 02:59:12
0001 #ifndef RPCDigitizer_RPCSimAverageNoiseEff_h
0002 #define RPCDigitizer_RPCSimAverageNoiseEff_h
0003
0004
0005
0006
0007
0008
0009
0010 #include "SimMuon/RPCDigitizer/src/RPCSim.h"
0011 #include "SimMuon/RPCDigitizer/src/RPCSynchronizer.h"
0012
0013 #include <cstring>
0014 #include <iostream>
0015 #include <fstream>
0016 #include <string>
0017 #include <vector>
0018 #include <cstdlib>
0019 #include "FWCore/Framework/interface/EventSetup.h"
0020 #include "SimMuon/RPCDigitizer/src/RPCSimSetUp.h"
0021
0022 class RPCGeometry;
0023
0024
0025 namespace CLHEP {
0026 class HepRandomEngine;
0027 }
0028
0029 class RPCSimAverageNoiseEff : public RPCSim {
0030 public:
0031 RPCSimAverageNoiseEff(const edm::ParameterSet& config);
0032 ~RPCSimAverageNoiseEff() override;
0033
0034 void simulate(const RPCRoll* roll, const edm::PSimHitContainer& rpcHits, CLHEP::HepRandomEngine*) override;
0035
0036 void simulateNoise(const RPCRoll*, CLHEP::HepRandomEngine*) override;
0037
0038 int getClSize(float posX, CLHEP::HepRandomEngine*);
0039
0040 private:
0041 void init() override {}
0042
0043 private:
0044 double aveEff;
0045 double aveCls;
0046 double resRPC;
0047 double timOff;
0048 double dtimCs;
0049 double resEle;
0050 double sspeed;
0051 double lbGate;
0052 bool rpcdigiprint;
0053
0054 int N_hits;
0055 int nbxing;
0056 double rate;
0057 double gate;
0058 double frate;
0059
0060 std::map<int, std::vector<double> > clsMap;
0061 std::vector<double> sum_clsize;
0062 std::ifstream* infile;
0063
0064 RPCSynchronizer* _rpcSync;
0065 };
0066 #endif