55 theDbe->setCurrentFolder(
"Muons/Tests/trackResidualsTest");
57 LogTrace(
metname) <<
"[MuonTrackResidualsTest] beginJob: Parameters initialization"<<endl;
60 string histName, MeanHistoName, SigmaHistoName, MeanHistoTitle, SigmaHistoTitle;
62 type.push_back(
"eta");
63 type.push_back(
"theta");
64 type.push_back(
"phi");
67 for(
unsigned int c=0;
c<type.size();
c++){
69 MeanHistoName =
"MeanTest_" + type[
c];
70 SigmaHistoName =
"SigmaTest_" + type[
c];
72 MeanHistoTitle =
"Mean of the #" + type[
c] +
" residuals distribution";
73 SigmaHistoTitle =
"Sigma of the #" + type[
c] +
" residuals distribution";
75 histName =
"Res_GlbSta_"+type[
c];
76 histoNames[type[
c]].push_back(histName);
77 histName =
"Res_TkGlb_"+type[
c];
78 histoNames[type[
c]].push_back(histName);
79 histName =
"Res_TkSta_"+type[
c];
80 histoNames[type[
c]].push_back(histName);
83 MeanHistos[type[
c]] = theDbe->book1D(MeanHistoName.c_str(),MeanHistoTitle.c_str(),3,0.5,3.5);
84 (MeanHistos[type[
c]])->setBinLabel(1,
"Res_StaGlb",1);
85 (MeanHistos[type[
c]])->setBinLabel(2,
"Res_TkGlb",1);
86 (MeanHistos[type[
c]])->setBinLabel(3,
"Res_TkSta",1);
89 SigmaHistos[type[
c]] = theDbe->book1D(SigmaHistoName.c_str(),SigmaHistoTitle.c_str(),3,0.5,3.5);
90 (SigmaHistos[type[
c]])->setBinLabel(1,
"Res_StaGlb",1);
91 (SigmaHistos[type[
c]])->setBinLabel(2,
"Res_TkGlb",1);
92 (SigmaHistos[type[
c]])->setBinLabel(3,
"Res_TkSta",1);
142 LogTrace(
metname)<<
"[MuonTrackResidualsTest]: endRun, performing the DQM end of run client operation";
144 for(
map<
string, vector<string> > ::const_iterator
histo = histoNames.begin();
145 histo != histoNames.end();
148 for (
unsigned int type=0;
type< (*histo).second.size();
type++){
150 string path =
"Muons/MuonRecoAnalyzer/" + (*histo).second[
type];
155 string GaussianCriterionName =
156 parameters.getUntrackedParameter<
string>(
"resDistributionTestName",
157 "ResidualsDistributionGaussianTest");
160 LogTrace(
metname) <<
"-------- histo : "<<(*histo).second[
type]<<
" "<<GaussianReport->getMessage()<<
" ------- "<<GaussianReport->getStatus();
162 int BinNumber =
type+1;
163 float mean = (*res_histo).getMean(1);
164 float sigma = (*res_histo).getRMS(1);
165 MeanHistos.find((*histo).first)->second->setBinContent(BinNumber, mean);
166 SigmaHistos.find((*histo).first)->second->setBinContent(BinNumber, sigma);
173 string MeanCriterionName =
parameters.getUntrackedParameter<
string>(
"meanTestName",
"ResidualsMeanInRange");
174 for(map<string, MonitorElement*>::const_iterator hMean = MeanHistos.begin();
175 hMean != MeanHistos.end();
177 const QReport * theMeanQReport = (*hMean).second->getQReport(MeanCriterionName);
179 vector<dqm::me_util::Channel> badChannels = theMeanQReport->
getBadChannels();
180 for (vector<dqm::me_util::Channel>::iterator channel = badChannels.begin();
181 channel != badChannels.end(); channel++) {
182 LogTrace(
metname)<<
"type:"<<(*hMean).first<<
" Bad mean channels: "<<(*channel).getBin()<<
" Contents : "<<(*channel).getContents()<<endl;
189 string SigmaCriterionName =
parameters.getUntrackedParameter<
string>(
"sigmaTestName",
"ResidualsSigmaInRange");
190 for(map<string, MonitorElement*>::const_iterator hSigma = SigmaHistos.begin();
191 hSigma != SigmaHistos.end();
193 const QReport * theSigmaQReport = (*hSigma).second->getQReport(SigmaCriterionName);
194 if(theSigmaQReport) {
195 vector<dqm::me_util::Channel> badChannels = theSigmaQReport->
getBadChannels();
196 for (vector<dqm::me_util::Channel>::iterator channel = badChannels.begin();
197 channel != badChannels.end(); channel++) {
198 LogTrace(
metname)<<
"type:"<<(*hSigma).first<<
" Bad sigma channels: "<<(*channel).getBin()<<
" Contents : "<<(*channel).getContents()<<endl;
208 theDbe->rmdir(
"Muons/Tests/trackResidualsTest");
LuminosityBlockID id() const
void endLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c)
DQM Client Diagnostic.
const QReport * getQReport(const std::string &qtname) const
get QReport corresponding to <qtname> (null pointer if QReport does not exist)
void beginJob(void)
BeginJob.
const std::string metname
void endRun(edm::Run const &run, edm::EventSetup const &eSetup)
const std::string & getMessage(void) const
get message attached to test
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
MuonTrackResidualsTest(const edm::ParameterSet &ps)
Constructor.
int getStatus(void) const
get test status (see Core/interface/QTestStatus.h)
virtual ~MuonTrackResidualsTest()
Destructor.
const std::vector< DQMChannel > & getBadChannels(void) const
LuminosityBlockNumber_t luminosityBlock() const
void beginLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &context)
void beginRun(edm::Run const &run, edm::EventSetup const &eSetup)