CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes
MonitorTrackResidualsBase< pixel_or_strip > Class Template Reference

#include <MonitorTrackResiduals.h>

Inheritance diagram for MonitorTrackResidualsBase< pixel_or_strip >:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Classes

struct  HistoPair
 
struct  HistoXY
 

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
 MonitorTrackResidualsBase (const edm::ParameterSet &)
 
 ~MonitorTrackResidualsBase () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 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
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Types

typedef std::map< std::pair
< std::string, int32_t >
, HistoXY
HistoSet
 

Private Member Functions

void createMEs (DQMStore::IBooker &, const edm::EventSetup &)
 
std::pair< std::string, int32_t > findSubdetAndLayer (uint32_t ModuleID, const TrackerTopology *tTopo)
 

Private Attributes

bool applyVertexCut_
 
TrackerValidationVariables avalidator_
 
edm::ParameterSet conf_
 
GenericTriggerEventFlaggenTriggerEventFlag_
 
unsigned long long m_cacheID_
 
HistoSet m_ModuleResiduals
 
HistoSet m_SubdetLayerResiduals
 
bool ModOn
 
edm::EDGetTokenT
< reco::VertexCollection
offlinePrimaryVerticesToken_
 
edm::ParameterSet Parameters
 
edm::ESGetToken< TkDetMap,
TrackerTopologyRcd
tkDetMapToken_
 
std::unique_ptr< TkHistoMaptkhisto_ResidualsMean
 
edm::ESGetToken
< TrackerGeometry,
TrackerDigiGeometryRecord
trackerGeometryToken_
 
edm::ESGetToken
< TrackerTopology,
TrackerTopologyRcd
trackerTopologyEventToken_
 
edm::ESGetToken
< TrackerTopology,
TrackerTopologyRcd
trackerTopologyRunToken_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr
< DQMEDAnalyzerGlobalCache
initializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

template<TrackerType pixel_or_strip>
class MonitorTrackResidualsBase< pixel_or_strip >

Definition at line 44 of file MonitorTrackResiduals.h.

Member Typedef Documentation

template<TrackerType pixel_or_strip>
typedef std::map<std::pair<std::string, int32_t>, HistoXY> MonitorTrackResidualsBase< pixel_or_strip >::HistoSet
private

Definition at line 70 of file MonitorTrackResiduals.h.

Constructor & Destructor Documentation

template<TrackerType pixel_or_strip>
MonitorTrackResidualsBase< pixel_or_strip >::MonitorTrackResidualsBase ( const edm::ParameterSet iConfig)
explicit

Definition at line 15 of file MonitorTrackResiduals.cc.

References MonitorTrackResidualsBase< pixel_or_strip >::applyVertexCut_, MonitorTrackResidualsBase< pixel_or_strip >::avalidator_, MonitorTrackResidualsBase< pixel_or_strip >::conf_, MonitorTrackResidualsBase< pixel_or_strip >::genTriggerEventFlag_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), MonitorTrackResidualsBase< pixel_or_strip >::m_cacheID_, MonitorTrackResidualsBase< pixel_or_strip >::ModOn, MonitorTrackResidualsBase< pixel_or_strip >::offlinePrimaryVerticesToken_, AlCaHLTBitMon_QueryRunRegistry::string, MonitorTrackResidualsBase< pixel_or_strip >::trackerGeometryToken_, MonitorTrackResidualsBase< pixel_or_strip >::trackerTopologyEventToken_, and MonitorTrackResidualsBase< pixel_or_strip >::trackerTopologyRunToken_.

