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 00020 namespace edm{ 00021 class ParameterSet; 00022 } 00023 00024 class RPCRoll; 00025 class RPCSim; 00026 class RPCSimSetUp; 00027 class RPCDigitizer 00028 { 00029 public: 00030 typedef edm::DetSetVector<RPCDigiSimLink> RPCDigiSimLinks; 00031 RPCDigitizer(const edm::ParameterSet& config); 00032 00033 ~RPCDigitizer(); 00034 00037 void doAction(MixCollection<PSimHit> & simHits, 00038 RPCDigiCollection & rpcDigis, 00039 RPCDigiSimLinks & rpcDigiSimLink); 00040 00041 00043 void setGeometry(const RPCGeometry * geom) {theGeometry = geom;} 00044 00045 void setRPCSimSetUp(RPCSimSetUp *simsetup){theSimSetUp = simsetup;} 00046 00047 RPCSimSetUp* getRPCSimSetUp(){ return theSimSetUp; } 00048 00050 const RPCRoll * findDet(int detId) const; 00051 00052 private: 00053 const RPCGeometry * theGeometry; 00054 RPCSim* theRPCSim; 00055 RPCSimSetUp * theSimSetUp; 00056 std::string theName; 00057 00058 }; 00059 00060 #endif 00061