CMS 3D CMS Logo

List of all members | Public Types | 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
 
- 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 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
 
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)
 

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_
 
std::shared_ptr< PixelTopologyMappixelTopologyMap_
 
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcdptpToken_
 
MonitorElementstatusResults
 
std::unique_ptr< AlignableTrackertracker_
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtTopoToken_
 
edm::ESWatcher< IdealGeometryRecordwatchIdealGeometryRcd_
 
edm::ESWatcher< PTrackerParametersRcdwatchPTrackerParametersRcd_
 
edm::ESWatcher< TrackerTopologyRcdwatchTrackerTopologyRcd_
 

Additional Inherited Members

- 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
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 50 of file MillePedeDQMModule.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
SIZE_LG_STRUCTS 
SIZE_HG_STRUCTS 
SIZE_INDEX 

Definition at line 58 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  aliThrToken_(esConsumes<edm::Transition::BeginRun>()),
33  geomToken_(esConsumes<edm::Transition::BeginRun>()),
34  mpReaderConfig_(config.getParameter<edm::ParameterSet>("MillePedeFileReader")),
35  isHG_(mpReaderConfig_.getParameter<bool>("isHG")) {
36  consumes<AlignmentToken, edm::InProcess>(config.getParameter<edm::InputTag>("alignmentTokenSrc"));
37 }
const edm::ParameterSet mpReaderConfig_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::ESGetToken< GeometricDet, IdealGeometryRecord > gDetToken_
Definition: config.py:1
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
const edm::ESGetToken< AlignPCLThresholdsHG, AlignPCLThresholdsHGRcd > aliThrToken_
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_

◆ ~MillePedeDQMModule()

MillePedeDQMModule::~MillePedeDQMModule ( )
override

Definition at line 39 of file MillePedeDQMModule.cc.

39 {}

Member Function Documentation

◆ beginRun()

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

Definition at line 162 of file MillePedeDQMModule.cc.

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

