test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MillePedeDQMModule.cc
Go to the documentation of this file.
1 
10 /*** header-file ***/
12 
13 /*** ROOT objects ***/
14 #include "TH1F.h"
15 
16 
17 
20  mpReaderConfig_(
21  config.getParameter<edm::ParameterSet>("MillePedeFileReader")
22  ),
23  mpReader(mpReaderConfig_),
24 
25  sigCut_ (mpReaderConfig_.getParameter<double>("sigCut")),
26  Xcut_ (mpReaderConfig_.getParameter<double>("Xcut")),
27  tXcut_ (mpReaderConfig_.getParameter<double>("tXcut")),
28  Ycut_ (mpReaderConfig_.getParameter<double>("Ycut")),
29  tYcut_ (mpReaderConfig_.getParameter<double>("tYcut")),
30  Zcut_ (mpReaderConfig_.getParameter<double>("Zcut")),
31  tZcut_ (mpReaderConfig_.getParameter<double>("tZcut")),
32  maxMoveCut_ (mpReaderConfig_.getParameter<double>("maxMoveCut")),
33  maxErrorCut_ (mpReaderConfig_.getParameter<double>("maxErrorCut"))
34 {
35 }
36 
39 {
40 }
41 
42 //=============================================================================
43 //=== INTERFACE IMPLEMENTATION ===
44 //=============================================================================
45 
48 {
49  edm::LogInfo("MillePedeDQMModule") << "Booking histograms";
50 
51  booker.cd();
52  booker.setCurrentFolder("AlCaReco/SiPixelAli/");
53 
54  h_xPos = booker.book1D("Xpos", "#Delta X;;#mu m", 10, 0, 10.);
55  h_xRot = booker.book1D("Xrot", "#Delta #theta_{X};;#mu rad", 10, 0, 10.);
56  h_yPos = booker.book1D("Ypos", "#Delta Y;;#mu m", 10, 0., 10.);
57  h_yRot = booker.book1D("Yrot", "#Delta #theta_{Y};;#mu rad", 10, 0, 10.);
58  h_zPos = booker.book1D("Zpos", "#Delta Z;;#mu m", 10, 0., 10.);
59  h_zRot = booker.book1D("Zrot", "#Delta #theta_{Z};;#mu rad", 10, 0, 10.);
60 
61  booker.cd();
62 }
63 
64 
67 {
68 
69  bookHistograms(booker);
70  mpReader.read();
71  fillExpertHistos();
72 }
73 
74 
75 
76 //=============================================================================
77 //=== PRIVATE METHOD IMPLEMENTATION ===
78 //=============================================================================
79 
82 {
83 
84  fillExpertHisto(h_xPos, Xcut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader.getXobs(), mpReader.getXobsErr());
85  fillExpertHisto(h_xRot, tXcut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader.getTXobs(), mpReader.getTXobsErr());
86 
87  fillExpertHisto(h_yPos, Ycut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader.getYobs(), mpReader.getYobsErr());
88  fillExpertHisto(h_yRot, tYcut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader.getTYobs(), mpReader.getTYobsErr());
89 
90  fillExpertHisto(h_zPos, Zcut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader.getZobs(), mpReader.getZobsErr());
91  fillExpertHisto(h_zRot, tZcut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader.getTZobs(), mpReader.getTZobsErr());
92 
93 }
94 
96 ::fillExpertHisto(MonitorElement* histo, const double cut, const double sigCut, const double maxMoveCut, const double maxErrorCut,
97  std::array<double, 6> obs, std::array<double, 6> obsErr)
98 {
99  TH1F* histo_0 = histo->getTH1F();
100 
101  histo_0->SetMinimum(-(maxMoveCut_));
102  histo_0->SetMaximum( maxMoveCut_);
103 
104  for (size_t i = 0; i < obs.size(); ++i) {
105  histo_0->SetBinContent(i+1, obs[i]);
106  histo_0->SetBinError(i+1, obsErr[i]);
107  }
108  histo_0->SetBinContent(8,cut);
109  histo_0->SetBinContent(9,sigCut);
110  histo_0->SetBinContent(10,maxMoveCut);
111  histo_0->SetBinContent(11,maxErrorCut);
112 
113 }
int i
Definition: DBlmapReader.cc:9
void cd(void)
Definition: DQMStore.cc:268
virtual void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
DQM Plotter for PCL-Alignment.
void bookHistograms(fwlite::EventContainer &eventCont)
void fillExpertHisto(MonitorElement *histo, const double cut, const double sigCut, const double maxMoveCut, const double maxErrorCut, std::array< double, 6 > obs, std::array< double, 6 > obsErr)
MillePedeDQMModule(const edm::ParameterSet &)
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
void bookHistograms(DQMStore::IBooker &)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:276
TH1F * getTH1F(void) const