41 phiBin =
parameters.getParameter<
int>(
"phiBin");
45 EfficiencyCriterionName =
parameters.getUntrackedParameter<
string>(
"efficiencyTestName",
"EfficiencyInRange");
55 phiEfficiency = ibooker.
book1D(
"phiEfficiency_staMuon",
"#phi_{STA} efficiency", phiBin,
phiMin,
phiMax);
58 string path =
"Muons/MuonRecoAnalyzer/StaEta_ifCombinedAlso";
60 path =
"Muons/MuonRecoAnalyzer/StaEta";
63 if (staEtaIfComb_histo && staEta_histo) {
64 TH1F* staEtaIfComb_root = staEtaIfComb_histo->
getTH1F();
65 TH1F* staEta_root = staEta_histo->
getTH1F();
67 if (staEtaIfComb_root->GetXaxis()->GetNbins() !=
etaBin || staEtaIfComb_root->GetXaxis()->GetXmax() !=
etaMax ||
68 staEtaIfComb_root->GetXaxis()->GetXmin() !=
etaMin) {
69 LogTrace(
metname) <<
"[MuonRecoTest] wrong histo binning on eta histograms";
74 if (staEta_root->GetBinContent(
i) != 0) {
75 double efficiency = double(staEtaIfComb_root->GetBinContent(
i)) /
double(staEta_root->GetBinContent(
i));
76 etaEfficiency->setBinContent(
i, efficiency);
81 path =
"Muons/MuonRecoAnalyzer/StaPhi_ifCombinedAlso";
83 path =
"Muons/MuonRecoAnalyzer/StaPhi";
86 if (staPhiIfComb_histo && staPhi_histo) {
87 TH1F* staPhiIfComb_root = staPhiIfComb_histo->
getTH1F();
88 TH1F* staPhi_root = staPhi_histo->
getTH1F();
90 if (staPhiIfComb_root->GetXaxis()->GetNbins() != phiBin || staPhiIfComb_root->GetXaxis()->GetXmax() !=
phiMax ||
91 staPhiIfComb_root->GetXaxis()->GetXmin() !=
phiMin) {
92 LogTrace(
metname) <<
"[MuonRecoTest] wrong histo binning on phi histograms";
97 if (staPhi_root->GetBinContent(
i) != 0) {
98 double efficiency = double(staPhiIfComb_root->GetBinContent(
i)) /
double(staPhi_root->GetBinContent(
i));
99 phiEfficiency->setBinContent(
i, efficiency);
109 globalRotation.push_back(ibooker.
book1D(
110 "muVStkSytemRotation_posMu_profile",
"pT_{TK} / pT_{GLB} vs pT_{GLB} profile for #mu^{+}", 50, 0, 200));
111 globalRotation.push_back(ibooker.
book1D(
112 "muVStkSytemRotation_negMu_profile",
"pT_{TK} / pT_{GLB} vs pT_{GLB} profile for #mu^{-}", 50, 0, 200));
113 globalRotation.push_back(ibooker.
book1D(
114 "muVStkSytemRotation_profile",
"pT_{TK} / pT_{GLB} vs pT_{GLB} profile for #mu^{+}-#mu^{-}", 50, 0, 200));
119 const QReport* theEtaQReport = etaEfficiency->getQReport(EfficiencyCriterionName);
121 vector<dqm::me_util::Channel> badChannels = theEtaQReport->
getBadChannels();
122 for (vector<dqm::me_util::Channel>::iterator channel = badChannels.begin(); channel != badChannels.end();
124 LogTrace(
metname) <<
"[etaEfficiency test] bad ranges: " << (*channel).getBin()
125 <<
" Contents : " << (*channel).getContents() << endl;
131 const QReport* thePhiQReport = phiEfficiency->getQReport(EfficiencyCriterionName);
133 vector<dqm::me_util::Channel> badChannels = thePhiQReport->
getBadChannels();
134 for (vector<dqm::me_util::Channel>::iterator channel = badChannels.begin(); channel != badChannels.end();
136 LogTrace(
metname) <<
"[phiEfficiency test] bad ranges: " << (*channel).getBin()
137 <<
" Contents : " << (*channel).getContents() << endl;
144 string pathPos =
"Muons/MuonRecoAnalyzer/muVStkSytemRotation_posMu";
146 string pathNeg =
"Muons/MuonRecoAnalyzer/muVStkSytemRotation_negMu";
148 if (muVStkSytemRotation_posMu_histo && muVStkSytemRotation_negMu_histo) {
149 TH2F* muVStkSytemRotation_posMu_root = muVStkSytemRotation_posMu_histo->
getTH2F();
150 TProfile* muVStkSytemRotation_posMu_profile = muVStkSytemRotation_posMu_root->ProfileX(
"", 1, 100);
151 TH2F* muVStkSytemRotation_negMu_root = muVStkSytemRotation_negMu_histo->
getTH2F();
152 TProfile* muVStkSytemRotation_negMu_profile = muVStkSytemRotation_negMu_root->ProfileX(
"", 1, 100);
154 for (
int x = 1; x < 50; x++) {
155 globalRotation[0]->Fill((x * 4) - 1, muVStkSytemRotation_posMu_profile->GetBinContent(x));
156 globalRotation[0]->setBinError(x, muVStkSytemRotation_posMu_profile->GetBinError(x));
157 globalRotation[1]->Fill((x * 4) - 1, muVStkSytemRotation_negMu_profile->GetBinContent(x));
158 globalRotation[1]->setBinError(x, muVStkSytemRotation_negMu_profile->GetBinError(x));
159 globalRotation[2]->Fill(
161 muVStkSytemRotation_posMu_profile->GetBinContent(x) - muVStkSytemRotation_negMu_profile->GetBinContent(x));
162 globalRotation[2]->setBinError(
165 (muVStkSytemRotation_posMu_profile->GetBinError(x) * muVStkSytemRotation_posMu_profile->GetBinError(x)) +
166 (muVStkSytemRotation_negMu_profile->GetBinError(x) * muVStkSytemRotation_negMu_profile->GetBinError(x))));
virtual TH2F * getTH2F() const
virtual void setCurrentFolder(std::string const &fullpath)
const std::string metname
virtual TH1F * getTH1F() const
int getStatus() const
get test status
void dqmEndRun(DQMStore::IBooker &, DQMStore::IGetter &, edm::Run const &, edm::EventSetup const &) override
Endjob.
const std::string & getMessage() const
get message attached to test
virtual MonitorElement * get(std::string const &fullpath) const
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
const std::vector< DQMChannel > & getBadChannels() const
MuonRecoTest(const edm::ParameterSet &ps)
Constructor.
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
int etaBin(const l1t::HGCalMulticluster *cl)