16  : conf_(iConfig),
17  tkDetMapToken_{esConsumes<TkDetMap, TrackerTopologyRcd, edm::Transition::BeginRun>()},
18  trackerTopologyRunToken_{esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginRun>()},
19  trackerGeometryToken_{esConsumes<TrackerGeometry, TrackerDigiGeometryRecord, edm::Transition::BeginRun>()},
20  trackerTopologyEventToken_{esConsumes<TrackerTopology, TrackerTopologyRcd>()},
21  m_cacheID_(0),
23  iConfig.getParameter<edm::ParameterSet>("genericTriggerEventPSet"), consumesCollector(), *this)),
24  avalidator_(iConfig, consumesCollector()) {
25  applyVertexCut_ = conf_.getUntrackedParameter<bool>("VertexCut", true);
26  ModOn = conf_.getParameter<bool>("Mod_On");
27  offlinePrimaryVerticesToken_ = consumes<reco::VertexCollection>(std::string("offlinePrimaryVertices"));
28 }
T getUntrackedParameter(std::string const &, T const &) const
edm::ESGetToken< TkDetMap, TrackerTopologyRcd > tkDetMapToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyEventToken_
TrackerValidationVariables avalidator_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyRunToken_
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
edm::EDGetTokenT< reco::VertexCollection > offlinePrimaryVerticesToken_
GenericTriggerEventFlag * genTriggerEventFlag_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometryToken_
template<TrackerType pixel_or_strip>
MonitorTrackResidualsBase< pixel_or_strip >::~MonitorTrackResidualsBase ( )
override

Definition at line 31 of file MonitorTrackResiduals.cc.

References MonitorTrackResidualsBase< pixel_or_strip >::genTriggerEventFlag_.

31  {
33  delete genTriggerEventFlag_;
34 }
GenericTriggerEventFlag * genTriggerEventFlag_

Member Function Documentation

template<TrackerType pixel_or_strip>
void MonitorTrackResidualsBase< pixel_or_strip >::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 232 of file MonitorTrackResiduals.cc.

References funct::abs(), GenericTriggerEventFlag::accept(), MonitorTrackResidualsBase< pixel_or_strip >::applyVertexCut_, MonitorTrackResidualsBase< pixel_or_strip >::avalidator_, reco::TrackBase::dxy(), reco::TrackBase::dxyError(), TrackerValidationVariables::fillTrackQuantities(), MonitorTrackResidualsBase< pixel_or_strip >::findSubdetAndLayer(), MonitorTrackResidualsBase< pixel_or_strip >::genTriggerEventFlag_, edm::Event::getByToken(), edm::EventSetup::getData(), mergeVDriftHistosByStation::histos, fastTrackerRecHitType::isPixel(), edm::HandleBase::isValid(), MonitorTrackResidualsBase< pixel_or_strip >::m_ModuleResiduals, MonitorTrackResidualsBase< pixel_or_strip >::m_SubdetLayerResiduals, MonitorTrackResidualsBase< pixel_or_strip >::ModOn, MonitorTrackResidualsBase< pixel_or_strip >::offlinePrimaryVerticesToken_, GenericTriggerEventFlag::on(), reco::TrackBase::pt(), MonitorTrackResidualsBase< pixel_or_strip >::tkhisto_ResidualsMean, HLT_FULL_cff::track, MonitorTrackResidualsBase< pixel_or_strip >::trackerTopologyEventToken_, TRACKERTYPE_PIXEL, parallelization::uint(), and beam_dqm_sourceclient-live_cfg::vertices.

