Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:09:38

0001 #ifndef DQMOffline_Muon_MuonTiming_H
0002 #define DQMOffline_Muon_MuonTiming_H
0003 
0004 /** \class MuRecoAnalyzer
0005  *
0006  *  DQM monitoring source for muon reco track
0007  *
0008  *  \author G. Mila - INFN Torino
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   /// Constructor
0029   MuonTiming(const edm::ParameterSet &);
0030 
0031   /// Destructor
0032   ~MuonTiming() override;
0033 
0034   /// Inizialize parameters for histo binning
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   // ----------member data ---------------------------
0040 
0041   edm::EDGetTokenT<edm::View<reco::Muon> > theMuonCollectionLabel_;
0042   // Switch for verbosity
0043   std::string metname_;
0044 
0045   //histo binning parameters
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   //the histos
0067   /*
0068   std::vector<std::vector<MonitorElement*>> timeNDof_;
0069   std::vector<std::vector<MonitorElement*>> timeAtIpInOut_;
0070   std::vector<std::vector<MonitorElement*>> timeAtIpInOutRPC_;
0071   std::vector<std::vector<MonitorElement*>> timeAtIpInOutErr_;
0072   std::vector<std::vector<MonitorElement*>> timeAtIpInOutErrRPC_;
0073   std::vector<MonitorElement*> etaptVeto_;
0074   std::vector<MonitorElement*> etaVeto_;
0075   std::vector<MonitorElement*> ptVeto_;
0076   std::vector<MonitorElement*> yields_;
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