CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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< T > 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 beginJob () override
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &) override
 
virtual void dqmAnalyze (DQMStore::IBooker &, DQMStore::IGetter &, edm::Event const &, edm::EventSetup const &)
 
 DQMEDHarvester (edm::ParameterSet const &iConfig)
 
 DQMEDHarvester ()
 
virtual void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (DQMStore::IBooker &, DQMStore::IGetter &, edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &es) final
 
void endProcessBlockProduce (edm::ProcessBlock &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &es) final
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< T >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () 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
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
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

const edm::ESGetToken
< AlignPCLThresholds,
AlignPCLThresholdsRcd
aliThrToken_
 
MonitorElementbinariesAvalaible
 
MonitorElementexitCode
 
const edm::ESGetToken
< GeometricDet,
IdealGeometryRecord
gDetToken_
 
MonitorElementh_xPos
 
MonitorElementh_xRot
 
MonitorElementh_yPos
 
MonitorElementh_yRot
 
MonitorElementh_zPos
 
MonitorElementh_zRot
 
std::unique_ptr
< MillePedeFileReader
mpReader_
 
const edm::ParameterSet mpReaderConfig_
 
const edm::ESGetToken
< PTrackerAdditionalParametersPerDet,
PTrackerAdditionalParametersPerDetRcd
ptitpToken_
 
const edm::ESGetToken
< PTrackerParameters,
PTrackerParametersRcd
ptpToken_
 
MonitorElementstatusResults
 
std::unique_ptr< AlignableTrackertracker_
 
const edm::ESGetToken
< TrackerTopology,
TrackerTopologyRcd
tTopoToken_
 
edm::ESWatcher
< IdealGeometryRecord
watchIdealGeometryRcd_
 
edm::ESWatcher
< PTrackerParametersRcd
watchPTrackerParametersRcd_
 
edm::ESWatcher
< TrackerTopologyRcd
watchTrackerTopologyRcd_
 

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)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 
- Protected Attributes inherited from DQMEDHarvester
DQMStoredqmstore_
 
edm::GetterOfProducts< DQMTokenjobmegetter_
 
edm::EDPutTokenT< DQMTokenjobToken_
 
edm::GetterOfProducts< DQMTokenlumimegetter_
 
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::GetterOfProducts< DQMTokenrunmegetter_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 48 of file MillePedeDQMModule.h.

Constructor & Destructor Documentation

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

Definition at line 28 of file MillePedeDQMModule.cc.

References edm::ParameterSet::getParameter().

29  : tTopoToken_(esConsumes<edm::Transition::BeginRun>()),
30  gDetToken_(esConsumes<edm::Transition::BeginRun>()),
31  ptpToken_(esConsumes<edm::Transition::BeginRun>()),
32  ptitpToken_(esConsumes<edm::Transition::BeginRun>()),
33  aliThrToken_(esConsumes<edm::Transition::BeginRun>()),
34  mpReaderConfig_(config.getParameter<edm::ParameterSet>("MillePedeFileReader")) {
35  consumes<AlignmentToken, edm::InProcess>(config.getParameter<edm::InputTag>("alignmentTokenSrc"));
36 }
const edm::ParameterSet mpReaderConfig_
const edm::ESGetToken< GeometricDet, IdealGeometryRecord > gDetToken_
const edm::ESGetToken< PTrackerAdditionalParametersPerDet, PTrackerAdditionalParametersPerDetRcd > ptitpToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::ESGetToken< AlignPCLThresholds, AlignPCLThresholdsRcd > aliThrToken_
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_
MillePedeDQMModule::~MillePedeDQMModule ( )
override

Definition at line 38 of file MillePedeDQMModule.cc.

38 {}

Member Function Documentation

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

Definition at line 84 of file MillePedeDQMModule.cc.

References edm::ParameterSet::addUntrackedParameter(), aliThrToken_, TrackerGeomBuilderFromGeometricDet::build(), gDetToken_, get, edm::EventSetup::getData(), mpReader_, mpReaderConfig_, ptitpToken_, ptpToken_, setupChanged(), AlCaHLTBitMon_QueryRunRegistry::string, tracker_, and tTopoToken_.