162  {
163  if (!setupChanged(setup))
164  return;
165 
166  const TrackerTopology* const tTopo = &setup.getData(tTopoToken_);
167  const GeometricDet* geometricDet = &setup.getData(gDetToken_);
168  const PTrackerParameters* ptp = &setup.getData(ptpToken_);
169  const TrackerGeometry* geom = &setup.getData(geomToken_);
170 
171  pixelTopologyMap_ = std::make_shared<PixelTopologyMap>(geom, tTopo);
172 
173  // take the thresholds from DB
174  const auto& thresholds_ = &setup.getData(aliThrToken_);
175 
176  auto myThresholds = std::make_shared<AlignPCLThresholdsHG>();
177  myThresholds->setAlignPCLThresholds(thresholds_->getNrecords(), thresholds_->getThreshold_Map());
178  myThresholds->setFloatMap(thresholds_->getFloatMap());
179 
181 
182  const auto trackerGeometry = builder.build(geometricDet, *ptp, tTopo);
183  tracker_ = std::make_unique<AlignableTracker>(trackerGeometry, tTopo);
184 
185  const std::string labelerPlugin{"PedeLabeler"};
186  edm::ParameterSet labelerConfig{};
187  labelerConfig.addUntrackedParameter("plugin", labelerPlugin);
188  labelerConfig.addUntrackedParameter("RunRangeSelection", edm::VParameterSet{});
189 
190  std::shared_ptr<PedeLabelerBase> pedeLabeler{PedeLabelerPluginFactory::get()->create(
191  labelerPlugin, PedeLabelerBase::TopLevelAlignables(tracker_.get(), nullptr, nullptr), labelerConfig)};
192 
193  mpReader_ = std::make_unique<MillePedeFileReader>(
194  mpReaderConfig_, pedeLabeler, std::shared_ptr<const AlignPCLThresholdsHG>(myThresholds), pixelTopologyMap_);
195 }
const edm::ParameterSet mpReaderConfig_
std::vector< ParameterSet > VParameterSet
Definition: ParameterSet.h:34
bool setupChanged(const edm::EventSetup &)
TrackerGeometry * build(const GeometricDet *gd, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
const edm::ESGetToken< GeometricDet, IdealGeometryRecord > gDetToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
std::shared_ptr< PixelTopologyMap > pixelTopologyMap_
void addUntrackedParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:192
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< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_

◆ bookHistograms()

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

Definition at line 45 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_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, pixelTopologyMap_, dqm::implementation::NavigatorBase::setCurrentFolder(), and statusResults.

Referenced by dqmEndJob().

45  {
46  edm::LogInfo("MillePedeDQMModule") << "Booking histograms";
47 
48  booker.cd();
49  if (!isHG_) {
50  booker.setCurrentFolder("AlCaReco/SiPixelAli/");
51  h_xPos = booker.book1D("Xpos", "Alignment fit #DeltaX;;#mum", 36, 0., 36.);
52  h_xRot = booker.book1D("Xrot", "Alignment fit #Delta#theta_{X};;#murad", 36, 0., 36.);
53  h_yPos = booker.book1D("Ypos", "Alignment fit #DeltaY;;#mum", 36, 0., 36.);
54  h_yRot = booker.book1D("Yrot", "Alignment fit #Delta#theta_{Y};;#murad", 36, 0., 36.);
55  h_zPos = booker.book1D("Zpos", "Alignment fit #DeltaZ;;#mum", 36, 0., 36.);
56  h_zRot = booker.book1D("Zrot", "Alignment fit #Delta#theta_{Z};;#murad", 36, 0., 36.);
57  statusResults = booker.book2D("statusResults", "Status of SiPixelAli PCL workflow;;", 6, 0., 6., 1, 0., 1.);
58  } else {
59  booker.setCurrentFolder("AlCaReco/SiPixelAliHG/");
60 
61  layerVec = {{"Layer1", pixelTopologyMap_->getPXBLadders(1)},
62  {"Layer2", pixelTopologyMap_->getPXBLadders(2)},
63  {"Layer3", pixelTopologyMap_->getPXBLadders(3)},
64  {"Layer4", pixelTopologyMap_->getPXBLadders(4)},
65  {"Disk-3", pixelTopologyMap_->getPXFBlades(-3) * 2},
66  {"Disk-2", pixelTopologyMap_->getPXFBlades(-2) * 2},
67  {"Disk-1", pixelTopologyMap_->getPXFBlades(-1) * 2},
68  {"Disk1", pixelTopologyMap_->getPXFBlades(1) * 2},
69  {"Disk2", pixelTopologyMap_->getPXFBlades(2) * 2},
70  {"Disk3", pixelTopologyMap_->getPXFBlades(3) * 2}};
71 
72  for (const auto& layer : layerVec) {
73  h_xPos_HG[layer.first] = booker.book1D("Xpos_HG_" + layer.first,
74  "Alignment fit #DeltaX for " + layer.first + ";;#mum",
75  layer.second + 5,
76  0.,
77  layer.second + 5);
78  h_xRot_HG[layer.first] = booker.book1D("Xrot_HG_" + layer.first,
79  "Alignment fit #Delta#theta_{X} for " + layer.first + ";;#murad",
80  layer.second + 5,
81  0.,
82  layer.second + 5);
83  h_yPos_HG[layer.first] = booker.book1D("Ypos_HG_" + layer.first,
84  "Alignment fit #DeltaY for " + layer.first + ";;#mum",
85  layer.second + 5,
86  0.,
87  layer.second + 5);
88  h_yRot_HG[layer.first] = booker.book1D("Yrot_HG_" + layer.first,
89  "Alignment fit #Delta#theta_{Y} for " + layer.first + ";;#murad",
90  layer.second + 5,
91  0.,
92  layer.second + 5);
93  h_zPos_HG[layer.first] = booker.book1D("Zpos_HG_" + layer.first,
94  "Alignment fit #DeltaZ for " + layer.first + ";;#mum",
95  layer.second + 5,
96  0.,
97  layer.second + 5);
98  h_zRot_HG[layer.first] = booker.book1D("Zrot_HG_" + layer.first,
99  "Alignment fit #Delta#theta_{Z} for " + layer.first + ";;#murad",
100  layer.second + 5,
101  0.,
102  layer.second + 5);
103  }
104 
105  statusResults =
106  booker.book2D("statusResults", "Fraction threshold check for SiPixelAliHG PCL;;", 6, 0., 6., 10, 0., 10.);
107  }
108 
109  binariesAvalaible = booker.bookInt("BinariesFound");
110  exitCode = booker.bookString("PedeExitCode", "");
111  isVetoed = booker.bookString("IsVetoed", "");
112 
113  booker.cd();
114 }
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:212
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
MonitorElement * h_yRot

◆ dqmEndJob()

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

Implements DQMEDHarvester.

Definition at line 116 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.

116  {
117  bookHistograms(booker);
118  if (mpReader_) {
119  mpReader_->read();
120  } else {
121  throw cms::Exception("LogicError") << "@SUB=MillePedeDQMModule::dqmEndJob\n"
122  << "Try to read MillePede results before initializing MillePedeFileReader";
123  }
124  if (!isHG_) {
127  } else {
130  }
131  binariesAvalaible->Fill(mpReader_->binariesAmount());
132  auto theResults = mpReader_->getResults();
133  std::string exitCodeStr = theResults.getExitMessage();
134 
135  std::string vetoStr{};
136  if (mpReader_->storeAlignments()) {
137  vetoStr = "DB Updated!"; /* easy peasy, fait accompli an alignment is there */
138  } else {
139  if (theResults.isHighGranularity()) { /* HG case */
140  if (theResults.getDBVetoed() && theResults.getDBUpdated()) {
141  vetoStr = "DB Update Vetoed"; /* this can happen in the HG PCL case */
142  } else {
143  vetoStr = "N/A";
144  }
145  } else { /* LG case */
146  if (theResults.exceedsCutoffs()) {
147  vetoStr = "DB Update Vetoed"; /* this can happen in the LG PCL case */
148  } else {
149  vetoStr = "N/A";
150  } // if the alignment exceeds the cutoffs
151  } // LG case
152  } // if the alignment was not stored
153 
154  exitCode->Fill(exitCodeStr);
155  isVetoed->Fill(vetoStr);
156 }
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)

