CMS 3D CMS Logo

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

#include <MillePedeDQMModule.h>

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

Public Types

enum  { SIZE_LG_STRUCTS = 6, SIZE_HG_STRUCTS = 820, SIZE_INDEX = 8 }
 
- 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
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
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
 

Public Member Functions

void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
 MillePedeDQMModule (const edm::ParameterSet &)
 
 ~MillePedeDQMModule () override=default
 
- 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< edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::EndProcessBlockProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources, edm::Accumulator >
 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 noexcept final
 
bool wantsGlobalRuns () const noexcept final
 
bool wantsInputProcessBlocks () const noexcept final
 
bool wantsProcessBlocks () const noexcept final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const noexcept
 
bool wantsStreamRuns () const noexcept
 
 ~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
 
std::vector< bool > const & recordProvenanceList () 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)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~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
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

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

Private Attributes

const edm::ESGetToken< AlignPCLThresholdsHG, AlignPCLThresholdsHGRcdaliThrToken_
 
MonitorElementbinariesAvalaible
 
MonitorElementexitCode
 
const edm::ESGetToken< GeometricDet, IdealGeometryRecordgDetToken_
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordgeomToken_
 
MonitorElementh_xPos
 
std::map< std::string, MonitorElement * > h_xPos_HG
 
MonitorElementh_xRot
 
std::map< std::string, MonitorElement * > h_xRot_HG
 
MonitorElementh_yPos
 
std::map< std::string, MonitorElement * > h_yPos_HG
 
MonitorElementh_yRot
 
std::map< std::string, MonitorElement * > h_yRot_HG
 
MonitorElementh_zPos
 
std::map< std::string, MonitorElement * > h_zPos_HG
 
MonitorElementh_zRot
 
std::map< std::string, MonitorElement * > h_zRot_HG
 
bool isHG_
 
MonitorElementisVetoed
 
std::vector< std::pair< std::string, int > > layerVec
 
std::unique_ptr< MillePedeFileReadermpReader_
 
const edm::ParameterSet mpReaderConfig_
 
const std::string outputFolder_
 
std::shared_ptr< SiPixelQualitypixelQuality_
 
std::shared_ptr< PixelTopologyMappixelTopologyMap_
 
const edm::ESGetToken< PTrackerAdditionalParametersPerDet, PTrackerAdditionalParametersPerDetRcdptitpToken_
 
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcdptpToken_
 
const edm::ESGetToken< SiPixelQuality, SiPixelQualityFromDbRcdsiPixelQualityToken_
 
MonitorElementstatusResults
 
std::unique_ptr< AlignableTrackertracker_
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtTopoToken_
 
edm::ESWatcher< IdealGeometryRecordwatchIdealGeometryRcd_
 
edm::ESWatcher< PTrackerParametersRcdwatchPTrackerParametersRcd_
 
edm::ESWatcher< TrackerTopologyRcdwatchTrackerTopologyRcd_
 

Additional Inherited Members

- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
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< Bconsumes (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 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 ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
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 57 of file MillePedeDQMModule.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
SIZE_LG_STRUCTS 
SIZE_HG_STRUCTS 
SIZE_INDEX 

Definition at line 67 of file MillePedeDQMModule.h.

Constructor & Destructor Documentation

◆ MillePedeDQMModule()

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

Definition at line 28 of file MillePedeDQMModule.cc.

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  siPixelQualityToken_(esConsumes<edm::Transition::BeginRun>()),
35  geomToken_(esConsumes<edm::Transition::BeginRun>()),
36  outputFolder_(config.getParameter<std::string>("outputFolder")),
37  mpReaderConfig_(config.getParameter<edm::ParameterSet>("MillePedeFileReader")),
38  isHG_(mpReaderConfig_.getParameter<bool>("isHG")) {
39  consumes<AlignmentToken, edm::InProcess>(config.getParameter<edm::InputTag>("alignmentTokenSrc"));
40 }
const edm::ParameterSet mpReaderConfig_
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
const edm::ESGetToken< GeometricDet, IdealGeometryRecord > gDetToken_
Definition: config.py:1
const edm::ESGetToken< PTrackerAdditionalParametersPerDet, PTrackerAdditionalParametersPerDetRcd > ptitpToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
const edm::ESGetToken< AlignPCLThresholdsHG, AlignPCLThresholdsHGRcd > aliThrToken_
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_
const edm::ESGetToken< SiPixelQuality, SiPixelQualityFromDbRcd > siPixelQualityToken_
const std::string outputFolder_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_

◆ ~MillePedeDQMModule()

MillePedeDQMModule::~MillePedeDQMModule ( )
overridedefault

Member Function Documentation

◆ beginRun()

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

Definition at line 173 of file MillePedeDQMModule.cc.

References edm::ParameterSet::addUntrackedParameter(), aliThrToken_, TrackerGeomBuilderFromGeometricDet::build(), gDetToken_, relativeConstraints::geom, geomToken_, get, mpReader_, mpReaderConfig_, MillePedeAlignmentAlgorithm_cfi::pedeLabeler, pixelQuality_, pixelTopologyMap_, ptitpToken_, ptpToken_, singleTopDQM_cfi::setup, setupChanged(), siPixelQualityToken_, AlCaHLTBitMon_QueryRunRegistry::string, tracker_, and tTopoToken_.

173  {
174  if (!setupChanged(setup))
175  return;
176 
177  const TrackerTopology* const tTopo = &setup.getData(tTopoToken_);
178  const GeometricDet* geometricDet = &setup.getData(gDetToken_);
179  const PTrackerParameters* ptp = &setup.getData(ptpToken_);
180  const PTrackerAdditionalParametersPerDet* ptitp = &setup.getData(ptitpToken_);
181  const TrackerGeometry* geom = &setup.getData(geomToken_);
182 
183  // Retrieve the SiPixelQuality object from setup
184  const SiPixelQuality& qual = setup.getData(siPixelQualityToken_);
185  // Create a new SiPixelQuality object on the heap using the copy constructor
186  pixelQuality_ = std::make_shared<SiPixelQuality>(qual);
187 
188  pixelTopologyMap_ = std::make_shared<PixelTopologyMap>(geom, tTopo);
189 
190  // take the thresholds from DB
191  const auto& thresholds_ = &setup.getData(aliThrToken_);
192 
193  auto myThresholds = std::make_shared<AlignPCLThresholdsHG>();
194  myThresholds->setAlignPCLThresholds(thresholds_->getNrecords(), thresholds_->getThreshold_Map());
195  myThresholds->setFloatMap(thresholds_->getFloatMap());
196 
198 
199  const auto trackerGeometry = builder.build(geometricDet, ptitp, *ptp, tTopo);
200  tracker_ = std::make_unique<AlignableTracker>(trackerGeometry, tTopo);
201 
202  const std::string labelerPlugin{"PedeLabeler"};
203  edm::ParameterSet labelerConfig{};
204  labelerConfig.addUntrackedParameter("plugin", labelerPlugin);
205  labelerConfig.addUntrackedParameter("RunRangeSelection", edm::VParameterSet{});
206 
207  std::shared_ptr<PedeLabelerBase> pedeLabeler{PedeLabelerPluginFactory::get()->create(
208  labelerPlugin, PedeLabelerBase::TopLevelAlignables(tracker_.get(), nullptr, nullptr), labelerConfig)};
209 
210  mpReader_ = std::make_unique<MillePedeFileReader>(mpReaderConfig_,
211  pedeLabeler,
212  std::shared_ptr<const AlignPCLThresholdsHG>(myThresholds),
214  pixelQuality_);
215 }
const edm::ParameterSet mpReaderConfig_
std::shared_ptr< SiPixelQuality > pixelQuality_
std::vector< ParameterSet > VParameterSet
Definition: ParameterSet.h:35
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_
const edm::ESGetToken< PTrackerAdditionalParametersPerDet, PTrackerAdditionalParametersPerDetRcd > ptitpToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
std::shared_ptr< PixelTopologyMap > pixelTopologyMap_
void addUntrackedParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:193
const edm::ESGetToken< AlignPCLThresholdsHG, AlignPCLThresholdsHGRcd > aliThrToken_
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_
std::unique_ptr< AlignableTracker > tracker_
std::unique_ptr< MillePedeFileReader > mpReader_
#define get
const edm::ESGetToken< SiPixelQuality, SiPixelQualityFromDbRcd > siPixelQualityToken_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_

◆ bookHistograms()

void MillePedeDQMModule::bookHistograms ( DQMStore::IBooker booker)
private

Definition at line 46 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(), Exception, exitCode, h_xPos, h_xPos_HG, h_xRot, h_xRot_HG, h_yPos, h_yPos_HG, h_yRot, h_yRot_HG, h_zPos, h_zPos_HG, h_zRot, h_zRot_HG, isHG_, isVetoed, nano_mu_digi_cff::layer, layerVec, outputFolder_, pixelTopologyMap_, dqm::implementation::NavigatorBase::setCurrentFolder(), and statusResults.

Referenced by dqmEndJob().

46  {
47  edm::LogInfo("MillePedeDQMModule") << "Booking histograms";
48 
49  booker.cd();
50  if (!isHG_) {
51  if (outputFolder_.find("HG") != std::string::npos) {
52  throw cms::Exception("LogicError")
53  << "MillePedeDQMModule is configured as Low Granularity but the outputfolder is for High Granularity";
54  }
55 
57  h_xPos = booker.book1D("Xpos", "Alignment fit #DeltaX;;#mum", 36, 0., 36.);
58  h_xRot = booker.book1D("Xrot", "Alignment fit #Delta#theta_{X};;#murad", 36, 0., 36.);
59  h_yPos = booker.book1D("Ypos", "Alignment fit #DeltaY;;#mum", 36, 0., 36.);
60  h_yRot = booker.book1D("Yrot", "Alignment fit #Delta#theta_{Y};;#murad", 36, 0., 36.);
61  h_zPos = booker.book1D("Zpos", "Alignment fit #DeltaZ;;#mum", 36, 0., 36.);
62  h_zRot = booker.book1D("Zrot", "Alignment fit #Delta#theta_{Z};;#murad", 36, 0., 36.);
63  statusResults = booker.book2D("statusResults", "Status of SiPixelAli PCL workflow;;", 6, 0., 6., 1, 0., 1.);
64  } else {
65  if (outputFolder_.find("HG") == std::string::npos) {
66  throw cms::Exception("LogicError")
67  << "MillePedeDQMModule is configured as High Granularity but the outputfolder is for Low Granularity";
68  }
69 
71 
72  layerVec = {{"Layer1", pixelTopologyMap_->getPXBLadders(1)},
73  {"Layer2", pixelTopologyMap_->getPXBLadders(2)},
74  {"Layer3", pixelTopologyMap_->getPXBLadders(3)},
75  {"Layer4", pixelTopologyMap_->getPXBLadders(4)},
76  {"Disk-3", pixelTopologyMap_->getPXFBlades(-3) * 2},
77  {"Disk-2", pixelTopologyMap_->getPXFBlades(-2) * 2},
78  {"Disk-1", pixelTopologyMap_->getPXFBlades(-1) * 2},
79  {"Disk1", pixelTopologyMap_->getPXFBlades(1) * 2},
80  {"Disk2", pixelTopologyMap_->getPXFBlades(2) * 2},
81  {"Disk3", pixelTopologyMap_->getPXFBlades(3) * 2}};
82 
83  for (const auto& layer : layerVec) {
84  h_xPos_HG[layer.first] = booker.book1D("Xpos_HG_" + layer.first,
85  "Alignment fit #DeltaX for " + layer.first + ";;#mum",
86  layer.second + 5,
87  0.,
88  layer.second + 5);
89  h_xRot_HG[layer.first] = booker.book1D("Xrot_HG_" + layer.first,
90  "Alignment fit #Delta#theta_{X} for " + layer.first + ";;#murad",
91  layer.second + 5,
92  0.,
93  layer.second + 5);
94  h_yPos_HG[layer.first] = booker.book1D("Ypos_HG_" + layer.first,
95  "Alignment fit #DeltaY for " + layer.first + ";;#mum",
96  layer.second + 5,
97  0.,
98  layer.second + 5);
99  h_yRot_HG[layer.first] = booker.book1D("Yrot_HG_" + layer.first,
100  "Alignment fit #Delta#theta_{Y} for " + layer.first + ";;#murad",
101  layer.second + 5,
102  0.,
103  layer.second + 5);
104  h_zPos_HG[layer.first] = booker.book1D("Zpos_HG_" + layer.first,
105  "Alignment fit #DeltaZ for " + layer.first + ";;#mum",
106  layer.second + 5,
107  0.,
108  layer.second + 5);
109  h_zRot_HG[layer.first] = booker.book1D("Zrot_HG_" + layer.first,
110  "Alignment fit #Delta#theta_{Z} for " + layer.first + ";;#murad",
111  layer.second + 5,
112  0.,
113  layer.second + 5);
114  }
115 
116  statusResults =
117  booker.book2D("statusResults", "Fraction threshold check for SiPixelAliHG PCL;;", 6, 0., 6., 10, 0., 10.);
118  }
119 
120  binariesAvalaible = booker.bookInt("BinariesFound");
121  exitCode = booker.bookString("PedeExitCode", "");
122  isVetoed = booker.bookString("IsVetoed", "");
123 
124  booker.cd();
125 }
std::map< std::string, MonitorElement * > h_xRot_HG
std::vector< std::pair< std::string, int > > layerVec
std::map< std::string, MonitorElement * > h_yPos_HG
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * h_zPos
std::map< std::string, MonitorElement * > h_zRot_HG
MonitorElement * binariesAvalaible
MonitorElement * bookString(TString const &name, TString const &value, FUNC onbooking=NOOP())
Definition: DQMStore.h:87
MonitorElement * isVetoed
std::map< std::string, MonitorElement * > h_yRot_HG
std::map< std::string, MonitorElement * > h_xPos_HG
MonitorElement * h_xPos
MonitorElement * h_yPos
Log< level::Info, false > LogInfo
std::shared_ptr< PixelTopologyMap > pixelTopologyMap_
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:221
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
std::map< std::string, MonitorElement * > h_zPos_HG
const std::string outputFolder_
MonitorElement * h_yRot

◆ dqmEndJob()

void MillePedeDQMModule::dqmEndJob ( DQMStore::IBooker booker,
DQMStore::IGetter  
)
overridevirtual

Implements DQMEDHarvester.

Definition at line 127 of file MillePedeDQMModule.cc.

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

127  {
128  bookHistograms(booker);
129  if (mpReader_) {
130  mpReader_->read();
131  } else {
132  throw cms::Exception("LogicError") << "@SUB=MillePedeDQMModule::dqmEndJob\n"
133  << "Try to read MillePede results before initializing MillePedeFileReader";
134  }
135  if (!isHG_) {
138  } else {
141  }
142  binariesAvalaible->Fill(mpReader_->binariesAmount());
143  auto theResults = mpReader_->getResults();
144  std::string exitCodeStr = theResults.getExitMessage();
145 
146  std::string vetoStr{};
147  if (mpReader_->storeAlignments()) {
148  vetoStr = "DB Updated!"; /* easy peasy, fait accompli an alignment is there */
149  } else {
150  if (theResults.isHighGranularity()) { /* HG case */
151  if (theResults.getDBVetoed() && theResults.getDBUpdated()) {
152  vetoStr = "DB Update Vetoed"; /* this can happen in the HG PCL case */
153  } else {
154  vetoStr = "N/A";
155  }
156  } else { /* LG case */
157  if (theResults.exceedsCutoffs()) {
158  vetoStr = "DB Update Vetoed"; /* this can happen in the LG PCL case */
159  } else {
160  vetoStr = "N/A";
161  } // if the alignment exceeds the cutoffs
162  } // LG case
163  } // if the alignment was not stored
164 
165  exitCode->Fill(exitCodeStr);
166  isVetoed->Fill(vetoStr);
167 }
void fillStatusHisto(MonitorElement *statusHisto)
MonitorElement * binariesAvalaible
void Fill(long long x)
MonitorElement * isVetoed
void bookHistograms(DQMStore::IBooker &)
MonitorElement * statusResults
std::unique_ptr< MillePedeFileReader > mpReader_
MonitorElement * exitCode
void fillStatusHistoHG(MonitorElement *statusHisto)

◆ fillDescriptions()

void MillePedeDQMModule::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 542 of file MillePedeDQMModule.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, MillePedeFileReader::fillPSetDescription(), ProducerED_cfi::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

542  {
544  desc.add<std::string>("outputFolder", "AlCaReco/SiPixelAli");
545  {
546  edm::ParameterSetDescription mpFileReaderPSet;
548  desc.add<edm::ParameterSetDescription>("MillePedeFileReader", mpFileReaderPSet);
549  }
550  desc.add<edm::InputTag>("alignmentTokenSrc", edm::InputTag("SiPixelAliPedeAlignmentProducer"));
551  descriptions.addWithDefaultLabel(desc);
552 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
static void fillPSetDescription(edm::ParameterSetDescription &desc)

◆ fillExpertHisto()

void MillePedeDQMModule::fillExpertHisto ( MonitorElement histo,
const std::array< double, SIZE_INDEX > &  cut,
const std::array< double, SIZE_INDEX > &  sigCut,
const std::array< double, SIZE_INDEX > &  maxMoveCut,
const std::array< double, SIZE_INDEX > &  maxErrorCut,
const std::array< double, SIZE_LG_STRUCTS > &  obs,
const std::array< double, SIZE_LG_STRUCTS > &  obsErr 
)
private

Definition at line 319 of file MillePedeDQMModule.cc.

References DMR_cfg::cut, timingPdfMaker::histo, mps_fire::i, and HLT_2024v14_cff::sigCut.

Referenced by fillExpertHistos().

325  {
326  TH1F* histo_0 = histo->getTH1F();
327 
328  double max_ = *std::max_element(maxMoveCut.begin(), maxMoveCut.end());
329 
330  histo_0->SetMinimum(-(max_));
331  histo_0->SetMaximum(max_);
332 
333  // Schematics of the bin contents
334  //
335  // XX XX XX XX XX XX OO OO OO OO II II II II
336  // |--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
337  // | 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14|15|16|17| ...
338  //
339  // |-----------------| |-----------| |-----------|
340  // |observed movement| |thresholds1| |thresholds2|
341 
342  for (size_t i = 0; i < obs.size(); ++i) {
343  // fist obs.size() bins for observed movements
344  histo_0->SetBinContent(i + 1, obs[i]);
345  histo_0->SetBinError(i + 1, obsErr[i]);
346 
347  // then at bin 8,8+5,8+10,... for cutoffs
348  // 5 bins is the space allocated for the 4 other thresholds + 1 empty separation bin
349  histo_0->SetBinContent(8 + i * 5, cut[i]);
350 
351  // then at bin 9,9+5,9+10,... for significances
352  histo_0->SetBinContent(9 + i * 5, sigCut[i]);
353 
354  // then at bin 10,10+5,10+10,... for maximum movements
355  histo_0->SetBinContent(10 + i * 5, maxMoveCut[i]);
356 
357  // then at bin 11,11+5,11+10,... for maximum errors
358  histo_0->SetBinContent(11 + i * 5, maxErrorCut[i]);
359  }
360 }

◆ fillExpertHisto_HG()

void MillePedeDQMModule::fillExpertHisto_HG ( std::map< std::string, MonitorElement *> &  histo_map,
const std::array< double, SIZE_INDEX > &  cut,
const std::array< double, SIZE_INDEX > &  sigCut,
const std::array< double, SIZE_INDEX > &  maxMoveCut,
const std::array< double, SIZE_INDEX > &  maxErrorCut,
const std::array< double, SIZE_HG_STRUCTS > &  obs,
const std::array< double, SIZE_HG_STRUCTS > &  obsErr 
)
private

Definition at line 444 of file MillePedeDQMModule.cc.

References funct::abs(), newFWLiteAna::bin, mps_splice::currentStart, DMR_cfg::cut, mps_fire::i, nano_mu_digi_cff::layer, layerVec, WZElectronSkims53X_cff::max, and HLT_2024v14_cff::sigCut.

Referenced by fillExpertHistos_HG().

450  {
451  int currentStart = 0;
452  int bin = 0;
453  double max_ = 0;
454 
455  for (const auto& layer : layerVec) {
456  TH1F* histo_0 = histo_map[layer.first]->getTH1F();
457 
458  max_ = -1;
459  for (int i = currentStart; i < (currentStart + layer.second); ++i) {
460  // first obs.size() bins for observed movements
461  bin = i - currentStart + 1;
462 
463  // fill observed values
464  histo_0->SetBinContent(bin, obs[i]);
465  histo_0->SetBinError(bin, obsErr[i]);
466 
467  if (std::abs(obs[i]) > max_) {
468  max_ = std::abs(obs[i]);
469  }
470  }
471 
472  // five extra bins at the end, one empty, one with threshold, one with sigCut, one with maxMoveCut, one with MaxErrorCut
473  histo_0->SetBinContent(bin + 1, 0);
474  histo_0->SetBinError(bin + 1, 0);
475 
476  int detIndex;
477  if (layer.first.find("Disk") != std::string::npos) {
478  // 7 is the detId for panels, see getIndexFromString
479  detIndex = 7;
480  histo_0->GetXaxis()->SetTitle("Panel");
481  } else {
482  // 6 is the detId for ladders, see getIndexFromString
483  detIndex = 6;
484  histo_0->GetXaxis()->SetTitle("Ladder");
485  }
486 
487  histo_0->SetBinContent(bin + 2, cut[detIndex]);
488  histo_0->SetBinError(bin + 2, 0);
489  histo_0->SetBinContent(bin + 3, sigCut[detIndex]);
490  histo_0->SetBinError(bin + 3, 0);
491  histo_0->SetBinContent(bin + 4, maxMoveCut[detIndex]);
492  histo_0->SetBinError(bin + 4, 0);
493  histo_0->SetBinContent(bin + 5, maxErrorCut[detIndex]);
494  histo_0->SetBinError(bin + 5, 0);
495 
496  // always scale so the cutoff is visible
497  max_ = std::max(cut[detIndex] * 1.2, max_);
498 
499  histo_0->SetMinimum(-(max_) * 1.2);
500  histo_0->SetMaximum(max_ * 1.2);
501 
502  currentStart += layer.second;
503  }
504 }
std::vector< std::pair< std::string, int > > layerVec
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int currentStart
Definition: mps_splice.py:66

◆ fillExpertHistos()

void MillePedeDQMModule::fillExpertHistos ( )
private

Definition at line 255 of file MillePedeDQMModule.cc.

References fillExpertHisto(), getIndexFromString(), h_xPos, h_xRot, h_yPos, h_yRot, h_zPos, h_zRot, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, and mpReader_.

Referenced by dqmEndJob().

255  {
256  std::array<double, SIZE_INDEX> Xcut_, sigXcut_, maxMoveXcut_, maxErrorXcut_;
257  std::array<double, SIZE_INDEX> tXcut_, sigtXcut_, maxMovetXcut_, maxErrortXcut_;
258 
259  std::array<double, SIZE_INDEX> Ycut_, sigYcut_, maxMoveYcut_, maxErrorYcut_;
260  std::array<double, SIZE_INDEX> tYcut_, sigtYcut_, maxMovetYcut_, maxErrortYcut_;
261 
262  std::array<double, SIZE_INDEX> Zcut_, sigZcut_, maxMoveZcut_, maxErrorZcut_;
263  std::array<double, SIZE_INDEX> tZcut_, sigtZcut_, maxMovetZcut_, maxErrortZcut_;
264 
265  auto myMap = mpReader_->getThresholdMap();
266 
267  std::vector<std::string> alignablesList;
268  for (auto it = myMap.begin(); it != myMap.end(); ++it) {
269  alignablesList.push_back(it->first);
270  }
271 
272  for (auto& alignable : alignablesList) {
273  int detIndex = getIndexFromString(alignable);
274 
275  Xcut_[detIndex] = myMap[alignable].getXcut();
276  sigXcut_[detIndex] = myMap[alignable].getSigXcut();
277  maxMoveXcut_[detIndex] = myMap[alignable].getMaxMoveXcut();
278  maxErrorXcut_[detIndex] = myMap[alignable].getErrorXcut();
279 
280  Ycut_[detIndex] = myMap[alignable].getYcut();
281  sigYcut_[detIndex] = myMap[alignable].getSigYcut();
282  maxMoveYcut_[detIndex] = myMap[alignable].getMaxMoveYcut();
283  maxErrorYcut_[detIndex] = myMap[alignable].getErrorYcut();
284 
285  Zcut_[detIndex] = myMap[alignable].getZcut();
286  sigZcut_[detIndex] = myMap[alignable].getSigZcut();
287  maxMoveZcut_[detIndex] = myMap[alignable].getMaxMoveZcut();
288  maxErrorZcut_[detIndex] = myMap[alignable].getErrorZcut();
289 
290  tXcut_[detIndex] = myMap[alignable].getThetaXcut();
291  sigtXcut_[detIndex] = myMap[alignable].getSigThetaXcut();
292  maxMovetXcut_[detIndex] = myMap[alignable].getMaxMoveThetaXcut();
293  maxErrortXcut_[detIndex] = myMap[alignable].getErrorThetaXcut();
294 
295  tYcut_[detIndex] = myMap[alignable].getThetaYcut();
296  sigtYcut_[detIndex] = myMap[alignable].getSigThetaYcut();
297  maxMovetYcut_[detIndex] = myMap[alignable].getMaxMoveThetaYcut();
298  maxErrortYcut_[detIndex] = myMap[alignable].getErrorThetaYcut();
299 
300  tZcut_[detIndex] = myMap[alignable].getThetaZcut();
301  sigtZcut_[detIndex] = myMap[alignable].getSigThetaZcut();
302  maxMovetZcut_[detIndex] = myMap[alignable].getMaxMoveThetaZcut();
303  maxErrortZcut_[detIndex] = myMap[alignable].getErrorThetaZcut();
304  }
305 
306  fillExpertHisto(h_xPos, Xcut_, sigXcut_, maxMoveXcut_, maxErrorXcut_, mpReader_->getXobs(), mpReader_->getXobsErr());
308  h_xRot, tXcut_, sigtXcut_, maxMovetXcut_, maxErrortXcut_, mpReader_->getTXobs(), mpReader_->getTXobsErr());
309 
310  fillExpertHisto(h_yPos, Ycut_, sigYcut_, maxMoveYcut_, maxErrorYcut_, mpReader_->getYobs(), mpReader_->getYobsErr());
312  h_yRot, tYcut_, sigtYcut_, maxMovetYcut_, maxErrortYcut_, mpReader_->getTYobs(), mpReader_->getTYobsErr());
313 
314  fillExpertHisto(h_zPos, Zcut_, sigZcut_, maxMoveZcut_, maxErrorZcut_, mpReader_->getZobs(), mpReader_->getZobsErr());
316  h_zRot, tZcut_, sigtZcut_, maxMovetZcut_, maxErrortZcut_, mpReader_->getTZobs(), mpReader_->getTZobsErr());
317 }
void fillExpertHisto(MonitorElement *histo, const std::array< double, SIZE_INDEX > &cut, const std::array< double, SIZE_INDEX > &sigCut, const std::array< double, SIZE_INDEX > &maxMoveCut, const std::array< double, SIZE_INDEX > &maxErrorCut, const std::array< double, SIZE_LG_STRUCTS > &obs, const std::array< double, SIZE_LG_STRUCTS > &obsErr)
MonitorElement * h_zPos
MonitorElement * h_xPos
MonitorElement * h_yPos
MonitorElement * h_xRot
std::unique_ptr< MillePedeFileReader > mpReader_
int getIndexFromString(const std::string &alignableId)
MonitorElement * h_zRot
MonitorElement * h_yRot

