CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
MillePedeDQMModule Class Reference

#include <MillePedeDQMModule.h>

Inheritance diagram for MillePedeDQMModule:
DQMEDHarvester edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
 MillePedeDQMModule (const edm::ParameterSet &)
 
 ~MillePedeDQMModule () override
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
 DQMEDHarvester ()
 
virtual void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 
void endJob () final
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &, edm::EventSetup const &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void beginRun (const edm::Run &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &)
 
void fillExpertHisto (MonitorElement *histo, const std::array< double, 6 > &cut, const std::array< double, 6 > &sigCut, const std::array< double, 6 > &maxMoveCut, const std::array< double, 6 > &maxErrorCut, const std::array< double, 6 > &obs, const std::array< double, 6 > &obsErr)
 
void fillExpertHistos ()
 
void fillStatusHisto (MonitorElement *statusHisto)
 
int getIndexFromString (const std::string &alignableId)
 
bool setupChanged (const edm::EventSetup &)
 

Private Attributes

MonitorElementbinariesAvalaible
 
MonitorElementexitCode
 
MonitorElementh_xPos
 
MonitorElementh_xRot
 
MonitorElementh_yPos
 
MonitorElementh_yRot
 
MonitorElementh_zPos
 
MonitorElementh_zRot
 
std::unique_ptr< MillePedeFileReadermpReader_
 
const edm::ParameterSet mpReaderConfig_
 
MonitorElementstatusResults
 
std::unique_ptr< AlignableTrackertracker_
 
edm::ESWatcher< IdealGeometryRecordwatchIdealGeometryRcd_
 
edm::ESWatcher< PTrackerParametersRcdwatchPTrackerParametersRcd_
 
edm::ESWatcher< TrackerTopologyRcdwatchTrackerTopologyRcd_
 

Additional Inherited Members

- Public Types inherited from DQMEDHarvester
typedef dqm::harvesting::DQMStore DQMStore
 
typedef dqm::harvesting::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDHarvester
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 39 of file MillePedeDQMModule.h.

Constructor & Destructor Documentation

MillePedeDQMModule::MillePedeDQMModule ( const edm::ParameterSet config)

Definition at line 33 of file MillePedeDQMModule.cc.

34  : mpReaderConfig_(config.getParameter<edm::ParameterSet>("MillePedeFileReader")) {}
const edm::ParameterSet mpReaderConfig_
T getParameter(std::string const &) const
MillePedeDQMModule::~MillePedeDQMModule ( )
override

Definition at line 36 of file MillePedeDQMModule.cc.

36 {}

Member Function Documentation

void MillePedeDQMModule::beginRun ( const edm::Run ,
const edm::EventSetup setup 
)
overrideprivate

Definition at line 82 of file MillePedeDQMModule.cc.

References edm::ParameterSet::addUntrackedParameter(), TrackerGeomBuilderFromGeometricDet::build(), edm::EventSetup::get(), timingPdfMaker::get, mpReader_, mpReaderConfig_, MillePedeAlignmentAlgorithm_cfi::pedeLabeler, edm::ESHandle< T >::product(), AlignPCLThresholds::setAlignPCLThresholds(), setupChanged(), AlCaHLTBitMon_QueryRunRegistry::string, and tracker_.