◆ 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 299 of file MillePedeDQMModule.cc.

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

Referenced by fillExpertHistos().

305  {
306  TH1F* histo_0 = histo->getTH1F();
307 
308  double max_ = *std::max_element(maxMoveCut.begin(), maxMoveCut.end());
309 
310  histo_0->SetMinimum(-(max_));
311  histo_0->SetMaximum(max_);
312 
313  // Schematics of the bin contents
314  //
315  // XX XX XX XX XX XX OO OO OO OO II II II II
316  // |--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
317  // | 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14|15|16|17| ...
318  //
319  // |-----------------| |-----------| |-----------|
320  // |observed movement| |thresholds1| |thresholds2|
321 
322  for (size_t i = 0; i < obs.size(); ++i) {
323  // fist obs.size() bins for observed movements
324  histo_0->SetBinContent(i + 1, obs[i]);
325  histo_0->SetBinError(i + 1, obsErr[i]);
326 
327  // then at bin 8,8+5,8+10,... for cutoffs
328  // 5 bins is the space allocated for the 4 other thresholds + 1 empty separation bin
329  histo_0->SetBinContent(8 + i * 5, cut[i]);
330 
331  // then at bin 9,9+5,9+10,... for significances
332  histo_0->SetBinContent(9 + i * 5, sigCut[i]);
333 
334  // then at bin 10,10+5,10+10,... for maximum movements
335  histo_0->SetBinContent(10 + i * 5, maxMoveCut[i]);
336 
337  // then at bin 11,11+5,11+10,... for maximum errors
338  histo_0->SetBinContent(11 + i * 5, maxErrorCut[i]);
339  }
340 }

◆ 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 424 of file MillePedeDQMModule.cc.

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

Referenced by fillExpertHistos_HG().

