CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2_patch1/src/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizer.h

Go to the documentation of this file.
00001 #ifndef SiPixelDigitizer_h
00002 #define SiPixelDigitizer_h
00003 
00016 #include <map>
00017 #include <memory>
00018 #include <string>
00019 #include <vector>
00020 
00021 #include "SimGeneral/MixingModule/interface/DigiAccumulatorMixMod.h"
00022 #include "FWCore/Framework/interface/ESHandle.h"
00023 
00024 namespace CLHEP {
00025   class HepRandomEngine;
00026 }
00027 
00028 namespace edm {
00029   class EDProducer;
00030   class Event;
00031   class EventSetup;
00032   class ParameterSet;
00033   template<typename T> class Handle;
00034 }
00035 
00036 class MagneticField;
00037 class PileUpEventPrincipal;
00038 class PixelGeomDetUnit;
00039 class PSimHit;
00040 class SiPixelDigitizerAlgorithm;
00041 class TrackerGeometry;
00042 
00043 namespace cms {
00044   class SiPixelDigitizer : public DigiAccumulatorMixMod {
00045   public:
00046 
00047     explicit SiPixelDigitizer(const edm::ParameterSet& conf, edm::EDProducer& mixMod);
00048 
00049     virtual ~SiPixelDigitizer();
00050 
00051     virtual void initializeEvent(edm::Event const& e, edm::EventSetup const& c) override;
00052     virtual void accumulate(edm::Event const& e, edm::EventSetup const& c) override;
00053     virtual void accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& c) override;
00054     virtual void finalizeEvent(edm::Event& e, edm::EventSetup const& c) override;
00055 
00056     virtual void beginJob() {}
00057   private:
00058     void accumulatePixelHits(edm::Handle<std::vector<PSimHit> >);   
00059     bool first;
00060     std::unique_ptr<SiPixelDigitizerAlgorithm>  _pixeldigialgo;
00061     typedef std::vector<std::string> vstring;
00062     const std::string hitsProducer;
00063     const vstring trackerContainers;
00064     const std::string geometryType;
00065     edm::ESHandle<TrackerGeometry> pDD;
00066     edm::ESHandle<MagneticField> pSetup;
00067     std::map<unsigned int, PixelGeomDetUnit*> detectorUnits;
00068     CLHEP::HepRandomEngine* rndEngine;
00069 
00070     // infrastructure to reject dead pixels as defined in db (added by F.Blekman)
00071   };
00072 }
00073 
00074 
00075 #endif