CMS 3D CMS Logo

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

#include <DTResolutionAnalysisTask.h>

Inheritance diagram for DTResolutionAnalysisTask:
DQMOneEDAnalyzer<> edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &setup) override
 To reset the MEs. More...
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 BookHistograms. More...
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 BeginRun. More...
 
 DTResolutionAnalysisTask (const edm::ParameterSet &pset)
 Constructor. More...
 
 ~DTResolutionAnalysisTask () override
 Destructor. More...
 
- Public Member Functions inherited from DQMOneEDAnalyzer<>
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... >
 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 bookHistos (DQMStore::IBooker &ibooker, DTSuperLayerId slId)
 
void fillHistos (DTSuperLayerId slId, float distExtr, float residual)
 

Private Attributes

const DTGeometrydtGeom
 
std::map< DTSuperLayerId, std::vector< MonitorElement * > > histosPerSL
 
edm::ESGetToken< DTGeometry, MuonGeometryRecordmuonGeomToken_
 
int prescaleFactor
 
edm::EDGetTokenT< DTRecSegment4DCollectionrecHits4DToken_
 
int resetCycle
 
u_int32_t thePhiHitsCut
 
u_int32_t theZHitsCut
 
std::string topHistoFolder
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer<>
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::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
 
- 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 DQMOneEDAnalyzer<>
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
- 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 DQMOneEDAnalyzer<>
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 33 of file DTResolutionAnalysisTask.h.

Constructor & Destructor Documentation

◆ DTResolutionAnalysisTask()

DTResolutionAnalysisTask::DTResolutionAnalysisTask ( const edm::ParameterSet pset)

Constructor.

Definition at line 32 of file DTResolutionAnalysisTask.cc.

References ProducerED_cfi::InputTag, prescaleFactor, muonDTDigis_cfi::pset, recHits4DToken_, resetCycle, thePhiHitsCut, theZHitsCut, and topHistoFolder.

33  : muonGeomToken_(esConsumes<edm::Transition::BeginRun>()) {
34  edm::LogVerbatim("DTDQM|DTMonitorModule|DTResolutionAnalysisTask")
35  << "[DTResolutionAnalysisTask] Constructor called!" << endl;
36 
37  // the name of the 4D rec hits collection
39  consumes<DTRecSegment4DCollection>(edm::InputTag(pset.getUntrackedParameter<string>("recHits4DLabel")));
40 
41  prescaleFactor = pset.getUntrackedParameter<int>("diagnosticPrescale", 1);
42  resetCycle = pset.getUntrackedParameter<int>("ResetCycle", -1);
43  // top folder for the histograms in DQMStore
44  topHistoFolder = pset.getUntrackedParameter<string>("topHistoFolder", "DT/02-Segments");
45 
46  thePhiHitsCut = pset.getUntrackedParameter<u_int32_t>("phiHitsCut", 8);
47  theZHitsCut = pset.getUntrackedParameter<u_int32_t>("zHitsCut", 4);
48 }
Log< level::Info, true > LogVerbatim
edm::ESGetToken< DTGeometry, MuonGeometryRecord > muonGeomToken_
edm::EDGetTokenT< DTRecSegment4DCollection > recHits4DToken_

◆ ~DTResolutionAnalysisTask()

DTResolutionAnalysisTask::~DTResolutionAnalysisTask ( )
override

Destructor.

Definition at line 50 of file DTResolutionAnalysisTask.cc.

50  {
51  edm::LogVerbatim("DTDQM|DTMonitorModule|DTResolutionAnalysisTask")
52  << "[DTResolutionAnalysisTask] Destructor called!" << endl;
53 }
Log< level::Info, true > LogVerbatim

Member Function Documentation

◆ analyze()

void DTResolutionAnalysisTask::analyze ( const edm::Event event,
const edm::EventSetup setup 
)
overridevirtual

To reset the MEs.

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 93 of file DTResolutionAnalysisTask.cc.