430  {
431  int currentStart = 0;
432  int bin = 0;
433  double max_ = 0;
434 
435  for (const auto& layer : layerVec) {
436  TH1F* histo_0 = histo_map[layer.first]->getTH1F();
437 
438  max_ = -1;
439  for (int i = currentStart; i < (currentStart + layer.second); ++i) {
440  // first obs.size() bins for observed movements
441  bin = i - currentStart + 1;
442 
443  // fill observed values
444  histo_0->SetBinContent(bin, obs[i]);
445  histo_0->SetBinError(bin, obsErr[i]);
446 
447  if (std::abs(obs[i]) > max_) {
448  max_ = std::abs(obs[i]);
449  }
450  }
451 
452  // five extra bins at the end, one empty, one with threshold, one with sigCut, one with maxMoveCut, one with MaxErrorCut
453  histo_0->SetBinContent(bin + 1, 0);
454  histo_0->SetBinError(bin + 1, 0);
455 
456  int detIndex;
457  if (layer.first.find("Disk") != std::string::npos) {
458  // 7 is the detId for panels, see getIndexFromString
459  detIndex = 7;
460  histo_0->GetXaxis()->SetTitle("Panel");
461  } else {
462  // 6 is the detId for ladders, see getIndexFromString
463  detIndex = 6;
464  histo_0->GetXaxis()->SetTitle("Ladder");
465  }
466 
467  histo_0->SetBinContent(bin + 2, cut[detIndex]);
468  histo_0->SetBinError(bin + 2, 0);
469  histo_0->SetBinContent(bin + 3, sigCut[detIndex]);
470  histo_0->SetBinError(bin + 3, 0);
471  histo_0->SetBinContent(bin + 4, maxMoveCut[detIndex]);
472  histo_0->SetBinError(bin + 4, 0);
473  histo_0->SetBinContent(bin + 5, maxErrorCut[detIndex]);
474  histo_0->SetBinError(bin + 5, 0);
475 
476  // always scale so the cutoff is visible
477  max_ = std::max(cut[detIndex] * 1.2, max_);
478 
479  histo_0->SetMinimum(-(max_)*1.2);
480  histo_0->SetMaximum(max_ * 1.2);
481 
482  currentStart += layer.second;
483  }
484 }
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 235 of file MillePedeDQMModule.cc.

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

Referenced by dqmEndJob().

235  {
236  std::array<double, SIZE_INDEX> Xcut_, sigXcut_, maxMoveXcut_, maxErrorXcut_;
237  std::array<double, SIZE_INDEX> tXcut_, sigtXcut_, maxMovetXcut_, maxErrortXcut_;
238 
239  std::array<double, SIZE_INDEX> Ycut_, sigYcut_, maxMoveYcut_, maxErrorYcut_;
240  std::array<double, SIZE_INDEX> tYcut_, sigtYcut_, maxMovetYcut_, maxErrortYcut_;
241 
242  std::array<double, SIZE_INDEX> Zcut_, sigZcut_, maxMoveZcut_, maxErrorZcut_;
243  std::array<double, SIZE_INDEX> tZcut_, sigtZcut_, maxMovetZcut_, maxErrortZcut_;
244 
245  auto myMap = mpReader_->getThresholdMap();
246 
247  std::vector<std::string> alignablesList;
248  for (auto it = myMap.begin(); it != myMap.end(); ++it) {
249  alignablesList.push_back(it->first);
250  }
251 
252  for (auto& alignable : alignablesList) {
253  int detIndex = getIndexFromString(alignable);
254 
255  Xcut_[detIndex] = myMap[alignable].getXcut();
256  sigXcut_[detIndex] = myMap[alignable].getSigXcut();
257  maxMoveXcut_[detIndex] = myMap[alignable].getMaxMoveXcut();
258  maxErrorXcut_[detIndex] = myMap[alignable].getErrorXcut();
259 
260  Ycut_[detIndex] = myMap[alignable].getYcut();
261  sigYcut_[detIndex] = myMap[alignable].getSigYcut();
262  maxMoveYcut_[detIndex] = myMap[alignable].getMaxMoveYcut();
263  maxErrorYcut_[detIndex] = myMap[alignable].getErrorYcut();
264 
265  Zcut_[detIndex] = myMap[alignable].getZcut();
266  sigZcut_[detIndex] = myMap[alignable].getSigZcut();
267  maxMoveZcut_[detIndex] = myMap[alignable].getMaxMoveZcut();
268  maxErrorZcut_[detIndex] = myMap[alignable].getErrorZcut();
269 
270  tXcut_[detIndex] = myMap[alignable].getThetaXcut();
271  sigtXcut_[detIndex] = myMap[alignable].getSigThetaXcut();
272  maxMovetXcut_[detIndex] = myMap[alignable].getMaxMoveThetaXcut();
273  maxErrortXcut_[detIndex] = myMap[alignable].getErrorThetaXcut();
274 
275  tYcut_[detIndex] = myMap[alignable].getThetaYcut();
276  sigtYcut_[detIndex] = myMap[alignable].getSigThetaYcut();
277  maxMovetYcut_[detIndex] = myMap[alignable].getMaxMoveThetaYcut();
278  maxErrortYcut_[detIndex] = myMap[alignable].getErrorThetaYcut();
279 
280  tZcut_[detIndex] = myMap[alignable].getThetaZcut();
281  sigtZcut_[detIndex] = myMap[alignable].getSigThetaZcut();
282  maxMovetZcut_[detIndex] = myMap[alignable].getMaxMoveThetaZcut();
283  maxErrortZcut_[detIndex] = myMap[alignable].getErrorThetaZcut();
284  }
285 
286  fillExpertHisto(h_xPos, Xcut_, sigXcut_, maxMoveXcut_, maxErrorXcut_, mpReader_->getXobs(), mpReader_->getXobsErr());
288  h_xRot, tXcut_, sigtXcut_, maxMovetXcut_, maxErrortXcut_, mpReader_->getTXobs(), mpReader_->getTXobsErr());
289 
290  fillExpertHisto(h_yPos, Ycut_, sigYcut_, maxMoveYcut_, maxErrorYcut_, mpReader_->getYobs(), mpReader_->getYobsErr());
292  h_yRot, tYcut_, sigtYcut_, maxMovetYcut_, maxErrortYcut_, mpReader_->getTYobs(), mpReader_->getTYobsErr());
293 
294  fillExpertHisto(h_zPos, Zcut_, sigZcut_, maxMoveZcut_, maxErrorZcut_, mpReader_->getZobs(), mpReader_->getZobsErr());
296  h_zRot, tZcut_, sigtZcut_, maxMovetZcut_, maxErrortZcut_, mpReader_->getTZobs(), mpReader_->getTZobsErr());
297 }
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 342 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, and mpReader_.

