File indexing completed on 2023-03-17 10:56:11
0001 #ifndef SiPixelTrackResidualSource_H
0002 #define SiPixelTrackResidualSource_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #include "DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualModule.h"
0020 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0021 #include "DQMServices/Core/interface/DQMStore.h"
0022
0023
0024 #include "Alignment/OfflineValidation/interface/TrackerValidationVariables.h"
0025 #include "Alignment/TrackerAlignment/interface/TrackerAlignableId.h"
0026 #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h"
0027 #include "DataFormats/TrackerCommon/interface/PixelBarrelName.h"
0028 #include "DataFormats/SiPixelDetId/interface/PixelBarrelNameUpgrade.h"
0029 #include "DataFormats/TrackerCommon/interface/PixelEndcapName.h"
0030 #include "DataFormats/SiPixelDetId/interface/PixelEndcapNameUpgrade.h"
0031 #include "DataFormats/TrackReco/interface/Track.h"
0032 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0033
0034 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0035 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
0036 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
0037 #include "Geometry/Records/interface/TrackerTopologyRcd.h"
0038 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h"
0039 #include "TrackingTools/Records/interface/TransientTrackRecord.h"
0040 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h"
0041 #include "TrackingTools/Records/interface/TransientRecHitRecord.h"
0042
0043 #include "DataFormats/SiPixelDigi/interface/PixelDigi.h"
0044 #include <cstdint>
0045
0046 class SiPixelTrackResidualSource : public DQMEDAnalyzer {
0047 public:
0048 explicit SiPixelTrackResidualSource(const edm::ParameterSet &);
0049 ~SiPixelTrackResidualSource() override;
0050
0051 void dqmBeginRun(const edm::Run &r, edm::EventSetup const &iSetup) override;
0052 void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0053 void analyze(const edm::Event &, const edm::EventSetup &) override;
0054 void getrococcupancy(DetId detId,
0055 const edm::DetSetVector<PixelDigi> &diginp,
0056 const TrackerTopology *const tTopo,
0057 std::vector<MonitorElement *> meinput);
0058 void triplets(double x1,
0059 double y1,
0060 double z1,
0061 double x2,
0062 double y2,
0063 double z2,
0064 double x3,
0065 double y3,
0066 double z3,
0067 double ptsig,
0068 double &dc,
0069 double &dz,
0070 double kap);
0071
0072 std::string topFolderName_;
0073
0074 private:
0075 edm::ParameterSet pSet_;
0076 edm::InputTag src_;
0077 edm::InputTag clustersrc_;
0078 edm::InputTag tracksrc_;
0079 std::string ttrhbuilder_;
0080 edm::EDGetTokenT<reco::BeamSpot> beamSpotToken_;
0081 edm::EDGetTokenT<reco::VertexCollection> offlinePrimaryVerticesToken_;
0082 edm::EDGetTokenT<reco::TrackCollection> generalTracksToken_;
0083 edm::EDGetTokenT<std::vector<Trajectory>> tracksrcToken_;
0084 edm::EDGetTokenT<std::vector<reco::Track>> trackToken_;
0085 edm::EDGetTokenT<TrajTrackAssociationCollection> trackAssociationToken_;
0086 edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster>> clustersrcToken_;
0087 std::string vtxsrc_;
0088 edm::InputTag digisrc_;
0089 edm::EDGetTokenT<edm::DetSetVector<PixelDigi>> digisrcToken_;
0090
0091 edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> trackerTopoToken_;
0092 edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> trackerGeomToken_;
0093 edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> transientTrackBuilderToken_;
0094 edm::ESGetToken<TransientTrackingRecHitBuilder, TransientRecHitRecord> transientTrackingRecHitBuilderToken_;
0095 edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> trackerTopoTokenBeginRun_;
0096 edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> trackerGeomTokenBeginRun_;
0097
0098 bool debug_;
0099 bool modOn;
0100 bool reducedSet;
0101
0102 bool ladOn, layOn, phiOn;
0103
0104 bool ringOn, bladeOn, diskOn;
0105 bool isUpgrade;
0106 double ptminres_;
0107 bool firstRun;
0108 int NTotal;
0109 int NLowProb;
0110
0111 std::map<uint32_t, SiPixelTrackResidualModule *> theSiPixelStructure;
0112
0113 MonitorElement *meSubdetResidualX[3];
0114 MonitorElement *meSubdetResidualY[3];
0115
0116 std::vector<MonitorElement *> meResidualXSummedLay;
0117 std::vector<MonitorElement *> meResidualYSummedLay;
0118
0119 MonitorElement *meNofTracks_;
0120 MonitorElement *meNofTracksInPixVol_;
0121 MonitorElement *meNofClustersOnTrack_;
0122 std::vector<MonitorElement *> meNofClustersvsPhiOnTrack_layers;
0123 std::vector<MonitorElement *> meNofClustersvsPhiOnTrack_diskps;
0124 std::vector<MonitorElement *> meNofClustersvsPhiOnTrack_diskms;
0125 MonitorElement *meNofClustersNotOnTrack_;
0126 MonitorElement *meClChargeOnTrack_all;
0127 MonitorElement *meClChargeOnTrack_bpix;
0128 MonitorElement *meClChargeOnTrack_fpix;
0129 std::vector<MonitorElement *> meClChargeOnTrack_layers;
0130 std::vector<MonitorElement *> meClChargeOnTrack_diskps;
0131 std::vector<MonitorElement *> meClChargeOnTrack_diskms;
0132 MonitorElement *meClChargeNotOnTrack_all;
0133 MonitorElement *meClChargeNotOnTrack_bpix;
0134 MonitorElement *meClChargeNotOnTrack_fpix;
0135 std::vector<MonitorElement *> meClChargeNotOnTrack_layers;
0136 std::vector<MonitorElement *> meClChargeNotOnTrack_diskps;
0137 std::vector<MonitorElement *> meClChargeNotOnTrack_diskms;
0138 MonitorElement *meClSizeOnTrack_all;
0139 MonitorElement *meClSizeOnTrack_bpix;
0140 MonitorElement *meClSizeOnTrack_fpix;
0141 std::vector<MonitorElement *> meClSizeOnTrack_layers;
0142 std::vector<MonitorElement *> meClSizeOnTrack_diskps;
0143 std::vector<MonitorElement *> meClSizeOnTrack_diskms;
0144 MonitorElement *meClSizeNotOnTrack_all;
0145 MonitorElement *meClSizeNotOnTrack_bpix;
0146 MonitorElement *meClSizeNotOnTrack_fpix;
0147 std::vector<MonitorElement *> meClSizeNotOnTrack_layers;
0148 std::vector<MonitorElement *> meClSizeNotOnTrack_diskps;
0149 std::vector<MonitorElement *> meClSizeNotOnTrack_diskms;
0150 MonitorElement *meClSizeXOnTrack_all;
0151 MonitorElement *meClSizeXOnTrack_bpix;
0152 MonitorElement *meClSizeXOnTrack_fpix;
0153 std::vector<MonitorElement *> meClSizeXOnTrack_layers;
0154 std::vector<MonitorElement *> meClSizeXOnTrack_diskps;
0155 std::vector<MonitorElement *> meClSizeXOnTrack_diskms;
0156 MonitorElement *meClSizeXNotOnTrack_all;
0157 MonitorElement *meClSizeXNotOnTrack_bpix;
0158 MonitorElement *meClSizeXNotOnTrack_fpix;
0159 std::vector<MonitorElement *> meClSizeXNotOnTrack_layers;
0160 std::vector<MonitorElement *> meClSizeXNotOnTrack_diskps;
0161 std::vector<MonitorElement *> meClSizeXNotOnTrack_diskms;
0162 MonitorElement *meClSizeYOnTrack_all;
0163 MonitorElement *meClSizeYOnTrack_bpix;
0164 MonitorElement *meClSizeYOnTrack_fpix;
0165 std::vector<MonitorElement *> meClSizeYOnTrack_layers;
0166 std::vector<MonitorElement *> meClSizeYOnTrack_diskps;
0167 std::vector<MonitorElement *> meClSizeYOnTrack_diskms;
0168 MonitorElement *meClSizeYNotOnTrack_all;
0169 MonitorElement *meClSizeYNotOnTrack_bpix;
0170 MonitorElement *meClSizeYNotOnTrack_fpix;
0171 std::vector<MonitorElement *> meClSizeYNotOnTrack_layers;
0172 std::vector<MonitorElement *> meClSizeYNotOnTrack_diskps;
0173 std::vector<MonitorElement *> meClSizeYNotOnTrack_diskms;
0174
0175
0176 MonitorElement *meNClustersOnTrack_all;
0177 MonitorElement *meNClustersOnTrack_bpix;
0178 MonitorElement *meNClustersOnTrack_fpix;
0179 std::vector<MonitorElement *> meNClustersOnTrack_layers;
0180 std::vector<MonitorElement *> meNClustersOnTrack_diskps;
0181 std::vector<MonitorElement *> meNClustersOnTrack_diskms;
0182 MonitorElement *meNClustersNotOnTrack_all;
0183 MonitorElement *meNClustersNotOnTrack_bpix;
0184 MonitorElement *meNClustersNotOnTrack_fpix;
0185 std::vector<MonitorElement *> meNClustersNotOnTrack_layers;
0186 std::vector<MonitorElement *> meNClustersNotOnTrack_diskps;
0187 std::vector<MonitorElement *> meNClustersNotOnTrack_diskms;
0188
0189
0190 std::vector<MonitorElement *> meClPosLayersOnTrack;
0191 std::vector<MonitorElement *> meClPosLayersLadVsModOnTrack;
0192 std::vector<MonitorElement *> meClPosLayersNotOnTrack;
0193 std::vector<MonitorElement *> meClPosDiskspzOnTrack;
0194 std::vector<MonitorElement *> meClPosDisksmzOnTrack;
0195 std::vector<MonitorElement *> meClPosDiskspzNotOnTrack;
0196 std::vector<MonitorElement *> meClPosDisksmzNotOnTrack;
0197
0198 std::vector<MonitorElement *> meZeroRocLadvsModOnTrackBarrel;
0199 std::vector<MonitorElement *> meZeroRocLadvsModOffTrackBarrel;
0200
0201 MonitorElement *meHitProbability;
0202 MonitorElement *meRocBladevsDiskEndcapOnTrk;
0203 MonitorElement *meRocBladevsDiskEndcapOffTrk;
0204
0205 void getepixrococcupancyontrk(const TrackerTopology *const tTopo,
0206 TransientTrackingRecHit::ConstRecHitPointer hit,
0207 float xclust,
0208 float yclust,
0209 float z,
0210 MonitorElement *meinput);
0211 void getepixrococcupancyofftrk(
0212 DetId detId, const TrackerTopology *const tTopo, float xclust, float yclust, float z, MonitorElement *meinput);
0213
0214 int noOfLayers;
0215 int noOfDisks;
0216 };
0217
0218 #endif