CMS 3D CMS Logo

SiPixelCalibDigiProducer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: SiPixelCalibDigiProducer
4 // Class: SiPixelCalibDigiProducer
5 //
13 //
14 // Original Author: Freya Blekman
15 // Created: Wed Oct 31 15:28:52 CET 2007
16 //
17 //
18 
19 // system include files
20 
21 // user include files
23 
25 
32 
34 #include <sstream>
35 
36 //
37 // constants, enums and typedefs
38 //
39 
40 //
41 // static data member definitions
42 //
43 
44 //
45 // constructors and destructor
46 //
48  : src_(iConfig.getParameter<edm::InputTag>("src")),
49  iEventCounter_(0),
50  ignore_non_pattern_(iConfig.getParameter<bool>("ignoreNonPattern")),
51  control_pattern_size_(iConfig.getParameter<bool>("checkPatternEachEvent")),
52  includeErrors_(iConfig.getUntrackedParameter<bool>("includeErrors", false)),
53  errorType(iConfig.getUntrackedParameter<int>("errorTypeNumber", 1)),
54  conf_(iConfig),
55  number_of_pixels_per_pattern_(0),
56  use_realeventnumber_(iConfig.getParameter<bool>("useRealEventNumber"))
57 
58 {
59  tPixelDigi = consumes<edm::DetSetVector<PixelDigi>>(src_);
60  //register your products
61  produces<edm::DetSetVector<SiPixelCalibDigi>>();
62  if (includeErrors_)
63  produces<edm::DetSetVector<SiPixelCalibDigiError>>();
64 
65  calibToken_ = esConsumes<SiPixelCalibConfiguration, SiPixelCalibConfigurationRcd>();
66  trackerGeomToken_ = esConsumes<TrackerGeometry, TrackerDigiGeometryRecord>();
67  cablingMapToken_ = esConsumes<SiPixelFedCablingMap, SiPixelFedCablingMapRcd>();
68 }
69 
71  // do anything here that needs to be done at desctruction time
72  // (e.g. close files, deallocate resources etc.)
73 }
74 
75 //
76 // member functions
77 //
78 
80 // function description:
81 // this function checks where/when the pattern changes so that one can fill the data from the temporary container into the event
83  // std::cout << "in store() " << std::endl;
84  if (iEventCounter_ % pattern_repeat_ == 0) {
85  // std::cout << "now at event " << iEventCounter_ <<" where we save the calibration information into the CMSSW digi";
86  return true;
87  } else if (iEventCounter_ == calib_->expectedTotalEvents())
88  return true;
89  else
90  return false;
91  return true;
92 }
94 // function description:
95 // fill function, uses maps to keep track of which pixel is where in the local storage container. Called every event to fill and compress the digi data into calibdig format
97  // figure out which calibration point we're on now..
98  short icalibpoint = calib_->vcalIndexForEvent(iEventCounter_);
100  iEvent.getByToken(tPixelDigi, pixelDigis);
101 
102  edm::LogInfo("SiPixelCalibProducer") << "in fill(), calibpoint " << icalibpoint << " ndigis " << pixelDigis->size()
103  << std::endl;
104  // loop over the data and store things
106  for (digiIter = pixelDigis->begin(); digiIter != pixelDigis->end(); ++digiIter) { // ITERATOR OVER DET IDs
107  uint32_t detid = digiIter->id;
108  edm::DetSet<PixelDigi>::const_iterator ipix; // ITERATOR OVER DIGI DATA
109 
110  for (ipix = digiIter->data.begin(); ipix != digiIter->end(); ++ipix) {
111  // fill in the appropriate location of the temporary data container
112  fillPixel(detid, ipix->row(), ipix->column(), icalibpoint, ipix->adc());
113  }
114  }
115 }
117 // function description:
118 // this is the function where we check the cabling map and see if we can assign a fed id to the det ID.
119 // returns false if no fed <-> detid association was found
121  // edm::LogInfo("SiPixelCalibProducer") << "in checkFED" << std::endl;
122 
123  if (detid_to_fedid_[detid])
124  return true;
125  for (int fedid = 0; fedid <= 40; ++fedid) {
126  // edm::LogInfo("SiPixelCalibProducer") << " looking at fedid " << fedid << std::endl;
128  if (converter.hasDetUnit(detid)) {
129  detid_to_fedid_[detid] = fedid;
130  edm::LogInfo("SiPixelCalibDigiProducer")
131  << "matched detid " << detid << " to fed " << detid_to_fedid_[detid] << std::endl;
132  return true;
133  }
134  }
135  return false;
136 }
137 
139 // function description:
140 // this is the function where we look in the maps to find the correct calibration digi container, after which the data is filled.
141 void SiPixelCalibDigiProducer::fillPixel(uint32_t detid, short row, short col, short ipoint, short adc) {
142  // edm::LogInfo("SiPixelCalibProducer") << " in fillpixel()" << std::endl;
143 
144  // edm::LogInfo("SiPixelCalibProducer") << "in fillPixel " << detid << " " << row << " " << col << " " << ipoint << " " << adc << std::endl;
145  if (!checkFED(detid)) {
146  edm::LogError("SiPixelCalibDigiProducer") << " was unable to match detid " << detid << " to a FED!" << std::endl;
147  return;
148  }
149  if (!checkPixel(detid, row, col)) {
150  return;
151  }
152  // now the check if the pixel exists and fill
153  //
154  pixelstruct temppixelworker;
155  temppixelworker.first = detid;
156  temppixelworker.second.first = row;
157  temppixelworker.second.second = col;
158  std::map<pixelstruct, SiPixelCalibDigi>::const_iterator ipix = intermediate_data_.find(temppixelworker);
159 
160  if (ipix == intermediate_data_.end()) {
161  SiPixelCalibDigi tempdigi(calib_->nVCal());
162  tempdigi.setrowcol(row, col);
163  intermediate_data_[temppixelworker] = tempdigi;
164  }
165 
166  intermediate_data_[temppixelworker].fill(ipoint, adc);
167  return;
168 }
170 // function description:
171 // this function cleans up after everything in the pattern is filled. This involves setting the content of the intermediate_data_ containers to zero and completely emptying the map
173  // edm::LogInfo("SiPixelCalibProducer") << "in clear() " << std::endl;
174  // this is where we empty the containers so they can be re-filled
175  // the idea: the detPixelMap_ container shrinks/expands as a function
176  // of the number of pixels looked at at one particular time...
177  // unlike the intermediate_data_ container which only expands when
178  // detPixelMap_ becomes bigger than intermedate_data_
179 
180  // shrink the detPixelMap_
181  uint32_t tempsize = intermediate_data_.size();
182  if (tempsize > number_of_pixels_per_pattern_) {
183  edm::LogError("SiPixelCalibDigiProducer") << "Number of pixels in pattern is now: " << tempsize << ", size is was "
184  << number_of_pixels_per_pattern_ << std::endl;
186  }
187 
189  intermediate_data_.clear();
190 
191  // and erase the error bits
192  error_data_.erase(error_data_.begin(), error_data_.end());
193  error_data_.clear();
194 }
195 
197 // function description:
198 // This method gets the pattern from the calib_ (SiPixelCalibConfiguration) object and fills a vector of pairs that is easier to check
200  // edm::LogInfo("SiPixelCalibProducer") << "in setPattern()" << std::endl;
201  uint32_t patternnumber = (iEventCounter_ - 1) / pattern_repeat_;
202  uint32_t rowpatternnumber = patternnumber / calib_->nColumnPatterns();
203  uint32_t colpatternnumber = patternnumber % calib_->nColumnPatterns();
204  edm::LogInfo("SiPixelCalibDigiProducer")
205  << " rowpatternnumbers = " << rowpatternnumber << " " << colpatternnumber << " " << patternnumber << std::endl;
206  // update currentpattern_
207  std::vector<short> calibcols = calib_->getColumnPattern();
208  std::vector<short> calibrows = calib_->getRowPattern();
209  std::vector<short> temprowvals(0);
210  std::vector<short> tempcolvals(0);
211  uint32_t nminuscol = 0;
212  uint32_t nminusrow = 0;
213  uint32_t npatterns = 0;
214  for (uint32_t icol = 0; icol < calibcols.size(); icol++) {
215  if (calibcols[icol] == -1) {
216  nminuscol++;
217  } else if (nminuscol == colpatternnumber) {
218  //edm::LogInfo("SiPixelCalibProducer") << "col " << calibcols[icol] << std::endl;
219  short val = calibcols[icol];
220  tempcolvals.push_back(val);
221  } else if (nminuscol > colpatternnumber)
222  break;
223  }
224  for (uint32_t irow = 0; irow < calibrows.size(); irow++) {
225  // edm::LogInfo("SiPixelCalibProducer") << "row " << irow <<" "<< nminusrow<<" " << calibrows[irow] << std::endl;
226  if (calibrows[irow] == -1)
227  nminusrow++;
228  else if (nminusrow == rowpatternnumber) {
229  short val = calibrows[irow];
230  temprowvals.push_back(val);
231  } else if (nminusrow > rowpatternnumber)
232  break;
233  }
234  //now clean up the currentpattern_;
235  while (currentpattern_.size() > temprowvals.size() * tempcolvals.size()) {
236  currentpattern_.erase(currentpattern_.end());
237  }
238  for (uint32_t irow = 0; irow < temprowvals.size(); irow++) {
239  for (uint32_t icol = 0; icol < tempcolvals.size(); icol++) {
240  std::pair<short, short> pattern(temprowvals[irow], tempcolvals[icol]);
241  npatterns++;
242  if (npatterns > currentpattern_.size())
243  currentpattern_.push_back(pattern);
244  else
245  currentpattern_[npatterns - 1] = pattern;
246  }
247  }
248 }
249 
251 // function description:
252 // produce method. This is the main loop method
254  // edm::LogInfo("SiPixelCalibDigiProducer") <<"in produce() " << std::endl;
255  using namespace edm;
256  calib_ = iSetup.getHandle(calibToken_);
260  if (use_realeventnumber_) {
261  iEventCounter_ = iEvent.id().event() - 1;
262  } else
263  iEventCounter_++;
264  if (iEventCounter_ % pattern_repeat_ == 1)
265  setPattern();
266 
267  // edm::LogInfo("SiPixelCalibDigiProducer") << "now starting fill..." << std::endl;
268  fill(iEvent, iSetup); // fill method where the actual looping over the digis is done.
269  // edm::LogInfo("SiPixelCalibDigiProducer") << "done filling..." << std::endl;
270  auto pOut = std::make_unique<edm::DetSetVector<SiPixelCalibDigi>>();
271  auto pErr = std::make_unique<edm::DetSetVector<SiPixelCalibDigiError>>();
272 
273  // copy things over into pOut if necessary (this is only once per pattern)
274  if (store()) {
275  // edm::LogInfo("SiPixelCalibDigiProducer") << "in loop" << std::endl;
276  for (std::map<pixelstruct, SiPixelCalibDigi>::const_iterator idet = intermediate_data_.begin();
277  idet != intermediate_data_.end();
278  ++idet) {
279  uint32_t detid = idet->first.first;
280  if (!control_pattern_size_) {
281  if (!checkPixel(idet->first.first, idet->first.second.first, idet->first.second.second))
282  continue;
283  }
284 
285  SiPixelCalibDigi tempdigi = idet->second;
286  edm::DetSet<SiPixelCalibDigi>& detSet = pOut->find_or_insert(detid);
287  detSet.data.push_back(tempdigi);
288  }
289  if (includeErrors_) {
290  for (std::map<pixelstruct, SiPixelCalibDigiError>::const_iterator ierr = error_data_.begin();
291  ierr != error_data_.end();
292  ++ierr) {
293  uint32_t detid = ierr->first.first;
294  SiPixelCalibDigiError temperror = ierr->second;
295  edm::DetSet<SiPixelCalibDigiError>& errSet = pErr->find_or_insert(detid);
296  errSet.data.push_back(temperror);
297  }
298  }
299  edm::LogInfo("INFO") << "now filling event " << iEventCounter_ << " as pixel pattern changes every "
300  << pattern_repeat_ << " events..." << std::endl;
301  clear();
302  }
303  iEvent.put(std::move(pOut));
304  if (includeErrors_)
305  iEvent.put(std::move(pErr));
306 }
307 //-----------------------------------------------
308 // method to check that the pixels are actually valid...
309 bool SiPixelCalibDigiProducer::checkPixel(uint32_t detid, short row, short col) {
310  if (!control_pattern_size_ && !store())
311  return true;
312 
313  if (!ignore_non_pattern_)
314  return true;
315 
316  edm::LogInfo("SiPixelCalibDigiProducer") << "Event" << iEventCounter_ << ",now in checkpixel() " << std::endl;
317  if (currentpattern_.empty())
318  setPattern();
319  // uint32_t iroc;
320  uint32_t fedid = detid_to_fedid_[detid];
321 
325 
326  formatter.toCabling(cabling, detector);
327  // cabling should now contain cabling.roc and cabling.dcol and cabling.pxid
328 
329  // however, the coordinates now need to be converted from dcl, pxid to the row,col coordinates used in the calibration info
331  loc.dcol = cabling.dcol;
332  loc.pxid = cabling.pxid;
333  sipixelobjects::LocalPixel locpixel(loc);
334  currentpair_.first = locpixel.rocRow();
335  currentpair_.second = locpixel.rocCol();
336 
337  for (uint32_t i = 0; i < currentpattern_.size(); ++i) {
338  // edm::LogInfo("SiPixelCalibDigiProducer") << "found pair " << currentpair_.first << "," << currentpair_.second << " calib " << currentpattern_[i].first << ","<< currentpattern_[i].second << " input " << row << "," << col << std::endl;
339  if (currentpair_ == currentpattern_[i]) {
340  return true;
341  }
342  }
343  std::ostringstream errorlog;
344  errorlog << "DETID " << detid << ", row, col (offline)=" << row << "," << col
345  << " row, col (ROC) =" << currentpair_.first << "," << currentpair_.second
346  << " found no match in list of patterns: ";
347  for (uint32_t i = 0; i < currentpattern_.size(); ++i) {
348  if (i != 0 && i != currentpattern_.size() - 1)
349  errorlog << " ";
350  errorlog << "(";
351  errorlog << currentpattern_[i].first;
352  errorlog << ",";
353  errorlog << currentpattern_[i].second;
354  errorlog << ")";
355  }
356  edm::LogError("ERROR") << errorlog.str() << std::endl;
357  if (includeErrors_) { // book the error
358 
359  pixelstruct temppixelworker;
360  temppixelworker.first = detid;
361  temppixelworker.second.first = row;
362  temppixelworker.second.second = col;
363  std::map<pixelstruct, SiPixelCalibDigiError>::const_iterator ierr = error_data_.find(temppixelworker);
364  if (ierr == error_data_.end()) {
365  SiPixelCalibDigiError temperr(row, col, 1);
366  error_data_[temppixelworker] = temperr;
367  }
368  }
369 
370  return false;
371 }
372 
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
SiPixelCalibDigiProducer::detid_to_fedid_
std::map< uint32_t, uint32_t > detid_to_fedid_
Definition: SiPixelCalibDigiProducer.h:100
SiPixelCalibDigiProducer::error_data_
std::map< pixelstruct, SiPixelCalibDigiError > error_data_
Definition: SiPixelCalibDigiProducer.h:96
electrons_cff.bool
bool
Definition: electrons_cff.py:366
mps_fire.i
i
Definition: mps_fire.py:428
funct::false
false
Definition: Factorize.h:29
edm::DetSetVector::end
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:325
edm::DetSet
Definition: DetSet.h:23
converter
Definition: CandidateProducer.h:25
edm
HLT enums.
Definition: AlignableModifier.h:19
gpuClustering::adc
uint16_t *__restrict__ uint16_t const *__restrict__ adc
Definition: gpuClusterChargeCut.h:20
SiPixelCalibConfiguration::getNTriggers
short getNTriggers() const
Definition: SiPixelCalibConfiguration.h:28
cuy.col
col
Definition: cuy.py:1009
SiPixelCalibDigiProducer::theGeometry_
edm::ESHandle< TrackerGeometry > theGeometry_
Definition: SiPixelCalibDigiProducer.h:86
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
SiPixelCalibDigiProducer::iEventCounter_
uint32_t iEventCounter_
Definition: SiPixelCalibDigiProducer.h:73
ElectronicIndex.h
edm::DetSetVector::begin
iterator begin()
Return an iterator to the first DetSet.
Definition: DetSetVector.h:314
L1TrackObjectNtupleMaker_cfg.pOut
pOut
Definition: L1TrackObjectNtupleMaker_cfg.py:172
SiPixelFedCablingMap.h
SiPixelCalibDigiProducer::includeErrors_
bool includeErrors_
Definition: SiPixelCalibDigiProducer.h:77
SiPixelCalibConfiguration::nColumnPatterns
uint32_t nColumnPatterns() const
Definition: SiPixelCalibConfiguration.cc:105
sipixelobjects::ElectronicIndex::dcol
int dcol
Definition: ElectronicIndex.h:8
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
SiPixelCalibDigiProducer::fill
virtual void fill(edm::Event &iEvent, const edm::EventSetup &iSetup)
Definition: SiPixelCalibDigiProducer.cc:96
SiPixelCalibDigiProducer::checkFED
virtual bool checkFED(uint32_t detid)
Definition: SiPixelCalibDigiProducer.cc:120
edm::Handle
Definition: AssociativeIterator.h:50
sipixelobjects::LocalPixel::rocCol
int rocCol() const
Definition: LocalPixel.h:35
sipixelobjects::LocalPixel
identify pixel inside single ROC
Definition: LocalPixel.h:7
SiPixelCalibDigiProducer::setPattern
virtual void setPattern()
Definition: SiPixelCalibDigiProducer.cc:199
DetectorIndex.h
SiPixelCalibDigiProducer.h
SiPixelCalibDigiProducer::trackerGeomToken_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeomToken_
Definition: SiPixelCalibDigiProducer.h:90
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
SiPixelCalibDigiProducer::checkPixel
virtual bool checkPixel(uint32_t detid, short row, short col)
Definition: SiPixelCalibDigiProducer.cc:309
SiPixelCalibConfiguration::expectedTotalEvents
uint32_t expectedTotalEvents() const
Definition: SiPixelCalibConfiguration.cc:56
plotBeamSpotDB.ipoint
ipoint
Definition: plotBeamSpotDB.py:340
sipixelobjects::ElectronicIndex::pxid
int pxid
Definition: ElectronicIndex.h:9
SiPixelCalibDigiProducer::intermediate_data_
std::map< pixelstruct, SiPixelCalibDigi > intermediate_data_
Definition: SiPixelCalibDigiProducer.h:95
SiPixelCalibDigiError.h
sipixelobjects::ElectronicIndex
Definition: ElectronicIndex.h:5
SiPixelCalibConfiguration::vcalIndexForEvent
short vcalIndexForEvent(const uint32_t &eventnumber) const
Definition: SiPixelCalibConfiguration.cc:5
TrackerDigiGeometryRecord.h
SiPixelCalibDigiProducer::src_
edm::InputTag src_
Definition: SiPixelCalibDigiProducer.h:71
SiPixelFrameConverter.h
SiPixelCalibDigiProducer::currentpattern_
std::vector< std::pair< short, short > > currentpattern_
Definition: SiPixelCalibDigiProducer.h:102
SiPixelCalibDigiError
Definition: SiPixelCalibDigiError.h:16
edm::ParameterSet
Definition: ParameterSet.h:47
sipixelobjects::LocalPixel::DcolPxid::pxid
int pxid
Definition: LocalPixel.h:20
sipixelobjects::LocalPixel::DcolPxid
double collumn and pixel ID in double collumn representation
Definition: LocalPixel.h:19
sipixelobjects::LocalPixel::rocRow
int rocRow() const
Definition: LocalPixel.h:34
edm::DetSetVector::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:102
SiPixelCalibDigiProducer::ignore_non_pattern_
bool ignore_non_pattern_
Definition: SiPixelCalibDigiProducer.h:75
SiPixelCalibDigiProducer::calibToken_
edm::ESGetToken< SiPixelCalibConfiguration, SiPixelCalibConfigurationRcd > calibToken_
Definition: SiPixelCalibDigiProducer.h:89
postprocess-scan-build.formatter
formatter
Definition: postprocess-scan-build.py:49
SiPixelCalibConfiguration::nVCal
uint32_t nVCal() const
Definition: SiPixelCalibConfiguration.h:54
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
SiPixelCalibDigiProducer::SiPixelCalibDigiProducer
SiPixelCalibDigiProducer(const edm::ParameterSet &iConfig)
Definition: SiPixelCalibDigiProducer.cc:47
LocalPixel.h
SiPixelCalibDigiProducer::store
virtual bool store()
Definition: SiPixelCalibDigiProducer.cc:82
topSingleLeptonDQM_PU_cfi.pattern
pattern
Definition: topSingleLeptonDQM_PU_cfi.py:39
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
SiPixelCalibDigiProducer::calib_
edm::ESHandle< SiPixelCalibConfiguration > calib_
Definition: SiPixelCalibDigiProducer.h:85
SiPixelCalibDigiProducer::currentpair_
std::pair< short, short > currentpair_
Definition: SiPixelCalibDigiProducer.h:103
SiPixelCalibDigi::setrowcol
void setrowcol(uint16_t row, uint16_t col)
Definition: SiPixelCalibDigi.cc:32
edm::EventSetup
Definition: EventSetup.h:58
SiPixelFrameConverter
Definition: SiPixelFrameConverter.h:15
SiPixelCalibDigiProducer::theCablingMap_
edm::ESHandle< SiPixelFedCablingMap > theCablingMap_
Definition: SiPixelCalibDigiProducer.h:87
SiPixelCalibDigiProducer::produce
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: SiPixelCalibDigiProducer.cc:253
SiPixelCalibDigiProducer::use_realeventnumber_
bool use_realeventnumber_
Definition: SiPixelCalibDigiProducer.h:83
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
PixelSLinkDataInputSource_cfi.fedid
fedid
Definition: PixelSLinkDataInputSource_cfi.py:6
SiPixelCalibDigiProducer::cablingMapToken_
edm::ESGetToken< SiPixelFedCablingMap, SiPixelFedCablingMapRcd > cablingMapToken_
Definition: SiPixelCalibDigiProducer.h:91
heppy_batch.val
val
Definition: heppy_batch.py:351
eostools.move
def move(src, dest)
Definition: eostools.py:511
SiPixelCalibDigi
Definition: SiPixelCalibDigi.h:9
edm::DetSet::data
collection_type data
Definition: DetSet.h:80
SiPixelCalibConfiguration::getColumnPattern
std::vector< short > getColumnPattern() const
Definition: SiPixelCalibConfiguration.h:34
EventSetup.h
SiPixelCalibDigiProducer::~SiPixelCalibDigiProducer
~SiPixelCalibDigiProducer() override
Definition: SiPixelCalibDigiProducer.cc:70
SiPixelCalibDigiProducer::clear
virtual void clear()
Definition: SiPixelCalibDigiProducer.cc:172
SiPixelCalibDigiProducer
Definition: SiPixelCalibDigiProducer.h:55
SiPixelCalibDigiProducer::pattern_repeat_
uint32_t pattern_repeat_
Definition: SiPixelCalibDigiProducer.h:99
hgcalTestNeighbor_cfi.detector
detector
Definition: hgcalTestNeighbor_cfi.py:6
SiPixelCalibDigiProducer::pixelstruct
std::pair< uint32_t, std::pair< short, short > > pixelstruct
Definition: SiPixelCalibDigiProducer.h:69
SiPixelCalibDigiProducer::number_of_pixels_per_pattern_
uint32_t number_of_pixels_per_pattern_
Definition: SiPixelCalibDigiProducer.h:82
SiPixelCalibDigiProducer::tPixelDigi
edm::EDGetTokenT< edm::DetSetVector< PixelDigi > > tPixelDigi
Definition: SiPixelCalibDigiProducer.h:72
SiPixelCalibDigiProducer::control_pattern_size_
bool control_pattern_size_
Definition: SiPixelCalibDigiProducer.h:76
SiPixelCalibConfiguration::getRowPattern
std::vector< short > getRowPattern() const
Definition: SiPixelCalibConfiguration.h:31
edm::Event
Definition: Event.h:73
SiPixelCalibDigiProducer::fillPixel
virtual void fillPixel(uint32_t detid, short row, short col, short ipoint, short adc)
Definition: SiPixelCalibDigiProducer.cc:141
sipixelobjects::LocalPixel::DcolPxid::dcol
int dcol
Definition: LocalPixel.h:20
sipixelobjects::DetectorIndex
Definition: DetectorIndex.h:6
edm::DetSet::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSet.h:31