45 EfficiencyCriterionName =
parameters.getUntrackedParameter<
string>(
"efficiencyTestName",
"EfficiencyInRange");
55 globalRotation.push_back(ibooker.
book1D(
56 "muVStkSytemRotation_posMu_profile",
"pT_{TK} / pT_{GLB} vs pT_{GLB} profile for #mu^{+}", 50, 0, 200));
57 globalRotation.push_back(ibooker.
book1D(
58 "muVStkSytemRotation_negMu_profile",
"pT_{TK} / pT_{GLB} vs pT_{GLB} profile for #mu^{-}", 50, 0, 200));
59 globalRotation.push_back(ibooker.
book1D(
60 "muVStkSytemRotation_profile",
"pT_{TK} / pT_{GLB} vs pT_{GLB} profile for #mu^{+}-#mu^{-}", 50, 0, 200));
63 string path =
"Muons/MuonRecoAnalyzer/StaEta_ifCombinedAlso";
65 path =
"Muons/MuonRecoAnalyzer/StaEta";
68 if (staEtaIfComb_histo && staEta_histo) {
69 TH1F* staEtaIfComb_root = staEtaIfComb_histo->
getTH1F();
70 TH1F* staEta_root = staEta_histo->
getTH1F();
72 if (staEtaIfComb_root->GetXaxis()->GetNbins() !=
etaBin || staEtaIfComb_root->GetXaxis()->GetXmax() !=
etaMax ||
73 staEtaIfComb_root->GetXaxis()->GetXmin() !=
etaMin) {
74 LogTrace(
metname) <<
"[MuonRecoTest] wrong histo binning on eta histograms";
79 if (staEta_root->GetBinContent(
i) != 0) {
80 double efficiency = double(staEtaIfComb_root->GetBinContent(
i)) /
double(staEta_root->GetBinContent(
i));
81 etaEfficiency->setBinContent(
i, efficiency);
86 path =
"Muons/MuonRecoAnalyzer/StaPhi_ifCombinedAlso";
88 path =
"Muons/MuonRecoAnalyzer/StaPhi";
91 if (staPhiIfComb_histo && staPhi_histo) {
92 TH1F* staPhiIfComb_root = staPhiIfComb_histo->
getTH1F();
93 TH1F* staPhi_root = staPhi_histo->
getTH1F();
95 if (staPhiIfComb_root->GetXaxis()->GetNbins() !=
phiBin || staPhiIfComb_root->GetXaxis()->GetXmax() !=
phiMax ||
96 staPhiIfComb_root->GetXaxis()->GetXmin() !=
phiMin) {
97 LogTrace(
metname) <<
"[MuonRecoTest] wrong histo binning on phi histograms";
102 if (staPhi_root->GetBinContent(
i) != 0) {
103 double efficiency = double(staPhiIfComb_root->GetBinContent(
i)) /
double(staPhi_root->GetBinContent(
i));
104 phiEfficiency->setBinContent(
i, efficiency);
112 const QReport* theEtaQReport = etaEfficiency->getQReport(EfficiencyCriterionName);
114 vector<dqm::me_util::Channel> badChannels = theEtaQReport->
getBadChannels();
115 for (vector<dqm::me_util::Channel>::iterator channel = badChannels.begin(); channel != badChannels.end();
117 LogTrace(
metname) <<
"[etaEfficiency test] bad ranges: " << (*channel).getBin()
118 <<
" Contents : " << (*channel).getContents() << endl;
124 const QReport* thePhiQReport = phiEfficiency->getQReport(EfficiencyCriterionName);
126 vector<dqm::me_util::Channel> badChannels = thePhiQReport->
getBadChannels();
127 for (vector<dqm::me_util::Channel>::iterator channel = badChannels.begin(); channel != badChannels.end();
129 LogTrace(
metname) <<
"[phiEfficiency test] bad ranges: " << (*channel).getBin()
130 <<
" Contents : " << (*channel).getContents() << endl;
137 string pathPos =
"Muons/MuonRecoAnalyzer/muVStkSytemRotation_posMu";
139 string pathNeg =
"Muons/MuonRecoAnalyzer/muVStkSytemRotation_negMu";
141 if (muVStkSytemRotation_posMu_histo && muVStkSytemRotation_negMu_histo) {
142 TH2F* muVStkSytemRotation_posMu_root = muVStkSytemRotation_posMu_histo->
getTH2F();
143 TProfile* muVStkSytemRotation_posMu_profile = muVStkSytemRotation_posMu_root->ProfileX(
"", 1, 100);
144 TH2F* muVStkSytemRotation_negMu_root = muVStkSytemRotation_negMu_histo->
getTH2F();
145 TProfile* muVStkSytemRotation_negMu_profile = muVStkSytemRotation_negMu_root->ProfileX(
"", 1, 100);
147 for (
int x = 1; x < 50; x++) {
148 globalRotation[0]->Fill((x * 4) - 1, muVStkSytemRotation_posMu_profile->GetBinContent(x));
149 globalRotation[0]->setBinError(x, muVStkSytemRotation_posMu_profile->GetBinError(x));
150 globalRotation[1]->Fill((x * 4) - 1, muVStkSytemRotation_negMu_profile->GetBinContent(x));
151 globalRotation[1]->setBinError(x, muVStkSytemRotation_negMu_profile->GetBinError(x));
152 globalRotation[2]->Fill(
154 muVStkSytemRotation_posMu_profile->GetBinContent(x) - muVStkSytemRotation_negMu_profile->GetBinContent(x));
155 globalRotation[2]->setBinError(
158 (muVStkSytemRotation_posMu_profile->GetBinError(x) * muVStkSytemRotation_posMu_profile->GetBinError(x)) +
159 (muVStkSytemRotation_negMu_profile->GetBinError(x) * muVStkSytemRotation_negMu_profile->GetBinError(x))));
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX)
virtual TH2F * getTH2F() const
const std::vector< DQMChannel > & getBadChannels() const
const std::string metname
void setCurrentFolder(std::string const &fullpath)
virtual TH1F * getTH1F() const
const std::string & getMessage() const
get message attached to test
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
Endjob.
int getStatus() const
get test status (see Core/interface/QTestStatus.h)
MuonRecoTest(const edm::ParameterSet &ps)
Constructor.
MonitorElement * get(std::string const &path)