36 config.getParameter<edm::
ParameterSet>(
"MillePedeFileReader")
39 sigCut_ (mpReaderConfig_.getParameter<double>(
"sigCut")),
40 Xcut_ (mpReaderConfig_.getParameter<double>(
"Xcut")),
41 tXcut_ (mpReaderConfig_.getParameter<double>(
"tXcut")),
42 Ycut_ (mpReaderConfig_.getParameter<double>(
"Ycut")),
43 tYcut_ (mpReaderConfig_.getParameter<double>(
"tYcut")),
44 Zcut_ (mpReaderConfig_.getParameter<double>(
"Zcut")),
45 tZcut_ (mpReaderConfig_.getParameter<double>(
"tZcut")),
46 maxMoveCut_ (mpReaderConfig_.getParameter<double>(
"maxMoveCut")),
47 maxErrorCut_ (mpReaderConfig_.getParameter<double>(
"maxErrorCut"))
63 edm::LogInfo(
"MillePedeDQMModule") <<
"Booking histograms";
68 h_xPos = booker.
book1D(
"Xpos",
"#Delta X;;#mu m", 10, 0, 10.);
69 h_xRot = booker.
book1D(
"Xrot",
"#Delta #theta_{X};;#mu rad", 10, 0, 10.);
70 h_yPos = booker.
book1D(
"Ypos",
"#Delta Y;;#mu m", 10, 0., 10.);
71 h_yRot = booker.
book1D(
"Yrot",
"#Delta #theta_{Y};;#mu rad", 10, 0, 10.);
72 h_zPos = booker.
book1D(
"Zpos",
"#Delta Z;;#mu m", 10, 0., 10.);
73 h_zRot = booker.
book1D(
"Zrot",
"#Delta #theta_{Z};;#mu rad", 10, 0, 10.);
87 <<
"@SUB=MillePedeDQMModule::dqmEndJob\n"
88 <<
"Try to read MillePede results before initializing MillePedeFileReader";
102 if (!setupChanged(setup))
return;
113 const auto trackerGeometry = builder.
build(&(*geometricDet), *ptp, &(*tTopo));
114 tracker_ = std::make_unique<AlignableTracker>(trackerGeometry, &(*tTopo));
121 std::shared_ptr<PedeLabelerBase> pedeLabeler{
123 ->create(labelerPlugin,
128 mpReader_ = std::make_unique<MillePedeFileReader>(mpReaderConfig_, pedeLabeler);
136 fillExpertHisto(h_xPos, Xcut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader_->getXobs(), mpReader_->getXobsErr());
137 fillExpertHisto(h_xRot, tXcut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader_->getTXobs(), mpReader_->getTXobsErr());
139 fillExpertHisto(h_yPos, Ycut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader_->getYobs(), mpReader_->getYobsErr());
140 fillExpertHisto(h_yRot, tYcut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader_->getTYobs(), mpReader_->getTYobsErr());
142 fillExpertHisto(h_zPos, Zcut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader_->getZobs(), mpReader_->getZobsErr());
143 fillExpertHisto(h_zRot, tZcut_, sigCut_, maxMoveCut_, maxErrorCut_, mpReader_->getTZobs(), mpReader_->getTZobsErr());
149 std::array<double, 6> obs, std::array<double, 6> obsErr)
151 TH1F* histo_0 = histo->
getTH1F();
153 histo_0->SetMinimum(-(maxMoveCut_));
154 histo_0->SetMaximum( maxMoveCut_);
156 for (
size_t i = 0;
i < obs.size(); ++
i) {
157 histo_0->SetBinContent(
i+1, obs[
i]);
158 histo_0->SetBinError(i+1, obsErr[i]);
160 histo_0->SetBinContent(8,cut);
161 histo_0->SetBinContent(9,sigCut);
162 histo_0->SetBinContent(10,maxMoveCut);
163 histo_0->SetBinContent(11,maxErrorCut);
172 if (watchIdealGeometryRcd_.check(setup)) changed =
true;
173 if (watchTrackerTopologyRcd_.check(setup)) changed =
true;
174 if (watchPTrackerParametersRcd_.check(setup)) changed =
true;
virtual ~MillePedeDQMModule()
static const char tracker_[]
std::vector< ParameterSet > VParameterSet
bool setupChanged(const edm::EventSetup &)
virtual void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
DQM Plotter for PCL-Alignment.
TrackerGeometry * build(const GeometricDet *gd, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
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)
void bookHistograms(DQMStore::IBooker &)
virtual void beginRun(const edm::Run &, const edm::EventSetup &) override
void setCurrentFolder(const std::string &fullpath)
void addUntrackedParameter(std::string const &name, T const &value)
TH1F * getTH1F(void) const
T get(const Candidate &c)