CMS 3D CMS Logo

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 >, HistoXYHistoSet
 

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::VertexCollectionofflinePrimaryVerticesToken_
 
edm::ParameterSet Parameters
 
edm::ESGetToken< TkDetMap, TrackerTopologyRcdtkDetMapToken_
 
std::unique_ptr< TkHistoMaptkhisto_ResidualsMean
 
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtrackerGeometryToken_
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtrackerTopologyEventToken_
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtrackerTopologyRunToken_
 

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< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (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

◆ HistoSet

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

◆ MonitorTrackResidualsBase()

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

Definition at line 15 of file MonitorTrackResiduals.cc.

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 }
edm::ESGetToken< TkDetMap, TrackerTopologyRcd > tkDetMapToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
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_
T getUntrackedParameter(std::string const &, T const &) const
GenericTriggerEventFlag * genTriggerEventFlag_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometryToken_

◆ ~MonitorTrackResidualsBase()

template<TrackerType pixel_or_strip>
MonitorTrackResidualsBase< pixel_or_strip >::~MonitorTrackResidualsBase ( )
override

Definition at line 31 of file MonitorTrackResiduals.cc.

31  {
33  delete genTriggerEventFlag_;
34 }
GenericTriggerEventFlag * genTriggerEventFlag_

Member Function Documentation

◆ analyze()

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(), edm::EventSetup::getData(), combine::histos, iEvent, fastTrackerRecHitType::isPixel(), HLT_2023v12_cff::track, TRACKERTYPE_PIXEL, parallelization::uint, and AlignmentTracksFromVertexSelector_cfi::vertices.

232  {
233  auto vtracks = std::vector<TrackerValidationVariables::AVTrackStruct>();
234  // Filter out events if Trigger Filtering is requested
236  return;
237 
239  if (applyVertexCut_) {
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 }
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyEventToken_
TrackerValidationVariables avalidator_
edm::EDGetTokenT< reco::VertexCollection > offlinePrimaryVerticesToken_
std::unique_ptr< TkHistoMap > tkhisto_ResidualsMean
int iEvent
Definition: GenABIO.cc:224
bool accept(const edm::Event &event, const edm::EventSetup &setup)
To be called from analyze/filter() methods.
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Definition: DetId.h:17
void fillTrackQuantities(const edm::Event &, const edm::EventSetup &, std::vector< AVTrackStruct > &v_avtrackout)
GenericTriggerEventFlag * genTriggerEventFlag_
histos
Definition: combine.py:4
bool isPixel(HitType hitType)
std::pair< std::string, int32_t > findSubdetAndLayer(uint32_t ModuleID, const TrackerTopology *tTopo)

◆ bookHistograms()

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 edm::EventSetup::get(), edm::EventSetup::getData(), SiStripFolderOrganizer::setSiStripFolderName(), and AlCaHLTBitMon_QueryRunRegistry::string.

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";
46  SiStripFolderOrganizer folder_organizer;
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
void createMEs(DQMStore::IBooker &, const edm::EventSetup &)

◆ createMEs()

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(), TrackerGeometry::detIds(), edm::EventSetup::getData(), combine::histos, PixelPluginsPhase0_cfi::isBarrel, fastTrackerRecHitType::isPixel(), TrackerTopology::second(), dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), SiStripFolderOrganizer::setDetectorFolder(), SiStripFolderOrganizer::setLayerFolder(), AlCaHLTBitMon_QueryRunRegistry::string, TRACKERTYPE_PIXEL, and geometryCSVtoXML::xy.

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)
117  SiStripHistoId hidmanager;
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 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
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)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Definition: DetId.h:17
histos
Definition: combine.py:4
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)

◆ dqmBeginRun()

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 writedatasetfile::run.

54  {
55  // Initialize the GenericTriggerEventFlag
56  if (genTriggerEventFlag_->on())
58 }
GenericTriggerEventFlag * genTriggerEventFlag_
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.

