00001 00007 #ifndef SiStripDigitizer_h 00008 #define SiStripDigitizer_h 00009 00010 #include "boost/shared_ptr.hpp" 00011 00012 #include "FWCore/Framework/interface/EDProducer.h" 00013 #include "FWCore/Framework/interface/Event.h" 00014 #include "DataFormats/Common/interface/Handle.h" 00015 #include "FWCore/Framework/interface/EventSetup.h" 00016 00017 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00018 00019 #include "Geometry/CommonDetUnit/interface/GeomDetType.h" 00020 00021 #include "SimDataFormats/CrossingFrame/interface/MixCollection.h" 00022 #include "SimTracker/SiStripDigitizer/interface/SiStripDigitizerAlgorithm.h" 00023 00024 #include "SimTracker/Common/interface/SimHitSelectorFromDB.h" 00025 00026 #include <string> 00027 #include <vector> 00028 #include <map> 00029 00030 namespace CLHEP { 00031 class HepRandomEngine; 00032 } 00033 00034 class SiStripDigitizer : public edm::EDProducer 00035 { 00036 public: 00037 00038 explicit SiStripDigitizer(const edm::ParameterSet& conf); 00039 00040 virtual ~SiStripDigitizer(); 00041 00042 virtual void produce(edm::Event& e, const edm::EventSetup& c); 00043 00044 private: 00045 typedef std::vector<std::string> vstring; 00046 typedef std::map<unsigned int, std::vector<std::pair<const PSimHit*, int> >,std::less<unsigned int> > simhit_map; 00047 typedef simhit_map::iterator simhit_map_iterator; 00048 00049 SiStripDigitizerAlgorithm * theDigiAlgo; 00050 SiStripFedZeroSuppression* theSiFEDZeroSuppress; 00051 std::map<uint32_t, std::vector<int> > theDetIdList; 00052 SimHitSelectorFromDB SimHitSelectorFromDB_; 00053 std::vector<edm::DetSet<SiStripDigi> > theDigiVector; 00054 std::vector<edm::DetSet<SiStripRawDigi> > theRawDigiVector; 00055 std::vector<edm::DetSet<StripDigiSimLink> > theDigiLinkVector; 00056 edm::ParameterSet conf_; 00057 vstring trackerContainers; 00058 simhit_map SimHitMap; 00059 int numStrips; // number of strips in the module 00060 CLHEP::HepRandomEngine* rndEngine; 00061 std::string geometryType; 00062 std::string alias; 00063 bool zeroSuppression; 00064 bool useConfFromDB; 00065 }; 00066 00067 #endif