File indexing completed on 2024-04-06 12:33:38
0001 #ifndef Validation_SiTrackerPhase2_Phase2ITValidateRecHitBase_h
0002 #define Validation_SiTrackerPhase2_Phase2ITValidateRecHitBase_h
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/ServiceRegistry/interface/Service.h"
0029 #include "FWCore/Utilities/interface/InputTag.h"
0030 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
0031 #include "Geometry/Records/interface/TrackerTopologyRcd.h"
0032 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0033 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
0034 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
0035
0036
0037 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0038 #include "DQMServices/Core/interface/DQMStore.h"
0039 #include "DQMServices/Core/interface/MonitorElement.h"
0040
0041 class Phase2ITValidateRecHitBase : public DQMEDAnalyzer {
0042 public:
0043 explicit Phase2ITValidateRecHitBase(const edm::ParameterSet&);
0044 ~Phase2ITValidateRecHitBase() override;
0045 void bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const& iSetup) override;
0046 void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
0047 static void fillPSetDescription(edm::ParameterSetDescription& desc);
0048
0049 protected:
0050 void bookLayerHistos(DQMStore::IBooker& ibooker, unsigned int det_id, std::string& subdir);
0051 void fillRechitHistos(const PSimHit* simhitClosest,
0052 const SiPixelRecHit* rechit,
0053 const std::map<unsigned int, SimTrack>& selectedSimTrackMap,
0054 std::map<std::string, unsigned int>& nrechitLayerMap_primary);
0055
0056 edm::ParameterSet config_;
0057 const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> geomToken_;
0058 const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> topoToken_;
0059 const TrackerGeometry* tkGeom_ = nullptr;
0060 const TrackerTopology* tTopo_ = nullptr;
0061
0062 struct RecHitME {
0063 MonitorElement* deltaX = nullptr;
0064 MonitorElement* deltaY = nullptr;
0065 MonitorElement* pullX = nullptr;
0066 MonitorElement* pullY = nullptr;
0067 MonitorElement* deltaX_eta = nullptr;
0068 MonitorElement* deltaX_phi = nullptr;
0069 MonitorElement* deltaY_eta = nullptr;
0070 MonitorElement* deltaY_phi = nullptr;
0071 MonitorElement* deltaX_clsizex = nullptr;
0072 MonitorElement* deltaX_clsizey = nullptr;
0073 MonitorElement* deltaY_clsizex = nullptr;
0074 MonitorElement* deltaY_clsizey = nullptr;
0075 MonitorElement* deltaYvsdeltaX = nullptr;
0076 MonitorElement* pullX_eta = nullptr;
0077 MonitorElement* pullY_eta = nullptr;
0078
0079 MonitorElement* numberRecHitsprimary = nullptr;
0080 MonitorElement* pullX_primary;
0081 MonitorElement* pullY_primary;
0082 MonitorElement* deltaX_primary;
0083 MonitorElement* deltaY_primary;
0084 };
0085 std::map<std::string, RecHitME> layerMEs_;
0086 };
0087
0088 #endif