CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
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
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void 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,
MuonGeometryRecord
muonGeomToken_
 
int prescaleFactor
 
edm::EDGetTokenT
< DTRecSegment4DCollection
recHits4DToken_
 
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
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
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 
- Protected Attributes inherited from DQMOneEDAnalyzer<>
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 34 of file DTResolutionAnalysisTask.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 32 of file DTResolutionAnalysisTask.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HLT_FULL_cff::InputTag, prescaleFactor, 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
38  recHits4DToken_ = consumes<DTRecSegment4DCollection>(edm::InputTag(pset.getParameter<string>("recHits4DLabel")));
39 
40  prescaleFactor = pset.getUntrackedParameter<int>("diagnosticPrescale", 1);
41  resetCycle = pset.getUntrackedParameter<int>("ResetCycle", -1);
42  // top folder for the histograms in DQMStore
43  topHistoFolder = pset.getUntrackedParameter<string>("topHistoFolder", "DT/02-Segments");
44 
45  thePhiHitsCut = pset.getUntrackedParameter<u_int32_t>("phiHitsCut", 8);
46  theZHitsCut = pset.getUntrackedParameter<u_int32_t>("zHitsCut", 4);
47 }
Log< level::Info, true > LogVerbatim
T getUntrackedParameter(std::string const &, T const &) const
edm::ESGetToken< DTGeometry, MuonGeometryRecord > muonGeomToken_
edm::EDGetTokenT< DTRecSegment4DCollection > recHits4DToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
DTResolutionAnalysisTask::~DTResolutionAnalysisTask ( )
override

Destructor.

Definition at line 49 of file DTResolutionAnalysisTask.cc.

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

Member Function Documentation

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

To reset the MEs.

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 92 of file DTResolutionAnalysisTask.cc.

References DTGeometry::chamber(), filterCSVwithJSON::copy, funct::cos(), dtGeom, fillHistos(), edm::HandleBase::isValid(), phase1PixelTopology::layer, DTWireId::layerId(), sistrip::SpyUtilities::range(), recHits4DToken_, DTRecSegment2D::specificRecHits(), DTLayer::specificTopology(), DTSuperLayerId::superlayer(), DTChamber::superLayer(), DTLayerId::superlayerId(), thePhiHitsCut, theZHitsCut, GeomDet::toGlobal(), GeomDet::toLocal(), DTWireId::wire(), DTTopology::wirePosition(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

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

BookHistograms.

Implements DQMOneEDAnalyzer<>.

Definition at line 59 of file DTResolutionAnalysisTask.cc.

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

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

Definition at line 205 of file DTResolutionAnalysisTask.cc.

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

Referenced by bookHistograms().

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

BeginRun.

Reimplemented from DQMOneEDAnalyzer<>.

Definition at line 54 of file DTResolutionAnalysisTask.cc.

References dtGeom, edm::EventSetup::getData(), and muonGeomToken_.

54  {
55  // Get the DT Geometry
56  dtGeom = &setup.getData(muonGeomToken_);
57 }
edm::ESGetToken< DTGeometry, MuonGeometryRecord > muonGeomToken_
bool getData(T &iHolder) const
Definition: EventSetup.h:128
void DTResolutionAnalysisTask::fillHistos ( DTSuperLayerId  slId,
float  distExtr,
float  residual 
)
private

Definition at line 231 of file DTResolutionAnalysisTask.cc.

References mergeVDriftHistosByStation::histos, and histosPerSL.

Referenced by analyze().

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

Member Data Documentation

const DTGeometry* DTResolutionAnalysisTask::dtGeom
private

Definition at line 58 of file DTResolutionAnalysisTask.h.

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

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

Definition at line 74 of file DTResolutionAnalysisTask.h.

Referenced by bookHistos(), and fillHistos().

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

Definition at line 57 of file DTResolutionAnalysisTask.h.

Referenced by dqmBeginRun().

int DTResolutionAnalysisTask::prescaleFactor
private

Definition at line 60 of file DTResolutionAnalysisTask.h.

Referenced by DTResolutionAnalysisTask().

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

Definition at line 67 of file DTResolutionAnalysisTask.h.

Referenced by analyze(), and DTResolutionAnalysisTask().

int DTResolutionAnalysisTask::resetCycle
private

Definition at line 61 of file DTResolutionAnalysisTask.h.

Referenced by DTResolutionAnalysisTask().

u_int32_t DTResolutionAnalysisTask::thePhiHitsCut
private

Definition at line 63 of file DTResolutionAnalysisTask.h.

Referenced by analyze(), and DTResolutionAnalysisTask().

u_int32_t DTResolutionAnalysisTask::theZHitsCut
private

Definition at line 64 of file DTResolutionAnalysisTask.h.

Referenced by analyze(), and DTResolutionAnalysisTask().

std::string DTResolutionAnalysisTask::topHistoFolder
private

Definition at line 77 of file DTResolutionAnalysisTask.h.

Referenced by bookHistos(), and DTResolutionAnalysisTask().