◆ fillExpertHistos_HG()

void MillePedeDQMModule::fillExpertHistos_HG ( )
private

Definition at line 362 of file MillePedeDQMModule.cc.

References fillExpertHisto_HG(), getIndexFromString(), h_xPos_HG, h_xRot_HG, h_yPos_HG, h_yRot_HG, h_zPos_HG, h_zRot_HG, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, and mpReader_.

Referenced by dqmEndJob().

362  {
363  std::array<double, SIZE_INDEX> Xcut_, sigXcut_, maxMoveXcut_, maxErrorXcut_;
364  std::array<double, SIZE_INDEX> tXcut_, sigtXcut_, maxMovetXcut_, maxErrortXcut_;
365 
366  std::array<double, SIZE_INDEX> Ycut_, sigYcut_, maxMoveYcut_, maxErrorYcut_;
367  std::array<double, SIZE_INDEX> tYcut_, sigtYcut_, maxMovetYcut_, maxErrortYcut_;
368 
369  std::array<double, SIZE_INDEX> Zcut_, sigZcut_, maxMoveZcut_, maxErrorZcut_;
370  std::array<double, SIZE_INDEX> tZcut_, sigtZcut_, maxMovetZcut_, maxErrortZcut_;
371 
372  auto myMap = mpReader_->getThresholdMap();
373 
374  std::vector<std::string> alignablesList;
375  for (auto it = myMap.begin(); it != myMap.end(); ++it) {
376  alignablesList.push_back(it->first);
377  }
378 
379  for (auto& alignable : alignablesList) {
380  int detIndex = getIndexFromString(alignable);
381 
382  Xcut_[detIndex] = myMap[alignable].getXcut();
383  sigXcut_[detIndex] = myMap[alignable].getSigXcut();
384  maxMoveXcut_[detIndex] = myMap[alignable].getMaxMoveXcut();
385  maxErrorXcut_[detIndex] = myMap[alignable].getErrorXcut();
386 
387  Ycut_[detIndex] = myMap[alignable].getYcut();
388  sigYcut_[detIndex] = myMap[alignable].getSigYcut();
389  maxMoveYcut_[detIndex] = myMap[alignable].getMaxMoveYcut();
390  maxErrorYcut_[detIndex] = myMap[alignable].getErrorYcut();
391 
392  Zcut_[detIndex] = myMap[alignable].getZcut();
393  sigZcut_[detIndex] = myMap[alignable].getSigZcut();
394  maxMoveZcut_[detIndex] = myMap[alignable].getMaxMoveZcut();
395  maxErrorZcut_[detIndex] = myMap[alignable].getErrorZcut();
396 
397  tXcut_[detIndex] = myMap[alignable].getThetaXcut();
398  sigtXcut_[detIndex] = myMap[alignable].getSigThetaXcut();
399  maxMovetXcut_[detIndex] = myMap[alignable].getMaxMoveThetaXcut();
400  maxErrortXcut_[detIndex] = myMap[alignable].getErrorThetaXcut();
401 
402  tYcut_[detIndex] = myMap[alignable].getThetaYcut();
403  sigtYcut_[detIndex] = myMap[alignable].getSigThetaYcut();
404  maxMovetYcut_[detIndex] = myMap[alignable].getMaxMoveThetaYcut();
405  maxErrortYcut_[detIndex] = myMap[alignable].getErrorThetaYcut();
406 
407  tZcut_[detIndex] = myMap[alignable].getThetaZcut();
408  sigtZcut_[detIndex] = myMap[alignable].getSigThetaZcut();
409  maxMovetZcut_[detIndex] = myMap[alignable].getMaxMoveThetaZcut();
410  maxErrortZcut_[detIndex] = myMap[alignable].getErrorThetaZcut();
411  }
412 
414  h_xPos_HG, Xcut_, sigXcut_, maxMoveXcut_, maxErrorXcut_, mpReader_->getXobs_HG(), mpReader_->getXobsErr_HG());
416  tXcut_,
417  sigtXcut_,
418  maxMovetXcut_,
419  maxErrortXcut_,
420  mpReader_->getTXobs_HG(),
421  mpReader_->getTXobsErr_HG());
422 
424  h_yPos_HG, Ycut_, sigYcut_, maxMoveYcut_, maxErrorYcut_, mpReader_->getYobs_HG(), mpReader_->getYobsErr_HG());
426  tYcut_,
427  sigtYcut_,
428  maxMovetYcut_,
429  maxErrortYcut_,
430  mpReader_->getTYobs_HG(),
431  mpReader_->getTYobsErr_HG());
432 
434  h_zPos_HG, Zcut_, sigZcut_, maxMoveZcut_, maxErrorZcut_, mpReader_->getZobs_HG(), mpReader_->getZobsErr_HG());
436  tZcut_,
437  sigtZcut_,
438  maxMovetZcut_,
439  maxErrortZcut_,
440  mpReader_->getTZobs_HG(),
441  mpReader_->getTZobsErr_HG());
442 }
std::map< std::string, MonitorElement * > h_xRot_HG
std::map< std::string, MonitorElement * > h_yPos_HG
std::map< std::string, MonitorElement * > h_zRot_HG
std::map< std::string, MonitorElement * > h_yRot_HG
std::map< std::string, MonitorElement * > h_xPos_HG
std::unique_ptr< MillePedeFileReader > mpReader_
int getIndexFromString(const std::string &alignableId)
std::map< std::string, MonitorElement * > h_zPos_HG
void fillExpertHisto_HG(std::map< std::string, MonitorElement *> &histo_map, const std::array< double, SIZE_INDEX > &cut, const std::array< double, SIZE_INDEX > &sigCut, const std::array< double, SIZE_INDEX > &maxMoveCut, const std::array< double, SIZE_INDEX > &maxErrorCut, const std::array< double, SIZE_HG_STRUCTS > &obs, const std::array< double, SIZE_HG_STRUCTS > &obsErr)