References relativeConstraints::chamber, DTGeometry::chamber(), filterCSVwithJSON::copy, funct::cos(), dtGeom, fillHistos(), edm::HandleBase::isValid(), nano_mu_digi_cff::layer, DTWireId::layerId(), FastTimerService_cff::range, recHits4DToken_, DTRecSegment2D::specificRecHits(), DTSuperLayerId::superlayer(), DTLayerId::superlayerId(), thePhiHitsCut, theZHitsCut, DTWireId::wire(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

93  {
94  edm::LogVerbatim("DTDQM|DTMonitorModule|DTResolutionAnalysisTask")
95  << "[DTResolutionAnalysisTask] Analyze #Run: " << event.id().run() << " #Event: " << event.id().event() << endl;
96 
97  // Get the 4D segment collection from the event
99  event.getByToken(recHits4DToken_, all4DSegments);
100 
101  // check the validity of the collection
102  if (!all4DSegments.isValid())
103  return;
104 
105  // Loop over all chambers containing a segment
107  for (chamberId = all4DSegments->id_begin(); chamberId != all4DSegments->id_end(); ++chamberId) {
108  // Get the range for the corresponding ChamerId
109  DTRecSegment4DCollection::range range = all4DSegments->get(*chamberId);
110 
111  // Get the chamber
112  const DTChamber* chamber = dtGeom->chamber(*chamberId);
113 
114  // Loop over the rechits of this ChamerId
115  for (DTRecSegment4DCollection::const_iterator segment4D = range.first; segment4D != range.second; ++segment4D) {
116  // If Statio != 4 skip RecHits with dimension != 4
117  // For the Station 4 consider 2D RecHits
118  if ((*chamberId).station() != 4 && (*segment4D).dimension() != 4) {
119  edm::LogVerbatim("DTDQM|DTMonitorModule|DTResolutionAnalysisTask")
120  << "[DTResolutionAnalysisTask]***Warning: RecSegment dimension is not 4 but " << (*segment4D).dimension()
121  << "!" << endl;
122  continue;
123  } else if ((*chamberId).station() == 4 && (*segment4D).dimension() != 2) {
124  edm::LogVerbatim("DTDQM|DTMonitorModule|DTResolutionAnalysisTask")
125  << "[DTResolutionAnalysisTask]***Warning: RecSegment dimension is not 2 but " << (*segment4D).dimension()
126  << "!" << endl;
127  continue;
128  }
129 
130  // Get all 1D RecHits at step 3 within the 4D segment
131  vector<DTRecHit1D> recHits1D_S3;
132 
133  // Get 1D RecHits at Step 3 and select only events with
134  // 8 hits in phi and 4 hits in theta (if any)
135 
136  if ((*segment4D).hasPhi()) { // has phi component
137  const DTChamberRecSegment2D* phiSeg = (*segment4D).phiSegment();
138  vector<DTRecHit1D> phiRecHits = phiSeg->specificRecHits();
139 
140  if (phiRecHits.size() < thePhiHitsCut) {
141  continue;
142  }
143  copy(phiRecHits.begin(), phiRecHits.end(), back_inserter(recHits1D_S3));
144  } else {
145  }
146 
147  if ((*segment4D).hasZed()) {
148  const DTSLRecSegment2D* zSeg = (*segment4D).zSegment();
149  vector<DTRecHit1D> zRecHits = zSeg->specificRecHits();
150  if (zRecHits.size() < theZHitsCut) {
151  continue;
152  }
153  copy(zRecHits.begin(), zRecHits.end(), back_inserter(recHits1D_S3));
154  }
155 
156  // Loop over 1D RecHit inside 4D segment
157  for (vector<DTRecHit1D>::const_iterator recHit1D = recHits1D_S3.begin(); recHit1D != recHits1D_S3.end();
158  recHit1D++) {
159  const DTWireId wireId = (*recHit1D).wireId();
160 
161  // Get the layer and the wire position
162  const DTLayer* layer = chamber->superLayer(wireId.superlayerId())->layer(wireId.layerId());
163  float wireX = layer->specificTopology().wirePosition(wireId.wire());
164 
165  // Distance of the 1D rechit from the wire
166  float distRecHitToWire = fabs(wireX - (*recHit1D).localPosition().x());
167 
168  // Extrapolate the segment to the z of the wire
169 
170  // Get wire position in chamber RF
171  LocalPoint wirePosInLay(wireX, (*recHit1D).localPosition().y(), (*recHit1D).localPosition().z());
172  GlobalPoint wirePosGlob = layer->toGlobal(wirePosInLay);
173  LocalPoint wirePosInChamber = chamber->toLocal(wirePosGlob);
174 
175  // Segment position at Wire z in chamber local frame
176  LocalPoint segPosAtZWire = (*segment4D).localPosition() + (*segment4D).localDirection() * wirePosInChamber.z() /
177  cos((*segment4D).localDirection().theta());
178 
179  // Compute the distance of the segment from the wire
180  int sl = wireId.superlayer();
181 
182  double distSegmToWire = -1;
183  if (sl == 1 || sl == 3) {
184  // RPhi SL
185  distSegmToWire = fabs(wirePosInChamber.x() - segPosAtZWire.x());
186  } else if (sl == 2) {
187  // RZ SL
188  distSegmToWire = fabs(wirePosInChamber.y() - segPosAtZWire.y());
189  }
190 
191  if (distSegmToWire > 2.1)
192  edm::LogVerbatim("DTDQM|DTMonitorModule|DTResolutionAnalysisTask")
193  << " Warning: dist segment-wire: " << distSegmToWire << endl;
194 
195  double residual = distRecHitToWire - distSegmToWire;
196  // FIXME: Fill the histos
197  fillHistos(wireId.superlayerId(), distSegmToWire, residual);
198 
199  } // End of loop over 1D RecHit inside 4D segment
200  } // End of loop over the rechits of this ChamerId
201  }
202  // -----------------------------------------------------------------------------
203 }
Log< level::Info, true > LogVerbatim
std::pair< const_iterator, const_iterator > range
iterator range
Definition: RangeMap.h:50
int wire() const
Return the wire number.
Definition: DTWireId.h:42
T z() const
Definition: PV3DBase.h:61
identifier iterator
Definition: RangeMap.h:130
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
edm::EDGetTokenT< DTRecSegment4DCollection > recHits4DToken_
int superlayer() const
Return the superlayer number (deprecated method name)
std::vector< DTRecHit1D > specificRecHits() const
Access to specific components.
bool isValid() const
Definition: HandleBase.h:70
void fillHistos(DTSuperLayerId slId, float distExtr, float residual)
DTSuperLayerId superlayerId() const
Return the corresponding SuperLayerId.
Definition: DTLayerId.h:45
DTLayerId layerId() const
Return the corresponding LayerId.
Definition: DTWireId.h:45
const DTChamber * chamber(const DTChamberId &id) const
Return a DTChamber given its id.
Definition: DTGeometry.cc:90

◆ bookHistograms()

void DTResolutionAnalysisTask::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &   
)
overridevirtual