Referenced by dqmEndJob().

342  {
343  std::array<double, SIZE_INDEX> Xcut_, sigXcut_, maxMoveXcut_, maxErrorXcut_;
344  std::array<double, SIZE_INDEX> tXcut_, sigtXcut_, maxMovetXcut_, maxErrortXcut_;
345 
346  std::array<double, SIZE_INDEX> Ycut_, sigYcut_, maxMoveYcut_, maxErrorYcut_;
347  std::array<double, SIZE_INDEX> tYcut_, sigtYcut_, maxMovetYcut_, maxErrortYcut_;
348 
349  std::array<double, SIZE_INDEX> Zcut_, sigZcut_, maxMoveZcut_, maxErrorZcut_;
350  std::array<double, SIZE_INDEX> tZcut_, sigtZcut_, maxMovetZcut_, maxErrortZcut_;
351 
352  auto myMap = mpReader_->getThresholdMap();
353 
354  std::vector<std::string> alignablesList;
355  for (auto it = myMap.begin(); it != myMap.end(); ++it) {
356  alignablesList.push_back(it->first);
357  }
358 
359  for (auto& alignable : alignablesList) {
360  int detIndex = getIndexFromString(alignable);
361 
362  Xcut_[detIndex] = myMap[alignable].getXcut();
363  sigXcut_[detIndex] = myMap[alignable].getSigXcut();
364  maxMoveXcut_[detIndex] = myMap[alignable].getMaxMoveXcut();
365  maxErrorXcut_[detIndex] = myMap[alignable].getErrorXcut();
366 
367  Ycut_[detIndex] = myMap[alignable].getYcut();
368  sigYcut_[detIndex] = myMap[alignable].getSigYcut();
369  maxMoveYcut_[detIndex] = myMap[alignable].getMaxMoveYcut();
370  maxErrorYcut_[detIndex] = myMap[alignable].getErrorYcut();
371 
372  Zcut_[detIndex] = myMap[alignable].getZcut();
373  sigZcut_[detIndex] = myMap[alignable].getSigZcut();
374  maxMoveZcut_[detIndex] = myMap[alignable].getMaxMoveZcut();
375  maxErrorZcut_[detIndex] = myMap[alignable].getErrorZcut();
376 
377  tXcut_[detIndex] = myMap[alignable].getThetaXcut();
378  sigtXcut_[detIndex] = myMap[alignable].getSigThetaXcut();
379  maxMovetXcut_[detIndex] = myMap[alignable].getMaxMoveThetaXcut();
380  maxErrortXcut_[detIndex] = myMap[alignable].getErrorThetaXcut();
381 
382  tYcut_[detIndex] = myMap[alignable].getThetaYcut();
383  sigtYcut_[detIndex] = myMap[alignable].getSigThetaYcut();
384  maxMovetYcut_[detIndex] = myMap[alignable].getMaxMoveThetaYcut();
385  maxErrortYcut_[detIndex] = myMap[alignable].getErrorThetaYcut();
386 
387  tZcut_[detIndex] = myMap[alignable].getThetaZcut();
388  sigtZcut_[detIndex] = myMap[alignable].getSigThetaZcut();
389  maxMovetZcut_[detIndex] = myMap[alignable].getMaxMoveThetaZcut();
390  maxErrortZcut_[detIndex] = myMap[alignable].getErrorThetaZcut();
391  }
392 
394  h_xPos_HG, Xcut_, sigXcut_, maxMoveXcut_, maxErrorXcut_, mpReader_->getXobs_HG(), mpReader_->getXobsErr_HG());
396  tXcut_,
397  sigtXcut_,
398  maxMovetXcut_,
399  maxErrortXcut_,
400  mpReader_->getTXobs_HG(),
401  mpReader_->getTXobsErr_HG());
402 
404  h_yPos_HG, Ycut_, sigYcut_, maxMoveYcut_, maxErrorYcut_, mpReader_->getYobs_HG(), mpReader_->getYobsErr_HG());
406  tYcut_,
407  sigtYcut_,
408  maxMovetYcut_,
409  maxErrortYcut_,
410  mpReader_->getTYobs_HG(),
411  mpReader_->getTYobsErr_HG());
412 
414  h_zPos_HG, Zcut_, sigZcut_, maxMoveZcut_, maxErrorZcut_, mpReader_->getZobs_HG(), mpReader_->getZobsErr_HG());
416  tZcut_,
417  sigtZcut_,
418  maxMovetZcut_,
419  maxErrortZcut_,
420  mpReader_->getTZobs_HG(),
421  mpReader_->getTZobsErr_HG());
422 }
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 197 of file MillePedeDQMModule.cc.

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

