00001 #ifndef SimMuon_RPCDigitizer_h 00002 #define SimMuon_RPCDigitizer_h 00003 // 00004 00011 #include "DataFormats/Common/interface/DetSetVector.h" 00012 #include "SimDataFormats/TrackerDigiSimLink/interface/StripDigiSimLink.h" 00013 #include "SimDataFormats/RPCDigiSimLink/interface/RPCDigiSimLink.h" 00014 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h" 00015 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h" 00016 #include "Geometry/RPCGeometry/interface/RPCGeometry.h" 00017 #include "SimDataFormats/CrossingFrame/interface/MixCollection.h" 00018 #include <string> 00019 #include "CLHEP/Random/RandomEngine.h" 00020 00021 namespace edm{ 00022 class ParameterSet; 00023 } 00024 00025 class RPCRoll; 00026 class RPCSim; 00027 class RPCSimSetUp; 00028 class RPCDigitizer 00029 { 00030 public: 00031 typedef edm::DetSetVector<RPCDigiSimLink> RPCDigiSimLinks; 00032 RPCDigitizer(const edm::ParameterSet& config, CLHEP::HepRandomEngine&); 00033 00034 ~RPCDigitizer(); 00035 00038 void doAction(MixCollection<PSimHit> & simHits, 00039 RPCDigiCollection & rpcDigis, 00040 RPCDigiSimLinks & rpcDigiSimLink); 00041 00042 00044 void setGeometry(const RPCGeometry * geom) {theGeometry = geom;} 00045 00046 void setRPCSimSetUp(RPCSimSetUp *simsetup){theSimSetUp = simsetup;} 00047 00048 RPCSimSetUp* getRPCSimSetUp(){ return theSimSetUp; } 00049 00051 const RPCRoll * findDet(int detId) const; 00052 00053 private: 00054 const RPCGeometry * theGeometry; 00055 RPCSim* theRPCSim; 00056 RPCSimSetUp * theSimSetUp; 00057 std::string theName; 00058 00059 }; 00060 00061 #endif 00062