00001 #ifndef RPCDigitizer_RPCSynchronizer_h 00002 #define RPCDigitizer_RPCSynchronizer_h 00003 00011 #include<cstring> 00012 #include<iostream> 00013 #include<fstream> 00014 #include<string> 00015 #include<vector> 00016 #include<stdlib.h> 00017 00018 //#include "CLHEP/config/CLHEP.h" 00019 #include "CLHEP/Random/Random.h" 00020 #include "CLHEP/Random/RandFlat.h" 00021 #include "CLHEP/Random/RandGaussQ.h" 00022 #include "CLHEP/Random/RandPoissonQ.h" 00023 00024 #include <FWCore/Framework/interface/Frameworkfwd.h> 00025 #include <FWCore/Framework/interface/EDAnalyzer.h> 00026 #include <FWCore/Framework/interface/Event.h> 00027 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00028 #include "FWCore/ServiceRegistry/interface/Service.h" 00029 #include <set> 00030 00031 class PSimHit; 00032 class RPCSimSetUp; 00033 00034 namespace edm{ 00035 class ParameterSet; 00036 } 00037 00038 namespace CLHEP { 00039 class RandGaussianQ; 00040 class RandPoissonQ; 00041 class RandFlat; 00042 } 00043 00044 class RPCSynchronizer 00045 { 00046 public: 00047 RPCSynchronizer(const edm::ParameterSet& config); 00048 ~RPCSynchronizer(); 00049 00050 int getSimHitBx(const PSimHit*); 00051 void setRPCSimSetUp(RPCSimSetUp *simsetup){theSimSetUp = simsetup;} 00052 RPCSimSetUp* getRPCSimSetUp(){ return theSimSetUp; } 00053 00054 void setRandomEngine(CLHEP::HepRandomEngine& eng); 00055 00056 private: 00057 00058 double resRPC; 00059 double timOff; 00060 double dtimCs; 00061 double resEle; 00062 double sspeed; 00063 double cspeed; 00064 double lbGate; 00065 double lbGateNew; 00066 double cosmicPar; 00067 00068 bool cosmics; 00069 00070 CLHEP::RandGaussQ *gauss1; 00071 CLHEP::RandGaussQ *gauss2; 00072 RPCSimSetUp * theSimSetUp; 00073 00074 }; 00075 #endif 00076