CMS 3D CMS Logo

GeometryInterface.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: SiPixelPhase1Common
4 // Class: GeometryInterface
5 //
6 // Geometry depedence goes here.
7 //
8 // Original Author: Marcel Schneider
9 
11 
12 // general plotting helpers
14 
15 // edm stuff
19 
20 // Tracker Geometry/Topology stuff
25 
26 // Pixel names
29 
30 // C++ stuff
31 #include <cassert>
32 #include <cstdint>
33 #include <iostream>
34 #include <iomanip>
35 #include <memory>
36 
38 
41  edm::Transition transition)
42  : iConfig(conf), cablingMapLabel_{conf.getParameter<std::string>("CablingMapLabel")} {
43  if (transition == edm::Transition::BeginRun) {
44  trackerGeometryToken_ = iC.esConsumes<TrackerGeometry, TrackerDigiGeometryRecord, edm::Transition::BeginRun>();
45  trackerTopologyToken_ = iC.esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginRun>();
46  siPixelFedCablingMapToken_ =
48  if (!cablingMapLabel_.empty()) {
49  labeledSiPixelFedCablingMapToken_ =
51  edm::ESInputTag("", cablingMapLabel_));
52  }
53  } else {
54  trackerGeometryToken_ =
56  trackerTopologyToken_ = iC.esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::EndLuminosityBlock>();
57  siPixelFedCablingMapToken_ =
59  if (!cablingMapLabel_.empty()) {
60  labeledSiPixelFedCablingMapToken_ =
62  edm::ESInputTag("", cablingMapLabel_));
63  }
64  }
65 }
66 
70  const SiPixelFedCablingMap& siPixelFedCablingMap = iSetup.getData(siPixelFedCablingMapToken_);
71 
72  const SiPixelFedCablingMap* labeledSiPixelFedCablingMap = &siPixelFedCablingMap;
73  if (!cablingMapLabel_.empty()) {
74  labeledSiPixelFedCablingMap = &iSetup.getData(labeledSiPixelFedCablingMapToken_);
75  }
76 
77  //loadFromAlignment(iSetup, iConfig);
81  loadFEDCabling(labeledSiPixelFedCablingMap);
83  edm::LogInfo log("GeometryInterface");
84  log << "Known colum names:\n";
85  for (auto e : ids)
86  log << "+++ column: " << e.first << " ok " << bool(extractors[e.second]) << " min " << min_value[e.second]
87  << " max " << max_value[e.second] << "\n";
88  is_loaded = true;
89 }
90 
93  const edm::ParameterSet& iConfig) {
94  std::vector<ID> geomquantities;
95 
96  struct TTField {
97  const TrackerTopology* tt;
99  Value operator()(InterestingQuantities const& iq) {
100  if (tt->hasField(iq.sourceModule, field))
101  return tt->getField(iq.sourceModule, field);
102  else
103  return UNDEFINED;
104  };
105  };
106 
108 
109  std::vector<std::pair<std::string, TTField>> namedPartitions{
110  {"PXEndcap", {tt, TrackerTopology::PFSide}},
111 
112  {"PXLayer", {tt, TrackerTopology::PBLayer}},
113  {"PXLadder", {tt, TrackerTopology::PBLadder}},
114  {"PXBModule", {tt, TrackerTopology::PBModule}},
115 
116  {"PXBlade", {tt, TrackerTopology::PFBlade}},
117  {"PXDisk", {tt, TrackerTopology::PFDisk}},
118  {"PXPanel", {tt, TrackerTopology::PFPanel}},
119  {"PXFModule", {tt, TrackerTopology::PFModule}},
120  };
121 
122  for (auto& e : namedPartitions) {
123  geomquantities.push_back(intern(e.first));
124  addExtractor(intern(e.first), e.second, UNDEFINED, UNDEFINED);
125  }
126 
127  auto pxbarrel = [](InterestingQuantities const& iq) {
128  return iq.sourceModule.subdetId() == PixelSubdetector::PixelBarrel ? 0 : UNDEFINED;
129  };
130  auto pxforward = [](InterestingQuantities const& iq) {
131  return iq.sourceModule.subdetId() == PixelSubdetector::PixelEndcap ? 0 : UNDEFINED;
132  };
133  auto pxall = [](InterestingQuantities const& iq) { return 0; };
134  addExtractor(intern("PXBarrel"), pxbarrel, 0, 0);
135  addExtractor(intern("PXForward"), pxforward, 0, 0);
136  addExtractor(intern("PXAll"), pxall, 0, 0);
137 
138  // Redefine the disk numbering to use the sign
139  auto pxendcap = extractors[intern("PXEndcap")];
140  auto diskid = intern("PXDisk");
141  auto pxdisk = extractors[diskid];
142  extractors[diskid] = [pxdisk, pxendcap](InterestingQuantities const& iq) {
143  auto disk = pxdisk(iq);
144  if (disk == UNDEFINED)
145  return UNDEFINED;
146  auto endcap = pxendcap(iq);
147  return endcap == 1 ? -disk : disk;
148  };
149 
150  // DetId and module names
151  auto detid = [](InterestingQuantities const& iq) {
152  uint32_t id = iq.sourceModule.rawId();
153  return Value(id);
154  };
155  addExtractor(intern("DetId"), detid, 0, 0 // No sane value possible here.
156  );
157  // these are just aliases with special handling in formatting
158  // the names are created with PixelBarrelName et. al. later
159  addExtractor(intern("PXModuleName"), detid, 0, 0);
160 
161  int phase = iConfig.getParameter<int>("upgradePhase");
162  bool isUpgrade = phase == 1;
163 
164  // Now traverse the detector and collect whatever we need.
165  auto detids = trackerGeometry.detIds();
166  for (DetId id : detids) {
167  if (id.subdetId() != PixelSubdetector::PixelBarrel && id.subdetId() != PixelSubdetector::PixelEndcap)
168  continue;
169  auto iq = InterestingQuantities{nullptr, id, 0, 0};
170 
171  // prepare pretty names
172  std::string name = "";
173  if (id.subdetId() == PixelSubdetector::PixelBarrel) { // Barrel
175  name = mod.name();
176  } else { // assume Endcap
178  name = mod.name();
179  }
180  format_value[std::make_pair(intern("PXModuleName"), Value(id.rawId()))] = name;
181 
182  // we record each module 4 times, one for each corner, so we also get ROCs
183  // in booking (at least for the ranges)
184  const PixelGeomDetUnit* detUnit = dynamic_cast<const PixelGeomDetUnit*>(trackerGeometry.idToDetUnit(id));
185  assert(detUnit);
186  const PixelTopology* topo = &detUnit->specificTopology();
187  iq.row = 0;
188  iq.col = 0;
189  all_modules.push_back(iq);
190  iq.row = topo->nrows() - 1;
191  iq.col = 0;
192  all_modules.push_back(iq);
193  iq.row = 0;
194  iq.col = topo->ncolumns() - 1;
195  all_modules.push_back(iq);
196  iq.row = topo->nrows() - 1;
197  iq.col = topo->ncolumns() - 1;
198  all_modules.push_back(iq);
199  }
200 }
201 
204  const SiPixelFedCablingMap& siPixelFedCablingMap,
205  const edm::ParameterSet& iConfig) {
206  // TODO: SiPixelCoordinates has a large overlap with theis GeometryInterface
207  // in general.
208  // Rough convention is to use own code for things that are easy and fast to
209  // determine, and use SiPixelCoordinates for complicated things.
210  // SiPixelCoordinates uses lookup maps for everything, so it is faster than
211  // most other code, but still slow on DQM scales.
212  int phase = iConfig.getParameter<int>("upgradePhase");
213 
214  // this shared pointer is kept alive by the references in the lambdas that follow.
215  // That is a bit less obvious than keeping it as a member but more correct.
216  auto coord = std::make_shared<SiPixelCoordinates>(phase);
217 
218  // note that we should reeinit for each event. But this probably won't explode
219  // thanks to the massive memoization in SiPixelCoordinates which is completely
220  // initialized while booking.
221  coord->init(&trackerTopology, &trackerGeometry, &siPixelFedCablingMap);
222 
223  // SiPixelCoordinates uses a different convention for UNDEFINED:
224  auto from_coord = [](double in) { return (in == -9999.0) ? UNDEFINED : Value(in); };
225 
226  // Rings are a concept that cannot be derived from bitmasks.
227  addExtractor(intern("PXRing"), [coord, from_coord](InterestingQuantities const& iq) {
228  return from_coord(coord->ring(iq.sourceModule));
229  });
230 
231  // Quadrant names.
232  auto pxbarrel = extractors[intern("PXBarrel")];
233  addExtractor(
234  intern("HalfCylinder"),
235  [coord, pxbarrel](InterestingQuantities const& iq) {
236  if (pxbarrel(iq) != UNDEFINED)
237  return UNDEFINED;
238  int quadrant = coord->quadrant(iq.sourceModule);
239  switch (quadrant) {
240  case 1:
241  return Value(12); // mO
242  case 2:
243  return Value(11); // mI
244  case 3:
245  return Value(22); // pO
246  case 4:
247  return Value(21); // pI
248  default:
249  return UNDEFINED;
250  }
251  },
252  0,
253  0 // N/A
254  );
255  addExtractor(
256  intern("Shell"),
257  [coord, pxbarrel](InterestingQuantities const& iq) {
258  if (pxbarrel(iq) == UNDEFINED)
259  return UNDEFINED;
260  int quadrant = coord->quadrant(iq.sourceModule);
261  switch (quadrant) {
262  case 1:
263  return Value(12); // mO
264  case 2:
265  return Value(11); // mI
266  case 3:
267  return Value(22); // pO
268  case 4:
269  return Value(21); // pI
270  default:
271  return UNDEFINED;
272  }
273  },
274  0,
275  0 // N/A
276  );
277 
278  // Online Numbering.
279  addExtractor(intern("SignedLadder"), [coord, from_coord](InterestingQuantities const& iq) {
280  return from_coord(coord->signed_ladder(iq.sourceModule()));
281  });
282  addExtractor(intern("SignedModule"), [coord, from_coord](InterestingQuantities const& iq) {
283  return from_coord(coord->signed_module(iq.sourceModule()));
284  });
285  addExtractor(intern("SignedBlade"), [coord, from_coord](InterestingQuantities const& iq) {
286  return from_coord(coord->signed_blade(iq.sourceModule()));
287  });
288 
289  // Flipped and Outer ladders
290  addExtractor(intern("OuterLadder"), [coord, from_coord](InterestingQuantities const& iq) {
291  return from_coord(coord->outer(iq.sourceModule()));
292  });
293  addExtractor(intern("FlippedLadder"), [coord, from_coord](InterestingQuantities const& iq) {
294  return from_coord(coord->flipped(iq.sourceModule()));
295  });
296 
297  // Pixel Map axis.
298  // TODO: automatic range and binning for phase0 are incorrect.
299  // Should be set manually here.
300  addExtractor(
301  intern("SignedModuleCoord"), // BPIX x
302  [coord, from_coord](InterestingQuantities const& iq) {
303  return from_coord(coord->signed_module_coord(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
304  },
305  UNDEFINED,
306  UNDEFINED,
307  1.0 / 8.0);
308  addExtractor(
309  intern("SignedLadderCoord"), // BPIX y
310  [coord, from_coord](InterestingQuantities const& iq) {
311  return from_coord(coord->signed_ladder_coord(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
312  },
313  UNDEFINED,
314  UNDEFINED,
315  1.0 / 2.0);
316  addExtractor(
317  intern("SignedDiskCoord"), // FPIX x (per-ring)
318  [coord, from_coord](InterestingQuantities const& iq) {
319  return from_coord(coord->signed_disk_coord(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
320  },
321  UNDEFINED,
322  UNDEFINED,
323  1.0 / 8.0);
324  addExtractor(
325  intern("SignedDiskRingCoord"), // FPIX x (FPIX-as-one-plot)
326  [coord, from_coord](InterestingQuantities const& iq) {
327  return from_coord(coord->signed_disk_ring_coord(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
328  },
329  UNDEFINED,
330  UNDEFINED,
331  1.0 / 16.0);
332  addExtractor(
333  intern("SignedBladePanelCoord"), // FPIX y
334  [coord, from_coord, phase](InterestingQuantities const& iq) {
335  if (phase == 0) {
336  return from_coord(coord->signed_blade_coord(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
337  } else if (phase == 1) {
338  return from_coord(
339  coord->signed_blade_panel_coord(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
340  } else {
341  return UNDEFINED; // TODO: phase2
342  }
343  },
344  UNDEFINED,
345  UNDEFINED,
346  phase == 1 ? 0.25 : 0.2);
347  addExtractor(
348  intern("SignedShiftedBladePanelCoord"), // FPIX-as-one y
349  [coord, from_coord, phase](InterestingQuantities const& iq) {
350  if (phase == 0) {
351  return from_coord(coord->signed_blade_coord(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
352  } else if (phase == 1) {
353  return from_coord(
354  coord->signed_shifted_blade_panel_coord(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
355  } else {
356  return UNDEFINED; // TODO: phase2
357  }
358  },
359  UNDEFINED,
360  UNDEFINED,
361  phase == 1 ? 0.25 : 0.1 // half-roc for phase0
362  );
363  addExtractor(
364  intern("SignedBladePanel"), // per-module FPIX y
365  [coord, from_coord](InterestingQuantities const& iq) {
366  return from_coord(coord->signed_blade_panel_coord(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
367  },
368  UNDEFINED,
369  UNDEFINED,
370  1.0 / 2.0);
371 
372  addExtractor(
373  intern("SignedBladePanel"),
374  [coord, from_coord](InterestingQuantities const& iq) {
375  return from_coord(coord->signed_blade_panel_coord(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
376  },
377  UNDEFINED,
378  UNDEFINED,
379  1.0 / 2.0);
380 
381  // more readout-related things.
382  addExtractor(intern("ROC"), [coord, from_coord](InterestingQuantities const& iq) {
383  return from_coord(coord->roc(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
384  });
385  addExtractor(intern("Sector"), [coord, from_coord](InterestingQuantities const& iq) {
386  return from_coord(coord->sector(iq.sourceModule()));
387  });
388  addExtractor(intern("Channel"), [coord, from_coord](InterestingQuantities const& iq) {
389  return from_coord(coord->channel(iq.sourceModule(), std::make_pair(int(iq.row), int(iq.col))));
390  });
391 }
392 
394  // extractors for quantities that are roughly time-based. We cannot book plots based on these; they have to
395  // be grouped away in step1.
396  addExtractor(
397  intern("Lumisection"),
398  [](InterestingQuantities const& iq) {
399  if (!iq.sourceEvent)
400  return UNDEFINED;
401  return Value(iq.sourceEvent->luminosityBlock());
402  },
403  1,
404  iConfig.getParameter<int>("max_lumisection"));
405 
406  int onlineblock = iConfig.getParameter<int>("onlineblock");
407  int n_onlineblocks = iConfig.getParameter<int>("n_onlineblocks");
408  addExtractor(
409  intern("OnlineBlock"),
410  [onlineblock](InterestingQuantities const& iq) {
411  if (!iq.sourceEvent)
412  return UNDEFINED;
414  },
415  // note: this range is not visible anywhere (if the RenderPlugin does its job),
416  // but the strange range allows the RenderPlugin to know the block size.
417  onlineblock,
419 
420  int lumiblock = iConfig.getParameter<int>("lumiblock");
421  addExtractor(
422  intern("LumiBlock"),
423  [lumiblock](InterestingQuantities const& iq) {
424  if (!iq.sourceEvent)
425  return UNDEFINED;
426  // The '-1' is for making 1-10 the same block rather than 0-9
427  // The '+0.5' makes the block span an integer range rather n.5-m.5
428  return Value(((iq.sourceEvent->luminosityBlock() - 1) / lumiblock) + 0.5);
429  },
430  -0.5,
431  iConfig.getParameter<int>("max_lumisection") / lumiblock);
432 
433  addExtractor(
434  intern("BX"),
435  [](InterestingQuantities const& iq) {
436  if (!iq.sourceEvent)
437  return UNDEFINED;
438  return Value(iq.sourceEvent->bunchCrossing());
439  },
440  1,
441  iConfig.getParameter<int>("max_bunchcrossing"));
442 }
443 
445  // stuff that is within modules. Might require some phase0/phase1/strip switching later
446  addExtractor(
447  intern("row"),
448  [](InterestingQuantities const& iq) { return Value(iq.row); },
449  0,
450  iConfig.getParameter<int>("module_rows") - 1);
451  addExtractor(
452  intern("col"),
453  [](InterestingQuantities const& iq) { return Value(iq.col); },
454  0,
455  iConfig.getParameter<int>("module_cols") - 1);
456 }
457 
458 void GeometryInterface::loadFEDCabling(const SiPixelFedCablingMap* labeledSiPixelFedCablingMap) {
459  std::shared_ptr<SiPixelFrameReverter> siPixelFrameReverter =
460  // I think passing the bare pointer here is safe, but who knows...
461  std::make_shared<SiPixelFrameReverter>(labeledSiPixelFedCablingMap);
462 
463  addExtractor(intern("FED"), [siPixelFrameReverter](InterestingQuantities const& iq) {
464  if (iq.sourceModule == 0xFFFFFFFF)
465  return Value(iq.col); // hijacked for the raw data plugin
466  return Value(siPixelFrameReverter->findFedId(iq.sourceModule.rawId()));
467  });
468 
469  // TODO: ranges should be set manually below, since booking probably cannot
470  // infer them correctly (no ROC-level granularity)
471  // PERF: this is slow. Prefer SiPixelCordinates versions here.
472  addExtractor(intern("LinkInFed"), [siPixelFrameReverter](InterestingQuantities const& iq) {
473  if (iq.sourceModule == 0xFFFFFFFF)
474  return Value(iq.row); // hijacked for the raw data plugin
475  sipixelobjects::GlobalPixel gp = {iq.row, iq.col};
476  return Value(siPixelFrameReverter->findLinkInFed(iq.sourceModule.rawId(), gp));
477  });
478  // not sure if this is useful anywhere.
479  addExtractor(intern("RocInLink"), [siPixelFrameReverter](InterestingQuantities const& iq) {
481  return Value(siPixelFrameReverter->findRocInLink(iq.sourceModule.rawId(), gp));
482  });
483  // This might be equivalent to our ROC numbering.
484  addExtractor(intern("RocInDet"), [siPixelFrameReverter](InterestingQuantities const& iq) {
486  return Value(siPixelFrameReverter->findRocInDet(iq.sourceModule.rawId(), gp));
487  });
488 }
489 
491  auto it = format_value.find(std::make_pair(col, val));
492  if (it != format_value.end())
493  return it->second;
494 
495  // non-number output names (_pO etc.) are hardwired here.
497  std::string value = "_" + std::to_string(int(val));
498  if (val == 0)
499  value = ""; // hide Barrel_0 etc.
500  if (name == "PXDisk" && val > 0) // +/- sign for disk num
501  value = "_+" + std::to_string(int(val));
502  // pretty (legacy?) names for Shells and HalfCylinders
503  std::map<int, std::string> shellname{{11, "_mI"}, {12, "_mO"}, {21, "_pI"}, {22, "_pO"}};
504  if (name == "HalfCylinder" || name == "Shell")
505  value = shellname[int(val)];
506  if (val == UNDEFINED)
507  value = "_UNDEFINED";
508  return format_value[std::make_pair(col, val)] = name + value;
509 }
electrons_cff.bool
bool
Definition: electrons_cff.py:372
GeometryInterface::max_value
std::map< ID, Value > max_value
Definition: GeometryInterface.h:161
edm::ESInputTag
Definition: ESInputTag.h:87
PixelBarrelName.h
MessageLogger.h
edm::EventBase::bunchCrossing
int bunchCrossing() const
Definition: EventBase.h:64
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
TrackerTopology::PBModule
Definition: TrackerTopology.h:102
GeometryInterface::InterestingQuantities::sourceModule
DetId sourceModule
Definition: GeometryInterface.h:60
PixelTopology.h
GeometryInterface::cablingMapLabel_
std::string cablingMapLabel_
Definition: GeometryInterface.h:152
ESHandle.h
groupFilesInBlocks.tt
int tt
Definition: groupFilesInBlocks.py:144
GeometryInterface::InterestingQuantities::col
int16_t col
Definition: GeometryInterface.h:61
TrackerTopology::PFPanel
Definition: TrackerTopology.h:106
GeometryInterface::ids
std::map< std::string, ID > ids
Definition: GeometryInterface.h:183
TrackerTopology
Definition: TrackerTopology.h:16
TrackerTopology::PBLadder
Definition: TrackerTopology.h:103
mod
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
cuy.col
col
Definition: cuy.py:1010
edm::LogInfo
Definition: MessageLogger.h:254
PixelBarrelName
Definition: PixelBarrelName.h:16
GeometryInterface::format_value
std::map< std::pair< Column, Value >, std::string > format_value
Definition: GeometryInterface.h:167
cms::cuda::assert
assert(be >=bs)
GeometryInterface::GeometryInterface
GeometryInterface(const edm::ParameterSet &, edm::ConsumesCollector &&, edm::Transition transition=edm::Transition::BeginRun)
Definition: GeometryInterface.cc:39
trackerGeometry_cfi.trackerGeometry
trackerGeometry
Definition: trackerGeometry_cfi.py:3
PTrackerParameters.h
GeometryInterface::loadFromTopology
void loadFromTopology(const TrackerGeometry &, const TrackerTopology &, const edm::ParameterSet &)
Definition: GeometryInterface.cc:91
TrackerTopology::DetIdFields
DetIdFields
Definition: TrackerTopology.h:101
GeometryInterface::pretty
std::string pretty(Column col)
Definition: GeometryInterface.h:125
HLT_2018_cff.phase
phase
Definition: HLT_2018_cff.py:5346
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
GeometryInterface::load
void load(edm::EventSetup const &iSetup)
Definition: GeometryInterface.cc:67
GeometryInterface::Value
double Value
Definition: GeometryInterface.h:41
GeometryInterface.h
DetId
Definition: DetId.h:17
GeometryInterface::addExtractor
void addExtractor(ID id, std::function< Value(InterestingQuantities const &iq)> func, Value min=UNDEFINED, Value max=UNDEFINED, Value binwidth=1)
Definition: GeometryInterface.h:169
GeometryInterface::formatValue
std::string formatValue(Column, Value)
Definition: GeometryInterface.cc:490
PixelEndcapName
Definition: PixelEndcapName.h:16
SiPixelPI::quadrant
int quadrant(const DetId &detid, const TrackerTopology *tTopo_, bool phase_)
Definition: SiPixelPayloadInspectorHelper.h:54
sipixelobjects::GlobalPixel
global coordinates (row and column in DetUnit, as in PixelDigi)
Definition: GlobalPixel.h:6
GeometryInterface::labeledSiPixelFedCablingMapToken_
edm::ESGetToken< SiPixelFedCablingMap, SiPixelFedCablingMapRcd > labeledSiPixelFedCablingMapToken_
Definition: GeometryInterface.h:151
PixelGeomDetUnit
Definition: PixelGeomDetUnit.h:15
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
PixelTopology::ncolumns
virtual int ncolumns() const =0
GeometryInterface::trackerTopologyToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyToken_
Definition: GeometryInterface.h:142
GeometryInterface::loadModuleLevel
void loadModuleLevel(const edm::ParameterSet &iConfig)
Definition: GeometryInterface.cc:444
PixelTopology
Definition: PixelTopology.h:10
GeometryInterface::InterestingQuantities::sourceEvent
const edm::Event * sourceEvent
Definition: GeometryInterface.h:59
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TrackerTopology::PFSide
Definition: TrackerTopology.h:109
runTauDisplay.gp
gp
Definition: runTauDisplay.py:431
edm::ParameterSet
Definition: ParameterSet.h:36
edm::Transition
Transition
Definition: Transition.h:12
edm::EventBase::luminosityBlock
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:61
PixelGeomDetUnit::specificTopology
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
Definition: PixelGeomDetUnit.cc:17
TrackerTopology::PBLayer
Definition: TrackerTopology.h:104
recoMuon::in
Definition: RecoMuonEnumerators.h:6
GeometryInterface::is_loaded
bool is_loaded
Definition: GeometryInterface.h:154
GeometryInterface::UNDEFINED
static const Value UNDEFINED
Definition: GeometryInterface.h:42
createfilelist.int
int
Definition: createfilelist.py:10
TrackerTopology::PFModule
Definition: TrackerTopology.h:105
value
Definition: value.py:1
GeometryInterface::loadFromSiPixelCoordinates
void loadFromSiPixelCoordinates(const TrackerGeometry &, const TrackerTopology &, const SiPixelFedCablingMap &, const edm::ParameterSet &)
Definition: GeometryInterface.cc:202
edm::EventSetup
Definition: EventSetup.h:57
GeometryInterface::iConfig
const edm::ParameterSet iConfig
Definition: GeometryInterface.h:139
GeometryInterface::all_modules
std::vector< InterestingQuantities > all_modules
Definition: GeometryInterface.h:180
GeometryInterface::Column
ID Column
Definition: GeometryInterface.h:40
GeometryInterface::trackerGeometryToken_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometryToken_
Definition: GeometryInterface.h:141
SiPixelFedCablingMap
Definition: SiPixelFedCablingMap.h:19
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:113
GeometryInterface::loadTimebased
void loadTimebased(const edm::ParameterSet &iConfig)
Definition: GeometryInterface.cc:393
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
ESInputTag.h
edm::Transition::EndLuminosityBlock
heppy_batch.val
val
Definition: heppy_batch.py:351
trackerTopology_cfi.trackerTopology
trackerTopology
Definition: trackerTopology_cfi.py:3
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
GeometryInterface::loadFEDCabling
void loadFEDCabling(const SiPixelFedCablingMap *)
Definition: GeometryInterface.cc:458
GeometryInterface::intern
ID intern(std::string const &id)
Definition: GeometryInterface.h:106
HistogramManager_cfi.n_onlineblocks
n_onlineblocks
Definition: HistogramManager_cfi.py:28
GeometryInterface::extractors
std::vector< std::function< Value(InterestingQuantities const &iq)> > extractors
Definition: GeometryInterface.h:158
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
edm::Transition::BeginRun
relativeConstraints.value
value
Definition: relativeConstraints.py:53
PixelGeomDetUnit.h
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
GeometryInterface::InterestingQuantities::row
int16_t row
Definition: GeometryInterface.h:62
GeometryInterface::InterestingQuantities
Definition: GeometryInterface.h:57
TrackerTopology::PFDisk
Definition: TrackerTopology.h:108
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
SiPixelFedCablingMapRcd
Definition: SiPixelFedCablingMapRcd.h:5
SiPixelOfflineDQM_client_cff.isUpgrade
isUpgrade
Definition: SiPixelOfflineDQM_client_cff.py:19
PixelTopology::nrows
virtual int nrows() const =0
HistogramManager_cfi.lumiblock
lumiblock
Definition: HistogramManager_cfi.py:31
GeometryInterface::min_value
std::map< ID, Value > min_value
Definition: GeometryInterface.h:162
GeometryInterface::siPixelFedCablingMapToken_
edm::ESGetToken< SiPixelFedCablingMap, SiPixelFedCablingMapRcd > siPixelFedCablingMapToken_
Definition: GeometryInterface.h:150
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
SiPixelCoordinates.h
HistogramManager_cfi.onlineblock
onlineblock
Definition: HistogramManager_cfi.py:27
TrackerTopology::PFBlade
Definition: TrackerTopology.h:107
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
PixelEndcapName.h
TrackerGeometry
Definition: TrackerGeometry.h:14
SiPixelFrameReverter.h