Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-06-06 04:26:46

0001 #ifndef DQM_TRACKINGMONITOR_V0MONITOR_H
0002 #define DQM_TRACKINGMONITOR_V0MONITOR_H
0003 
0004 #include <string>
0005 #include <vector>
0006 #include <map>
0007 
0008 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0009 #include "DQMServices/Core/interface/DQMStore.h"
0010 #include "DataFormats/Candidate/interface/Candidate.h"
0011 #include "DataFormats/Candidate/interface/VertexCompositeCandidate.h"
0012 #include "DataFormats/OnlineMetaData/interface/OnlineLuminosityRecord.h"
0013 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
0014 #include "DataFormats/Scalers/interface/LumiScalers.h"
0015 #include "DataFormats/V0Candidate/interface/V0Candidate.h"
0016 #include "DataFormats/VertexReco/interface/Vertex.h"
0017 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0018 #include "FWCore/Framework/interface/Event.h"
0019 #include "FWCore/Framework/interface/Frameworkfwd.h"
0020 #include "FWCore/Framework/interface/MakerMacros.h"
0021 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0022 #include "FWCore/ServiceRegistry/interface/Service.h"
0023 #include "FWCore/Utilities/interface/EDGetToken.h"
0024 
0025 class GenericTriggerEventFlag;
0026 
0027 struct MEbinning {
0028   int nbins;
0029   double xmin;
0030   double xmax;
0031 };
0032 
0033 //
0034 // class declaration
0035 //
0036 
0037 class V0Monitor : public DQMEDAnalyzer {
0038 public:
0039   typedef dqm::legacy::DQMStore DQMStore;
0040   typedef dqm::legacy::MonitorElement MonitorElement;
0041 
0042   V0Monitor(const edm::ParameterSet&);
0043   ~V0Monitor() override;
0044 
0045   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0046 
0047 protected:
0048   void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0049   MonitorElement* bookHisto1D(DQMStore::IBooker& ibooker,
0050                               std::string name,
0051                               std::string title,
0052                               std::string xaxis,
0053                               std::string yaxis,
0054                               MEbinning binning);
0055   MonitorElement* bookHisto2D(DQMStore::IBooker& ibooker,
0056                               std::string name,
0057                               std::string title,
0058                               std::string xaxis,
0059                               std::string yaxis,
0060                               MEbinning xbinning,
0061                               MEbinning ybinning);
0062   MonitorElement* bookProfile(DQMStore::IBooker& ibooker,
0063                               std::string name,
0064                               std::string title,
0065                               std::string xaxis,
0066                               std::string yaxis,
0067                               MEbinning xbinning,
0068                               MEbinning ybinning);
0069   void analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup) override;
0070 
0071 private:
0072   void getHistoPSet(edm::ParameterSet pset, MEbinning& mebinning);
0073 
0074   const std::string folderName_;
0075 
0076   const edm::EDGetTokenT<reco::VertexCompositeCandidateCollection> v0Token_;
0077   const edm::EDGetTokenT<reco::BeamSpot> bsToken_;
0078   const edm::EDGetTokenT<reco::VertexCollection> pvToken_;
0079   const edm::EDGetTokenT<LumiScalersCollection> lumiscalersToken_;
0080   const edm::EDGetTokenT<OnlineLuminosityRecord> metaDataToken_;
0081 
0082   const bool forceSCAL_;
0083   const int pvNDOF_;
0084 
0085   GenericTriggerEventFlag* genTriggerEventFlag_;
0086 
0087   MonitorElement* v0_N_;
0088   MonitorElement* v0_mass_;
0089   MonitorElement* v0_pt_;
0090   MonitorElement* v0_eta_;
0091   MonitorElement* v0_phi_;
0092   MonitorElement* v0_Lxy_;
0093   MonitorElement* v0_Lxy_wrtBS_;
0094   MonitorElement* v0_chi2oNDF_;
0095   MonitorElement* v0_mass_vs_p_;
0096   MonitorElement* v0_mass_vs_pt_;
0097   MonitorElement* v0_mass_vs_eta_;
0098   MonitorElement* v0_deltaMass_;
0099   MonitorElement* v0_deltaMass_vs_pt_;
0100   MonitorElement* v0_deltaMass_vs_eta_;
0101 
0102   MonitorElement* v0_Lxy_vs_deltaMass_;
0103   MonitorElement* v0_Lxy_vs_pt_;
0104   MonitorElement* v0_Lxy_vs_eta_;
0105 
0106   MonitorElement* n_vs_BX_;
0107   MonitorElement* v0_N_vs_BX_;
0108   MonitorElement* v0_mass_vs_BX_;
0109   MonitorElement* v0_Lxy_vs_BX_;
0110   MonitorElement* v0_deltaMass_vs_BX_;
0111 
0112   MonitorElement* n_vs_lumi_;
0113   MonitorElement* v0_N_vs_lumi_;
0114   MonitorElement* v0_mass_vs_lumi_;
0115   MonitorElement* v0_Lxy_vs_lumi_;
0116   MonitorElement* v0_deltaMass_vs_lumi_;
0117 
0118   MonitorElement* n_vs_PU_;
0119   MonitorElement* v0_N_vs_PU_;
0120   MonitorElement* v0_mass_vs_PU_;
0121   MonitorElement* v0_Lxy_vs_PU_;
0122   MonitorElement* v0_deltaMass_vs_PU_;
0123 
0124   MonitorElement* n_vs_LS_;
0125   MonitorElement* v0_N_vs_LS_;
0126 
0127   MEbinning mass_binning_;
0128   MEbinning pt_binning_;
0129   MEbinning eta_binning_;
0130   MEbinning Lxy_binning_;
0131   MEbinning chi2oNDF_binning_;
0132   MEbinning lumi_binning_;
0133   MEbinning pu_binning_;
0134   MEbinning ls_binning_;
0135 };
0136 
0137 #endif  // DQM_TRACKINGMONITOR_V0MONITOR_H