232  {
233  auto vtracks = std::vector<TrackerValidationVariables::AVTrackStruct>();
234  // Filter out events if Trigger Filtering is requested
235  if (genTriggerEventFlag_->on() && !genTriggerEventFlag_->accept(iEvent, iSetup))
236  return;
237 
239  if (applyVertexCut_) {
240  iEvent.getByToken(offlinePrimaryVerticesToken_, vertices);
241  if (!vertices.isValid() || vertices->empty())
242  return;
243  }
244 
245  // Retrieve tracker topology from geometry
246  const TrackerTopology *const tTopo = &iSetup.getData(trackerTopologyEventToken_);
247 
249  iEvent,
250  iSetup,
251  // tell the validator to only look at good tracks
252  [&](const reco::Track &track) -> bool {
253  return (!applyVertexCut_ ||
254  (track.pt() > 0.75 && abs(track.dxy(vertices->at(0).position())) < 5 * track.dxyError()));
255  },
256  vtracks);
257 
258  for (auto &track : vtracks) {
259  for (auto &it : track.hits) {
260  uint RawId = it.rawDetId;
261 
262  auto id = DetId(RawId);
263  auto isPixel = id.subdetId() == 1 || id.subdetId() == 2;
264  if (isPixel != (pixel_or_strip == TRACKERTYPE_PIXEL))
265  continue;
266 
267  if (ModOn) {
268  auto &mod_histos = m_ModuleResiduals[std::make_pair("", RawId)];
269  mod_histos.x.base->Fill(it.resXprime);
270  mod_histos.x.normed->Fill(it.resXprime / it.resXprimeErr);
271  mod_histos.y.base->Fill(it.resYprime);
272  mod_histos.y.normed->Fill(it.resYprime / it.resYprimeErr);
273  }
274 
275  auto subdetandlayer = findSubdetAndLayer(RawId, tTopo);
276  auto histos = m_SubdetLayerResiduals[subdetandlayer];
277  // fill if its error is not zero
278  if (it.resXprimeErr != 0 && histos.x.base) {
279  histos.x.base->Fill(it.resXprime);
280  histos.x.normed->Fill(it.resXprime / it.resXprimeErr);
281  if (!isPixel)
282  tkhisto_ResidualsMean->fill(RawId, it.resXprime);
283  }
284  if (it.resYprimeErr != 0 && histos.y.base) {
285  histos.y.base->Fill(it.resYprime);
286  histos.y.normed->Fill(it.resYprime / it.resYprimeErr);
287  }
288  }
289  }
290 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyEventToken_
double dxyError() const
error on dxy
Definition: TrackBase.h:769
TrackerValidationVariables avalidator_
edm::EDGetTokenT< reco::VertexCollection > offlinePrimaryVerticesToken_
bool getData(T &iHolder) const
Definition: EventSetup.h:122
std::unique_ptr< TkHistoMap > tkhisto_ResidualsMean
bool accept(const edm::Event &event, const edm::EventSetup &setup)
To be called from analyze/filter() methods.
double pt() const
track transverse momentum
Definition: TrackBase.h:637
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isValid() const
Definition: HandleBase.h:70
Definition: DetId.h:17
void fillTrackQuantities(const edm::Event &, const edm::EventSetup &, std::vector< AVTrackStruct > &v_avtrackout)
GenericTriggerEventFlag * genTriggerEventFlag_
bool isPixel(HitType hitType)
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:608
std::pair< std::string, int32_t > findSubdetAndLayer(uint32_t ModuleID, const TrackerTopology *tTopo)
template<TrackerType pixel_or_strip>
void MonitorTrackResidualsBase< pixel_or_strip >::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 37 of file MonitorTrackResiduals.cc.

References MonitorTrackResidualsBase< pixel_or_strip >::createMEs(), folder_organizer, edm::EventSetup::get(), edm::EventSetup::getData(), MonitorTrackResidualsBase< pixel_or_strip >::m_cacheID_, SiStripFolderOrganizer::setSiStripFolderName(), AlCaHLTBitMon_QueryRunRegistry::string, MonitorTrackResidualsBase< pixel_or_strip >::tkDetMapToken_, and MonitorTrackResidualsBase< pixel_or_strip >::tkhisto_ResidualsMean.

