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 private: 00055 00056 double resRPC; 00057 double timOff; 00058 double dtimCs; 00059 double resEle; 00060 double sspeed; 00061 double lbGate; 00062 double lbGateNew; 00063 00064 bool cosmics; 00065 00066 CLHEP::HepRandomEngine* rndEngine; 00067 CLHEP::RandGaussQ *gaussian_; 00068 CLHEP::RandPoissonQ *poissonDistribution_; 00069 CLHEP::RandFlat *flatDistribution_; 00070 RPCSimSetUp * theSimSetUp; 00071 }; 00072 #endif