◆ findSubdetAndLayer()

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 nano_mu_digi_cff::layer, TrackerTopology::pxbLayer(), TrackerTopology::pxfDisk(), TrackerTopology::pxfSide(), AlCaHLTBitMon_QueryRunRegistry::string, TrackerTopology::tecSide(), TrackerTopology::tecWheel(), TrackerTopology::tibLayer(), TrackerTopology::tidSide(), TrackerTopology::tidWheel(), and TrackerTopology::tobLayer().

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 tobLayer(const DetId &id) const
unsigned int pxbLayer(const DetId &id) const
unsigned int tidSide(const DetId &id) const
unsigned int tidWheel(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
unsigned int tecSide(const DetId &id) const
unsigned int pxfDisk(const DetId &id) const
Definition: DetId.h:17
unsigned int pxfSide(const DetId &id) const
unsigned int tibLayer(const DetId &id) const

Member Data Documentation

◆ applyVertexCut_

template<TrackerType pixel_or_strip>
bool MonitorTrackResidualsBase< pixel_or_strip >::applyVertexCut_
private

Definition at line 87 of file MonitorTrackResiduals.h.

◆ avalidator_

template<TrackerType pixel_or_strip>
TrackerValidationVariables MonitorTrackResidualsBase< pixel_or_strip >::avalidator_
private

Definition at line 90 of file MonitorTrackResiduals.h.

◆ conf_

template<TrackerType pixel_or_strip>
edm::ParameterSet MonitorTrackResidualsBase< pixel_or_strip >::conf_
private

Definition at line 76 of file MonitorTrackResiduals.h.

◆ genTriggerEventFlag_

template<TrackerType pixel_or_strip>
GenericTriggerEventFlag* MonitorTrackResidualsBase< pixel_or_strip >::genTriggerEventFlag_
private

Definition at line 89 of file MonitorTrackResiduals.h.

◆ m_cacheID_

template<TrackerType pixel_or_strip>
unsigned long long MonitorTrackResidualsBase< pixel_or_strip >::m_cacheID_
private

Definition at line 85 of file MonitorTrackResiduals.h.

◆ m_ModuleResiduals

template<TrackerType pixel_or_strip>
HistoSet MonitorTrackResidualsBase< pixel_or_strip >::m_ModuleResiduals
private

Definition at line 73 of file MonitorTrackResiduals.h.

◆ m_SubdetLayerResiduals

template<TrackerType pixel_or_strip>
HistoSet MonitorTrackResidualsBase< pixel_or_strip >::m_SubdetLayerResiduals
private

Definition at line 72 of file MonitorTrackResiduals.h.

◆ ModOn

template<TrackerType pixel_or_strip>
bool MonitorTrackResidualsBase< pixel_or_strip >::ModOn
private

Definition at line 86 of file MonitorTrackResiduals.h.

◆ offlinePrimaryVerticesToken_

template<TrackerType pixel_or_strip>
edm::EDGetTokenT<reco::VertexCollection> MonitorTrackResidualsBase< pixel_or_strip >::offlinePrimaryVerticesToken_
private

Definition at line 78 of file MonitorTrackResiduals.h.

◆ Parameters

template<TrackerType pixel_or_strip>
edm::ParameterSet MonitorTrackResidualsBase< pixel_or_strip >::Parameters
private

Definition at line 77 of file MonitorTrackResiduals.h.

◆ tkDetMapToken_

template<TrackerType pixel_or_strip>
edm::ESGetToken<TkDetMap, TrackerTopologyRcd> MonitorTrackResidualsBase< pixel_or_strip >::tkDetMapToken_
private

Definition at line 80 of file MonitorTrackResiduals.h.

◆ tkhisto_ResidualsMean

template<TrackerType pixel_or_strip>
std::unique_ptr<TkHistoMap> MonitorTrackResidualsBase< pixel_or_strip >::tkhisto_ResidualsMean
private

Definition at line 74 of file MonitorTrackResiduals.h.

◆ trackerGeometryToken_

template<TrackerType pixel_or_strip>
edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> MonitorTrackResidualsBase< pixel_or_strip >::trackerGeometryToken_
private

Definition at line 82 of file MonitorTrackResiduals.h.

◆ trackerTopologyEventToken_

template<TrackerType pixel_or_strip>
edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> MonitorTrackResidualsBase< pixel_or_strip >::trackerTopologyEventToken_
private

Definition at line 83 of file MonitorTrackResiduals.h.

◆ trackerTopologyRunToken_

template<TrackerType pixel_or_strip>
edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> MonitorTrackResidualsBase< pixel_or_strip >::trackerTopologyRunToken_
private

Definition at line 81 of file MonitorTrackResiduals.h.