00001 #ifndef RPCDigitizer_RPCSimAverage_h 00002 #define RPCDigitizer_RPCSimAverage_h 00003 00010 #include "SimMuon/RPCDigitizer/src/RPCSim.h" 00011 #include "SimMuon/RPCDigitizer/src/RPCSynchronizer.h" 00012 00013 #include<cstring> 00014 #include<iostream> 00015 #include<fstream> 00016 #include<string> 00017 #include<vector> 00018 #include<stdlib.h> 00019 #include <FWCore/Framework/interface/EventSetup.h> 00020 00021 00022 class RPCGeometry; 00023 00024 namespace CLHEP { 00025 class HepRandomEngine; 00026 class RandFlat; 00027 class RandPoissonQ; 00028 } 00029 00030 class RPCSimAverage : public RPCSim 00031 { 00032 public: 00033 00034 RPCSimAverage(const edm::ParameterSet& config); 00035 ~RPCSimAverage(); 00036 00037 void simulate(const RPCRoll* roll, 00038 const edm::PSimHitContainer& rpcHits); 00039 00040 void simulateNoise(const RPCRoll*); 00041 00042 void setRandomEngine(CLHEP::HepRandomEngine& eng); 00043 00044 int getClSize(float posX); 00045 00046 private: 00047 void init(){}; 00048 private: 00049 double aveEff; 00050 double aveCls; 00051 double resRPC; 00052 double timOff; 00053 double dtimCs; 00054 double resEle; 00055 double sspeed; 00056 double lbGate; 00057 bool rpcdigiprint; 00058 00059 int N_hits; 00060 int nbxing; 00061 double rate; 00062 double gate; 00063 00064 std::map< int, std::vector<double> > clsMap; 00065 std::vector<double> sum_clsize; 00066 std::ifstream *infile; 00067 00068 RPCSynchronizer* _rpcSync; 00069 00070 // CLHEP::HepRandomEngine* rndEngine; 00071 CLHEP::RandFlat* flatDistribution_; 00072 CLHEP::RandFlat* flatDistribution1; 00073 CLHEP::RandFlat* flatDistribution2; 00074 CLHEP::RandPoissonQ *poissonDistribution; 00075 }; 00076 #endif