39  {
40  unsigned long long cacheID = iSetup.get<TrackerDigiGeometryRecord>().cacheIdentifier();
41  if (m_cacheID_ != cacheID) {
42  m_cacheID_ = cacheID;
43  this->createMEs(ibooker, iSetup);
44  }
45  std::string topFolderName_ = "SiStrip";
47  folder_organizer.setSiStripFolderName(topFolderName_);
48  const TkDetMap *tkDetMap = &iSetup.getData(tkDetMapToken_);
50  std::make_unique<TkHistoMap>(tkDetMap, ibooker, topFolderName_, "TkHMap_ResidualsMean", 0.0, true);
51 }
edm::ESGetToken< TkDetMap, TrackerTopologyRcd > tkDetMapToken_
void setSiStripFolderName(std::string name)
std::unique_ptr< TkHistoMap > tkhisto_ResidualsMean
SiStripFolderOrganizer folder_organizer
void createMEs(DQMStore::IBooker &, const edm::EventSetup &)
template<TrackerType pixel_or_strip>
void MonitorTrackResidualsBase< pixel_or_strip >::createMEs ( DQMStore::IBooker ibooker,
const edm::EventSetup iSetup 
)
private

Definition at line 102 of file MonitorTrackResiduals.cc.

References funct::abs(), dqm::implementation::IBooker::book1D(), MonitorTrackResidualsBase< pixel_or_strip >::conf_, TrackerGeometry::detIds(), MonitorTrackResidualsBase< pixel_or_strip >::findSubdetAndLayer(), edm::EventSetup::getData(), edm::ParameterSet::getParameter(), hidmanager, mergeVDriftHistosByStation::histos, PixelPluginsPhase0_cfi::isBarrel, fastTrackerRecHitType::isPixel(), MonitorTrackResidualsBase< pixel_or_strip >::m_ModuleResiduals, MonitorTrackResidualsBase< pixel_or_strip >::m_SubdetLayerResiduals, MonitorTrackResidualsBase< pixel_or_strip >::ModOn, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), SiStripFolderOrganizer::setDetectorFolder(), SiStripFolderOrganizer::setLayerFolder(), AlCaHLTBitMon_QueryRunRegistry::string, MonitorTrackResidualsBase< pixel_or_strip >::trackerGeometryToken_, MonitorTrackResidualsBase< pixel_or_strip >::trackerTopologyRunToken_, TRACKERTYPE_PIXEL, and xy().

Referenced by MonitorTrackResidualsBase< pixel_or_strip >::bookHistograms().