Referenced by dqmEndJob().

197  {
198  TH2F* histo_status = statusHisto->getTH2F();
199  auto theResults = mpReader_->getResults();
200  theResults.print();
201  histo_status->SetBinContent(1, 1, theResults.getDBUpdated());
202  histo_status->GetXaxis()->SetBinLabel(1, "DB updated");
203  histo_status->SetBinContent(2, 1, theResults.exceedsCutoffs());
204  histo_status->GetXaxis()->SetBinLabel(2, "significant movement");
205  histo_status->SetBinContent(3, 1, theResults.getDBVetoed());
206  histo_status->GetXaxis()->SetBinLabel(3, "DB update vetoed");
207  histo_status->SetBinContent(4, 1, !theResults.exceedsThresholds());
208  histo_status->GetXaxis()->SetBinLabel(4, "within max movement");
209  histo_status->SetBinContent(5, 1, !theResults.exceedsMaxError());
210  histo_status->GetXaxis()->SetBinLabel(5, "within max error");
211  histo_status->SetBinContent(6, 1, !theResults.belowSignificance());
212  histo_status->GetXaxis()->SetBinLabel(6, "above significance");
213 }
virtual TH2F * getTH2F() const
std::unique_ptr< MillePedeFileReader > mpReader_

◆ fillStatusHistoHG()

void MillePedeDQMModule::fillStatusHistoHG ( MonitorElement statusHisto)
private

Definition at line 215 of file MillePedeDQMModule.cc.

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

Referenced by dqmEndJob().

215  {
216  TH2F* histo_status = statusHisto->getTH2F();
217  auto& theResults = mpReader_->getResultsHG();
218  histo_status->GetXaxis()->SetBinLabel(1, "#DeltaX");
219  histo_status->GetXaxis()->SetBinLabel(2, "#DeltaY");
220  histo_status->GetXaxis()->SetBinLabel(3, "#DeltaZ");
221  histo_status->GetXaxis()->SetBinLabel(4, "#Delta#theta_{X}");
222  histo_status->GetXaxis()->SetBinLabel(5, "#Delta#theta_{Y}");
223  histo_status->GetXaxis()->SetBinLabel(6, "#Delta#theta_{Z}");
224 
225  int i = 0;
226  for (const auto& result : theResults) {
227  histo_status->GetYaxis()->SetBinLabel(i + 1, result.first.data());
228  for (std::size_t j = 0; j < result.second.size(); ++j) {
229  histo_status->SetBinContent(j + 1, i + 1, result.second[j]);
230  }
231  i++;
232  }
233 }
virtual TH2F * getTH2F() const
std::unique_ptr< MillePedeFileReader > mpReader_