◆ fillStatusHisto()

void MillePedeDQMModule::fillStatusHisto ( MonitorElement statusHisto)
private

Definition at line 217 of file MillePedeDQMModule.cc.

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

Referenced by dqmEndJob().

217  {
218  TH2F* histo_status = statusHisto->getTH2F();
219  auto theResults = mpReader_->getResults();
220  theResults.print();
221  histo_status->SetBinContent(1, 1, theResults.getDBUpdated());
222  histo_status->GetXaxis()->SetBinLabel(1, "DB updated");
223  histo_status->SetBinContent(2, 1, theResults.exceedsCutoffs());
224  histo_status->GetXaxis()->SetBinLabel(2, "significant movement");
225  histo_status->SetBinContent(3, 1, theResults.getDBVetoed());
226  histo_status->GetXaxis()->SetBinLabel(3, "DB update vetoed");
227  histo_status->SetBinContent(4, 1, !theResults.exceedsThresholds());
228  histo_status->GetXaxis()->SetBinLabel(4, "within max movement");
229  histo_status->SetBinContent(5, 1, !theResults.exceedsMaxError());
230  histo_status->GetXaxis()->SetBinLabel(5, "within max error");
231  histo_status->SetBinContent(6, 1, !theResults.belowSignificance());
232  histo_status->GetXaxis()->SetBinLabel(6, "above significance");
233 }
virtual TH2F * getTH2F() const
std::unique_ptr< MillePedeFileReader > mpReader_

