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 
44  if (!iConfig.getParameter<std::string>("stripClusterProducer").empty()) {
45  theStripClusterLabel = consumes<edmNew::DetSetVector<SiStripCluster>>(
46  edm::InputTag(iConfig.getParameter<std::string>("stripClusterProducer")));
48  theStripClusterMask = consumes<edm::ContainerMask<edmNew::DetSetVector<SiStripCluster>>>(
49  iConfig.getParameter<edm::InputTag>("skipClusters"));
50  }
51  if (!iConfig.getParameter<std::string>("pixelClusterProducer").empty()) {
52  thePixelClusterLabel = consumes<edmNew::DetSetVector<SiPixelCluster>>(
53  edm::InputTag(iConfig.getParameter<std::string>("pixelClusterProducer")));
55  thePixelClusterMask = consumes<edm::ContainerMask<edmNew::DetSetVector<SiPixelCluster>>>(
56  iConfig.getParameter<edm::InputTag>("skipClusters"));
57  }
58  if (!iConfig.getParameter<std::string>("Phase2TrackerCluster1DProducer").empty()) {
59  thePh2OTClusterLabel = consumes<edmNew::DetSetVector<Phase2TrackerCluster1D>>(
60  edm::InputTag(iConfig.getParameter<std::string>("Phase2TrackerCluster1DProducer")));
61  isPhase2 = true;
62  }
63 
64  produces<MeasurementTrackerEvent>();
65 }
66 
69 
70  desc.add<std::string>("measurementTracker", "");
71  desc.add<edm::InputTag>("skipClusters", edm::InputTag());
72  desc.add<std::string>("pixelClusterProducer", "siPixelClusters");
73  desc.add<std::string>("stripClusterProducer", "siStripClusters");
74  desc.add<std::string>("Phase2TrackerCluster1DProducer", "");
75 
76  desc.add<std::vector<edm::InputTag>>("inactivePixelDetectorLabels",
77  std::vector<edm::InputTag>{{edm::InputTag("siPixelDigis")}})
78  ->setComment("One or more DetIdCollections of modules to mask on the fly for a given event");
79  desc.add<std::vector<edm::InputTag>>("badPixelFEDChannelCollectionLabels", std::vector<edm::InputTag>())
80  ->setComment("One or more PixelFEDChannelCollections of modules+ROCs to mask on the fly for a given event");
81  desc.add<std::string>("pixelCablingMapLabel", "");
82 
83  desc.add<std::vector<edm::InputTag>>("inactiveStripDetectorLabels",
84  std::vector<edm::InputTag>{{edm::InputTag("siStripDigis")}})
85  ->setComment("One or more DetIdCollections of modules to mask on the fly for a given event");
86 
87  desc.add<bool>("switchOffPixelsIfEmpty", true)->setComment("let's keep it like this, for cosmics");
88 
89  descriptions.add("measurementTrackerEventDefault", desc);
90 }
91 
95 
96  // create new data structures from templates
97  auto stripData = std::make_unique<StMeasurementDetSet>(measurementTracker->stripDetConditions());
98  auto pixelData = std::make_unique<PxMeasurementDetSet>(measurementTracker->pixelDetConditions());
99  auto phase2OTData = std::make_unique<Phase2OTMeasurementDetSet>(measurementTracker->phase2DetConditions());
100  std::vector<bool> stripClustersToSkip;
101  std::vector<bool> pixelClustersToSkip;
102  std::vector<bool> phase2ClustersToSkip;
103  // fill them
104  updateStrips(iEvent, *stripData, stripClustersToSkip);
106  *pixelData,
107  pixelClustersToSkip,
108  dynamic_cast<const TrackerGeometry&>(*(measurementTracker->geomTracker())),
109  iSetup);
110  updatePhase2OT(iEvent, *phase2OTData);
111  updateStacks(iEvent, *phase2OTData);
112 
113  // put into MTE
114  // put into event
115  iEvent.put(std::make_unique<MeasurementTrackerEvent>(*measurementTracker,
116  stripData.release(),
117  pixelData.release(),
118  phase2OTData.release(),
119  stripClustersToSkip,
120  pixelClustersToSkip,
121  phase2ClustersToSkip));
122 }
123 
125  PxMeasurementDetSet& thePxDets,
126  std::vector<bool>& pixelClustersToSkip,
127  const TrackerGeometry& trackerGeom,
128  const edm::EventSetup& iSetup) const {
129  // start by clearinng everything
130  thePxDets.setEmpty();
131 
132  std::vector<uint32_t> rawInactiveDetIds;
133  if (!theInactivePixelDetectorLabels.empty()) {
136  if (event.getByToken(tk, detIds)) {
137  rawInactiveDetIds.insert(rawInactiveDetIds.end(), detIds->begin(), detIds->end());
138  } else {
139  static std::atomic<bool> iFailedAlready{false};
140  bool expected = false;
141  if (iFailedAlready.compare_exchange_strong(expected, true, std::memory_order_acq_rel)) {
142  edm::LogError("MissingProduct")
143  << "I fail to get the list of inactive pixel modules, because of 4.2/4.4 event content change.";
144  }
145  }
146  }
147  if (!rawInactiveDetIds.empty())
148  std::sort(rawInactiveDetIds.begin(), rawInactiveDetIds.end());
149  // mark as inactive if in rawInactiveDetIds
150  int i = 0, endDet = thePxDets.size();
151  unsigned int idp = 0;
152  for (auto id : rawInactiveDetIds) {
153  if (id == idp)
154  continue; // skip multiple id
155  idp = id;
156  i = thePxDets.find(id, i);
157  assert(i != endDet && id == thePxDets.id(i));
158  thePxDets.setActiveThisEvent(i, false);
159  }
160  }
161 
162  if (!theBadPixelFEDChannelsLabels.empty()) {
164  iSetup.get<SiPixelFedCablingMapRcd>().get(pixelCablingMapLabel_, cablingMap);
165 
166  edm::Handle<PixelFEDChannelCollection> pixelFEDChannelCollectionHandle;
168  if (!event.getByToken(tk, pixelFEDChannelCollectionHandle))
169  continue;
170  int i = 0;
171  for (const auto& disabledChannels : *pixelFEDChannelCollectionHandle) {
173  for (const auto& ch : disabledChannels) {
174  const sipixelobjects::PixelROC *roc_first = nullptr, *roc_last = nullptr;
175  sipixelobjects::CablingPathToDetUnit path = {ch.fed, ch.link, 0};
176  // PixelFEDChannelCollection addresses the ROCs by their 'idInDetUnit' (from 0 to 15), ROCs also know their on 'idInDetUnit',
177  // however the cabling map uses a numbering [1,numberOfROCs], see sipixelobjects::PixelFEDLink::roc(unsigned int id), not necessarily sorted in the same direction.
178  // PixelFEDChannelCollection MUST be filled such that ch.roc_first (ch.roc_last) correspond to the lowest (highest) 'idInDetUnit' in the channel
179  for (path.roc = 1; path.roc <= (ch.roc_last - ch.roc_first) + 1; path.roc++) {
180  const sipixelobjects::PixelROC* roc = cablingMap->findItem(path);
181  if (roc == nullptr)
182  continue;
183  assert(roc->rawId() == disabledChannels.detId());
184  if (roc->idInDetUnit() == ch.roc_first)
185  roc_first = roc;
186  if (roc->idInDetUnit() == ch.roc_last)
187  roc_last = roc;
188  }
189  if (roc_first == nullptr || roc_last == nullptr) {
190  edm::LogError("PixelFEDChannelCollection")
191  << "Do not find either roc_first or roc_last in the cabling map.";
192  continue;
193  }
194  const PixelGeomDetUnit* theGeomDet =
195  dynamic_cast<const PixelGeomDetUnit*>(trackerGeom.idToDet(roc_first->rawId()));
196  PixelTopology const* topology = &(theGeomDet->specificTopology());
198  topology->rowsperroc() / 2, topology->colsperroc() / 2}; //corresponding to center of ROC row, col
200  LocalPoint lp1 = topology->localPosition(MeasurementPoint(global.row, global.col));
201  global = roc_last->toGlobal(sipixelobjects::LocalPixel(local));
202  LocalPoint lp2 = topology->localPosition(MeasurementPoint(global.row, global.col));
203  LocalPoint ll(std::min(lp1.x(), lp2.x()), std::min(lp1.y(), lp2.y()), std::min(lp1.z(), lp2.z()));
204  LocalPoint ur(std::max(lp1.x(), lp2.x()), std::max(lp1.y(), lp2.y()), std::max(lp1.z(), lp2.z()));
205  positions.push_back(std::make_pair(ll, ur));
206  } // loop on channels
207  if (!positions.empty()) {
208  i = thePxDets.find(disabledChannels.detId(), i);
209  assert(i != thePxDets.size() && thePxDets.id(i) == disabledChannels.detId());
210  thePxDets.addBadFEDChannelPositions(i, positions);
211  }
212  } // loop on DetId-s
213  } // loop on labels
214  } // if collection labels are populated
215 
216  // Pixel Clusters
217  if (thePixelClusterLabel.isUninitialized()) { //clusters have not been produced
219  thePxDets.setActiveThisEvent(false);
220  }
221  } else {
223  if (event.getByToken(thePixelClusterLabel, pixelClusters)) {
224  const edmNew::DetSetVector<SiPixelCluster>* pixelCollection = pixelClusters.product();
225 
226  if (switchOffPixelsIfEmpty_ && pixelCollection->empty()) {
227  thePxDets.setActiveThisEvent(false);
228  } else {
229  //std::cout <<"updatePixels "<<pixelCollection->dataSize()<<std::endl;
230  pixelClustersToSkip.resize(pixelCollection->dataSize());
231  std::fill(pixelClustersToSkip.begin(), pixelClustersToSkip.end(), false);
232 
235  //and get the collection of pixel ref to skip
236  event.getByToken(thePixelClusterMask, pixelClusterMask);
237  LogDebug("MeasurementTracker") << "getting pxl refs to skip";
238  if (pixelClusterMask.failedToGet())
239  edm::LogError("MeasurementTracker") << "not getting the pixel clusters to skip";
240  if (pixelClusterMask->refProd().id() != pixelClusters.id()) {
241  edm::LogError("ProductIdMismatch")
242  << "The pixel masking does not point to the proper collection of clusters: "
243  << pixelClusterMask->refProd().id() << "!=" << pixelClusters.id();
244  }
245  pixelClusterMask->copyMaskTo(pixelClustersToSkip);
246  }
247 
248  // FIXME: should check if lower_bound is better
249  int i = 0, endDet = thePxDets.size();
250  for (edmNew::DetSetVector<SiPixelCluster>::const_iterator it = pixelCollection->begin(),
251  ed = pixelCollection->end();
252  it != ed;
253  ++it) {
255  unsigned int id = set.id();
256  while (id != thePxDets.id(i)) {
257  ++i;
258  if (endDet == i)
259  throw "we have a problem!!!!";
260  }
261  // push cluster range in det
262  if (thePxDets.isActive(i)) {
263  thePxDets.update(i, set);
264  }
265  }
266  }
267  } else {
269  labelsForToken(thePixelClusterLabel, labels);
270  edm::LogWarning("MeasurementTrackerEventProducer")
271  << "input pixel clusters collection " << labels.module << " is not valid";
272  }
273  }
274 }
275 
277  StMeasurementDetSet& theStDets,
278  std::vector<bool>& stripClustersToSkip) const {
279  typedef edmNew::DetSet<SiStripCluster> StripDetSet;
280 
281  std::vector<uint32_t> rawInactiveDetIds;
282  getInactiveStrips(event, rawInactiveDetIds);
283 
284  // Strip Clusters
285  //first clear all of them
286  theStDets.setEmpty();
287 
289  return; //clusters have not been produced
290 
291  const int endDet = theStDets.size();
292 
293  // mark as inactive if in rawInactiveDetIds
294  int i = 0;
295  unsigned int idp = 0;
296  for (auto id : rawInactiveDetIds) {
297  if (id == idp)
298  continue; // skip multiple id
299  idp = id;
300  i = theStDets.find(id, i);
301  assert(i != endDet && id == theStDets.id(i));
302  theStDets.setActiveThisEvent(i, false);
303  }
304 
305  //========= actually load cluster =============
306  {
308  if (event.getByToken(theStripClusterLabel, clusterHandle)) {
309  const edmNew::DetSetVector<SiStripCluster>* clusterCollection = clusterHandle.product();
310 
313  //and get the collection of pixel ref to skip
314  LogDebug("MeasurementTracker") << "getting strp refs to skip";
315  event.getByToken(theStripClusterMask, stripClusterMask);
316  if (stripClusterMask.failedToGet())
317  edm::LogError("MeasurementTracker") << "not getting the strip clusters to skip";
318  if (stripClusterMask->refProd().id() != clusterHandle.id()) {
319  edm::LogError("ProductIdMismatch")
320  << "The strip masking does not point to the proper collection of clusters: "
321  << stripClusterMask->refProd().id() << "!=" << clusterHandle.id();
322  }
323  stripClusterMask->copyMaskTo(stripClustersToSkip);
324  }
325 
326  theStDets.handle() = clusterHandle;
327  int i = 0;
328  // cluster and det and in order (both) and unique so let's use set intersection
329  for (auto j = 0U; j < (*clusterCollection).size(); ++j) {
330  unsigned int id = (*clusterCollection).id(j);
331  while (id != theStDets.id(i)) { // eventually change to lower_bound
332  ++i;
333  if (endDet == i)
334  throw "we have a problem in strips!!!!";
335  }
336 
337  // push cluster range in det
338  if (theStDets.isActive(i))
339  theStDets.update(i, j);
340  }
341  } else {
343  labelsForToken(theStripClusterLabel, labels);
344  edm::LogWarning("MeasurementTrackerEventProducer")
345  << "input strip cluster collection " << labels.module << " is not valid";
346  }
347  }
348 }
349 
350 //FIXME: just a temporary solution for phase2!
352  Phase2OTMeasurementDetSet& thePh2OTDets) const {
353  // Phase2OT Clusters
354  if (isPhase2) {
355  if (thePh2OTClusterLabel.isUninitialized()) { //clusters have not been produced
356  thePh2OTDets.setActiveThisEvent(false);
357  } else {
359  if (event.getByToken(thePh2OTClusterLabel, phase2OTClusters)) {
360  const edmNew::DetSetVector<Phase2TrackerCluster1D>* phase2OTCollection = phase2OTClusters.product();
361 
362  int i = 0, endDet = thePh2OTDets.size();
364  ed = phase2OTCollection->end();
365  it != ed;
366  ++it) {
368  unsigned int id = set.id();
369  while (id != thePh2OTDets.id(i)) {
370  ++i;
371  if (endDet == i)
372  throw "we have a problem!!!!";
373  }
374  // push cluster range in det
375  if (thePh2OTDets.isActive(i)) {
376  thePh2OTDets.update(i, set);
377  }
378  }
379  } else {
381  labelsForToken(thePh2OTClusterLabel, labels);
382  edm::LogWarning("MeasurementTrackerEventProducer")
383  << "input Phase2TrackerCluster1D collection " << labels.module << " is not valid";
384  }
385  }
386  }
387  return;
388 }
389 
391  std::vector<uint32_t>& rawInactiveDetIds) const {
392  if (!theInactiveStripDetectorLabels.empty()) {
395  if (event.getByToken(tk, detIds)) {
396  rawInactiveDetIds.insert(rawInactiveDetIds.end(), detIds->begin(), detIds->end());
397  }
398  }
399  if (!rawInactiveDetIds.empty())
400  std::sort(rawInactiveDetIds.begin(), rawInactiveDetIds.end());
401  }
402 }
403 
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:372
mps_fire.i
i
Definition: mps_fire.py:355
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
MeasurementTrackerEvent.h
LumiMonitor_cff.pixelClusters
pixelClusters
Definition: LumiMonitor_cff.py:10
MeasurementTrackerEventProducer::theStripClusterMask
edm::EDGetTokenT< edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > > theStripClusterMask
Definition: MeasurementTrackerEventProducer.h:44
MeasurementTrackerEventProducer::thePh2OTClusterLabel
edm::EDGetTokenT< edmNew::DetSetVector< Phase2TrackerCluster1D > > thePh2OTClusterLabel
Definition: MeasurementTrackerEventProducer.h:42
edm::Handle::product
T const * product() const
Definition: Handle.h:70
MeasurementTrackerEventProducer::theInactivePixelDetectorLabels
std::vector< edm::EDGetTokenT< DetIdCollection > > theInactivePixelDetectorLabels
Definition: MeasurementTrackerEventProducer.h:46
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
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:92
PxMeasurementDetSet::size
int size() const
Definition: TkMeasurementDetSet.h:334
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:231
Phase2OTMeasurementDetSet::setActiveThisEvent
void setActiveThisEvent(bool active)
Definition: TkMeasurementDetSet.h:465
MeasurementTrackerEventProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: MeasurementTrackerEventProducer.cc:67
cms::cuda::assert
assert(be >=bs)
PxMeasurementDetSet::find
int find(unsigned int jd, int i=0) const
Definition: TkMeasurementDetSet.h:337
sipixelobjects::GlobalPixel::row
int row
Definition: GlobalPixel.h:7
edmNew::DetSetVector::begin
const_iterator begin(bool update=false) const
Definition: DetSetVectorNew.h:572
MeasurementTrackerEventProducer.h
Phase2OTMeasurementDetSet::update
void update(int i, const Phase2DetSet &detSet)
Definition: TkMeasurementDetSet.h:448
CkfComponentsRecord.h
edm::Handle
Definition: AssociativeIterator.h:50
sipixelobjects::GlobalPixel::col
int col
Definition: GlobalPixel.h:8
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:73
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:276
CkfComponentsRecord
Definition: CkfComponentsRecord.h:22
ecaldqm::topology
const CaloTopology * topology(nullptr)
MeasurementTrackerEventProducer::thePixelClusterMask
edm::EDGetTokenT< edm::ContainerMask< edmNew::DetSetVector< SiPixelCluster > > > thePixelClusterMask
Definition: MeasurementTrackerEventProducer.h:43
MeasurementTrackerEventProducer::theInactiveStripDetectorLabels
std::vector< edm::EDGetTokenT< DetIdCollection > > theInactiveStripDetectorLabels
Definition: MeasurementTrackerEventProducer.h:49
edm::EDGetTokenT::isUninitialized
bool isUninitialized() const
Definition: EDGetToken.h:70
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
OrderedSet.t
t
Definition: OrderedSet.py:90
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:594
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::LogWarning
Definition: MessageLogger.h:141
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:39
PxMeasurementDetSet::BadFEDChannelPositions
std::vector< std::pair< LocalPoint, LocalPoint > > BadFEDChannelPositions
Definition: TkMeasurementDetSet.h:327
edm::HandleBase::failedToGet
bool failedToGet() const
Definition: HandleBase.h:72
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::ParameterSet
Definition: ParameterSet.h:36
edm::LogError
Definition: MessageLogger.h:183
PixelROC.h
CablingPathToDetUnit.h
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
edmNew::DetSetVector::empty
bool empty() const
Definition: DetSetVectorNew.h:592
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:124
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:35
MeasurementTrackerEventProducer::pixelCablingMapLabel_
std::string pixelCablingMapLabel_
Definition: MeasurementTrackerEventProducer.h:48
MeasurementTrackerEventProducer::isPhase2
bool isPhase2
Definition: MeasurementTrackerEventProducer.h:53
edm::EventSetup
Definition: EventSetup.h:57
sipixelobjects::PixelROC::toGlobal
GlobalPixel toGlobal(const LocalPixel &loc) const
Definition: PixelROC.h:55
get
#define get
MeasurementTrackerEventProducer
Definition: MeasurementTrackerEventProducer.h:16
StMeasurementDetSet::find
int find(unsigned int jd, int i=0) const
Definition: TkMeasurementDetSet.h:176
PxMeasurementDetSet::addBadFEDChannelPositions
void addBadFEDChannelPositions(int i, BadFEDChannelPositions &positions)
Definition: TkMeasurementDetSet.h:369
MeasurementTrackerEventProducer::theBadPixelFEDChannelsLabels
std::vector< edm::EDGetTokenT< PixelFEDChannelCollection > > theBadPixelFEDChannelsLabels
Definition: MeasurementTrackerEventProducer.h:47
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
MeasurementTrackerEventProducer::thePixelClusterLabel
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > thePixelClusterLabel
Definition: MeasurementTrackerEventProducer.h:40
edmNew::DetSetVector
Definition: DetSetNew.h:13
sipixelobjects::PixelROC
Definition: PixelROC.h:23
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:41
Phase2OTMeasurementDetSet::isActive
bool isActive(int i) const
Definition: TkMeasurementDetSet.h:454
MeasurementTrackerEventProducer::updatePhase2OT
void updatePhase2OT(const edm::Event &, Phase2OTMeasurementDetSet &thePh2OTDets) const
Definition: MeasurementTrackerEventProducer.cc:351
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:31
edmNew::DetSetVector::end
const_iterator end(bool update=false) const
Definition: DetSetVectorNew.h:577
PixelMapPlotter.roc
roc
Definition: PixelMapPlotter.py:498
StMeasurementDetSet::id
unsigned int id(int i) const
Definition: TkMeasurementDetSet.h:175
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:390
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
edm::HandleBase::id
ProductID id() const
Definition: HandleBase.cc:13
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:52
edm::ProductLabels
Definition: ProductLabels.h:4
MeasurementTracker.h
MeasurementTrackerEventProducer::selfUpdateSkipClusters_
bool selfUpdateSkipClusters_
Definition: MeasurementTrackerEventProducer.h:51
TrackerGeometry
Definition: TrackerGeometry.h:14