CMS 3D CMS Logo

SusyDQM.h
Go to the documentation of this file.
1 #ifndef SusyDQM_H
2 #define SusyDQM_H
3 
4 #include <string>
5 #include <vector>
6 
14 
18 
39 
40 class TH1F;
41 class TH2F;
42 
43 class PtGreater {
44  public:
45  template <typename T>
46  bool operator()(const T& i, const T& j) {
47  return (i.pt() > j.pt());
48  }
49 };
50 
51 template <typename Mu, typename Ele, typename Jet, typename Met>
52 class SusyDQM : public DQMEDAnalyzer {
53  public:
54  explicit SusyDQM(const edm::ParameterSet&);
55  ~SusyDQM() override;
56 
57  protected:
59  edm::EventSetup const&) override;
60 
61  private:
62  void analyze(const edm::Event&, const edm::EventSetup&) override;
63  virtual bool goodSusyElectron(const Ele*);
64  virtual bool goodSusyMuon(const Mu*);
65 
67 
69 
75 
76  double elec_eta_cut_;
77  double elec_mva_cut_;
78  double elec_d0_cut_;
79 
80  double muon_eta_cut_;
83  double muon_d0_cut_;
84 
87 
90 
96 
97  double RAL_met_cut_;
98 
100 
106 
112 
115 
117 
124 
134 };
135 
136 template <typename Mu, typename Ele, typename Jet, typename Met>
138  parameters_ = pset;
139  moduleName_ = pset.getUntrackedParameter<std::string>("moduleName");
140 
141  muons_ = consumes<std::vector<reco::Muon> >(
142  pset.getParameter<edm::InputTag>("muonCollection"));
143  electrons_ = consumes<std::vector<reco::GsfElectron> >(
144  pset.getParameter<edm::InputTag>("electronCollection"));
145  jets_ = consumes<std::vector<reco::CaloJet> >(
146  pset.getParameter<edm::InputTag>("jetCollection"));
147  met_ = consumes<std::vector<reco::CaloMET> >(
148  pset.getParameter<edm::InputTag>("metCollection"));
149  vertex_ = consumes<reco::VertexCollection>(
150  pset.getParameter<edm::InputTag>("vertexCollection"));
151 
152  muon_eta_cut_ = pset.getParameter<double>("muon_eta_cut");
153  muon_nHits_cut_ = pset.getParameter<double>("muon_nHits_cut");
154  muon_nChi2_cut_ = pset.getParameter<double>("muon_nChi2_cut");
155  muon_d0_cut_ = pset.getParameter<double>("muon_d0_cut");
156 
157  elec_eta_cut_ = pset.getParameter<double>("elec_eta_cut");
158  elec_mva_cut_ = pset.getParameter<double>("elec_mva_cut");
159  elec_d0_cut_ = pset.getParameter<double>("elec_d0_cut");
160 
161  RAL_muon_pt_cut_ = pset.getParameter<double>("RAL_muon_pt_cut");
162  RAL_muon_iso_cut_ = pset.getParameter<double>("RAL_muon_iso_cut");
163 
164  RAL_elec_pt_cut_ = pset.getParameter<double>("RAL_elec_pt_cut");
165  RAL_elec_iso_cut_ = pset.getParameter<double>("RAL_elec_iso_cut");
166 
167  RAL_jet_pt_cut_ = pset.getParameter<double>("RAL_jet_pt_cut");
168  RAL_jet_sum_pt_cut_ = pset.getParameter<double>("RAL_jet_sum_pt_cut");
169  RAL_jet_eta_cut_ = pset.getParameter<double>("RAL_jet_eta_cut");
170  RAL_jet_min_emf_cut_ = pset.getParameter<double>("RAL_jet_min_emf_cut");
171  RAL_jet_max_emf_cut_ = pset.getParameter<double>("RAL_jet_max_emf_cut");
172 
173  RAL_met_cut_ = pset.getParameter<double>("RAL_met_cut");
174 
175  hRAL_N_muons_ = nullptr;
176  hRAL_pt_muons_ = nullptr;
177  hRAL_eta_muons_ = nullptr;
178  hRAL_phi_muons_ = nullptr;
179  hRAL_Iso_muons_ = nullptr;
180  hRAL_N_elecs_ = nullptr;
181  hRAL_pt_elecs_ = nullptr;
182  hRAL_eta_elecs_ = nullptr;
183  hRAL_phi_elecs_ = nullptr;
184  hRAL_Iso_elecs_ = nullptr;
185  hRAL_Sum_pt_jets_ = nullptr;
186  hRAL_Met_ = nullptr;
187  hRAL_dR_emu_ = nullptr;
188  hRAL_mass_OS_mumu_ = nullptr;
189  hRAL_mass_OS_ee_ = nullptr;
190  hRAL_mass_OS_emu_ = nullptr;
191  hRAL_mass_SS_mumu_ = nullptr;
192  hRAL_mass_SS_ee_ = nullptr;
193  hRAL_mass_SS_emu_ = nullptr;
194  hRAL_Muon_monitor_ = nullptr;
195  hRAL_Electron_monitor_ = nullptr;
196  hRAL_OSee_monitor_ = nullptr;
197  hRAL_OSemu_monitor_ = nullptr;
198  hRAL_OSmumu_monitor_ = nullptr;
199  hRAL_SSee_monitor_ = nullptr;
200  hRAL_SSemu_monitor_ = nullptr;
201  hRAL_SSmumu_monitor_ = nullptr;
202  hRAL_TriMuon_monitor_ = nullptr;
203 }
204 
205 template <typename Mu, typename Ele, typename Jet, typename Met>
207 
208 template <typename Mu, typename Ele, typename Jet, typename Met>
210  edm::Run const&,
211  edm::EventSetup const&) {
212  iBooker.setCurrentFolder(moduleName_);
213 
214  hRAL_N_muons_ = iBooker.book1D("RAL_N_muons", "RAL_N_muons", 10, 0., 10.);
215  hRAL_pt_muons_ = iBooker.book1D("RAL_pt_muons", "RAL_pt_muons", 50, 0., 300.);
216  hRAL_eta_muons_ =
217  iBooker.book1D("RAL_eta_muons", "RAL_eta_muons", 50, -2.5, 2.5);
218  hRAL_phi_muons_ = iBooker.book1D("RAL_phi_muons", "RAL_phi_muons", 50, -4., 4.);
219  hRAL_Iso_muons_ = iBooker.book1D("RAL_Iso_muons", "RAL_Iso_muons", 50, 0., 25.);
220 
221  hRAL_N_elecs_ = iBooker.book1D("RAL_N_elecs", "RAL_N_elecs", 10, 0., 10.);
222  hRAL_pt_elecs_ = iBooker.book1D("RAL_pt_elecs", "RAL_pt_elecs", 50, 0., 300.);
223  hRAL_eta_elecs_ =
224  iBooker.book1D("RAL_eta_elecs", "RAL_eta_elecs", 50, -2.5, 2.5);
225  hRAL_phi_elecs_ = iBooker.book1D("RAL_phi_elecs", "RAL_phi_elecs", 50, -4., 4.);
226  hRAL_Iso_elecs_ = iBooker.book1D("RAL_Iso_elecs", "RAL_Iso_elecs", 50, 0., 25.);
227 
228  hRAL_Sum_pt_jets_ =
229  iBooker.book1D("RAL_Sum_pt_jets", "RAL_Sum_pt_jets", 50, 0., 2000.);
230  hRAL_Met_ = iBooker.book1D("RAL_Met", "RAL_Met", 50, 0., 1000.);
231 
232  hRAL_dR_emu_ = iBooker.book1D("RAL_deltaR_emu", "RAL_deltaR_emu", 50, 0., 10.);
233 
234  hRAL_mass_OS_mumu_ =
235  iBooker.book1D("RAL_mass_OS_mumu", "RAL_mass_OS_mumu", 50, 0., 300.);
236  hRAL_mass_OS_ee_ =
237  iBooker.book1D("RAL_mass_OS_ee", "RAL_mass_OS_ee", 50, 0., 300.);
238  hRAL_mass_OS_emu_ =
239  iBooker.book1D("RAL_mass_OS_emu", "RAL_mass_OS_emu", 50, 0., 300.);
240  hRAL_mass_SS_mumu_ =
241  iBooker.book1D("RAL_mass_SS_mumu", "RAL_mass_SS_mumu", 50, 0., 300.);
242  hRAL_mass_SS_ee_ =
243  iBooker.book1D("RAL_mass_SS_ee", "RAL_mass_SS_ee", 50, 0., 300.);
244  hRAL_mass_SS_emu_ =
245  iBooker.book1D("RAL_mass_SS_emu", "RAL_mass_SS_emu", 50, 0., 300.);
246 
247  hRAL_Muon_monitor_ =
248  iBooker.book2D("RAL_Single_Muon_Selection", "RAL_Single_Muon_Selection", 50,
249  0., 1000., 50, 0., 1000.);
250  hRAL_Electron_monitor_ = iBooker.book2D("RAL_Single_Electron_Selection",
251  "RAL_Single_Electron_Selection", 50, 0.,
252  1000., 50, 0., 1000.);
253  hRAL_OSee_monitor_ =
254  iBooker.book2D("RAL_OS_Electron_Selection", "RAL_OS_Electron_Selection", 50,
255  0., 1000., 50, 0., 1000.);
256  hRAL_OSemu_monitor_ = iBooker.book2D("RAL_OS_ElectronMuon_Selection",
257  "RAL_OS_ElectronMuon_Selection", 50, 0.,
258  1000., 50, 0., 1000.);
259  hRAL_OSmumu_monitor_ =
260  iBooker.book2D("RAL_OS_Muon_Selection", "RAL_OS_Muon_Selection", 50, 0.,
261  1000., 50, 0., 1000.);
262  hRAL_SSee_monitor_ =
263  iBooker.book2D("RAL_SS_Electron_Selection", "RAL_SS_Electron_Selection", 50,
264  0., 1000., 50, 0., 1000.);
265  hRAL_SSemu_monitor_ = iBooker.book2D("RAL_SS_ElectronMuon_Selection",
266  "RAL_SS_ElectronMuon_Selection", 50, 0.,
267  1000., 50, 0., 1000.);
268  hRAL_SSmumu_monitor_ =
269  iBooker.book2D("RAL_SS_Muon_Selection", "RAL_SS_Muon_Selection", 50, 0.,
270  1000., 50, 0., 1000.);
271  hRAL_TriMuon_monitor_ =
272  iBooker.book2D("RAL_Tri_Muon_Selection", "RAL_Tri_Muon_Selection", 50, 0.,
273  1000., 50, 0., 1000.);
274 }
275 
276 template <typename Mu, typename Ele, typename Jet, typename Met>
278  // if (ele->pt() < elec_pt_cut_)
279  // return false;
280  if (fabs(ele->eta()) > elec_eta_cut_) return false;
281  // if (ele->mva() < elec_mva_cut_)
282  // return false;
283  if (fabs(ele->gsfTrack()->dxy(bs)) > elec_d0_cut_) return false;
284  return true;
285 }
286 
287 template <typename Mu, typename Ele, typename Jet, typename Met>
289  // if (mu->pt() < muon_pt_cut_)
290  // return false;
291  if (fabs(mu->eta()) > muon_eta_cut_) return false;
292  if (!mu->isGlobalMuon()) return false;
293  if (mu->innerTrack()->numberOfValidHits() < muon_nHits_cut_) return false;
294  if (mu->globalTrack()->normalizedChi2() > muon_nChi2_cut_) return false;
295  if (fabs(mu->innerTrack()->dxy(bs)) > muon_d0_cut_) return false;
296  return true;
297 }
298 
299 template <typename Mu, typename Ele, typename Jet, typename Met>
301  const edm::EventSetup& iSetup) {
303  bool isFound = evt.getByToken(muons_, muons);
304  if (!isFound) return;
305 
307  isFound = evt.getByToken(electrons_, elecs);
308  if (!isFound) return;
309 
312  isFound = evt.getByToken(jets_, cJets);
313  if (!isFound) return;
314  std::vector<Jet> jets = *cJets;
315  std::sort(jets.begin(), jets.end(), PtGreater());
316 
318  isFound = evt.getByToken(met_, mets);
319  if (!isFound) return;
320 
322  isFound = evt.getByToken(vertex_, vertices);
323  if (!isFound) return;
324 
326  // Leptonic DQM histos
328 
329  float sumPt = 0.;
330  for (typename std::vector<Jet>::const_iterator jet_i = jets.begin();
331  jet_i != jets.end(); ++jet_i) {
332  if (jet_i->pt() < RAL_jet_pt_cut_) continue;
333  if (fabs(jet_i->eta()) > RAL_jet_eta_cut_) continue;
334  if (fabs(jet_i->eta()) > RAL_jet_eta_cut_) continue;
335  if (jet_i->emEnergyFraction() < RAL_jet_min_emf_cut_) continue;
336  if (jet_i->emEnergyFraction() > RAL_jet_max_emf_cut_) continue;
337  sumPt += jet_i->pt();
338  }
339 
340  hRAL_Sum_pt_jets_->Fill(sumPt);
341 
342  float MET = 0.;
343  for (typename std::vector<Met>::const_iterator met_i = mets->begin();
344  met_i != mets->end(); ++met_i) {
345  MET = met_i->pt();
346  break;
347  }
348 
349  hRAL_Met_->Fill(MET);
350 
351  int nMuons = 0;
352  int nSSmumu = 0;
353  int nOSmumu = 0;
354  int nSSemu = 0;
355  int nOSemu = 0;
356  float inv = 0.;
357  float dR = 0.;
358 
359  for (typename std::vector<Mu>::const_iterator mu_i = muons->begin();
360  mu_i != muons->end(); ++mu_i) {
361  if (!(goodSusyMuon(&(*mu_i)) && mu_i->pt() > RAL_muon_pt_cut_)) continue;
362  ++nMuons;
363 
364  hRAL_pt_muons_->Fill(mu_i->pt());
365  hRAL_eta_muons_->Fill(mu_i->eta());
366  hRAL_phi_muons_->Fill(mu_i->phi());
367 
368  reco::MuonIsolation muIso = mu_i->isolationR03();
369  hRAL_Iso_muons_->Fill(muIso.emEt + muIso.hadEt + muIso.sumPt);
370 
371  // Muon muon pairs
372  for (typename std::vector<Mu>::const_iterator mu_j = muons->begin();
373  mu_j != muons->end(); ++mu_j) {
374  if (mu_i >= mu_j) continue;
375  if (!(goodSusyMuon(&(*mu_j)) && mu_j->pt() > RAL_muon_pt_cut_)) continue;
376 
377  inv = (mu_i->p4() + mu_j->p4()).M();
378  if (mu_i->charge() * mu_j->charge() > 0) {
379  ++nSSmumu;
380  hRAL_mass_SS_mumu_->Fill(inv);
381  }
382  if (mu_i->charge() * mu_j->charge() < 0) {
383  ++nOSmumu;
384  hRAL_mass_OS_mumu_->Fill(inv);
385  }
386  }
387 
388  // Electron muon pairs
389  for (typename std::vector<Ele>::const_iterator ele_j = elecs->begin();
390  ele_j != elecs->end(); ++ele_j) {
391  if (!(goodSusyElectron(&(*ele_j)) && ele_j->pt() > RAL_elec_pt_cut_))
392  continue;
393  inv = (mu_i->p4() + ele_j->p4()).M();
394  dR = deltaR(*mu_i, *ele_j);
395  hRAL_dR_emu_->Fill(dR);
396  if (mu_i->charge() * ele_j->charge() > 0) {
397  ++nSSemu;
398  hRAL_mass_SS_emu_->Fill(inv);
399  }
400  if (mu_i->charge() * ele_j->charge() < 0) {
401  ++nOSemu;
402  hRAL_mass_OS_emu_->Fill(inv);
403  }
404  }
405  }
406 
407  hRAL_N_muons_->Fill(nMuons);
408 
409  int nElectrons = 0;
410  int nSSee = 0;
411  int nOSee = 0;
412  for (typename std::vector<Ele>::const_iterator ele_i = elecs->begin();
413  ele_i != elecs->end(); ++ele_i) {
414  if (!(goodSusyElectron(&(*ele_i)) && ele_i->pt() > RAL_elec_pt_cut_))
415  continue;
416  nElectrons++;
417 
418  hRAL_pt_elecs_->Fill(ele_i->pt());
419  hRAL_eta_elecs_->Fill(ele_i->eta());
420  hRAL_phi_elecs_->Fill(ele_i->phi());
421 
422  hRAL_Iso_elecs_->Fill(ele_i->dr03TkSumPt() + ele_i->dr03EcalRecHitSumEt() +
423  ele_i->dr03HcalTowerSumEt());
424 
425  // Electron electron pairs
426  for (typename std::vector<Ele>::const_iterator ele_j = elecs->begin();
427  ele_j != elecs->end(); ++ele_j) {
428  if (ele_i >= ele_j) continue;
429  if (!(goodSusyElectron(&(*ele_j)) && ele_j->pt() > RAL_elec_pt_cut_))
430  continue;
431 
432  inv = (ele_i->p4() + ele_j->p4()).M();
433  if (ele_i->charge() * ele_j->charge() > 0) {
434  ++nSSee;
435  hRAL_mass_SS_ee_->Fill(inv);
436  }
437  if (ele_i->charge() * ele_j->charge() < 0) {
438  ++nOSee;
439  hRAL_mass_OS_ee_->Fill(inv);
440  }
441  }
442  }
443 
444  hRAL_N_elecs_->Fill(nElectrons);
445 
446  if (MET > RAL_met_cut_ && sumPt > RAL_jet_sum_pt_cut_) {
447  if (nMuons >= 1) {
448  hRAL_Muon_monitor_->Fill(sumPt, MET);
449  }
450  if (nElectrons >= 1) {
451  hRAL_Electron_monitor_->Fill(sumPt, MET);
452  }
453  if (nOSee >= 1) {
454  hRAL_OSee_monitor_->Fill(sumPt, MET);
455  }
456  if (nOSemu >= 1) {
457  hRAL_OSemu_monitor_->Fill(sumPt, MET);
458  }
459  if (nOSmumu >= 1) {
460  hRAL_OSmumu_monitor_->Fill(sumPt, MET);
461  }
462  if (nSSee >= 1) {
463  hRAL_SSee_monitor_->Fill(sumPt, MET);
464  }
465  if (nSSemu >= 1) {
466  hRAL_SSemu_monitor_->Fill(sumPt, MET);
467  }
468  if (nSSmumu >= 1) {
469  hRAL_SSmumu_monitor_->Fill(sumPt, MET);
470  }
471  }
472  if (nMuons >= 3) {
473  hRAL_TriMuon_monitor_->Fill(sumPt, MET);
474  }
475 }
476 
477 #endif
478 
MonitorElement * hRAL_Iso_elecs_
Definition: SusyDQM.h:111
MonitorElement * hRAL_OSemu_monitor_
Definition: SusyDQM.h:128
float hadEt
hcal sum-Et
Definition: MuonIsolation.h:9
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * hRAL_N_muons_
Definition: SusyDQM.h:101
edm::EDGetTokenT< std::vector< reco::GsfElectron > > electrons_
Definition: SusyDQM.h:71
float sumPt
sum-pt of tracks
Definition: MuonIsolation.h:7
double RAL_muon_pt_cut_
Definition: SusyDQM.h:85
SusyDQM(const edm::ParameterSet &)
Definition: SusyDQM.h:137
math::XYZPoint bs
Definition: SusyDQM.h:99
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
MonitorElement * hRAL_Iso_muons_
Definition: SusyDQM.h:105
virtual bool goodSusyMuon(const Mu *)
Definition: SusyDQM.h:288
MonitorElement * hRAL_SSmumu_monitor_
Definition: SusyDQM.h:132
MonitorElement * hRAL_Sum_pt_jets_
Definition: SusyDQM.h:113
std::string moduleName_
Definition: SusyDQM.h:68
double RAL_elec_iso_cut_
Definition: SusyDQM.h:89
edm::EDGetTokenT< reco::VertexCollection > vertex_
Definition: SusyDQM.h:74
double RAL_jet_sum_pt_cut_
Definition: SusyDQM.h:95
double RAL_jet_pt_cut_
Definition: SusyDQM.h:91
MonitorElement * hRAL_eta_elecs_
Definition: SusyDQM.h:109
edm::EDGetTokenT< std::vector< reco::Muon > > muons_
Definition: SusyDQM.h:70
double RAL_jet_max_emf_cut_
Definition: SusyDQM.h:94
MonitorElement * hRAL_mass_SS_mumu_
Definition: SusyDQM.h:121
double RAL_jet_min_emf_cut_
Definition: SusyDQM.h:93
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * hRAL_mass_SS_emu_
Definition: SusyDQM.h:123
MonitorElement * hRAL_OSee_monitor_
Definition: SusyDQM.h:127
edm::EDGetTokenT< std::vector< reco::CaloJet > > jets_
Definition: SusyDQM.h:72
double RAL_elec_pt_cut_
Definition: SusyDQM.h:88
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
edm::EDGetTokenT< std::vector< reco::CaloMET > > met_
Definition: SusyDQM.h:73
double elec_eta_cut_
Definition: SusyDQM.h:76
double muon_eta_cut_
Definition: SusyDQM.h:80
vector< PseudoJet > jets
MonitorElement * hRAL_mass_OS_emu_
Definition: SusyDQM.h:120
MonitorElement * hRAL_mass_OS_mumu_
Definition: SusyDQM.h:118
float emEt
ecal sum-Et
Definition: MuonIsolation.h:8
double RAL_muon_iso_cut_
Definition: SusyDQM.h:86
MonitorElement * hRAL_OSmumu_monitor_
Definition: SusyDQM.h:129
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
virtual bool goodSusyElectron(const Ele *)
Definition: SusyDQM.h:277
MonitorElement * hRAL_Muon_monitor_
Definition: SusyDQM.h:125
const int mu
Definition: Constants.h:22
MonitorElement * hRAL_pt_elecs_
Definition: SusyDQM.h:108
MonitorElement * hRAL_eta_muons_
Definition: SusyDQM.h:103
MonitorElement * hRAL_phi_elecs_
Definition: SusyDQM.h:110
edm::ParameterSet parameters_
Definition: SusyDQM.h:66
MonitorElement * hRAL_pt_muons_
Definition: SusyDQM.h:102
MonitorElement * hRAL_N_elecs_
Definition: SusyDQM.h:107
MonitorElement * hRAL_Electron_monitor_
Definition: SusyDQM.h:126
double muon_nChi2_cut_
Definition: SusyDQM.h:82
double muon_d0_cut_
Definition: SusyDQM.h:83
double elec_mva_cut_
Definition: SusyDQM.h:77
Definition: L1GtObject.h:30
MonitorElement * hRAL_Met_
Definition: SusyDQM.h:114
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:109
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: SusyDQM.h:209
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
double elec_d0_cut_
Definition: SusyDQM.h:78
double RAL_jet_eta_cut_
Definition: SusyDQM.h:92
example_stream void bookHistograms(DQMStore::IBooker &,@example_stream edm::Run const &,@example_stream edm::EventSetup const &) override
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: SusyDQM.h:300
MonitorElement * hRAL_SSee_monitor_
Definition: SusyDQM.h:130
MonitorElement * hRAL_SSemu_monitor_
Definition: SusyDQM.h:131
MonitorElement * hRAL_mass_OS_ee_
Definition: SusyDQM.h:119
MonitorElement * hRAL_TriMuon_monitor_
Definition: SusyDQM.h:133
double RAL_met_cut_
Definition: SusyDQM.h:97
~SusyDQM() override
Definition: SusyDQM.h:206
MonitorElement * hRAL_phi_muons_
Definition: SusyDQM.h:104
MonitorElement * hRAL_mass_SS_ee_
Definition: SusyDQM.h:122
long double T
bool operator()(const T &i, const T &j)
Definition: SusyDQM.h:46
MonitorElement * hRAL_dR_emu_
Definition: SusyDQM.h:116
double muon_nHits_cut_
Definition: SusyDQM.h:81
Definition: Run.h:45
SusyDQM< reco::Muon, reco::GsfElectron, reco::CaloJet, reco::CaloMET > RecoSusyDQM
Definition: SusyDQM.h:480