◆ fillStatusHistoHG()

void MillePedeDQMModule::fillStatusHistoHG ( MonitorElement statusHisto)
private

Definition at line 235 of file MillePedeDQMModule.cc.

References dqm::legacy::MonitorElement::getTH2F(), mps_fire::i, dqmiolumiharvest::j, mpReader_, and mps_fire::result.

Referenced by dqmEndJob().

235  {
236  TH2F* histo_status = statusHisto->getTH2F();
237  auto& theResults = mpReader_->getResultsHG();
238  histo_status->GetXaxis()->SetBinLabel(1, "#DeltaX");
239  histo_status->GetXaxis()->SetBinLabel(2, "#DeltaY");
240  histo_status->GetXaxis()->SetBinLabel(3, "#DeltaZ");
241  histo_status->GetXaxis()->SetBinLabel(4, "#Delta#theta_{X}");
242  histo_status->GetXaxis()->SetBinLabel(5, "#Delta#theta_{Y}");
243  histo_status->GetXaxis()->SetBinLabel(6, "#Delta#theta_{Z}");
244 
245  int i = 0;
246  for (const auto& result : theResults) {
247  histo_status->GetYaxis()->SetBinLabel(i + 1, result.first.data());
248  for (std::size_t j = 0; j < result.second.size(); ++j) {
249  histo_status->SetBinContent(j + 1, i + 1, result.second[j]);
250  }
251  i++;
252  }
253 }
virtual TH2F * getTH2F() const
std::unique_ptr< MillePedeFileReader > mpReader_

