CMS 3D CMS Logo

DiMuonMassBiasMonitor.h
Go to the documentation of this file.
1 #ifndef DQMOffline_Alignment_DiMuonMassBiasMonitor_H
2 #define DQMOffline_Alignment_DiMuonMassBiasMonitor_H
3 
4 // -*- C++ -*-
5 //
6 // Package: DiMuonMassBiasMonitor
7 // Class: DiMuonMassBiasMonitor
8 //
14 // system includes
15 #include <string>
16 
17 // user includes
31 
32 struct ComponentHists {
36 
41 
43 };
44 
45 struct DecayHists {
46  // kinematics
51 
52  // position
57 
58  // ct and pointing angle
61 
62  // quality
65 
66  std::vector<ComponentHists> decayComponents;
67 };
68 
70 public:
72  ~DiMuonMassBiasMonitor() override = default;
73 
74  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
75 
76  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
77 
79  DecayHists&,
80  std::string const&,
81  std::string const&,
82  int,
83  float,
84  float,
85  float distanceScaleFactor = 1.) const;
86 
88 
90  DecayHists&,
91  TString const&, // TString for the IBooker interface
92  float distanceScaleFactor = 1.) const;
93 
94  void analyze(const edm::Event&, const edm::EventSetup&) override;
95 
97  std::vector<const reco::Track*> const& tracks,
98  const reco::VertexCollection* const& pvs,
99  const edm::EventSetup&) const;
100 
102  const reco::Track* const& component,
103  reco::BeamSpot const* bs,
104  reco::Vertex const* pv) const;
105 
106 private:
107  // ----------member data ---------------------------
112 
113  const std::string MEFolderName_; // Top-level folder name
115  const double distanceScaleFactor_;
117 
118  // 2D histograms of bias vs variable
120  // Decay histograms
122 };
123 #endif
dqm::reco::MonitorElement * h_pt
dqm::reco::MonitorElement * h_displ2D
dqm::reco::MonitorElement * h_phi
dqm::reco::MonitorElement * h_ez
dqm::reco::MonitorElement * h_vertNormChi2
void bookDecayHists(DQMStore::IBooker &, DecayHists &, std::string const &, std::string const &, int, float, float, float distanceScaleFactor=1.) const
dqm::reco::MonitorElement * h_eta
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
dqm::reco::MonitorElement * h_dxy
dqm::reco::MonitorElement * h_vertProb
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
DiMuonMassBiasMonitor(const edm::ParameterSet &)
reco::Vertex const * fillDecayHistograms(DecayHists const &, std::vector< const reco::Track *> const &tracks, const reco::VertexCollection *const &pvs, const edm::EventSetup &) const
void analyze(const edm::Event &, const edm::EventSetup &) override
dqm::reco::MonitorElement * h_pointing
edm::ParameterSet DiMuMassConfiguration_
dqm::reco::MonitorElement * h_phi
dqm::reco::MonitorElement * h_ct
void bookDecayComponentHistograms(DQMStore::IBooker &ibook, DecayHists &histos) const
def pv(vc)
Definition: MetAnalyzer.py:7
dqm::reco::MonitorElement * h_displ3D
dqm::reco::MonitorElement * h_dz
dqm::reco::MonitorElement * h_mass
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
dqm::reco::MonitorElement * h_chi2
auto const & tracks
cannot be loose
DiLepPlotHelp::PlotsVsKinematics ZMassPlots
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > ttbESToken_
const edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
histos
Definition: combine.py:4
const edm::EDGetTokenT< reco::VertexCollection > vertexToken_
void bookComponentHists(DQMStore::IBooker &, DecayHists &, TString const &, float distanceScaleFactor=1.) const
dqm::reco::MonitorElement * h_exy
const edm::EDGetTokenT< reco::TrackCollection > tracksToken_
void fillComponentHistograms(ComponentHists const &histos, const reco::Track *const &component, reco::BeamSpot const *bs, reco::Vertex const *pv) const
dqm::reco::MonitorElement * h_eta
dqm::reco::MonitorElement * h_sign2D
~DiMuonMassBiasMonitor() override=default
dqm::reco::MonitorElement * h_pt
Definition: Run.h:45
const std::string decayMotherName_
dqm::reco::MonitorElement * h_sign3D
std::vector< ComponentHists > decayComponents
const std::string MEFolderName_