File indexing completed on 2024-04-06 12:09:38
0001 #ifndef DQMOffline_Muon_MuonTiming_H
0002 #define DQMOffline_Muon_MuonTiming_H
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include <memory>
0012 #include <fstream>
0013 #include "FWCore/Framework/interface/Frameworkfwd.h"
0014 #include "FWCore/Utilities/interface/InputTag.h"
0015 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0016 #include "FWCore/Framework/interface/Event.h"
0017 #include "FWCore/Framework/interface/MakerMacros.h"
0018 #include "FWCore/ServiceRegistry/interface/Service.h"
0019
0020 #include "DQMServices/Core/interface/DQMStore.h"
0021 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0022
0023 #include "DataFormats/MuonReco/interface/Muon.h"
0024 #include "DataFormats/MuonReco/interface/MuonFwd.h"
0025
0026 class MuonTiming : public DQMEDAnalyzer {
0027 public:
0028
0029 MuonTiming(const edm::ParameterSet &);
0030
0031
0032 ~MuonTiming() override;
0033
0034
0035 void analyze(const edm::Event &, const edm::EventSetup &) override;
0036 void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0037
0038 private:
0039
0040
0041 edm::EDGetTokenT<edm::View<reco::Muon> > theMuonCollectionLabel_;
0042
0043 std::string metname_;
0044
0045
0046 int tnbins_;
0047 int tnbinsrpc_;
0048 int terrnbins_;
0049 int terrnbinsrpc_;
0050 int ndofnbins_;
0051 int ptnbins_;
0052 int etanbins_;
0053 double tmax_, tmin_;
0054 double tmaxrpc_, tminrpc_;
0055 double terrmax_, terrmin_;
0056 double terrmaxrpc_, terrminrpc_;
0057 double ndofmax_, ndofmin_;
0058 double ptmax_, ptmin_;
0059 double etamax_, etamin_;
0060 double etaBarrelMin_, etaBarrelMax_, etaEndcapMin_, etaEndcapMax_, etaOverlapMin_, etaOverlapMax_;
0061
0062 std::string theFolder_;
0063 std::vector<std::string> EtaName_, ObjectName_;
0064 enum eta_ { overlap, barrel, endcap };
0065 enum object_ { sta, glb };
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078 std::array<std::array<MonitorElement *, 1>, 3> timeNDof_;
0079 std::array<std::array<MonitorElement *, 1>, 3> timeAtIpInOut_;
0080 std::array<std::array<MonitorElement *, 1>, 3> timeAtIpInOutRPC_;
0081 std::array<std::array<MonitorElement *, 1>, 3> timeAtIpInOutErr_;
0082 std::array<std::array<MonitorElement *, 1>, 3> timeAtIpInOutErrRPC_;
0083 std::array<MonitorElement *, 1> etaptVeto_;
0084 std::array<MonitorElement *, 1> etaVeto_;
0085 std::array<MonitorElement *, 1> ptVeto_;
0086 std::array<MonitorElement *, 1> yields_;
0087 };
0088 #endif