BookHistograms.

Implements DQMOneEDAnalyzer<>.

Definition at line 60 of file DTResolutionAnalysisTask.cc.

References bookHistos(), relativeConstraints::chamber, DTGeometry::chambers(), chambers, dtGeom, and DTChamberId::station().

62  {
63  // Book the histograms
64  vector<const DTChamber*> chambers = dtGeom->chambers();
65  for (vector<const DTChamber*>::const_iterator chamber = chambers.begin(); chamber != chambers.end();
66  ++chamber) { // Loop over all chambers
67  DTChamberId dtChId = (*chamber)->id();
68  for (int sl = 1; sl <= 3; ++sl) { // Loop over SLs
69  if (dtChId.station() == 4 && sl == 2)
70  continue;
71  const DTSuperLayerId dtSLId(dtChId, sl);
72  bookHistos(ibooker, dtSLId);
73  }
74  }
75 }
int station() const
Return the station number.
Definition: DTChamberId.h:42
void bookHistos(DQMStore::IBooker &ibooker, DTSuperLayerId slId)
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:84
static char chambers[264][20]
Definition: ReadPGInfo.cc:243

◆ bookHistos()

void DTResolutionAnalysisTask::bookHistos ( DQMStore::IBooker ibooker,
DTSuperLayerId  slId 
)
private

Definition at line 206 of file DTResolutionAnalysisTask.cc.

References dqm::implementation::IBooker::book1D(), combine::histos, histosPerSL, nano_mu_digi_cff::sector, DTChamberId::sector(), dqm::implementation::NavigatorBase::setCurrentFolder(), DTChamberId::station(), relativeConstraints::station, nano_mu_digi_cff::superLayer, DTSuperLayerId::superlayer(), topHistoFolder, DTChamberId::wheel(), and makeMuonMisalignmentScenario::wheel.

Referenced by bookHistograms().