◆ getIndexFromString()

int MillePedeDQMModule::getIndexFromString ( const std::string &  alignableId)
private

Definition at line 519 of file MillePedeDQMModule.cc.

References Exception.

Referenced by fillExpertHistos(), and fillExpertHistos_HG().

519  {
520  if (alignableId == "TPBHalfBarrelXminus") {
521  return 3;
522  } else if (alignableId == "TPBHalfBarrelXplus") {
523  return 2;
524  } else if (alignableId == "TPEHalfCylinderXminusZminus") {
525  return 1;
526  } else if (alignableId == "TPEHalfCylinderXplusZminus") {
527  return 0;
528  } else if (alignableId == "TPEHalfCylinderXminusZplus") {
529  return 5;
530  } else if (alignableId == "TPEHalfCylinderXplusZplus") {
531  return 4;
532  } else if (alignableId.rfind("TPBLadder", 0) == 0) {
533  return 6;
534  } else if (alignableId.rfind("TPEPanel", 0) == 0) {
535  return 7;
536  } else {
537  throw cms::Exception("LogicError") << "@SUB=MillePedeDQMModule::getIndexFromString\n"
538  << "Retrieving conversion for not supported Alignable partition" << alignableId;
539  }
540 }

◆ setupChanged()

bool MillePedeDQMModule::setupChanged ( const edm::EventSetup setup)
private

