00001 #ifndef GEMDigitizer_GEMSynchronizer_h 00002 #define GEMDigitizer_GEMSynchronizer_h 00003 00012 #include "CLHEP/Random/Random.h" 00013 00014 #include <FWCore/Framework/interface/Frameworkfwd.h> 00015 00016 class PSimHit; 00017 class GEMSimSetUp; 00018 00019 namespace CLHEP 00020 { 00021 class RandGaussQ; 00022 } 00023 00024 class GEMSynchronizer 00025 { 00026 public: 00027 00028 GEMSynchronizer(const edm::ParameterSet& config); 00029 00030 ~GEMSynchronizer(); 00031 00032 int getSimHitBx(const PSimHit*); 00033 00034 void setGEMSimSetUp(GEMSimSetUp *simsetup) { simSetUp_ = simsetup; } 00035 00036 GEMSimSetUp* getGEMSimSetUp() { return simSetUp_; } 00037 00038 void setRandomEngine(CLHEP::HepRandomEngine& eng); 00039 00040 private: 00041 00042 double timeResolution_; 00043 double averageShapingTime_; 00044 double timeJitter_; 00045 double signalPropagationSpeed_; 00046 bool cosmics_; 00047 double bxwidth_; 00048 int minBunch_; 00049 00050 CLHEP::RandGaussQ *gauss1_; 00051 CLHEP::RandGaussQ *gauss2_; 00052 00053 GEMSimSetUp * simSetUp_; 00054 00055 }; 00056 00057 #endif