102  {
103  // Retrieve tracker topology and geometry
104  const TrackerTopology *const tTopo = &iSetup.getData(trackerTopologyRunToken_);
105  const TrackerGeometry *TG = &iSetup.getData(trackerGeometryToken_);
106 
107  Parameters = conf_.getParameter<edm::ParameterSet>("TH1ResModules");
108  int32_t i_residuals_Nbins = Parameters.getParameter<int32_t>("Nbinx");
109  double d_residual_xmin = Parameters.getParameter<double>("xmin");
110  double d_residual_xmax = Parameters.getParameter<double>("xmax");
111  Parameters = conf_.getParameter<edm::ParameterSet>("TH1NormResModules");
112  int32_t i_normres_Nbins = Parameters.getParameter<int32_t>("Nbinx");
113  double d_normres_xmin = Parameters.getParameter<double>("xmin");
114  double d_normres_xmax = Parameters.getParameter<double>("xmax");
115 
116  // use SistripHistoId for producing histogram id (and title)
118 
119  SiStripFolderOrganizer strip_organizer;
120  auto pixel_organizer = SiPixelFolderOrganizer(false);
121 
122  // Collect list of modules from Tracker Geometry
123  // book histo per each detector module
124  auto ids = TG->detIds(); // or detUnitIds?
125  for (DetId id : ids) {
126  auto ModuleID = id.rawId();
127  auto isPixel = id.subdetId() == 1 || id.subdetId() == 2;
128  if (isPixel != (pixel_or_strip == TRACKERTYPE_PIXEL))
129  continue;
130 
131  // Book module histogramms?
132  if (ModOn) {
133  switch (id.subdetId()) {
134  case 1:
135  pixel_organizer.setModuleFolder(ibooker, ModuleID, 0);
136  break;
137  case 2:
138  pixel_organizer.setModuleFolder(ibooker, ModuleID, 0);
139  break;
140  default:
141  strip_organizer.setDetectorFolder(ModuleID, tTopo);
142  }
143  {
144  // this sounds strip specific but also works for pixel
145  std::string hid = hidmanager.createHistoId("HitResidualsX", "det", ModuleID);
146  std::string normhid = hidmanager.createHistoId("NormalizedHitResidualsX", "det", ModuleID);
147  auto &histos = m_ModuleResiduals[std::make_pair("", ModuleID)];
148  histos.x.base = ibooker.book1D(hid, hid, i_residuals_Nbins, d_residual_xmin, d_residual_xmax);
149  histos.x.base->setAxisTitle("(x_{pred} - x_{rec})' [cm]");
150  histos.x.normed = ibooker.book1D(normhid, normhid, i_normres_Nbins, d_normres_xmin, d_normres_xmax);
151  histos.x.normed->setAxisTitle("(x_{pred} - x_{rec})'/#sigma");
152  }
153  {
154  std::string hid = hidmanager.createHistoId("HitResidualsY", "det", ModuleID);
155  std::string normhid = hidmanager.createHistoId("NormalizedHitResidualsY", "det", ModuleID);
156  auto &histos = m_ModuleResiduals[std::make_pair("", ModuleID)];
157  histos.y.base = ibooker.book1D(hid, hid, i_residuals_Nbins, d_residual_xmin, d_residual_xmax);
158  histos.y.base->setAxisTitle("(y_{pred} - y_{rec})' [cm]");
159  histos.y.normed = ibooker.book1D(normhid, normhid, i_normres_Nbins, d_normres_xmin, d_normres_xmax);
160  histos.y.normed->setAxisTitle("(y_{pred} - y_{rec})'/#sigma");
161  }
162  }
163 
164  auto subdetandlayer = findSubdetAndLayer(ModuleID, tTopo);
165  if (m_SubdetLayerResiduals.find(subdetandlayer) == m_SubdetLayerResiduals.end()) {
166  // add new histograms
167  auto &histos = m_SubdetLayerResiduals[subdetandlayer];
168  switch (id.subdetId()) {
169  // Pixel Barrel, Endcap
170  // We can't use the folder organizer here (SiPixelActionExecutor.cc#1638
171  // does the same)
172  case 1:
173  ibooker.setCurrentFolder("Pixel/Barrel");
174  break;
175  case 2:
176  ibooker.setCurrentFolder("Pixel/Endcap");
177  break;
178  // All strip
179  default:
180  strip_organizer.setLayerFolder(ModuleID, tTopo, subdetandlayer.second);
181  }
182 
183  auto isBarrel = subdetandlayer.first.find("B") != std::string::npos;
184 
185  auto xy = std::vector<std::pair<HistoPair &, const char *>>{std::make_pair(std::ref(histos.x), "X"),
186  std::make_pair(std::ref(histos.y), "Y")};
187  for (auto &histopair : xy) {
188  // book histogramms on layer level, check for barrel/pixel only for
189  // correct labeling
190 
191  // Skip the Y plots for strips.
192  if (!isPixel && histopair.second[0] == 'Y')
193  continue;
194 
195  std::string histoname = isPixel ? ( // Pixel name
196  Form("HitResiduals%s_%s%d",
197  histopair.second,
198  isBarrel ? "L" : (subdetandlayer.second > 0 ? "Dp" : "Dm"),
199  std::abs(subdetandlayer.second)))
200  : (Form("HitResiduals_%s__%s__%d", // Strip TODO: We use a
201  // legacy name.
202  subdetandlayer.first.c_str(),
203  isBarrel ? "Layer" : "wheel",
204  std::abs(subdetandlayer.second)));
205 
206  std::string histotitle = Form("HitResiduals %s on %s%s full %s %d",
207  histopair.second,
208  subdetandlayer.first.c_str(),
209  isBarrel ? "" : (subdetandlayer.second > 0 ? "+" : "-"),
210  isBarrel ? "Layer" : (isPixel ? "Disk" : "Wheel"),
211  std::abs(subdetandlayer.second));
212 
213  std::string normhistoname = Form("Normalized%s", histoname.c_str());
214  std::string normhistotitle = Form("Normalized%s", histotitle.c_str());
215 
216  // std::cout << "##### Booking: " << ibooker.pwd() << " title " <<
217  // histoname << std::endl;
218 
219  histopair.first.base =
220  ibooker.book1D(histoname.c_str(), histotitle.c_str(), i_residuals_Nbins, d_residual_xmin, d_residual_xmax);
221  histopair.first.base->setAxisTitle("(x_{pred} - x_{rec})' [cm]");
222 
223  histopair.first.normed = ibooker.book1D(
224  normhistoname.c_str(), normhistotitle.c_str(), i_normres_Nbins, d_normres_xmin, d_normres_xmax);
225  histopair.first.normed->setAxisTitle("(x_{pred} - x_{rec})'/#sigma");
226  }
227  }
228  } // end loop over activeDets
229 }
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
const DetIdContainer & detIds() const override
Returm a vector of all GeomDet DetIds (including those of GeomDetUnits)
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyRunToken_
void setLayerFolder(uint32_t rawdetid, const TrackerTopology *tTopo, int32_t layer=0, bool ring_flag=false)
void setDetectorFolder(uint32_t rawdetid, const TrackerTopology *tTopo)
bool getData(T &iHolder) const
Definition: EventSetup.h:122
vector< ParameterSet > Parameters
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
SiStripHistoId hidmanager
Basic2DVector< T > xy() const
Definition: DetId.h:17
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometryToken_
bool isPixel(HitType hitType)
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
std::pair< std::string, int32_t > findSubdetAndLayer(uint32_t ModuleID, const TrackerTopology *tTopo)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
template<TrackerType pixel_or_strip>
void MonitorTrackResidualsBase< pixel_or_strip >::dqmBeginRun ( const edm::Run run,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 54 of file MonitorTrackResiduals.cc.

References MonitorTrackResidualsBase< pixel_or_strip >::genTriggerEventFlag_, GenericTriggerEventFlag::initRun(), and GenericTriggerEventFlag::on().

54  {
55  // Initialize the GenericTriggerEventFlag
56  if (genTriggerEventFlag_->on())
57  genTriggerEventFlag_->initRun(run, iSetup);
58 }
GenericTriggerEventFlag * genTriggerEventFlag_
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
template<TrackerType pixel_or_strip>
std::pair< std::string, int32_t > MonitorTrackResidualsBase< pixel_or_strip >::findSubdetAndLayer ( uint32_t  ModuleID,
const TrackerTopology tTopo 
)
private

Definition at line 61 of file MonitorTrackResiduals.cc.

References phase1PixelTopology::layer, TrackerTopology::pxbLayer(), TrackerTopology::pxfDisk(), TrackerTopology::pxfSide(), AlCaHLTBitMon_QueryRunRegistry::string, TrackerTopology::tecSide(), TrackerTopology::tecWheel(), TrackerTopology::tibLayer(), TrackerTopology::tidSide(), TrackerTopology::tidWheel(), and TrackerTopology::tobLayer().

Referenced by MonitorTrackResidualsBase< pixel_or_strip >::analyze(), and MonitorTrackResidualsBase< pixel_or_strip >::createMEs().

62  {
63  std::string subdet = "";
64  int32_t layer = 0;
65  auto id = DetId(ModuleID);
66  switch (id.subdetId()) {
67  // Pixel Barrel, Endcap
68  case 1:
69  subdet = "BPIX";
70  layer = tTopo->pxbLayer(id);
71  break;
72  case 2:
73  subdet = "FPIX";
74  layer = tTopo->pxfDisk(id) * (tTopo->pxfSide(ModuleID) == 1 ? -1 : +1);
75  break;
76  // Strip TIB, TID, TOB, TEC
77  case 3:
78  subdet = "TIB";
79  layer = tTopo->tibLayer(id);
80  break;
81  case 4:
82  subdet = "TID";
83  layer = tTopo->tidWheel(id) * (tTopo->tidSide(ModuleID) == 1 ? -1 : +1);
84  break;
85  case 5:
86  subdet = "TOB";
87  layer = tTopo->tobLayer(id);
88  break;
89  case 6:
90  subdet = "TEC";
91  layer = tTopo->tecWheel(id) * (tTopo->tecSide(ModuleID) == 1 ? -1 : +1);
92  break;
93  default:
94  // TODO: Fail loudly.
95  subdet = "UNKNOWN";
96  layer = 0;
97  }
98  return std::make_pair(subdet, layer);
99 }
unsigned int tibLayer(const DetId &id) const
unsigned int pxfDisk(const DetId &id) const
unsigned int tidWheel(const DetId &id) const
constexpr std::array< uint8_t, layerIndexSize > layer
unsigned int tidSide(const DetId &id) const
unsigned int pxbLayer(const DetId &id) const
Definition: DetId.h:17
unsigned int pxfSide(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
unsigned int tobLayer(const DetId &id) const
unsigned int tecSide(const DetId &id) const

Member Data Documentation

template<TrackerType pixel_or_strip>
bool MonitorTrackResidualsBase< pixel_or_strip >::applyVertexCut_
private
template<TrackerType pixel_or_strip>
TrackerValidationVariables MonitorTrackResidualsBase< pixel_or_strip >::avalidator_
private
template<TrackerType pixel_or_strip>
edm::ParameterSet MonitorTrackResidualsBase< pixel_or_strip >::conf_
private
template<TrackerType pixel_or_strip>
GenericTriggerEventFlag* MonitorTrackResidualsBase< pixel_or_strip >::genTriggerEventFlag_
private
template<TrackerType pixel_or_strip>
unsigned long long MonitorTrackResidualsBase< pixel_or_strip >::m_cacheID_
private
template<TrackerType pixel_or_strip>
HistoSet MonitorTrackResidualsBase< pixel_or_strip >::m_ModuleResiduals
private
template<TrackerType pixel_or_strip>
HistoSet MonitorTrackResidualsBase< pixel_or_strip >::m_SubdetLayerResiduals
private
template<TrackerType pixel_or_strip>
bool MonitorTrackResidualsBase< pixel_or_strip >::ModOn
private
template<TrackerType pixel_or_strip>
edm::EDGetTokenT<reco::VertexCollection> MonitorTrackResidualsBase< pixel_or_strip >::offlinePrimaryVerticesToken_
private
template<TrackerType pixel_or_strip>
edm::ParameterSet MonitorTrackResidualsBase< pixel_or_strip >::Parameters
private

Definition at line 77 of file MonitorTrackResiduals.h.

template<TrackerType pixel_or_strip>
edm::ESGetToken<TkDetMap, TrackerTopologyRcd> MonitorTrackResidualsBase< pixel_or_strip >::tkDetMapToken_
private
template<TrackerType pixel_or_strip>
std::unique_ptr<TkHistoMap> MonitorTrackResidualsBase< pixel_or_strip >::tkhisto_ResidualsMean
private
template<TrackerType pixel_or_strip>
edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> MonitorTrackResidualsBase< pixel_or_strip >::trackerGeometryToken_
private
template<TrackerType pixel_or_strip>
edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> MonitorTrackResidualsBase< pixel_or_strip >::trackerTopologyEventToken_
private
template<TrackerType pixel_or_strip>
edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> MonitorTrackResidualsBase< pixel_or_strip >::trackerTopologyRunToken_
private