CMS 3D CMS Logo

MeasurementTrackerEventProducer.cc
Go to the documentation of this file.
2 
7 
14 
15 #include <algorithm>
16 
18  : measurementTrackerLabel_(iConfig.getParameter<std::string>("measurementTracker")),
19  switchOffPixelsIfEmpty_(iConfig.getParameter<bool>("switchOffPixelsIfEmpty")) {
20  std::vector<edm::InputTag> inactivePixelDetectorTags(
21  iConfig.getParameter<std::vector<edm::InputTag>>("inactivePixelDetectorLabels"));
22  for (auto& t : inactivePixelDetectorTags)
23  theInactivePixelDetectorLabels.push_back(consumes<DetIdCollection>(t));
24 
25  std::vector<edm::InputTag> badPixelFEDChannelCollectionTags =
26  iConfig.getParameter<std::vector<edm::InputTag>>("badPixelFEDChannelCollectionLabels");
27  if (!badPixelFEDChannelCollectionTags.empty()) {
28  for (auto& t : badPixelFEDChannelCollectionTags)
29  theBadPixelFEDChannelsLabels.push_back(consumes<PixelFEDChannelCollection>(t));
30  pixelCablingMapLabel_ = iConfig.getParameter<std::string>("pixelCablingMapLabel");
31  }
32 
33  std::vector<edm::InputTag> inactiveStripDetectorTags(
34  iConfig.getParameter<std::vector<edm::InputTag>>("inactiveStripDetectorLabels"));
35  for (auto& t : inactiveStripDetectorTags)
36  theInactiveStripDetectorLabels.push_back(consumes<DetIdCollection>(t));
37 
38  //the measurement tracking is set to skip clusters, the other option is set from outside
39  edm::InputTag skip = iConfig.getParameter<edm::InputTag>("skipClusters");
41  LogDebug("MeasurementTracker") << "skipping clusters: " << selfUpdateSkipClusters_;
42  isPhase2_ = false;
43  useVectorHits_ = false;
44 
45  if (!iConfig.getParameter<std::string>("stripClusterProducer").empty()) {
46  theStripClusterLabel = consumes<edmNew::DetSetVector<SiStripCluster>>(
47  edm::InputTag(iConfig.getParameter<std::string>("stripClusterProducer")));
49  theStripClusterMask = consumes<edm::ContainerMask<edmNew::DetSetVector<SiStripCluster>>>(
50  iConfig.getParameter<edm::InputTag>("skipClusters"));
51  }
52  if (!iConfig.getParameter<std::string>("pixelClusterProducer").empty()) {
53  thePixelClusterLabel = consumes<edmNew::DetSetVector<SiPixelCluster>>(
54  edm::InputTag(iConfig.getParameter<std::string>("pixelClusterProducer")));
56  thePixelClusterMask = consumes<edm::ContainerMask<edmNew::DetSetVector<SiPixelCluster>>>(
57  iConfig.getParameter<edm::InputTag>("skipClusters"));
58  }
59  if (!iConfig.getParameter<std::string>("Phase2TrackerCluster1DProducer").empty()) {
60  thePh2OTClusterLabel = consumes<edmNew::DetSetVector<Phase2TrackerCluster1D>>(
61  edm::InputTag(iConfig.getParameter<std::string>("Phase2TrackerCluster1DProducer")));
62  isPhase2_ = true;
63  }
64  if (!(iConfig.getParameter<edm::InputTag>("vectorHits") == edm::InputTag("") ||
65  iConfig.getParameter<edm::InputTag>("vectorHitsRej") == edm::InputTag(""))) {
66  thePh2OTVectorHitsLabel = consumes<VectorHitCollection>(iConfig.getParameter<edm::InputTag>("vectorHits"));
67  thePh2OTVectorHitsRejLabel = consumes<VectorHitCollection>(iConfig.getParameter<edm::InputTag>("vectorHitsRej"));
68  isPhase2_ = true;
69  useVectorHits_ = true;
70  }
71 
72  produces<MeasurementTrackerEvent>();
73 }
74 
77 
78  desc.add<std::string>("measurementTracker", "");
79  desc.add<edm::InputTag>("skipClusters", edm::InputTag());
80  desc.add<std::string>("pixelClusterProducer", "siPixelClusters");
81  desc.add<std::string>("stripClusterProducer", "siStripClusters");
82  desc.add<std::string>("Phase2TrackerCluster1DProducer", "");
83  desc.add<edm::InputTag>("vectorHits", edm::InputTag(""));
84  desc.add<edm::InputTag>("vectorHitsRej", edm::InputTag(""));
85 
86  desc.add<std::vector<edm::InputTag>>("inactivePixelDetectorLabels",
87  std::vector<edm::InputTag>{{edm::InputTag("siPixelDigis")}})
88  ->setComment("One or more DetIdCollections of modules to mask on the fly for a given event");
89  desc.add<std::vector<edm::InputTag>>("badPixelFEDChannelCollectionLabels", std::vector<edm::InputTag>())
90  ->setComment("One or more PixelFEDChannelCollections of modules+ROCs to mask on the fly for a given event");
91  desc.add<std::string>("pixelCablingMapLabel", "");
92 
93  desc.add<std::vector<edm::InputTag>>("inactiveStripDetectorLabels",
94  std::vector<edm::InputTag>{{edm::InputTag("siStripDigis")}})
95  ->setComment("One or more DetIdCollections of modules to mask on the fly for a given event");
96 
97  desc.add<bool>("switchOffPixelsIfEmpty", true)->setComment("let's keep it like this, for cosmics");
98 
99  descriptions.add("measurementTrackerEventDefault", desc);
100 }
101 
105 
106  // create new data structures from templates
107  auto stripData = std::make_unique<StMeasurementDetSet>(measurementTracker->stripDetConditions());
108  auto pixelData = std::make_unique<PxMeasurementDetSet>(measurementTracker->pixelDetConditions());
109  auto phase2OTData = std::make_unique<Phase2OTMeasurementDetSet>(measurementTracker->phase2DetConditions());
110 
111  std::vector<bool> stripClustersToSkip;
112  std::vector<bool> pixelClustersToSkip;
113  std::vector<bool> phase2ClustersToSkip;
114  // fill them
115  updateStrips(iEvent, *stripData, stripClustersToSkip);
117  *pixelData,
118  pixelClustersToSkip,
119  dynamic_cast<const TrackerGeometry&>(*(measurementTracker->geomTracker())),
120  iSetup);
121  updatePhase2OT(iEvent, *phase2OTData);
122  updateStacks(iEvent, *phase2OTData);
123 
124  // put into MTE
125  // put into event
126  //
127 
128  const VectorHitCollection* phase2OTVectorHits = useVectorHits_ ? &iEvent.get(thePh2OTVectorHitsLabel) : nullptr;
129  const VectorHitCollection* phase2OTVectorHitsRej = useVectorHits_ ? &iEvent.get(thePh2OTVectorHitsRejLabel) : nullptr;
130  iEvent.put(std::make_unique<MeasurementTrackerEvent>(*measurementTracker,
131  stripData.release(),
132  pixelData.release(),
133  phase2OTData.release(),
134  phase2OTVectorHits,
135  phase2OTVectorHitsRej,
136  stripClustersToSkip,
137  pixelClustersToSkip,
138  phase2ClustersToSkip));
139 }
140 
142  PxMeasurementDetSet& thePxDets,
143  std::vector<bool>& pixelClustersToSkip,
144  const TrackerGeometry& trackerGeom,
145  const edm::EventSetup& iSetup) const {
146  // start by clearinng everything
147  thePxDets.setEmpty();
148 
149  std::vector<uint32_t> rawInactiveDetIds;
150  if (!theInactivePixelDetectorLabels.empty()) {
153  if (event.getByToken(tk, detIds)) {
154  rawInactiveDetIds.insert(rawInactiveDetIds.end(), detIds->begin(), detIds->end());
155  } else {
156  static std::atomic<bool> iFailedAlready{false};
157  bool expected = false;
158  if (iFailedAlready.compare_exchange_strong(expected, true, std::memory_order_acq_rel)) {
159  edm::LogError("MissingProduct")
160  << "I fail to get the list of inactive pixel modules, because of 4.2/4.4 event content change.";
161  }
162  }
163  }
164  if (!rawInactiveDetIds.empty())
165  std::sort(rawInactiveDetIds.begin(), rawInactiveDetIds.end());
166  // mark as inactive if in rawInactiveDetIds
167  int i = 0, endDet = thePxDets.size();
168  unsigned int idp = 0;
169  for (auto id : rawInactiveDetIds) {
170  if (id == idp)
171  continue; // skip multiple id
172  idp = id;
173  i = thePxDets.find(id, i);
174  assert(i != endDet && id == thePxDets.id(i));
175  thePxDets.setActiveThisEvent(i, false);
176  }
177  }
178 
179  if (!theBadPixelFEDChannelsLabels.empty()) {
181  iSetup.get<SiPixelFedCablingMapRcd>().get(pixelCablingMapLabel_, cablingMap);
182 
183  edm::Handle<PixelFEDChannelCollection> pixelFEDChannelCollectionHandle;
185  if (!event.getByToken(tk, pixelFEDChannelCollectionHandle))
186  continue;
187  int i = 0;
188  for (const auto& disabledChannels : *pixelFEDChannelCollectionHandle) {
190  for (const auto& ch : disabledChannels) {
191  const sipixelobjects::PixelROC *roc_first = nullptr, *roc_last = nullptr;
192  sipixelobjects::CablingPathToDetUnit path = {ch.fed, ch.link, 0};
193  // PixelFEDChannelCollection addresses the ROCs by their 'idInDetUnit' (from 0 to 15), ROCs also know their on 'idInDetUnit',
194  // however the cabling map uses a numbering [1,numberOfROCs], see sipixelobjects::PixelFEDLink::roc(unsigned int id), not necessarily sorted in the same direction.
195  // PixelFEDChannelCollection MUST be filled such that ch.roc_first (ch.roc_last) correspond to the lowest (highest) 'idInDetUnit' in the channel
196  for (path.roc = 1; path.roc <= (ch.roc_last - ch.roc_first) + 1; path.roc++) {
197  const sipixelobjects::PixelROC* roc = cablingMap->findItem(path);
198  if (roc == nullptr)
199  continue;
200  assert(roc->rawId() == disabledChannels.detId());
201  if (roc->idInDetUnit() == ch.roc_first)
202  roc_first = roc;
203  if (roc->idInDetUnit() == ch.roc_last)
204  roc_last = roc;
205  }
206  if (roc_first == nullptr || roc_last == nullptr) {
207  edm::LogError("PixelFEDChannelCollection")
208  << "Do not find either roc_first or roc_last in the cabling map.";
209  continue;
210  }
211  const PixelGeomDetUnit* theGeomDet =
212  dynamic_cast<const PixelGeomDetUnit*>(trackerGeom.idToDet(roc_first->rawId()));
213  PixelTopology const* topology = &(theGeomDet->specificTopology());
215  topology->rowsperroc() / 2, topology->colsperroc() / 2}; //corresponding to center of ROC row, col
217  LocalPoint lp1 = topology->localPosition(MeasurementPoint(global.row, global.col));
218  global = roc_last->toGlobal(sipixelobjects::LocalPixel(local));
219  LocalPoint lp2 = topology->localPosition(MeasurementPoint(global.row, global.col));
220  LocalPoint ll(std::min(lp1.x(), lp2.x()), std::min(lp1.y(), lp2.y()), std::min(lp1.z(), lp2.z()));
221  LocalPoint ur(std::max(lp1.x(), lp2.x()), std::max(lp1.y(), lp2.y()), std::max(lp1.z(), lp2.z()));
222  positions.push_back(std::make_pair(ll, ur));
223  } // loop on channels
224  if (!positions.empty()) {
225  i = thePxDets.find(disabledChannels.detId(), i);
226  assert(i != thePxDets.size() && thePxDets.id(i) == disabledChannels.detId());
227  thePxDets.addBadFEDChannelPositions(i, positions);
228  }
229  } // loop on DetId-s
230  } // loop on labels
231  } // if collection labels are populated
232 
233  // Pixel Clusters
234  if (thePixelClusterLabel.isUninitialized()) { //clusters have not been produced
236  thePxDets.setActiveThisEvent(false);
237  }
238  } else {
240  if (event.getByToken(thePixelClusterLabel, pixelClusters)) {
241  const edmNew::DetSetVector<SiPixelCluster>* pixelCollection = pixelClusters.product();
242 
243  if (switchOffPixelsIfEmpty_ && pixelCollection->empty()) {
244  thePxDets.setActiveThisEvent(false);
245  } else {
246  //std::cout <<"updatePixels "<<pixelCollection->dataSize()<<std::endl;
247  pixelClustersToSkip.resize(pixelCollection->dataSize());
248  std::fill(pixelClustersToSkip.begin(), pixelClustersToSkip.end(), false);
249 
252  //and get the collection of pixel ref to skip
253  event.getByToken(thePixelClusterMask, pixelClusterMask);
254  LogDebug("MeasurementTracker") << "getting pxl refs to skip";
255  if (pixelClusterMask.failedToGet())
256  edm::LogError("MeasurementTracker") << "not getting the pixel clusters to skip";
257  if (pixelClusterMask->refProd().id() != pixelClusters.id()) {
258  edm::LogError("ProductIdMismatch")
259  << "The pixel masking does not point to the proper collection of clusters: "
260  << pixelClusterMask->refProd().id() << "!=" << pixelClusters.id();
261  }
262  pixelClusterMask->copyMaskTo(pixelClustersToSkip);
263  }
264 
265  // FIXME: should check if lower_bound is better
266  int i = 0, endDet = thePxDets.size();
267  for (edmNew::DetSetVector<SiPixelCluster>::const_iterator it = pixelCollection->begin(),
268  ed = pixelCollection->end();
269  it != ed;
270  ++it) {
272  unsigned int id = set.id();
273  while (id != thePxDets.id(i)) {
274  ++i;
275  if (endDet == i)
276  throw "we have a problem!!!!";
277  }
278  // push cluster range in det
279  if (thePxDets.isActive(i)) {
280  thePxDets.update(i, set);
281  }
282  }
283  }
284  } else {
286  labelsForToken(thePixelClusterLabel, labels);
287  edm::LogWarning("MeasurementTrackerEventProducer")
288  << "input pixel clusters collection " << labels.module << " is not valid";
289  }
290  }
291 }
292 
294  StMeasurementDetSet& theStDets,
295  std::vector<bool>& stripClustersToSkip) const {
296  typedef edmNew::DetSet<SiStripCluster> StripDetSet;
297 
298  std::vector<uint32_t> rawInactiveDetIds;
299  getInactiveStrips(event, rawInactiveDetIds);
300 
301  // Strip Clusters
302  //first clear all of them
303  theStDets.setEmpty();
304 
306  return; //clusters have not been produced
307 
308  const int endDet = theStDets.size();
309 
310  // mark as inactive if in rawInactiveDetIds
311  int i = 0;
312  unsigned int idp = 0;
313  for (auto id : rawInactiveDetIds) {
314  if (id == idp)
315  continue; // skip multiple id
316  idp = id;
317  i = theStDets.find(id, i);
318  assert(i != endDet && id == theStDets.id(i));
319  theStDets.setActiveThisEvent(i, false);
320  }
321 
322  //========= actually load cluster =============
323  {
325  if (event.getByToken(theStripClusterLabel, clusterHandle)) {
326  const edmNew::DetSetVector<SiStripCluster>* clusterCollection = clusterHandle.product();
327 
330  //and get the collection of pixel ref to skip
331  LogDebug("MeasurementTracker") << "getting strp refs to skip";
332  event.getByToken(theStripClusterMask, stripClusterMask);
333  if (stripClusterMask.failedToGet())
334  edm::LogError("MeasurementTracker") << "not getting the strip clusters to skip";
335  if (stripClusterMask->refProd().id() != clusterHandle.id()) {
336  edm::LogError("ProductIdMismatch")
337  << "The strip masking does not point to the proper collection of clusters: "
338  << stripClusterMask->refProd().id() << "!=" << clusterHandle.id();
339  }
340  stripClusterMask->copyMaskTo(stripClustersToSkip);
341  }
342 
343  theStDets.handle() = clusterHandle;
344  int i = 0;
345  // cluster and det and in order (both) and unique so let's use set intersection
346  for (auto j = 0U; j < (*clusterCollection).size(); ++j) {
347  unsigned int id = (*clusterCollection).id(j);
348  while (id != theStDets.id(i)) { // eventually change to lower_bound
349  ++i;
350  if (endDet == i)
351  throw "we have a problem in strips!!!!";
352  }
353 
354  // push cluster range in det
355  if (theStDets.isActive(i))
356  theStDets.update(i, j);
357  }
358  } else {
360  labelsForToken(theStripClusterLabel, labels);
361  edm::LogWarning("MeasurementTrackerEventProducer")
362  << "input strip cluster collection " << labels.module << " is not valid";
363  }
364  }
365 }
366 
367 //FIXME: just a temporary solution for phase2!
369  Phase2OTMeasurementDetSet& thePh2OTDets) const {
370  thePh2OTDets.setEmpty();
371 
372  // Phase2OT Clusters
373  if (isPhase2_) {
374  if (thePh2OTClusterLabel.isUninitialized()) { //clusters have not been produced
375  thePh2OTDets.setActiveThisEvent(false);
376  } else {
378  if (event.getByToken(thePh2OTClusterLabel, phase2OTClusters)) {
379  const edmNew::DetSetVector<Phase2TrackerCluster1D>* phase2OTCollection = phase2OTClusters.product();
380 
381  int i = 0, endDet = thePh2OTDets.size();
383  ed = phase2OTCollection->end();
384  it != ed;
385  ++it) {
387  unsigned int id = set.id();
388  while (id != thePh2OTDets.id(i)) {
389  ++i;
390  if (endDet == i)
391  throw "we have a problem!!!!";
392  }
393  // push cluster range in det
394  if (thePh2OTDets.isActive(i)) {
395  thePh2OTDets.update(i, set);
396  }
397  }
398  } else {
400  labelsForToken(thePh2OTClusterLabel, labels);
401  edm::LogWarning("MeasurementTrackerEventProducer")
402  << "input Phase2TrackerCluster1D collection " << labels.module << " is not valid";
403  }
404  }
405  }
406  return;
407 }
408 
410  std::vector<uint32_t>& rawInactiveDetIds) const {
411  if (!theInactiveStripDetectorLabels.empty()) {
414  if (event.getByToken(tk, detIds)) {
415  rawInactiveDetIds.insert(rawInactiveDetIds.end(), detIds->begin(), detIds->end());
416  }
417  }
418  if (!rawInactiveDetIds.empty())
419  std::sort(rawInactiveDetIds.begin(), rawInactiveDetIds.end());
420  }
421 }
422 
ConfigurationDescriptions.h
TrackerGeometry::idToDet
const TrackerGeomDet * idToDet(DetId) const override
Definition: TrackerGeometry.cc:193
SummaryClient_cfi.labels
labels
Definition: SummaryClient_cfi.py:61
edm::EDCollection::begin
const_iterator begin() const
Definition: EDCollection.h:117
electrons_cff.bool
bool
Definition: electrons_cff.py:366
mps_fire.i
i
Definition: mps_fire.py:428
MeasurementTrackerEvent.h
LumiMonitor_cff.pixelClusters
pixelClusters
Definition: LumiMonitor_cff.py:10
MeasurementTrackerEventProducer::theStripClusterMask
edm::EDGetTokenT< edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > > theStripClusterMask
Definition: MeasurementTrackerEventProducer.h:47
MeasurementTrackerEventProducer::thePh2OTClusterLabel
edm::EDGetTokenT< edmNew::DetSetVector< Phase2TrackerCluster1D > > thePh2OTClusterLabel
Definition: MeasurementTrackerEventProducer.h:43
edm::Handle::product
T const * product() const
Definition: Handle.h:70
MeasurementTrackerEventProducer::theInactivePixelDetectorLabels
std::vector< edm::EDGetTokenT< DetIdCollection > > theInactivePixelDetectorLabels
Definition: MeasurementTrackerEventProducer.h:49
PxMeasurementDetSet::update
void update(int i, const PixelDetSet &detSet)
Definition: TkMeasurementDetSet.h:339
ESHandle.h
HLTSiStripMonitoring_cff.measurementTracker
measurementTracker
Definition: HLTSiStripMonitoring_cff.py:178
StMeasurementDetSet::size
int size() const
Definition: TkMeasurementDetSet.h:173
MeasurementTrackerEventProducer::isPhase2_
bool isPhase2_
Definition: MeasurementTrackerEventProducer.h:56
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
min
T min(T a, T b)
Definition: MathUtil.h:58
edm::EDGetTokenT
Definition: EDGetToken.h:33
MeasurementTrackerEventProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: MeasurementTrackerEventProducer.cc:102
PixelTopology::colsperroc
virtual int colsperroc() const =0
PxMeasurementDetSet::size
int size() const
Definition: TkMeasurementDetSet.h:334
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
StMeasurementDetSet::setEmpty
void setEmpty(int i)
Definition: TkMeasurementDetSet.h:181
edmNew::DetSetVector::const_iterator
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetSetVectorNew.h:197
Phase2OTMeasurementDetSet::setActiveThisEvent
void setActiveThisEvent(bool active)
Definition: TkMeasurementDetSet.h:465
MeasurementTrackerEventProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: MeasurementTrackerEventProducer.cc:75
cms::cuda::assert
assert(be >=bs)
PxMeasurementDetSet::find
int find(unsigned int jd, int i=0) const
Definition: TkMeasurementDetSet.h:337
edm::EDGetTokenT::isUninitialized
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:99
sipixelobjects::GlobalPixel::row
int row
Definition: GlobalPixel.h:7
edmNew::DetSetVector::begin
const_iterator begin(bool update=false) const
Definition: DetSetVectorNew.h:545
MeasurementTrackerEventProducer.h
Topology::localPosition
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
MeasurementTrackerEventProducer::thePh2OTVectorHitsLabel
edm::EDGetTokenT< VectorHitCollection > thePh2OTVectorHitsLabel
Definition: MeasurementTrackerEventProducer.h:44
Phase2OTMeasurementDetSet::update
void update(int i, const Phase2DetSet &detSet)
Definition: TkMeasurementDetSet.h:448
Phase2OTMeasurementDetSet::setEmpty
void setEmpty(int i)
Definition: TkMeasurementDetSet.h:456
CkfComponentsRecord.h
edm::Handle
Definition: AssociativeIterator.h:50
sipixelobjects::GlobalPixel::col
int col
Definition: GlobalPixel.h:8
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
HLTEgPhaseIITestSequence_cff.phase2OTClusters
phase2OTClusters
Definition: HLTEgPhaseIITestSequence_cff.py:722
sipixelobjects::LocalPixel
identify pixel inside single ROC
Definition: LocalPixel.h:7
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
Phase2OTMeasurementDetSet
Definition: TkMeasurementDetSet.h:433
optionsL1T.skip
skip
Definition: optionsL1T.py:30
MakerMacros.h
PxMeasurementDetSet::id
unsigned int id(int i) const
Definition: TkMeasurementDetSet.h:336
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
sipixelobjects::GlobalPixel
global coordinates (row and column in DetUnit, as in PixelDigi)
Definition: GlobalPixel.h:6
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
MeasurementTrackerEventProducer::updateStrips
void updateStrips(const edm::Event &, StMeasurementDetSet &theStDets, std::vector< bool > &stripClustersToSkip) const
Definition: MeasurementTrackerEventProducer.cc:293
CkfComponentsRecord
Definition: CkfComponentsRecord.h:22
MeasurementTrackerEventProducer::thePixelClusterMask
edm::EDGetTokenT< edm::ContainerMask< edmNew::DetSetVector< SiPixelCluster > > > thePixelClusterMask
Definition: MeasurementTrackerEventProducer.h:46
MeasurementTrackerEventProducer::theInactiveStripDetectorLabels
std::vector< edm::EDGetTokenT< DetIdCollection > > theInactiveStripDetectorLabels
Definition: MeasurementTrackerEventProducer.h:52
PixelGeomDetUnit
Definition: PixelGeomDetUnit.h:15
sipixelobjects::CablingPathToDetUnit
Definition: CablingPathToDetUnit.h:5
PxMeasurementDetSet::handle
const edm::Handle< edmNew::DetSetVector< SiPixelCluster > > & handle() const
Definition: TkMeasurementDetSet.h:385
PxMeasurementDetSet::setEmpty
void setEmpty(int i)
Definition: TkMeasurementDetSet.h:347
edm::ESHandle< MeasurementTracker >
MeasurementTrackerEventProducer::MeasurementTrackerEventProducer
MeasurementTrackerEventProducer(const edm::ParameterSet &iConfig)
Definition: MeasurementTrackerEventProducer.cc:17
edmNew::DetSet
Definition: DetSetNew.h:22
Phase2OTMeasurementDetSet::handle
const edm::Handle< edmNew::DetSetVector< Phase2TrackerCluster1D > > & handle() const
Definition: TkMeasurementDetSet.h:471
Point3DBase< float, LocalTag >
ParameterSetDescription.h
PixelTopology
Definition: PixelTopology.h:10
sipixelobjects::PixelROC::rawId
uint32_t rawId() const
return the DetUnit to which this ROC belongs to.
Definition: PixelROC.h:34
PxMeasurementDetSet
Definition: TkMeasurementDetSet.h:323
Phase2OTMeasurementDetSet::id
unsigned int id(int i) const
Definition: TkMeasurementDetSet.h:445
StMeasurementDetSet
Definition: TkMeasurementDetSet.h:138
edmNew::DetSetVector::dataSize
size_type dataSize() const
Definition: DetSetVectorNew.h:567
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
MeasurementPoint
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
Definition: MeasurementPoint.h:12
ntuplemaker.fill
fill
Definition: ntuplemaker.py:304
MeasurementTrackerEventProducer::measurementTrackerLabel_
std::string measurementTrackerLabel_
Definition: MeasurementTrackerEventProducer.h:40
PxMeasurementDetSet::BadFEDChannelPositions
std::vector< std::pair< LocalPoint, LocalPoint > > BadFEDChannelPositions
Definition: TkMeasurementDetSet.h:327
edm::HandleBase::failedToGet
bool failedToGet() const
Definition: HandleBase.h:72
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
edm::ParameterSet
Definition: ParameterSet.h:47
PixelROC.h
CablingPathToDetUnit.h
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
edmNew::DetSetVector::empty
bool empty() const
Definition: DetSetVectorNew.h:565
PixelGeomDetUnit::specificTopology
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
Definition: PixelGeomDetUnit.cc:17
MeasurementTrackerEventProducer::updatePixels
void updatePixels(const edm::Event &, PxMeasurementDetSet &thePxDets, std::vector< bool > &pixelClustersToSkip, const TrackerGeometry &trackerGeom, const edm::EventSetup &iSetup) const
Definition: MeasurementTrackerEventProducer.cc:141
edmNew::DetSet::id
id_type id() const
Definition: DetSetNew.h:64
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
iEvent
int iEvent
Definition: GenABIO.cc:224
LocalPixel.h
MeasurementTrackerEventProducer::updateStacks
void updateStacks(const edm::Event &, Phase2OTMeasurementDetSet &theStDets) const
Definition: MeasurementTrackerEventProducer.h:36
MeasurementTrackerEventProducer::pixelCablingMapLabel_
std::string pixelCablingMapLabel_
Definition: MeasurementTrackerEventProducer.h:51
edm::EventSetup
Definition: EventSetup.h:58
sipixelobjects::PixelROC::toGlobal
GlobalPixel toGlobal(const LocalPixel &loc) const
Definition: PixelROC.h:55
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
PixelTopology::rowsperroc
virtual int rowsperroc() const =0
get
#define get
MeasurementTrackerEventProducer
Definition: MeasurementTrackerEventProducer.h:17
StMeasurementDetSet::find
int find(unsigned int jd, int i=0) const
Definition: TkMeasurementDetSet.h:176
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
PxMeasurementDetSet::addBadFEDChannelPositions
void addBadFEDChannelPositions(int i, BadFEDChannelPositions &positions)
Definition: TkMeasurementDetSet.h:369
MeasurementTrackerEventProducer::theBadPixelFEDChannelsLabels
std::vector< edm::EDGetTokenT< PixelFEDChannelCollection > > theBadPixelFEDChannelsLabels
Definition: MeasurementTrackerEventProducer.h:50
MeasurementTrackerEventProducer::thePixelClusterLabel
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > thePixelClusterLabel
Definition: MeasurementTrackerEventProducer.h:41
sipixelobjects::PixelROC
Definition: PixelROC.h:23
edmNew::DetSetVector
Definition: DetSetNew.h:13
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
StMeasurementDetSet::handle
edm::Handle< edmNew::DetSetVector< SiStripCluster > > & handle()
Definition: TkMeasurementDetSet.h:204
std
Definition: JetResolutionObject.h:76
MeasurementTrackerEventProducer::theStripClusterLabel
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > theStripClusterLabel
Definition: MeasurementTrackerEventProducer.h:42
Phase2OTMeasurementDetSet::isActive
bool isActive(int i) const
Definition: TkMeasurementDetSet.h:454
MeasurementTrackerEventProducer::updatePhase2OT
void updatePhase2OT(const edm::Event &, Phase2OTMeasurementDetSet &thePh2OTDets) const
Definition: MeasurementTrackerEventProducer.cc:368
sipixelobjects::LocalPixel::RocRowCol
row and collumn in ROC representation
Definition: LocalPixel.h:13
StMeasurementDetSet::setActiveThisEvent
void setActiveThisEvent(int i, bool active)
Turn on/off the module for reconstruction for one events. This per-event flag is cleared by any call ...
Definition: TkMeasurementDetSet.h:198
PxMeasurementDetSet::isActive
bool isActive(int i) const
Definition: TkMeasurementDetSet.h:345
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
edmNew::DetSetVector::end
const_iterator end(bool update=false) const
Definition: DetSetVectorNew.h:550
MeasurementTrackerEventProducer::thePh2OTVectorHitsRejLabel
edm::EDGetTokenT< VectorHitCollection > thePh2OTVectorHitsRejLabel
Definition: MeasurementTrackerEventProducer.h:45
PixelMapPlotter.roc
roc
Definition: PixelMapPlotter.py:498
StMeasurementDetSet::id
unsigned int id(int i) const
Definition: TkMeasurementDetSet.h:175
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
StMeasurementDetSet::isActive
bool isActive(int i) const
Definition: TkMeasurementDetSet.h:179
castor_dqm_sourceclient_file_cfg.path
path
Definition: castor_dqm_sourceclient_file_cfg.py:37
DTRecHitClients_cfi.local
local
Definition: DTRecHitClients_cfi.py:10
PxMeasurementDetSet::setActiveThisEvent
void setActiveThisEvent(bool active)
Definition: TkMeasurementDetSet.h:361
StMeasurementDetSet::update
void update(int i, const StripDetset &detSet)
Definition: TkMeasurementDetSet.h:159
SiPixelFedCablingMapRcd
Definition: SiPixelFedCablingMapRcd.h:5
MeasurementTrackerEventProducer::getInactiveStrips
void getInactiveStrips(const edm::Event &event, std::vector< uint32_t > &rawInactiveDetIds) const
Definition: MeasurementTrackerEventProducer.cc:409
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
edm::Log
Definition: MessageLogger.h:70
MeasurementTrackerEventProducer::useVectorHits_
bool useVectorHits_
Definition: MeasurementTrackerEventProducer.h:57
edm::HandleBase::id
ProductID id() const
Definition: HandleBase.cc:29
SiPixelFedCablingMap::findItem
const sipixelobjects::PixelROC * findItem(const sipixelobjects::CablingPathToDetUnit &path) const final
Definition: SiPixelFedCablingMap.cc:124
edm::InputTag
Definition: InputTag.h:15
edm::EDCollection::end
const_iterator end() const
Definition: EDCollection.h:122
Phase2OTMeasurementDetSet::size
int size() const
Definition: TkMeasurementDetSet.h:443
MeasurementTrackerEventProducer::switchOffPixelsIfEmpty_
bool switchOffPixelsIfEmpty_
Definition: MeasurementTrackerEventProducer.h:55
edm::ProductLabels
Definition: ProductLabels.h:4
MeasurementTracker.h
MeasurementTrackerEventProducer::selfUpdateSkipClusters_
bool selfUpdateSkipClusters_
Definition: MeasurementTrackerEventProducer.h:54
TrackerGeometry
Definition: TrackerGeometry.h:14