◆ getIndexFromString()

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

Definition at line 499 of file MillePedeDQMModule.cc.

References Exception.

Referenced by fillExpertHistos(), and fillExpertHistos_HG().

499  {
500  if (alignableId == "TPBHalfBarrelXminus") {
501  return 3;
502  } else if (alignableId == "TPBHalfBarrelXplus") {
503  return 2;
504  } else if (alignableId == "TPEHalfCylinderXminusZminus") {
505  return 1;
506  } else if (alignableId == "TPEHalfCylinderXplusZminus") {
507  return 0;
508  } else if (alignableId == "TPEHalfCylinderXminusZplus") {
509  return 5;
510  } else if (alignableId == "TPEHalfCylinderXplusZplus") {
511  return 4;
512  } else if (alignableId.rfind("TPBLadder", 0) == 0) {
513  return 6;
514  } else if (alignableId.rfind("TPEPanel", 0) == 0) {
515  return 7;
516  } else {
517  throw cms::Exception("LogicError") << "@SUB=MillePedeDQMModule::getIndexFromString\n"
518  << "Retrieving conversion for not supported Alignable partition" << alignableId;
519  }
520 }

◆ setupChanged()

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

Definition at line 486 of file MillePedeDQMModule.cc.

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

Referenced by beginRun().

486  {
487  bool changed{false};
488 
490  changed = true;
492  changed = true;
494  changed = true;
495 
496  return changed;
497 }
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 100 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ binariesAvalaible

MonitorElement* MillePedeDQMModule::binariesAvalaible
private

Definition at line 130 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

◆ exitCode

MonitorElement* MillePedeDQMModule::exitCode
private

Definition at line 131 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

◆ gDetToken_

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

Definition at line 98 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ geomToken_

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

Definition at line 101 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ h_xPos

MonitorElement* MillePedeDQMModule::h_xPos
private

Definition at line 115 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 122 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ h_xRot

MonitorElement* MillePedeDQMModule::h_xRot
private

Definition at line 116 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 123 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ h_yPos

MonitorElement* MillePedeDQMModule::h_yPos
private

Definition at line 117 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 124 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ h_yRot

MonitorElement* MillePedeDQMModule::h_yRot
private

Definition at line 118 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 125 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ h_zPos

MonitorElement* MillePedeDQMModule::h_zPos
private

Definition at line 119 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 126 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ h_zRot

MonitorElement* MillePedeDQMModule::h_zRot
private

Definition at line 120 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 127 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and fillExpertHistos_HG().

◆ isHG_

bool MillePedeDQMModule::isHG_
private

Definition at line 134 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

◆ isVetoed

MonitorElement* MillePedeDQMModule::isVetoed
private

Definition at line 132 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

◆ layerVec

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

Definition at line 108 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 103 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ pixelTopologyMap_

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

Definition at line 106 of file MillePedeDQMModule.h.

Referenced by beginRun(), and bookHistograms().

◆ ptpToken_

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

Definition at line 99 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ statusResults

MonitorElement* MillePedeDQMModule::statusResults
private

Definition at line 129 of file MillePedeDQMModule.h.

Referenced by bookHistograms(), and dqmEndJob().

◆ tracker_

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

Definition at line 104 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ tTopoToken_

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

Definition at line 97 of file MillePedeDQMModule.h.

Referenced by beginRun().

◆ watchIdealGeometryRcd_

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

Definition at line 111 of file MillePedeDQMModule.h.

Referenced by setupChanged().

◆ watchPTrackerParametersRcd_

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

Definition at line 112 of file MillePedeDQMModule.h.

Referenced by setupChanged().

◆ watchTrackerTopologyRcd_

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

Definition at line 110 of file MillePedeDQMModule.h.

Referenced by setupChanged().