00001 #ifndef SiPixelTrackResidualSource_H 00002 #define SiPixelTrackResidualSource_H 00003 00004 // Package: SiPixelMonitorTrack 00005 // Class: SiPixelTrackResidualSource 00006 // 00007 // class SiPixelTrackResidualSource SiPixelTrackResidualSource.h 00008 // DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualSource.h 00009 // 00010 // Description: <one line class summary> 00011 // Implementation: <Notes on implementation> 00012 // 00013 // Original Author: Shan-Huei Chuang 00014 // Created: Fri Mar 23 18:41:42 CET 2007 00015 // $Id: SiPixelTrackResidualSource.h,v 1.2 2008/11/05 13:53:07 wehrlilu Exp $ 00016 // 00017 // Updated by: Lukas Wehrli 00018 // for pixel offline DQM 00019 00020 #include <boost/cstdint.hpp> 00021 00022 #include "FWCore/Framework/interface/EDAnalyzer.h" 00023 #include "FWCore/Framework/interface/Event.h" 00024 #include "FWCore/Framework/interface/EventSetup.h" 00025 #include "FWCore/Framework/interface/MakerMacros.h" 00026 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00027 #include "FWCore/ServiceRegistry/interface/Service.h" 00028 #include "DQMServices/Core/interface/DQMStore.h" 00029 #include "DQMServices/Core/interface/MonitorElement.h" 00030 #include "DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualModule.h" 00031 00032 //Files added for monitoring track quantities 00033 #include "Alignment/TrackerAlignment/interface/TrackerAlignableId.h" 00034 #include "Alignment/OfflineValidation/interface/TrackerValidationVariables.h" 00035 #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h" 00036 #include "Geometry/TrackerTopology/interface/RectangularPixelTopology.h" 00037 #include "DataFormats/SiPixelDetId/interface/PixelBarrelName.h" 00038 #include "DataFormats/SiPixelDetId/interface/PixelEndcapName.h" 00039 #include "DataFormats/TrackReco/interface/Track.h" 00040 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" 00041 00042 class SiPixelTrackResidualSource : public edm::EDAnalyzer { 00043 public: 00044 explicit SiPixelTrackResidualSource(const edm::ParameterSet&); 00045 ~SiPixelTrackResidualSource(); 00046 00047 virtual void beginJob(edm::EventSetup const& iSetup); 00048 virtual void endJob(void); 00049 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00050 00051 private: 00052 edm::ParameterSet pSet_; 00053 edm::InputTag src_; 00054 edm::InputTag clustersrc_; 00055 edm::InputTag tracksrc_; 00056 DQMStore* dbe_; 00057 00058 bool debug_; 00059 bool modOn; 00060 //barrel: 00061 bool ladOn, layOn, phiOn; 00062 //forward: 00063 bool ringOn, bladeOn, diskOn; 00064 00065 std::map<uint32_t, SiPixelTrackResidualModule*> theSiPixelStructure; 00066 00067 MonitorElement* meSubdetResidualX[3]; 00068 MonitorElement* meSubdetResidualY[3]; 00069 00070 MonitorElement* meNofTracks_; 00071 MonitorElement* meNofTracksInPixVol_; 00072 MonitorElement* meNofClustersOnTrack_; 00073 MonitorElement* meNofClustersNotOnTrack_; 00074 MonitorElement* meClChargeOnTrack_all; 00075 MonitorElement* meClChargeOnTrack_bpix; 00076 MonitorElement* meClChargeOnTrack_fpix; 00077 MonitorElement* meClChargeNotOnTrack_all; 00078 MonitorElement* meClChargeNotOnTrack_bpix; 00079 MonitorElement* meClChargeNotOnTrack_fpix; 00080 MonitorElement* meClSizeOnTrack_all; 00081 MonitorElement* meClSizeOnTrack_bpix; 00082 MonitorElement* meClSizeOnTrack_fpix; 00083 MonitorElement* meClSizeNotOnTrack_all; 00084 MonitorElement* meClSizeNotOnTrack_bpix; 00085 MonitorElement* meClSizeNotOnTrack_fpix; 00086 00087 MonitorElement* meClPosLayer1OnTrack; 00088 MonitorElement* meClPosLayer2OnTrack; 00089 MonitorElement* meClPosLayer3OnTrack; 00090 MonitorElement* meClPosLayer1NotOnTrack; 00091 MonitorElement* meClPosLayer2NotOnTrack; 00092 MonitorElement* meClPosLayer3NotOnTrack; 00093 00094 MonitorElement* meClPosDisk1pzOnTrack; 00095 MonitorElement* meClPosDisk2pzOnTrack; 00096 MonitorElement* meClPosDisk1mzOnTrack; 00097 MonitorElement* meClPosDisk2mzOnTrack; 00098 MonitorElement* meClPosDisk1pzNotOnTrack; 00099 MonitorElement* meClPosDisk2pzNotOnTrack; 00100 MonitorElement* meClPosDisk1mzNotOnTrack; 00101 MonitorElement* meClPosDisk2mzNotOnTrack; 00102 }; 00103 00104 #endif