82  {
83  if (!setupChanged(setup))
84  return;
85 
87  setup.get<TrackerTopologyRcd>().get(tTopo);
88  edm::ESHandle<GeometricDet> geometricDet;
89  setup.get<IdealGeometryRecord>().get(geometricDet);
91  setup.get<PTrackerParametersRcd>().get(ptp);
92 
93  // take the thresholds from DB
94  edm::ESHandle<AlignPCLThresholds> thresholdHandle;
95  setup.get<AlignPCLThresholdsRcd>().get(thresholdHandle);
96  auto thresholds_ = thresholdHandle.product();
97 
98  auto myThresholds = std::make_shared<AlignPCLThresholds>();
99  myThresholds->setAlignPCLThresholds(thresholds_->getNrecords(), thresholds_->getThreshold_Map());
100 
102 
103  const auto trackerGeometry = builder.build(&(*geometricDet), *ptp, &(*tTopo));
104  tracker_ = std::make_unique<AlignableTracker>(trackerGeometry, &(*tTopo));
105 
106  const std::string labelerPlugin{"PedeLabeler"};
107  edm::ParameterSet labelerConfig{};
108  labelerConfig.addUntrackedParameter("plugin", labelerPlugin);
109  labelerConfig.addUntrackedParameter("RunRangeSelection", edm::VParameterSet{});
110 
111  std::shared_ptr<PedeLabelerBase> pedeLabeler{PedeLabelerPluginFactory::get()->create(
112  labelerPlugin, PedeLabelerBase::TopLevelAlignables(tracker_.get(), nullptr, nullptr), labelerConfig)};
113 
114  mpReader_ = std::make_unique<MillePedeFileReader>(
115  mpReaderConfig_, pedeLabeler, std::shared_ptr<const AlignPCLThresholds>(myThresholds));
116 }
const edm::ParameterSet mpReaderConfig_
std::vector< ParameterSet > VParameterSet
Definition: ParameterSet.h:33
bool setupChanged(const edm::EventSetup &)
TrackerGeometry * build(const GeometricDet *gd, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
void addUntrackedParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:181
void setAlignPCLThresholds(const int &Nrecords, const threshold_map &Thresholds)
std::unique_ptr< AlignableTracker > tracker_
std::unique_ptr< MillePedeFileReader > mpReader_
T get() const
Definition: EventSetup.h:73
T const * product() const
Definition: ESHandle.h:86
void MillePedeDQMModule::bookHistograms ( DQMStore::IBooker booker)
private

Definition at line 42 of file MillePedeDQMModule.cc.

References binariesAvalaible, dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookInt(), dqm::dqmstoreimpl::DQMStore::IBooker::bookString(), dqm::dqmstoreimpl::DQMStore::IBooker::cd(), exitCode, h_xPos, h_xRot, h_yPos, h_yRot, h_zPos, h_zRot, dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and statusResults.

Referenced by dqmEndJob().

42  {
43  edm::LogInfo("MillePedeDQMModule") << "Booking histograms";
44 
45  booker.cd();
46  booker.setCurrentFolder("AlCaReco/SiPixelAli/");
47 
48  h_xPos = booker.book1D("Xpos", "Alignment fit #DeltaX;;#mum", 36, 0., 36.);
49  h_xRot = booker.book1D("Xrot", "Alignment fit #Delta#theta_{X};;#murad", 36, 0., 36.);
50  h_yPos = booker.book1D("Ypos", "Alignment fit #DeltaY;;#mum", 36, 0., 36.);
51  h_yRot = booker.book1D("Yrot", "Alignment fit #Delta#theta_{Y};;#murad", 36, 0., 36.);
52  h_zPos = booker.book1D("Zpos", "Alignment fit #DeltaZ;;#mum", 36, 0., 36.);
53  h_zRot = booker.book1D("Zrot", "Alignment fit #Delta#theta_{Z};;#murad", 36, 0., 36.);
54 
55  statusResults = booker.book2D("statusResults", "Status of SiPixelAli PCL workflow;;", 6, 0., 6., 1, 0., 1.);
56  binariesAvalaible = booker.bookInt("BinariesFound");
57  exitCode = booker.bookString("PedeExitCode", "");
58 
59  booker.cd();
60 }
MonitorElement * h_zPos
MonitorElement * binariesAvalaible
MonitorElement * h_xPos
MonitorElement * h_yPos
MonitorElement * statusResults
MonitorElement * h_xRot
MonitorElement * h_zRot
MonitorElement * exitCode
MonitorElement * h_yRot
void MillePedeDQMModule::dqmEndJob ( DQMStore::IBooker booker,
DQMStore::IGetter  
)
overridevirtual

Implements DQMEDHarvester.

Definition at line 62 of file MillePedeDQMModule.cc.

References binariesAvalaible, bookHistograms(), Exception, exitCode, dqm::impl::MonitorElement::Fill(), fillExpertHistos(), fillStatusHisto(), mpReader_, statusResults, and AlCaHLTBitMon_QueryRunRegistry::string.

62  {
63  bookHistograms(booker);
64  if (mpReader_) {
65  mpReader_->read();
66  } else {
67  throw cms::Exception("LogicError") << "@SUB=MillePedeDQMModule::dqmEndJob\n"
68  << "Try to read MillePede results before initializing MillePedeFileReader";
69  }
72  binariesAvalaible->Fill(mpReader_->binariesAmount());
73  auto theResults = mpReader_->getResults();
74  std::string exitCodeStr = theResults.getExitMessage();
75  exitCode->Fill(exitCodeStr);
76 }
void fillStatusHisto(MonitorElement *statusHisto)
MonitorElement * binariesAvalaible
void Fill(long long x)
void bookHistograms(DQMStore::IBooker &)
MonitorElement * statusResults
std::unique_ptr< MillePedeFileReader > mpReader_
MonitorElement * exitCode
void MillePedeDQMModule::fillExpertHisto ( MonitorElement histo,
const std::array< double, 6 > &  cut,
const std::array< double, 6 > &  sigCut,
const std::array< double, 6 > &  maxMoveCut,
const std::array< double, 6 > &  maxErrorCut,
const std::array< double, 6 > &  obs,
const std::array< double, 6 > &  obsErr 
)
private

Definition at line 200 of file MillePedeDQMModule.cc.

References dqm::legacy::MonitorElement::getTH1F(), and mps_fire::i.

Referenced by fillExpertHistos().

206  {
207  TH1F* histo_0 = histo->getTH1F();
208 
209  double max_ = *std::max_element(maxMoveCut.begin(), maxMoveCut.end());
210 
211  histo_0->SetMinimum(-(max_));
212  histo_0->SetMaximum(max_);
213 
214  // Schematics of the bin contents
215  //
216  // XX XX XX XX XX XX OO OO OO OO II II II II
217  // |--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
218  // | 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14|15|16|17| ...
219  //
220  // |-----------------| |-----------| |-----------|
221  // |observed movement| |thresholds1| |thresholds2|
222 
223  for (size_t i = 0; i < obs.size(); ++i) {
224  // fist obs.size() bins for observed movements
225  histo_0->SetBinContent(i + 1, obs[i]);
226  histo_0->SetBinError(i + 1, obsErr[i]);
227 
228  // then at bin 8,8+5,8+10,... for cutoffs
229  // 5 bins is the space allocated for the 4 other thresholds + 1 empty separation bin
230  histo_0->SetBinContent(8 + i * 5, cut[i]);
231 
232  // then at bin 9,9+5,9+10,... for significances
233  histo_0->SetBinContent(9 + i * 5, sigCut[i]);
234 
235  // then at bin 10,10+5,10+10,... for maximum movements
236  histo_0->SetBinContent(10 + i * 5, maxMoveCut[i]);
237 
238  // then at bin 11,11+5,11+10,... for maximum errors
239  histo_0->SetBinContent(11 + i * 5, maxErrorCut[i]);
240  }
241 }
virtual TH1F * getTH1F() const
void MillePedeDQMModule::fillExpertHistos ( )
private

Definition at line 136 of file MillePedeDQMModule.cc.

References fillExpertHisto(), getIndexFromString(), h_xPos, h_xRot, h_yPos, h_yRot, h_zPos, h_zRot, and mpReader_.

Referenced by dqmEndJob().

136  {
137  std::array<double, 6> Xcut_, sigXcut_, maxMoveXcut_, maxErrorXcut_;
138  std::array<double, 6> tXcut_, sigtXcut_, maxMovetXcut_, maxErrortXcut_;
139 
140  std::array<double, 6> Ycut_, sigYcut_, maxMoveYcut_, maxErrorYcut_;
141  std::array<double, 6> tYcut_, sigtYcut_, maxMovetYcut_, maxErrortYcut_;
142 
143  std::array<double, 6> Zcut_, sigZcut_, maxMoveZcut_, maxErrorZcut_;
144  std::array<double, 6> tZcut_, sigtZcut_, maxMovetZcut_, maxErrortZcut_;
145 
146  auto myMap = mpReader_->getThresholdMap();
147 
148  std::vector<std::string> alignablesList;
149  for (auto it = myMap.begin(); it != myMap.end(); ++it) {
150  alignablesList.push_back(it->first);
151  }
152 
153  for (auto& alignable : alignablesList) {
154  int detIndex = getIndexFromString(alignable);
155 
156  Xcut_[detIndex] = myMap[alignable].getXcut();
157  sigXcut_[detIndex] = myMap[alignable].getSigXcut();
158  maxMoveXcut_[detIndex] = myMap[alignable].getMaxMoveXcut();
159  maxErrorXcut_[detIndex] = myMap[alignable].getErrorXcut();
160 
161  Ycut_[detIndex] = myMap[alignable].getYcut();
162  sigYcut_[detIndex] = myMap[alignable].getSigYcut();
163  maxMoveYcut_[detIndex] = myMap[alignable].getMaxMoveYcut();
164  maxErrorYcut_[detIndex] = myMap[alignable].getErrorYcut();
165 
166  Zcut_[detIndex] = myMap[alignable].getZcut();
167  sigZcut_[detIndex] = myMap[alignable].getSigZcut();
168  maxMoveZcut_[detIndex] = myMap[alignable].getMaxMoveZcut();
169  maxErrorZcut_[detIndex] = myMap[alignable].getErrorZcut();
170 
171  tXcut_[detIndex] = myMap[alignable].getThetaXcut();
172  sigtXcut_[detIndex] = myMap[alignable].getSigThetaXcut();
173  maxMovetXcut_[detIndex] = myMap[alignable].getMaxMoveThetaXcut();
174  maxErrortXcut_[detIndex] = myMap[alignable].getErrorThetaXcut();
175 
176  tYcut_[detIndex] = myMap[alignable].getThetaYcut();
177  sigtYcut_[detIndex] = myMap[alignable].getSigThetaYcut();
178  maxMovetYcut_[detIndex] = myMap[alignable].getMaxMoveThetaYcut();
179  maxErrortYcut_[detIndex] = myMap[alignable].getErrorThetaYcut();
180 
181  tZcut_[detIndex] = myMap[alignable].getThetaZcut();
182  sigtZcut_[detIndex] = myMap[alignable].getSigThetaZcut();
183  maxMovetZcut_[detIndex] = myMap[alignable].getMaxMoveThetaZcut();
184  maxErrortZcut_[detIndex] = myMap[alignable].getErrorThetaZcut();
185  }
186 
187  fillExpertHisto(h_xPos, Xcut_, sigXcut_, maxMoveXcut_, maxErrorXcut_, mpReader_->getXobs(), mpReader_->getXobsErr());
189  h_xRot, tXcut_, sigtXcut_, maxMovetXcut_, maxErrortXcut_, mpReader_->getTXobs(), mpReader_->getTXobsErr());
190 
191  fillExpertHisto(h_yPos, Ycut_, sigYcut_, maxMoveYcut_, maxErrorYcut_, mpReader_->getYobs(), mpReader_->getYobsErr());
193  h_yRot, tYcut_, sigtYcut_, maxMovetYcut_, maxErrortYcut_, mpReader_->getTYobs(), mpReader_->getTYobsErr());
194 
195  fillExpertHisto(h_zPos, Zcut_, sigZcut_, maxMoveZcut_, maxErrorZcut_, mpReader_->getZobs(), mpReader_->getZobsErr());
197  h_zRot, tZcut_, sigtZcut_, maxMovetZcut_, maxErrortZcut_, mpReader_->getTZobs(), mpReader_->getTZobsErr());
198 }
MonitorElement * h_zPos
MonitorElement * h_xPos
void fillExpertHisto(MonitorElement *histo, const std::array< double, 6 > &cut, const std::array< double, 6 > &sigCut, const std::array< double, 6 > &maxMoveCut, const std::array< double, 6 > &maxErrorCut, const std::array< double, 6 > &obs, const std::array< double, 6 > &obsErr)
MonitorElement * h_yPos
MonitorElement * h_xRot
std::unique_ptr< MillePedeFileReader > mpReader_
int getIndexFromString(const std::string &alignableId)
MonitorElement * h_zRot
MonitorElement * h_yRot
void MillePedeDQMModule::fillStatusHisto ( MonitorElement statusHisto)
private

