![]() |
![]() |
00001 #ifndef FastSimulation_TrackingRecHitProducer_SiClusterTranslator_h 00002 #define FastSimulation_TrackingRecHitProducer_SiClusterTranslator_h 00003 00004 //--------------------------------------------------------------------------- 00011 //--------------------------------------------------------------------------- 00012 00013 // Framework 00014 #include "FWCore/Framework/interface/EDProducer.h" 00015 00016 // Data Formats 00017 #include "FastSimDataFormats/External/interface/FastTrackerClusterCollection.h" 00018 //Strip and Pixel Cluster Collection 00019 #include "DataFormats/SiStripCluster/interface/SiStripClusterCollection.h" 00020 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" 00021 #include "SimDataFormats/TrackerDigiSimLink/interface/StripDigiSimLink.h" 00022 #include "SimDataFormats/TrackerDigiSimLink/interface/PixelDigiSimLink.h" 00023 #include "SimDataFormats/TrackingHit/interface/PSimHit.h" 00024 #include "DataFormats/Common/interface/DetSet.h" 00025 00026 class TrackerGeometry; 00027 class DetId; 00028 00029 namespace edm { 00030 class ParameterSet; 00031 class Event; 00032 class EventSetup; 00033 } 00034 00035 class SiClusterTranslator : public edm::EDProducer 00036 { 00037 public: 00038 //--- Constructor, virtual destructor (just in case) 00039 explicit SiClusterTranslator(const edm::ParameterSet& conf); 00040 virtual ~SiClusterTranslator(); 00041 00042 //--- The top-level event method. 00043 virtual void produce(edm::Event& e, const edm::EventSetup& c); 00044 00045 // Begin Job 00046 virtual void beginRun(edm::Run & run, const edm::EventSetup & es); 00047 00048 private: 00049 std::vector<edm::DetSet<StripDigiSimLink> > theStripDigiLinkVector; 00050 std::vector<edm::DetSet<PixelDigiSimLink> > thePixelDigiLinkVector; 00051 std::vector<std::pair<PSimHit, int > > theNewSimHitList; 00052 void loadPixelClusters(std::map<DetId,std::vector<SiPixelCluster> >& theClusters, 00053 SiPixelClusterCollectionNew& theClusterCollection) const; 00054 void loadStripClusters(std::map<DetId,std::vector<SiStripCluster> >& theClusters, 00055 edmNew::DetSetVector<SiStripCluster>& theClusterCollection) const; 00056 00057 00058 const TrackerGeometry* geometry; 00059 }; 00060 00061 00062 #endif