84  {
85  if (!setupChanged(setup))
86  return;
87 
88  const TrackerTopology* const tTopo = &setup.getData(tTopoToken_);
89  const GeometricDet* geometricDet = &setup.getData(gDetToken_);
90  const PTrackerParameters* ptp = &setup.getData(ptpToken_);
92 
93  // take the thresholds from DB
94  const auto& thresholds_ = &setup.getData(aliThrToken_);
95 
96  auto myThresholds = std::make_shared<AlignPCLThresholds>();
97  myThresholds->setAlignPCLThresholds(thresholds_->getNrecords(), thresholds_->getThreshold_Map());
98 
100 
101  const auto trackerGeometry = builder.build(geometricDet, ptitp, *ptp, tTopo);
102  tracker_ = std::make_unique<AlignableTracker>(trackerGeometry, tTopo);
103 
104  const std::string labelerPlugin{"PedeLabeler"};
105  edm::ParameterSet labelerConfig{};
106  labelerConfig.addUntrackedParameter("plugin", labelerPlugin);
107  labelerConfig.addUntrackedParameter("RunRangeSelection", edm::VParameterSet{});
108 
109  std::shared_ptr<PedeLabelerBase> pedeLabeler{PedeLabelerPluginFactory::get()->create(
110  labelerPlugin, PedeLabelerBase::TopLevelAlignables(tracker_.get(), nullptr, nullptr), labelerConfig)};
111 
112  mpReader_ = std::make_unique<MillePedeFileReader>(
113  mpReaderConfig_, pedeLabeler, std::shared_ptr<const AlignPCLThresholds>(myThresholds));
114 }
const edm::ParameterSet mpReaderConfig_
std::vector< ParameterSet > VParameterSet
Definition: ParameterSet.h:34
TrackerGeometry * build(const GeometricDet *gd, const PTrackerAdditionalParametersPerDet *ptitp, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
bool setupChanged(const edm::EventSetup &)
const edm::ESGetToken< GeometricDet, IdealGeometryRecord > gDetToken_
bool getData(T &iHolder) const
Definition: EventSetup.h:128
const edm::ESGetToken< PTrackerAdditionalParametersPerDet, PTrackerAdditionalParametersPerDetRcd > ptitpToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
void addUntrackedParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:192
const edm::ESGetToken< AlignPCLThresholds, AlignPCLThresholdsRcd > aliThrToken_
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_
std::unique_ptr< AlignableTracker > tracker_
std::unique_ptr< MillePedeFileReader > mpReader_
#define get
void MillePedeDQMModule::bookHistograms ( DQMStore::IBooker booker)
private

Definition at line 44 of file MillePedeDQMModule.cc.

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

Referenced by dqmEndJob().

44  {
45  edm::LogInfo("MillePedeDQMModule") << "Booking histograms";
46 
47  booker.cd();
48  booker.setCurrentFolder("AlCaReco/SiPixelAli/");
49 
50  h_xPos = booker.book1D("Xpos", "Alignment fit #DeltaX;;#mum", 36, 0., 36.);
51  h_xRot = booker.book1D("Xrot", "Alignment fit #Delta#theta_{X};;#murad", 36, 0., 36.);
52  h_yPos = booker.book1D("Ypos", "Alignment fit #DeltaY;;#mum", 36, 0., 36.);
53  h_yRot = booker.book1D("Yrot", "Alignment fit #Delta#theta_{Y};;#murad", 36, 0., 36.);
54  h_zPos = booker.book1D("Zpos", "Alignment fit #DeltaZ;;#mum", 36, 0., 36.);
55  h_zRot = booker.book1D("Zrot", "Alignment fit #Delta#theta_{Z};;#murad", 36, 0., 36.);
56 
57  statusResults = booker.book2D("statusResults", "Status of SiPixelAli PCL workflow;;", 6, 0., 6., 1, 0., 1.);
58  binariesAvalaible = booker.bookInt("BinariesFound");
59  exitCode = booker.bookString("PedeExitCode", "");
60 
61  booker.cd();
62 }
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * h_zPos
MonitorElement * binariesAvalaible
MonitorElement * bookString(TString const &name, TString const &value, FUNC onbooking=NOOP())
Definition: DQMStore.h:87
MonitorElement * h_xPos
MonitorElement * h_yPos
Log< level::Info, false > LogInfo
MonitorElement * statusResults
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
MonitorElement * bookInt(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:73
MonitorElement * h_xRot
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * h_zRot
MonitorElement * exitCode
MonitorElement * h_yRot
void MillePedeDQMModule::dqmEndJob ( DQMStore::IBooker booker,
DQMStore::IGetter  
)
overridevirtual

Implements DQMEDHarvester.

Definition at line 64 of file MillePedeDQMModule.cc.

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

64  {
65  bookHistograms(booker);
66  if (mpReader_) {
67  mpReader_->read();
68  } else {
69  throw cms::Exception("LogicError") << "@SUB=MillePedeDQMModule::dqmEndJob\n"
70  << "Try to read MillePede results before initializing MillePedeFileReader";
71  }
74  binariesAvalaible->Fill(mpReader_->binariesAmount());
75  auto theResults = mpReader_->getResults();
76  std::string exitCodeStr = theResults.getExitMessage();
77  exitCode->Fill(exitCodeStr);
78 }
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 198 of file MillePedeDQMModule.cc.

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

Referenced by fillExpertHistos().

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

Definition at line 134 of file MillePedeDQMModule.cc.

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

Referenced by dqmEndJob().

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

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

Referenced by dqmEndJob().

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

Definition at line 254 of file MillePedeDQMModule.cc.

References Exception.

Referenced by fillExpertHistos().

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

Definition at line 241 of file MillePedeDQMModule.cc.

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

Referenced by beginRun().

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

Member Data Documentation

const edm::ESGetToken<AlignPCLThresholds, AlignPCLThresholdsRcd> MillePedeDQMModule::aliThrToken_
private

Definition at line 85 of file MillePedeDQMModule.h.

Referenced by beginRun().

MonitorElement* MillePedeDQMModule::binariesAvalaible
private

Definition at line 104 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

MonitorElement* MillePedeDQMModule::exitCode
private

Definition at line 105 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

const edm::ESGetToken<GeometricDet, IdealGeometryRecord> MillePedeDQMModule::gDetToken_
private

Definition at line 82 of file MillePedeDQMModule.h.

Referenced by beginRun().

MonitorElement* MillePedeDQMModule::h_xPos
private

Definition at line 96 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

MonitorElement* MillePedeDQMModule::h_xRot
private

Definition at line 97 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

MonitorElement* MillePedeDQMModule::h_yPos
private

Definition at line 98 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

MonitorElement* MillePedeDQMModule::h_yRot
private

Definition at line 99 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

MonitorElement* MillePedeDQMModule::h_zPos
private

Definition at line 100 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

MonitorElement* MillePedeDQMModule::h_zRot
private

Definition at line 101 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

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

Definition at line 89 of file MillePedeDQMModule.h.

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

const edm::ParameterSet MillePedeDQMModule::mpReaderConfig_
private

Definition at line 87 of file MillePedeDQMModule.h.

Referenced by beginRun().

Definition at line 84 of file MillePedeDQMModule.h.

Referenced by beginRun().

const edm::ESGetToken<PTrackerParameters, PTrackerParametersRcd> MillePedeDQMModule::ptpToken_
private

Definition at line 83 of file MillePedeDQMModule.h.

Referenced by beginRun().

MonitorElement* MillePedeDQMModule::statusResults
private

Definition at line 103 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

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

Definition at line 88 of file MillePedeDQMModule.h.

Referenced by beginRun().

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> MillePedeDQMModule::tTopoToken_
private

Definition at line 81 of file MillePedeDQMModule.h.

Referenced by beginRun().

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

Definition at line 92 of file MillePedeDQMModule.h.

Referenced by setupChanged().

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

Definition at line 93 of file MillePedeDQMModule.h.

Referenced by setupChanged().

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

Definition at line 91 of file MillePedeDQMModule.h.

Referenced by setupChanged().