Definition at line 506 of file MillePedeDQMModule.cc.

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

Referenced by beginRun().

506  {
507  bool changed{false};
508 
510  changed = true;
512  changed = true;
514  changed = true;
515 
516  return changed;
517 }
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

◆ aliThrToken_

const edm::ESGetToken<AlignPCLThresholdsHG, AlignPCLThresholdsHGRcd> MillePedeDQMModule::aliThrToken_
private

Definition at line 110 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ binariesAvalaible

MonitorElement* MillePedeDQMModule::binariesAvalaible
private

Definition at line 143 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

◆ exitCode

MonitorElement* MillePedeDQMModule::exitCode
private

Definition at line 144 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

◆ gDetToken_

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

Definition at line 107 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ geomToken_

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> MillePedeDQMModule::geomToken_
private

Definition at line 112 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ h_xPos

MonitorElement* MillePedeDQMModule::h_xPos
private

Definition at line 128 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

◆ h_xPos_HG

std::map<std::string, MonitorElement*> MillePedeDQMModule::h_xPos_HG
private

Definition at line 135 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ h_xRot

MonitorElement* MillePedeDQMModule::h_xRot
private

Definition at line 129 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

◆ h_xRot_HG

std::map<std::string, MonitorElement*> MillePedeDQMModule::h_xRot_HG
private

