![]() |
![]() |
00001 #ifndef TrackRecoDeDx_DeDxEstimatorProducerPixelTripplet_H 00002 #define TrackRecoDeDx_DeDxEstimatorProducerPixelTripplet_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 #include "RecoTracker/DeDx/interface/DeDxTools.h" 00014 00015 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" 00016 #include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h" 00017 #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h" 00018 00019 #include <ext/hash_map> 00020 00021 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h" 00022 #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2D.h" 00023 #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h" 00024 00025 #include "TFile.h" 00026 #include "TChain.h" 00027 00028 00029 // 00030 // class declaration 00031 // 00032 00033 class DeDxEstimatorProducerPixelTripplet : public edm::EDProducer { 00034 00035 public: 00036 00037 explicit DeDxEstimatorProducerPixelTripplet(const edm::ParameterSet&); 00038 ~DeDxEstimatorProducerPixelTripplet(); 00039 00040 private: 00041 virtual void beginRun(edm::Run & run, const edm::EventSetup&) ; 00042 virtual void produce(edm::Event&, const edm::EventSetup&); 00043 virtual void endJob() ; 00044 00045 void MakeCalibrationMap(); 00046 00047 00048 // ----------member data --------------------------- 00049 BaseDeDxEstimator* m_estimator; 00050 00051 edm::InputTag m_trajTrackAssociationTag; 00052 edm::InputTag m_tracksTag; 00053 00054 bool usePixel; 00055 bool useStrip; 00056 double MeVperADCPixel; 00057 double MeVperADCStrip; 00058 00059 unsigned int MaxNrStrips; 00060 unsigned int MinTrackHits; 00061 00062 std::string m_calibrationPath; 00063 bool useCalibration; 00064 bool shapetest; 00065 00066 private : 00067 struct stModInfo{int DetId; float Thickness; float Distance; float Normalization; double Gain; GlobalVector Normal;}; 00068 00069 class isEqual{ 00070 public: 00071 template <class T> bool operator () (const T& PseudoDetId1, const T& PseudoDetId2) { return PseudoDetId1==PseudoDetId2; } 00072 }; 00073 00074 __gnu_cxx::hash_map<unsigned int, stModInfo*, __gnu_cxx::hash<unsigned int>, isEqual > MODsColl; 00075 }; 00076 00077 #endif 00078