1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
#ifndef DIMUONHISTOGRAMS_H
#define DIMUONHISTOGRAMS_H
/** Class DiMuonHistograms
*
* DQM monitoring for dimuon mass
*
* Author: S.Folgueras, U. Oviedo
*/
/* Base Class Headers */
#include <memory>
#include <fstream>
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Utilities/interface/InputTag.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "DQMServices/Core/interface/DQMStore.h"
#include "DQMServices/Core/interface/DQMEDAnalyzer.h"
#include "RecoMuon/TrackingTools/interface/MuonServiceProxy.h"
#include "DataFormats/MuonReco/interface/Muon.h"
#include "DataFormats/MuonReco/interface/MuonFwd.h"
#include "DataFormats/BeamSpot/interface/BeamSpot.h"
#include "DataFormats/VertexReco/interface/Vertex.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"
class DiMuonHistograms : public DQMEDAnalyzer {
public:
/* Constructor */
DiMuonHistograms(const edm::ParameterSet& pset);
/* Destructor */
~DiMuonHistograms() override;
/* Operations */
void analyze(const edm::Event&, const edm::EventSetup&) override;
void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
private:
MuonServiceProxy* theService;
edm::ParameterSet parameters;
// Switch for verbosity
std::string metname;
//histo binning parameters
int etaBin;
int etaBBin;
int etaEBin;
int etaOvlpBin;
//Defining relevant eta regions
std::string EtaName[3];
double EtaCutMin;
double EtaCutMax;
double etaBMin;
double etaBMax;
double etaECMin;
double etaECMax;
//Defining the relevant invariant mass regions
double lowMassMin;
double lowMassMax;
double highMassMin;
double highMassMax;
std::vector<MonitorElement*> GlbGlbMuon_LM;
std::vector<MonitorElement*> GlbGlbMuon_HM;
std::vector<MonitorElement*> StaTrkMuon_LM;
std::vector<MonitorElement*> StaTrkMuon_HM;
std::vector<MonitorElement*> TrkTrkMuon_LM;
std::vector<MonitorElement*> TrkTrkMuon_HM;
std::vector<MonitorElement*> LooseLooseMuon;
std::vector<MonitorElement*> MediumMediumMuon;
std::vector<MonitorElement*> TightTightMuon;
std::vector<MonitorElement*> SoftSoftMuon;
std::vector<MonitorElement*> LooseLooseMuonBadFrac;
std::vector<MonitorElement*> MediumMediumMuonBadFrac;
std::vector<MonitorElement*> TightTightMuonBadFrac;
std::vector<MonitorElement*> SoftSoftMuonBadFrac;
MonitorElement* test; // my test
// Labels used
edm::EDGetTokenT<edm::View<reco::Muon> > theMuonCollectionLabel_;
edm::EDGetTokenT<reco::VertexCollection> theVertexLabel_;
edm::EDGetTokenT<reco::BeamSpot> theBeamSpotLabel_;
std::string theFolder;
int nTightTight;
int nMediumMedium;
int nLooseLoose;
int nGlbGlb;
};
#endif
|