File indexing completed on 2024-04-06 12:33:38
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include <memory>
0014 #include <map>
0015 #include <vector>
0016 #include <algorithm>
0017
0018
0019 #include "DataFormats/Common/interface/Handle.h"
0020 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
0021 #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h"
0022 #include "FWCore/Framework/interface/ESHandle.h"
0023 #include "FWCore/Framework/interface/Event.h"
0024 #include "FWCore/Framework/interface/Frameworkfwd.h"
0025 #include "FWCore/Framework/interface/MakerMacros.h"
0026 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0027 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0028 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0029
0030 #include "FWCore/ServiceRegistry/interface/Service.h"
0031 #include "FWCore/Utilities/interface/InputTag.h"
0032 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
0033 #include "Geometry/Records/interface/TrackerTopologyRcd.h"
0034 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0035 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
0036 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
0037
0038
0039 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0040 #include "DQMServices/Core/interface/DQMStore.h"
0041 #include "DQMServices/Core/interface/MonitorElement.h"
0042 #include "DataFormats/TrackerRecHit2D/interface/Phase2TrackerRecHit1D.h"
0043
0044 class Phase2OTValidateRecHitBase : public DQMEDAnalyzer {
0045 public:
0046 explicit Phase2OTValidateRecHitBase(const edm::ParameterSet&);
0047 ~Phase2OTValidateRecHitBase() override;
0048 void bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const& iSetup) override;
0049 void dqmBeginRun(const edm::Run& iRun, const edm::EventSetup& iSetup) override;
0050 void fillOTRecHitHistos(const PSimHit* simhitClosest,
0051 const Phase2TrackerRecHit1D* rechit,
0052 const std::map<unsigned int, SimTrack>& selectedSimTrackMap,
0053 std::map<std::string, unsigned int>& nrechitLayerMapP_primary,
0054 std::map<std::string, unsigned int>& nrechitLayerMapS_primary);
0055
0056 static void fillPSetDescription(edm::ParameterSetDescription& desc);
0057 void bookLayerHistos(DQMStore::IBooker& ibooker, unsigned int det_id, std::string& subdir);
0058
0059 protected:
0060 edm::ParameterSet config_;
0061 std::string geomType_;
0062 const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> geomToken_;
0063 const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> topoToken_;
0064 const TrackerGeometry* tkGeom_ = nullptr;
0065 const TrackerTopology* tTopo_ = nullptr;
0066
0067 struct RecHitME {
0068
0069
0070 MonitorElement* deltaX_P = nullptr;
0071 MonitorElement* deltaX_S = nullptr;
0072 MonitorElement* deltaY_P = nullptr;
0073 MonitorElement* deltaY_S = nullptr;
0074 MonitorElement* pullX_P = nullptr;
0075 MonitorElement* pullX_S = nullptr;
0076 MonitorElement* pullY_P = nullptr;
0077 MonitorElement* pullY_S = nullptr;
0078 MonitorElement* deltaX_eta_P = nullptr;
0079 MonitorElement* deltaX_eta_S = nullptr;
0080 MonitorElement* deltaY_eta_P = nullptr;
0081 MonitorElement* deltaY_eta_S = nullptr;
0082 MonitorElement* deltaX_phi_P = nullptr;
0083 MonitorElement* deltaX_phi_S = nullptr;
0084 MonitorElement* deltaY_phi_P = nullptr;
0085 MonitorElement* deltaY_phi_S = nullptr;
0086 MonitorElement* pullX_eta_P = nullptr;
0087 MonitorElement* pullX_eta_S = nullptr;
0088 MonitorElement* pullY_eta_P = nullptr;
0089 MonitorElement* pullY_eta_S = nullptr;
0090
0091 MonitorElement* pullX_primary_P;
0092 MonitorElement* pullX_primary_S;
0093 MonitorElement* pullY_primary_P;
0094 MonitorElement* pullY_primary_S;
0095 MonitorElement* deltaX_primary_P;
0096 MonitorElement* deltaX_primary_S;
0097 MonitorElement* deltaY_primary_P;
0098 MonitorElement* deltaY_primary_S;
0099 MonitorElement* numberRecHitsprimary_P;
0100 MonitorElement* numberRecHitsprimary_S;
0101 };
0102 std::map<std::string, RecHitME> layerMEs_;
0103 };