CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/RecoLocalTracker/SiPixelClusterizer/interface/SiPixelClusterProducer.h

Go to the documentation of this file.
00001 #ifndef RecoLocalTracker_SiPixelClusterizer_SiPixelClusterProducer_h
00002 #define RecoLocalTracker_SiPixelClusterizer_SiPixelClusterProducer_h
00003 
00004 //---------------------------------------------------------------------------
00029 //---------------------------------------------------------------------------
00030 
00031 #include "RecoLocalTracker/SiPixelClusterizer/interface/PixelClusterizerBase.h"
00032 
00033 //#include "Geometry/CommonDetUnit/interface/TrackingGeometry.h"
00034 
00035 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00036 
00037 #include "DataFormats/Common/interface/DetSetVector.h"
00038 #include "DataFormats/Common/interface/DetSetVectorNew.h"
00039 #include "DataFormats/SiPixelDigi/interface/PixelDigi.h"
00040 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h"
00041 
00042 
00043 #include "FWCore/Framework/interface/EDProducer.h"
00044 #include "FWCore/Framework/interface/Event.h"
00045 #include "FWCore/Framework/interface/EventSetup.h"
00046 #include "DataFormats/Common/interface/Handle.h"
00047 #include "FWCore/Framework/interface/ESHandle.h"
00048 
00049 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00050 #include "FWCore/Utilities/interface/InputTag.h"
00051 
00052 
00053 
00054 namespace cms
00055 {
00056 
00057   class SiPixelClusterProducer : public edm::EDProducer {
00058   public:
00059     //--- Constructor, virtual destructor (just in case)
00060     explicit SiPixelClusterProducer(const edm::ParameterSet& conf);
00061     virtual ~SiPixelClusterProducer();
00062 
00063     void setupClusterizer();
00064 
00065     // Begin Job
00066     //virtual void beginJob( const edm::EventSetup& );
00067     virtual void beginJob( );
00068 
00069     //--- The top-level event method.
00070     virtual void produce(edm::Event& e, const edm::EventSetup& c);
00071 
00072     //--- Execute the algorithm(s).
00073     void run(const edm::DetSetVector<PixelDigi>   & input,
00074              edm::ESHandle<TrackerGeometry>       & geom,
00075              edmNew::DetSetVector<SiPixelCluster> & output);
00076 
00077   private:
00078     edm::ParameterSet conf_;
00079     // TO DO: maybe allow a map of pointers?
00080     SiPixelGainCalibrationServiceBase * theSiPixelGainCalibration_;
00081     std::string clusterMode_;               // user's choice of the clusterizer
00082     PixelClusterizerBase * clusterizer_;    // what we got (for now, one ptr to base class)
00083     bool readyToCluster_;                   // needed clusterizers valid => good to go!
00084     edm::InputTag src_;
00085 
00087     int32_t maxTotalClusters_;
00088   };
00089 }
00090 
00091 
00092 #endif