File indexing completed on 2023-03-17 10:54:18
0001 #ifndef DTResolutionAnalysisTask_H
0002 #define DTResolutionAnalysisTask_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include "DQMServices/Core/interface/DQMOneEDAnalyzer.h"
0017
0018 #include "FWCore/Framework/interface/Frameworkfwd.h"
0019 #include "DataFormats/MuonDetId/interface/DTSuperLayerId.h"
0020 #include "FWCore/Framework/interface/ESHandle.h"
0021
0022 #include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h"
0023 #include "Geometry/Records/interface/MuonGeometryRecord.h"
0024
0025 #include "DQMServices/Core/interface/DQMStore.h"
0026
0027 #include <string>
0028 #include <map>
0029 #include <vector>
0030
0031 class DTGeometry;
0032
0033 class DTResolutionAnalysisTask : public DQMOneEDAnalyzer<> {
0034 public:
0035
0036 DTResolutionAnalysisTask(const edm::ParameterSet& pset);
0037
0038
0039 ~DTResolutionAnalysisTask() override;
0040
0041
0042 void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0043
0044
0045 void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
0046
0047
0048
0049
0050
0051
0052 void analyze(const edm::Event& event, const edm::EventSetup& setup) override;
0053
0054 protected:
0055 private:
0056 edm::ESGetToken<DTGeometry, MuonGeometryRecord> muonGeomToken_;
0057 const DTGeometry* dtGeom;
0058
0059 int prescaleFactor;
0060 int resetCycle;
0061
0062 u_int32_t thePhiHitsCut;
0063 u_int32_t theZHitsCut;
0064
0065
0066 edm::EDGetTokenT<DTRecSegment4DCollection> recHits4DToken_;
0067
0068
0069 void bookHistos(DQMStore::IBooker& ibooker, DTSuperLayerId slId);
0070
0071 void fillHistos(DTSuperLayerId slId, float distExtr, float residual);
0072
0073 std::map<DTSuperLayerId, std::vector<MonitorElement*> > histosPerSL;
0074
0075
0076 std::string topHistoFolder;
0077 };
0078 #endif
0079
0080
0081
0082
0083