|
| DTRecHitQuality (const edm::ParameterSet &pset) |
| Constructor. More...
|
|
virtual void | dqmEndRun (edm::Run const &, edm::EventSetup const &, dtrechit::Histograms const &) const |
|
void | globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup) const final |
|
void | accumulate (edm::StreamID id, edm::Event const &event, edm::EventSetup const &setup) const final |
|
virtual void | dqmBeginRun (edm::Run const &, edm::EventSetup const &, dtrechit::Histograms &) const |
|
| DQMGlobalEDAnalyzerBase () |
|
std::shared_ptr< dtrechit::Histograms > | globalBeginRun (edm::Run const &run, edm::EventSetup const &setup) const final |
|
void | globalEndRun (edm::Run const &, edm::EventSetup const &) const final |
|
| EDProducer ()=default |
|
| EDProducer (const EDProducer &)=delete |
|
bool | hasAbilityToProduceInBeginLumis () const final |
|
bool | hasAbilityToProduceInBeginProcessBlocks () const final |
|
bool | hasAbilityToProduceInBeginRuns () const final |
|
bool | hasAbilityToProduceInEndLumis () const final |
|
bool | hasAbilityToProduceInEndProcessBlocks () const final |
|
bool | hasAbilityToProduceInEndRuns () const final |
|
EDProducer & | operator= (const EDProducer &)=delete |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
bool | wantsInputProcessBlocks () const final |
|
bool | wantsProcessBlocks () const final |
|
bool | wantsStreamLuminosityBlocks () const final |
|
bool | wantsStreamRuns () const final |
|
| EDProducerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
| ~EDProducerBase () override |
|
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 |
|
std::vector< ConsumesInfo > | consumesInfo () const |
|
void | convertCurrentProcessAlias (std::string const &processName) |
| Convert "@currentProcess" in InputTag process names to the actual current process name. More...
|
|
| EDConsumerBase () |
|
| EDConsumerBase (EDConsumerBase &&)=default |
|
| EDConsumerBase (EDConsumerBase const &)=delete |
|
ESProxyIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
std::vector< ESProxyIndex > const & | esGetTokenIndicesVector (edm::Transition iTrans) const |
|
std::vector< ESRecordIndex > const & | esGetTokenRecordIndicesVector (edm::Transition iTrans) const |
|
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
|
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
|
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
|
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
void | bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, dtrechit::Histograms &) const override |
| Book the DQM plots. More...
|
|
template<typename type > |
void | compute (const DTGeometry *dtGeom, const std::map< DTWireId, std::vector< PSimHit >> &simHitsPerWire, const std::map< DTWireId, std::vector< type >> &recHitsPerWire, dtrechit::Histograms const &histograms, int step) const |
|
void | dqmAnalyze (edm::Event const &, edm::EventSetup const &, dtrechit::Histograms const &) const override |
| Perform the real analysis. More...
|
|
template<typename type > |
const type * | findBestRecHit (const DTLayer *layer, const DTWireId &wireId, const std::vector< type > &recHits, float simHitDist) const |
|
std::map< DTWireId, std::vector< DTRecHit1DPair > > | map1DRecHitsPerWire (const DTRecHitCollection *dt1DRecHitPairs) const |
|
std::map< DTWireId, std::vector< DTRecHit1D > > | map1DRecHitsPerWire (const DTRecSegment2DCollection *segment2Ds) const |
|
std::map< DTWireId, std::vector< DTRecHit1D > > | map1DRecHitsPerWire (const DTRecSegment4DCollection *segment4Ds) const |
|
float | recHitDistFromWire (const DTRecHit1D &recHit, const DTLayer *layer) const |
|
float | recHitDistFromWire (const DTRecHit1DPair &hitPair, const DTLayer *layer) const |
|
float | recHitPositionError (const DTRecHit1D &recHit) const |
|
float | recHitPositionError (const DTRecHit1DPair &recHit) const |
|
float | simHitDistFromFE (const DTLayer *layer, const DTWireId &wireId, const PSimHit &hit) const |
|
float | simHitDistFromWire (const DTLayer *layer, const DTWireId &wireId, const PSimHit &hit) const |
|
float | simHitImpactAngle (const DTLayer *layer, const DTWireId &wireId, const PSimHit &hit) const |
|
|
typedef dqm::reco::DQMStore | DQMStore |
|
typedef dqm::reco::MonitorElement | MonitorElement |
|
typedef EDProducerBase | ModuleType |
|
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > > |
|
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
|
typedef ProductLabels | Labels |
|
static const std::string & | baseType () |
|
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
|
static void | prevalidate (ConfigurationDescriptions &descriptions) |
|
uint64_t | meId (edm::Run const &run) const |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces () |
| declare what type of product will make and with which optional label More...
|
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces () |
|
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) |
|
template<Transition B> |
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 (std::string instanceName) |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
ProducesCollector | producesCollector () |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B = InEvent> |
EDConsumerBaseAdaptor< B > | consumes (edm::InputTag tag) noexcept |
|
template<BranchType B> |
EDGetToken | consumes (TypeToGet const &id, edm::InputTag const &tag) |
|
ConsumesCollector | consumesCollector () |
| Use a ConsumesCollector to gather consumes information from helper functions. More...
|
|
template<typename ProductType , BranchType B = InEvent> |
void | consumesMany () |
|
void | consumesMany (const TypeToGet &id) |
|
template<BranchType B> |
void | consumesMany (const TypeToGet &id) |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes () |
|
template<Transition Tr = Transition::Event> |
constexpr auto | esConsumes () noexcept |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
template<Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag tag) noexcept |
|
template<Transition Tr = Transition::Event> |
ESGetTokenGeneric | esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey) |
| Used with EventSetupRecord::doGet. More...
|
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
DQMStore * | dqmstore_ |
|
edm::EDPutTokenT< DQMToken > | runToken_ |
|
Basic analyzer class which accesses 1D DTRecHits and plot resolution comparing reconstructed and simulated quantities
Residual/pull plots are filled for the rechit with distance from wire closer to that of the muon simhit.
Efficiencies are defined as the fraction of muon simhits with a rechit in the same cell, for the given reconstruction step. Hence, for S2 and S3 the definition incorporate the segment reconstruction efficiency.
- Author
- G. Cerminara - INFN Torino
Definition at line 46 of file DTRecHitQuality.h.
Definition at line 416 of file DTRecHitQuality.cc.
422 for (
const auto &wireAndSHits : simHitsPerWire) {
423 DTWireId wireId = wireAndSHits.first;
427 vector<PSimHit> simHitsInCell = wireAndSHits.second;
434 if (muSimHit ==
nullptr) {
436 cout <<
" No mu SimHit in channel: " << wireId <<
", skipping! " << endl;
444 if (simHitWireDist > 2.1) {
446 cout <<
" [DTRecHitQuality]###Warning: The mu SimHit in out of the "
460 bool recHitReconstructed =
false;
463 if (recHitsPerWire.find(wireId) == recHitsPerWire.end()) {
466 cout <<
" No RecHit found at Step: " <<
step <<
" in cell: " << wireId << endl;
469 recHitReconstructed =
true;
471 const vector<type> &
recHits = recHitsPerWire.at(wireId);
473 cout <<
" " <<
recHits.size() <<
" RecHits, Step " <<
step <<
" in channel: " << wireId << endl;
481 cout <<
" SimHit distance from wire: " << simHitWireDist << endl
482 <<
" SimHit distance from FE: " << simHitFEDist << endl
483 <<
" SimHit angle in layer RF: " << simHitTheta << endl
484 <<
" RecHit distance from wire: " << recHitWireDist << endl;
491 if (mirrorMinusWheels &&
wheel < 0 && sl != 2) {
524 }
else if (
step == 2) {
550 }
else if (
step == 3) {
568 simHitGlobalPos.
eta(),
569 simHitGlobalPos.
phi(),
589 simHitGlobalPos.
eta(),
590 simHitGlobalPos.
phi(),
598 hRes->fill(simHitWireDist,
602 simHitGlobalPos.
eta(),
603 simHitGlobalPos.
phi(),
606 if (hResTot !=
nullptr) {
607 hResTot->
fill(simHitWireDist,
611 simHitGlobalPos.
eta(),
612 simHitGlobalPos.
phi(),
628 simHitWireDist, simHitGlobalPos.
eta(), simHitGlobalPos.
phi(), recHitReconstructed);
643 simHitWireDist, simHitGlobalPos.
eta(), simHitGlobalPos.
phi(), recHitReconstructed);
647 }
else if (
step == 2) {
664 }
else if (
step == 3) {
670 simHitWireDist, simHitGlobalPos.
eta(), simHitGlobalPos.
phi(), recHitReconstructed);
685 simHitWireDist, simHitGlobalPos.
eta(), simHitGlobalPos.
phi(), recHitReconstructed);
690 hEff->
fill(simHitWireDist, simHitGlobalPos.
eta(), simHitGlobalPos.
phi(), recHitReconstructed);
691 if (hEffTot !=
nullptr) {
692 hEffTot->
fill(simHitWireDist, simHitGlobalPos.
eta(), simHitGlobalPos.
phi(), recHitReconstructed);
References funct::abs(), gather_cfg::cout, PV3DBase< T, PVType, FrameType >::eta(), HRes1DHit::fill(), HEff1DHit::fill(), DTHitQualityUtils::findMuSimHit(), PixelMapPlotter::hRes, DTGeometry::layer(), PSimHit::localPosition(), PV3DBase< T, PVType, FrameType >::phi(), FastTrackerRecHitMaskProducer_cfi::recHits, DTChamberId::station(), DTSuperLayerId::superLayer(), GeomDet::toGlobal(), DTChamberId::wheel(), and makeMuonMisalignmentScenario::wheel.
Perform the real analysis.
Implements DQMGlobalEDAnalyzerBase< dtrechit::Histograms, Args... >.
Definition at line 212 of file DTRecHitQuality.cc.
216 cout <<
"--- [DTRecHitQuality] Analysing Event: #Run: " <<
event.id().run() <<
" #Event: " <<
event.id().event()
235 cout <<
" -- DTRecHit S1: begin analysis:" << endl;
243 cout <<
"[DTRecHitQuality]**Warning: no 1DRechits with label: " <<
recHitLabel_ <<
" in this event, skipping!"
258 cout <<
" -- DTRecHit S2: begin analysis:" << endl;
268 <<
" in this event, skipping!" << endl;
282 cout <<
" -- DTRecHit S3: begin analysis:" << endl;
292 <<
" in this event, skipping!" << endl;
References bookConverter::compute(), gather_cfg::cout, get, bookConverter::histograms, edm::HandleBase::isValid(), DTHitQualityUtils::mapSimHitsPerWire(), edm::Handle< T >::product(), edm::ESHandle< T >::product(), singleTopDQM_cfi::setup, and FastTrackerRecHitCombiner_cfi::simHits.