Definition at line 136 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ h_yPos

MonitorElement* MillePedeDQMModule::h_yPos
private

Definition at line 130 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

◆ h_yPos_HG

std::map<std::string, MonitorElement*> MillePedeDQMModule::h_yPos_HG
private

Definition at line 137 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ h_yRot

MonitorElement* MillePedeDQMModule::h_yRot
private

Definition at line 131 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

◆ h_yRot_HG

std::map<std::string, MonitorElement*> MillePedeDQMModule::h_yRot_HG
private

Definition at line 138 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ h_zPos

MonitorElement* MillePedeDQMModule::h_zPos
private

Definition at line 132 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

◆ h_zPos_HG

std::map<std::string, MonitorElement*> MillePedeDQMModule::h_zPos_HG
private

Definition at line 139 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ h_zRot

MonitorElement* MillePedeDQMModule::h_zRot
private

Definition at line 133 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos().

◆ h_zRot_HG

std::map<std::string, MonitorElement*> MillePedeDQMModule::h_zRot_HG
private

Definition at line 140 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ isHG_

bool MillePedeDQMModule::isHG_
private

Definition at line 147 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

◆ isVetoed

MonitorElement* MillePedeDQMModule::isVetoed
private

Definition at line 145 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

◆ layerVec

std::vector<std::pair<std::string, int> > MillePedeDQMModule::layerVec
private

Definition at line 121 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHisto_HG().

◆ mpReader_

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

◆ mpReaderConfig_

const edm::ParameterSet MillePedeDQMModule::mpReaderConfig_
private

Definition at line 115 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ outputFolder_

const std::string MillePedeDQMModule::outputFolder_
private

Definition at line 114 of file MillePedeDQMModule.h.

Referenced by bookHistograms().

◆ pixelQuality_

std::shared_ptr<SiPixelQuality> MillePedeDQMModule::pixelQuality_
private

Definition at line 119 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ pixelTopologyMap_

std::shared_ptr<PixelTopologyMap> MillePedeDQMModule::pixelTopologyMap_
private

Definition at line 118 of file MillePedeDQMModule.h.

Referenced by beginRun(), and bookHistograms().

◆ ptitpToken_

Definition at line 109 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ ptpToken_

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

Definition at line 108 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ siPixelQualityToken_

const edm::ESGetToken<SiPixelQuality, SiPixelQualityFromDbRcd> MillePedeDQMModule::siPixelQualityToken_
private

Definition at line 111 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ statusResults

MonitorElement* MillePedeDQMModule::statusResults
private

Definition at line 142 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

◆ tracker_

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

Definition at line 116 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ tTopoToken_

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

Definition at line 106 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ watchIdealGeometryRcd_

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

Definition at line 124 of file MillePedeDQMModule.h.

Referenced by setupChanged().

◆ watchPTrackerParametersRcd_

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

Definition at line 125 of file MillePedeDQMModule.h.

Referenced by setupChanged().

◆ watchTrackerTopologyRcd_

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

Definition at line 123 of file MillePedeDQMModule.h.

Referenced by setupChanged().