Definition at line 118 of file MillePedeDQMModule.cc.

References dqm::legacy::MonitorElement::getTH2F(), and mpReader_.

Referenced by dqmEndJob().

118  {
119  TH2F* histo_status = statusHisto->getTH2F();
120  auto theResults = mpReader_->getResults();
121  theResults.print();
122  histo_status->SetBinContent(1, 1, theResults.getDBUpdated());
123  histo_status->GetXaxis()->SetBinLabel(1, "DB updated");
124  histo_status->SetBinContent(2, 1, theResults.exceedsCutoffs());
125  histo_status->GetXaxis()->SetBinLabel(2, "significant movement");
126  histo_status->SetBinContent(3, 1, theResults.getDBVetoed());
127  histo_status->GetXaxis()->SetBinLabel(3, "DB update vetoed");
128  histo_status->SetBinContent(4, 1, !theResults.exceedsThresholds());
129  histo_status->GetXaxis()->SetBinLabel(4, "within max movement");
130  histo_status->SetBinContent(5, 1, !theResults.exceedsMaxError());
131  histo_status->GetXaxis()->SetBinLabel(5, "within max error");
132  histo_status->SetBinContent(6, 1, !theResults.belowSignificance());
133  histo_status->GetXaxis()->SetBinLabel(6, "above significance");
134 }
virtual TH2F * getTH2F() const
std::unique_ptr< MillePedeFileReader > mpReader_
int MillePedeDQMModule::getIndexFromString ( const std::string &  alignableId)
private

