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.8 2010/12/13 14:17:40 merkelp 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 "DataFormats/SiPixelDetId/interface/PixelBarrelName.h" 00037 #include "DataFormats/SiPixelDetId/interface/PixelEndcapName.h" 00038 #include "DataFormats/TrackReco/interface/Track.h" 00039 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" 00040 00041 class SiPixelTrackResidualSource : public edm::EDAnalyzer { 00042 public: 00043 explicit SiPixelTrackResidualSource(const edm::ParameterSet&); 00044 ~SiPixelTrackResidualSource(); 00045 00046 virtual void beginJob(); 00047 virtual void endJob(void); 00048 virtual void beginRun(const edm::Run& r, edm::EventSetup const& iSetup); 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 bool reducedSet; 00061 //barrel: 00062 bool ladOn, layOn, phiOn; 00063 //forward: 00064 bool ringOn, bladeOn, diskOn; 00065 00066 bool firstRun; 00067 int NTotal; 00068 int NLowProb; 00069 00070 std::map<uint32_t, SiPixelTrackResidualModule*> theSiPixelStructure; 00071 00072 MonitorElement* meSubdetResidualX[3]; 00073 MonitorElement* meSubdetResidualY[3]; 00074 00075 MonitorElement* meNofTracks_; 00076 MonitorElement* meNofTracksInPixVol_; 00077 MonitorElement* meNofClustersOnTrack_; 00078 MonitorElement* meNofClustersNotOnTrack_; 00079 MonitorElement* meClChargeOnTrack_all; 00080 MonitorElement* meClChargeOnTrack_bpix; 00081 MonitorElement* meClChargeOnTrack_fpix; 00082 MonitorElement* meClChargeOnTrack_layer1; 00083 MonitorElement* meClChargeOnTrack_layer2; 00084 MonitorElement* meClChargeOnTrack_layer3; 00085 MonitorElement* meClChargeOnTrack_diskp1; 00086 MonitorElement* meClChargeOnTrack_diskp2; 00087 MonitorElement* meClChargeOnTrack_diskm1; 00088 MonitorElement* meClChargeOnTrack_diskm2; 00089 MonitorElement* meClChargeNotOnTrack_all; 00090 MonitorElement* meClChargeNotOnTrack_bpix; 00091 MonitorElement* meClChargeNotOnTrack_fpix; 00092 MonitorElement* meClChargeNotOnTrack_layer1; 00093 MonitorElement* meClChargeNotOnTrack_layer2; 00094 MonitorElement* meClChargeNotOnTrack_layer3; 00095 MonitorElement* meClChargeNotOnTrack_diskp1; 00096 MonitorElement* meClChargeNotOnTrack_diskp2; 00097 MonitorElement* meClChargeNotOnTrack_diskm1; 00098 MonitorElement* meClChargeNotOnTrack_diskm2; 00099 MonitorElement* meClSizeOnTrack_all; 00100 MonitorElement* meClSizeOnTrack_bpix; 00101 MonitorElement* meClSizeOnTrack_fpix; 00102 MonitorElement* meClSizeOnTrack_layer1; 00103 MonitorElement* meClSizeOnTrack_layer2; 00104 MonitorElement* meClSizeOnTrack_layer3; 00105 MonitorElement* meClSizeOnTrack_diskp1; 00106 MonitorElement* meClSizeOnTrack_diskp2; 00107 MonitorElement* meClSizeOnTrack_diskm1; 00108 MonitorElement* meClSizeOnTrack_diskm2; 00109 MonitorElement* meClSizeNotOnTrack_all; 00110 MonitorElement* meClSizeNotOnTrack_bpix; 00111 MonitorElement* meClSizeNotOnTrack_fpix; 00112 MonitorElement* meClSizeNotOnTrack_layer1; 00113 MonitorElement* meClSizeNotOnTrack_layer2; 00114 MonitorElement* meClSizeNotOnTrack_layer3; 00115 MonitorElement* meClSizeNotOnTrack_diskp1; 00116 MonitorElement* meClSizeNotOnTrack_diskp2; 00117 MonitorElement* meClSizeNotOnTrack_diskm1; 00118 MonitorElement* meClSizeNotOnTrack_diskm2; 00119 MonitorElement* meClSizeXOnTrack_all; 00120 MonitorElement* meClSizeXOnTrack_bpix; 00121 MonitorElement* meClSizeXOnTrack_fpix; 00122 MonitorElement* meClSizeXOnTrack_layer1; 00123 MonitorElement* meClSizeXOnTrack_layer2; 00124 MonitorElement* meClSizeXOnTrack_layer3; 00125 MonitorElement* meClSizeXOnTrack_diskp1; 00126 MonitorElement* meClSizeXOnTrack_diskp2; 00127 MonitorElement* meClSizeXOnTrack_diskm1; 00128 MonitorElement* meClSizeXOnTrack_diskm2; 00129 MonitorElement* meClSizeXNotOnTrack_all; 00130 MonitorElement* meClSizeXNotOnTrack_bpix; 00131 MonitorElement* meClSizeXNotOnTrack_fpix; 00132 MonitorElement* meClSizeXNotOnTrack_layer1; 00133 MonitorElement* meClSizeXNotOnTrack_layer2; 00134 MonitorElement* meClSizeXNotOnTrack_layer3; 00135 MonitorElement* meClSizeXNotOnTrack_diskp1; 00136 MonitorElement* meClSizeXNotOnTrack_diskp2; 00137 MonitorElement* meClSizeXNotOnTrack_diskm1; 00138 MonitorElement* meClSizeXNotOnTrack_diskm2; 00139 MonitorElement* meClSizeYOnTrack_all; 00140 MonitorElement* meClSizeYOnTrack_bpix; 00141 MonitorElement* meClSizeYOnTrack_fpix; 00142 MonitorElement* meClSizeYOnTrack_layer1; 00143 MonitorElement* meClSizeYOnTrack_layer2; 00144 MonitorElement* meClSizeYOnTrack_layer3; 00145 MonitorElement* meClSizeYOnTrack_diskp1; 00146 MonitorElement* meClSizeYOnTrack_diskp2; 00147 MonitorElement* meClSizeYOnTrack_diskm1; 00148 MonitorElement* meClSizeYOnTrack_diskm2; 00149 MonitorElement* meClSizeYNotOnTrack_all; 00150 MonitorElement* meClSizeYNotOnTrack_bpix; 00151 MonitorElement* meClSizeYNotOnTrack_fpix; 00152 MonitorElement* meClSizeYNotOnTrack_layer1; 00153 MonitorElement* meClSizeYNotOnTrack_layer2; 00154 MonitorElement* meClSizeYNotOnTrack_layer3; 00155 MonitorElement* meClSizeYNotOnTrack_diskp1; 00156 MonitorElement* meClSizeYNotOnTrack_diskp2; 00157 MonitorElement* meClSizeYNotOnTrack_diskm1; 00158 MonitorElement* meClSizeYNotOnTrack_diskm2; 00159 00160 //new 00161 MonitorElement* meNClustersOnTrack_all; 00162 MonitorElement* meNClustersOnTrack_bpix; 00163 MonitorElement* meNClustersOnTrack_fpix; 00164 MonitorElement* meNClustersOnTrack_layer1; 00165 MonitorElement* meNClustersOnTrack_layer2; 00166 MonitorElement* meNClustersOnTrack_layer3; 00167 MonitorElement* meNClustersOnTrack_diskp1; 00168 MonitorElement* meNClustersOnTrack_diskp2; 00169 MonitorElement* meNClustersOnTrack_diskm1; 00170 MonitorElement* meNClustersOnTrack_diskm2; 00171 MonitorElement* meNClustersNotOnTrack_all; 00172 MonitorElement* meNClustersNotOnTrack_bpix; 00173 MonitorElement* meNClustersNotOnTrack_fpix; 00174 MonitorElement* meNClustersNotOnTrack_layer1; 00175 MonitorElement* meNClustersNotOnTrack_layer2; 00176 MonitorElement* meNClustersNotOnTrack_layer3; 00177 MonitorElement* meNClustersNotOnTrack_diskp1; 00178 MonitorElement* meNClustersNotOnTrack_diskp2; 00179 MonitorElement* meNClustersNotOnTrack_diskm1; 00180 MonitorElement* meNClustersNotOnTrack_diskm2; 00181 // 00182 00183 MonitorElement* meClPosLayer1OnTrack; 00184 MonitorElement* meClPosLayer2OnTrack; 00185 MonitorElement* meClPosLayer3OnTrack; 00186 MonitorElement* meClPosLayer1NotOnTrack; 00187 MonitorElement* meClPosLayer2NotOnTrack; 00188 MonitorElement* meClPosLayer3NotOnTrack; 00189 00190 MonitorElement* meClPosDisk1pzOnTrack; 00191 MonitorElement* meClPosDisk2pzOnTrack; 00192 MonitorElement* meClPosDisk1mzOnTrack; 00193 MonitorElement* meClPosDisk2mzOnTrack; 00194 MonitorElement* meClPosDisk1pzNotOnTrack; 00195 MonitorElement* meClPosDisk2pzNotOnTrack; 00196 MonitorElement* meClPosDisk1mzNotOnTrack; 00197 MonitorElement* meClPosDisk2mzNotOnTrack; 00198 00199 MonitorElement* meHitProbability; 00200 }; 00201 00202 #endif