206  {
207  edm::LogVerbatim("DTDQM|DTMonitorModule|DTResolutionAnalysisTask") << " Booking histos for SL: " << slId << endl;
208 
209  // Compose the chamber name
210  stringstream wheel;
211  wheel << slId.wheel();
212  stringstream station;
213  station << slId.station();
214  stringstream sector;
215  sector << slId.sector();
216  stringstream superLayer;
217  superLayer << slId.superlayer();
218 
219  string slHistoName = "_W" + wheel.str() + "_St" + station.str() + "_Sec" + sector.str() + "_SL" + superLayer.str();
220 
221  ibooker.setCurrentFolder(topHistoFolder + "/Wheel" + wheel.str() + "/Sector" + sector.str() + "/Station" +
222  station.str());
223  // Create the monitor elements
224  vector<MonitorElement*> histos;
225  // Note the order matters
226  histos.push_back(ibooker.book1D(
227  "hResDist" + slHistoName, "Residuals on the distance from wire (rec_hit - segm_extr) (cm)", 200, -0.4, 0.4));
228  histosPerSL[slId] = histos;
229 }
Log< level::Info, true > LogVerbatim
int station() const
Return the station number.
Definition: DTChamberId.h:42
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
std::map< DTSuperLayerId, std::vector< MonitorElement * > > histosPerSL
int superlayer() const
Return the superlayer number (deprecated method name)
histos
Definition: combine.py:4
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:39
int sector() const
Definition: DTChamberId.h:49
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98

◆ dqmBeginRun()

void DTResolutionAnalysisTask::dqmBeginRun ( const edm::Run run,
const edm::EventSetup setup 
)
overridevirtual

BeginRun.

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 55 of file DTResolutionAnalysisTask.cc.

References dtGeom, muonGeomToken_, and singleTopDQM_cfi::setup.

55  {
56  // Get the DT Geometry
57  dtGeom = &setup.getData(muonGeomToken_);
58 }
edm::ESGetToken< DTGeometry, MuonGeometryRecord > muonGeomToken_

◆ fillHistos()

void DTResolutionAnalysisTask::fillHistos ( DTSuperLayerId  slId,
float  distExtr,
float  residual 
)
private

Definition at line 232 of file DTResolutionAnalysisTask.cc.

References combine::histos, and histosPerSL.

Referenced by analyze().

232  {
233  vector<MonitorElement*> histos = histosPerSL[slId];
234  histos[0]->Fill(residual);
235 }
std::map< DTSuperLayerId, std::vector< MonitorElement * > > histosPerSL
histos
Definition: combine.py:4

Member Data Documentation

◆ dtGeom

const DTGeometry* DTResolutionAnalysisTask::dtGeom
private

Definition at line 57 of file DTResolutionAnalysisTask.h.

Referenced by analyze(), bookHistograms(), and dqmBeginRun().

◆ histosPerSL

std::map<DTSuperLayerId, std::vector<MonitorElement*> > DTResolutionAnalysisTask::histosPerSL
private

Definition at line 73 of file DTResolutionAnalysisTask.h.

Referenced by bookHistos(), and fillHistos().

◆ muonGeomToken_

edm::ESGetToken<DTGeometry, MuonGeometryRecord> DTResolutionAnalysisTask::muonGeomToken_
private

Definition at line 56 of file DTResolutionAnalysisTask.h.

Referenced by dqmBeginRun().

◆ prescaleFactor

int DTResolutionAnalysisTask::prescaleFactor
private

Definition at line 59 of file DTResolutionAnalysisTask.h.

Referenced by DTResolutionAnalysisTask().

◆ recHits4DToken_

edm::EDGetTokenT<DTRecSegment4DCollection> DTResolutionAnalysisTask::recHits4DToken_
private

Definition at line 66 of file DTResolutionAnalysisTask.h.

Referenced by analyze(), and DTResolutionAnalysisTask().

◆ resetCycle

int DTResolutionAnalysisTask::resetCycle
private

Definition at line 60 of file DTResolutionAnalysisTask.h.

Referenced by DTResolutionAnalysisTask().

◆ thePhiHitsCut

u_int32_t DTResolutionAnalysisTask::thePhiHitsCut
private

Definition at line 62 of file DTResolutionAnalysisTask.h.

Referenced by analyze(), and DTResolutionAnalysisTask().

◆ theZHitsCut

u_int32_t DTResolutionAnalysisTask::theZHitsCut
private

Definition at line 63 of file DTResolutionAnalysisTask.h.

Referenced by analyze(), and DTResolutionAnalysisTask().

◆ topHistoFolder

std::string DTResolutionAnalysisTask::topHistoFolder
private

Definition at line 76 of file DTResolutionAnalysisTask.h.

Referenced by bookHistos(), and DTResolutionAnalysisTask().