Definition at line 256 of file MillePedeDQMModule.cc.

References Exception.

Referenced by fillExpertHistos().

256  {
257  if (alignableId == "TPBHalfBarrelXminus") {
258  return 3;
259  } else if (alignableId == "TPBHalfBarrelXplus") {
260  return 2;
261  } else if (alignableId == "TPEHalfCylinderXminusZminus") {
262  return 1;
263  } else if (alignableId == "TPEHalfCylinderXplusZminus") {
264  return 0;
265  } else if (alignableId == "TPEHalfCylinderXminusZplus") {
266  return 5;
267  } else if (alignableId == "TPEHalfCylinderXplusZplus") {
268  return 4;
269  } else {
270  throw cms::Exception("LogicError") << "@SUB=MillePedeDQMModule::getIndexFromString\n"
271  << "Retrieving conversion for not supported Alignable partition" << alignableId;
272  }
273 }
bool MillePedeDQMModule::setupChanged ( const edm::EventSetup setup)
private

Definition at line 243 of file MillePedeDQMModule.cc.

References edm::ESWatcher< T >::check(), watchIdealGeometryRcd_, watchPTrackerParametersRcd_, and watchTrackerTopologyRcd_.

Referenced by beginRun().

243  {
244  bool changed{false};
245 
246  if (watchIdealGeometryRcd_.check(setup))
247  changed = true;
248  if (watchTrackerTopologyRcd_.check(setup))
249  changed = true;
251  changed = true;
252 
253  return changed;
254 }
edm::ESWatcher< IdealGeometryRecord > watchIdealGeometryRcd_
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
edm::ESWatcher< TrackerTopologyRcd > watchTrackerTopologyRcd_
edm::ESWatcher< PTrackerParametersRcd > watchPTrackerParametersRcd_

