00001 #ifndef TrackRecoDeDx_DeDxEstimatorProducer_H 00002 #define TrackRecoDeDx_DeDxEstimatorProducer_H 00003 // user include files 00004 #include "FWCore/Framework/interface/Frameworkfwd.h" 00005 #include "FWCore/Framework/interface/EDProducer.h" 00006 00007 #include "FWCore/Framework/interface/Event.h" 00008 #include "FWCore/Framework/interface/MakerMacros.h" 00009 00010 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00011 00012 #include "RecoTracker/DeDx/interface/BaseDeDxEstimator.h" 00013 00014 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" 00015 #include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h" 00016 #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h" 00017 00018 00019 00020 // 00021 // class declaration 00022 // 00023 00024 class DeDxEstimatorProducer : public edm::EDProducer { 00025 00026 public: 00027 00028 explicit DeDxEstimatorProducer(const edm::ParameterSet&); 00029 ~DeDxEstimatorProducer(); 00030 00031 private: 00032 virtual void beginJob(const edm::EventSetup&) ; 00033 virtual void produce(edm::Event&, const edm::EventSetup&); 00034 virtual void endJob() ; 00035 00036 double thickness (DetId id); 00037 double normalization(DetId id); 00038 double distance (DetId id); 00039 00040 00041 // ----------member data --------------------------- 00042 BaseDeDxEstimator* m_estimator; 00043 00044 edm::InputTag m_trajTrackAssociationTag; 00045 edm::InputTag m_tracksTag; 00046 00047 bool usePixel; 00048 bool useStrip; 00049 double MeVperADCPixel; 00050 double MeVperADCStrip; 00051 00052 const TrackerGeometry* m_tracker; 00053 std::map<DetId,double> m_normalizationMap; 00054 std::map<DetId,double> m_distanceMap; 00055 std::map<DetId,double> m_thicknessMap; 00056 }; 00057 00058 #endif 00059