File indexing completed on 2024-04-06 12:09:14
0001 #ifndef DQMOffline_Alignment_TkAlCaRecoMonitor_H
0002 #define DQMOffline_Alignment_TkAlCaRecoMonitor_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #include <algorithm>
0015 #include <fstream>
0016 #include <map>
0017 #include <memory>
0018 #include <vector>
0019
0020 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0021 #include "DQMServices/Core/interface/DQMStore.h"
0022 #include "DataFormats/JetReco/interface/CaloJet.h"
0023 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0024 #include "FWCore/Framework/interface/Event.h"
0025 #include "FWCore/Framework/interface/Frameworkfwd.h"
0026 #include "FWCore/Framework/interface/MakerMacros.h"
0027 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0028 #include "FWCore/ServiceRegistry/interface/Service.h"
0029 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
0030 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0031 #include "MagneticField/Engine/interface/MagneticField.h"
0032 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0033
0034 class TkAlCaRecoMonitor : public DQMEDAnalyzer {
0035 public:
0036 explicit TkAlCaRecoMonitor(const edm::ParameterSet &);
0037 ~TkAlCaRecoMonitor() override = default;
0038
0039 static void fillDescriptions(edm::ConfigurationDescriptions &);
0040
0041 void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0042 void analyze(const edm::Event &, const edm::EventSetup &) override;
0043
0044 private:
0045 static constexpr const double kMuonMass_ = 0.1056583755;
0046
0047 void fillHitmaps(const reco::Track &track, const TrackerGeometry &geometry);
0048 void fillRawIdMap(const TrackerGeometry &geometry);
0049
0050
0051 const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> tkGeomToken_;
0052 const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> mfToken_;
0053
0054 const edm::EDGetTokenT<reco::TrackCollection> trackProducer_;
0055 const edm::EDGetTokenT<reco::TrackCollection> referenceTrackProducer_;
0056 const edm::EDGetTokenT<reco::CaloJetCollection> jetCollection_;
0057
0058 const double daughterMass_;
0059 const double maxJetPt_;
0060 const bool fillInvariantMass_;
0061 const bool fillRawIdMap_;
0062 const bool runsOnReco_;
0063 const bool useSignedR_;
0064
0065 edm::ParameterSet conf_;
0066
0067
0068 MonitorElement *invariantMass_;
0069 MonitorElement *sumCharge_;
0070 MonitorElement *TrackQuality_;
0071 MonitorElement *jetPt_;
0072 MonitorElement *minJetDeltaR_;
0073 MonitorElement *minTrackDeltaR_;
0074 MonitorElement *AlCaRecoTrackEfficiency_;
0075 MonitorElement *Hits_perDetId_;
0076 MonitorElement *TrackPtPositive_;
0077 MonitorElement *TrackPtNegative_;
0078 MonitorElement *TrackCurvature_;
0079
0080 MonitorElement *Hits_ZvsR_;
0081 MonitorElement *Hits_XvsY_;
0082
0083 std::map<int, int> binByRawId_;
0084 };
0085 #endif