Member Data Documentation

MonitorElement* MillePedeDQMModule::binariesAvalaible
private

Definition at line 88 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

MonitorElement* MillePedeDQMModule::exitCode
private

Definition at line 89 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

MonitorElement* MillePedeDQMModule::h_xPos
private

Definition at line 80 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

MonitorElement* MillePedeDQMModule::h_xRot
private

Definition at line 81 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

MonitorElement* MillePedeDQMModule::h_yPos
private

Definition at line 82 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

MonitorElement* MillePedeDQMModule::h_yRot
private

Definition at line 83 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

MonitorElement* MillePedeDQMModule::h_zPos
private

Definition at line 84 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

MonitorElement* MillePedeDQMModule::h_zRot
private

Definition at line 85 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

std::unique_ptr<MillePedeFileReader> MillePedeDQMModule::mpReader_
private

Definition at line 73 of file MillePedeDQMModule.h.

Referenced by beginRun(), dqmEndJob(), fillExpertHistos(), and fillStatusHisto().

const edm::ParameterSet MillePedeDQMModule::mpReaderConfig_
private

Definition at line 71 of file MillePedeDQMModule.h.

Referenced by beginRun().

MonitorElement* MillePedeDQMModule::statusResults
private

Definition at line 87 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

std::unique_ptr<AlignableTracker> MillePedeDQMModule::tracker_
private

Definition at line 72 of file MillePedeDQMModule.h.

Referenced by beginRun().

edm::ESWatcher<IdealGeometryRecord> MillePedeDQMModule::watchIdealGeometryRcd_
private

Definition at line 76 of file MillePedeDQMModule.h.

Referenced by setupChanged().

edm::ESWatcher<PTrackerParametersRcd> MillePedeDQMModule::watchPTrackerParametersRcd_
private

Definition at line 77 of file MillePedeDQMModule.h.

Referenced by setupChanged().

edm::ESWatcher<TrackerTopologyRcd> MillePedeDQMModule::watchTrackerTopologyRcd_
private

Definition at line 75 of file MillePedeDQMModule.h.

Referenced by setupChanged().