CMS 3D CMS Logo

SiPixelGainCalibrationServiceBase.h
Go to the documentation of this file.
1 #ifndef CalibTracker_SiPixelESProducers_SiPixelGainCalibrationServiceBase_H
2 #define CalibTracker_SiPixelESProducers_SiPixelGainCalibrationServiceBase_H
3 
4 // ************************************************************************
5 // ************************************************************************
6 // ******* SiPixelOfflineCalibrationServiceBase *******
7 // ******* Author: Vincenzo Chiochia (chiochia@cern.ch) *******
8 // ******* Modified: Evan Friis (evan.friis@cern.ch) *******
9 // ******* Additions: Freya Blekman (freya.blekman@cern.ch) *******
10 // ******* *******
11 // ******* Provides common interface to SiPixel gain calib *******
12 // ******* payloads in offline database *******
13 // ******* *******
14 // ************************************************************************
15 // ************************************************************************
16 
19 
20 // Framework
27 
28 // Abstract base class provides common interface to different payload getters
30 public:
32 
35 
37 
38  // default inplementation from PixelThresholdClusterizer
39  virtual void calibrate(
40  uint32_t detID, DigiIterator b, DigiIterator e, float conversionFactor, float offset, int* electron);
41 
42  virtual float getGain(const uint32_t& detID, const int& col, const int& row) = 0;
43  virtual float getPedestal(const uint32_t& detID, const int& col, const int& row) = 0;
44  virtual bool isDead(const uint32_t& detID, const int& col, const int& row) = 0;
45  virtual bool isDeadColumn(const uint32_t& detID, const int& col, const int& row) = 0;
46  virtual bool isNoisy(const uint32_t& detID, const int& col, const int& row) = 0;
47  virtual bool isNoisyColumn(const uint32_t& detID, const int& col, const int& row) = 0;
48  virtual void setESObjects(const edm::EventSetup& es) = 0;
49  virtual std::vector<uint32_t> getDetIds() = 0;
50  virtual double getGainLow() = 0;
51  virtual double getGainHigh() = 0;
52  virtual double getPedLow() = 0;
53  virtual double getPedHigh() = 0;
54 };
55 
56 // Abstract template class that defines DB access types and payload specific getters
57 template <class thePayloadObject, class theDBRecordType>
59 public:
62 
63  //Abstract methods
64  float getGain(const uint32_t& detID, const int& col, const int& row) override = 0;
65  float getPedestal(const uint32_t& detID, const int& col, const int& row) override = 0;
66 
67  bool isDead(const uint32_t& detID, const int& col, const int& row) override = 0;
68  bool isDeadColumn(const uint32_t& detID, const int& col, const int& row) override = 0;
69 
70  bool isNoisy(const uint32_t& detID, const int& col, const int& row) override = 0;
71  bool isNoisyColumn(const uint32_t& detID, const int& col, const int& row) override = 0;
72 
73  void setESObjects(const edm::EventSetup& es) override;
74 
75  thePayloadObject const& payload() const { return *ped; }
76 
77  std::vector<uint32_t> getDetIds() override;
78  double getGainLow() override;
79  double getGainHigh() override;
80  double getPedLow() override;
81  double getPedHigh() override;
82 
83 protected:
84  float getPedestalByPixel(const uint32_t& detID, const int& col, const int& row, bool& isDeadPixel, bool& isNoisyPixel);
85  float getGainByPixel(const uint32_t& detID, const int& col, const int& row, bool& isDeadPixel, bool& isNoisyPixel);
86 
87  // the getByColumn functions caches the data to prevent multiple lookups on averaged quanitities
88  float getPedestalByColumn(
89  const uint32_t& detID, const int& col, const int& row, bool& isDeadColumn, bool& isNoisyColumn);
90  float getGainByColumn(const uint32_t& detID, const int& col, const int& row, bool& isDeadColumn, bool& isNoisyColumn);
91 
93  std::string payload, const uint32_t& detID, const int& col, const int& row, double value = -1) const;
94 
99  double gainLow_;
100  double gainHigh_;
101  double pedLow_;
102  double pedHigh_;
103 
104  uint32_t old_detID;
105  int old_cols;
106  // Cache data for payloads that average over columns
107 
108  // these two quantities determine what column averaged block we are in - i.e. ROC 1 or ROC 2
111 
120 
122 };
123 
124 template <class thePayloadObject, class theDBRecordType>
126  const edm::ParameterSet& conf)
127  : conf_(conf), ESetupInit_(false) {
128  edm::LogInfo("SiPixelGainCalibrationServicePayloadGetter")
129  << "[SiPixelGainCalibrationServicePayloadGetter::SiPixelGainCalibrationServicePayloadGetter]";
130  // Initialize cache variables
131  old_detID = 0;
132  oldColumnIndexGain_ = -1;
133  oldColumnIndexPed_ = -1;
134  oldColumnValueGain_ = 0.;
135  oldColumnValuePed_ = 0.;
136 
139  oldThisColumnIsDeadGain_ = false;
140  oldThisColumnIsDeadPed_ = false;
142  oldThisColumnIsNoisyPed_ = false;
143 }
144 
145 template <class thePayloadObject, class theDBRecordType>
147  const edm::EventSetup& es) {
148  es.get<theDBRecordType>().get(ped);
149  // ped->initialize(); moved to cond infrastructure
150  numberOfRowsAveragedOver_ = ped->getNumberOfRowsToAverageOver();
151  ESetupInit_ = true;
152 }
153 
154 template <class thePayloadObject, class theDBRecordType>
156  std::vector<uint32_t> vdetId_;
157  ped->getDetIds(vdetId_);
158  return vdetId_;
159 }
160 
161 template <class thePayloadObject, class theDBRecordType>
163  double gainLow_ = ped->getGainLow();
164  return gainLow_;
165 }
166 
167 template <class thePayloadObject, class theDBRecordType>
169  double gainHigh_ = ped->getGainHigh();
170  return gainHigh_;
171 }
172 
173 template <class thePayloadObject, class theDBRecordType>
175  double pedLow_ = ped->getPedLow();
176  return pedLow_;
177 }
178 
179 template <class thePayloadObject, class theDBRecordType>
181  double pedHigh_ = ped->getPedHigh();
182  return pedHigh_;
183 }
184 
185 template <class thePayloadObject, class theDBRecordType>
187  const uint32_t& detID, const int& col, const int& row, bool& isDead, bool& isNoisy) {
188  if (ESetupInit_) {
189  //&&&&&&&&&&&&&&&&&&&&
190  //Access from DB
191  //&&&&&&&&&&&&&&&&&&&&
192  if (detID != old_detID) {
193  old_detID = detID;
194  std::pair<const typename thePayloadObject::Range, const int> rangeAndNCols = ped->getRangeAndNCols(detID);
195  old_range = rangeAndNCols.first;
196  old_cols = rangeAndNCols.second;
197  oldColumnIndexGain_ = -1;
198  }
199  //std::cout<<" Pedestal "<<ped->getPed(col, row, old_range, old_cols)<<std::endl;
200  return ped->getPed(col, row, old_range, old_cols, isDead, isNoisy);
201  } else
202  throw cms::Exception("NullPointer") << "[SiPixelGainCalibrationServicePayloadGetter::getPedestalByPixel] "
203  "SiPixelGainCalibrationRcd not initialized ";
204 }
205 
206 template <class thePayloadObject, class theDBRecordType>
208  const uint32_t& detID, const int& col, const int& row, bool& isDead, bool& isNoisy) {
209  if (ESetupInit_) {
210  //&&&&&&&&&&&&&&&&&&&&
211  //Access from DB
212  //&&&&&&&&&&&&&&&&&&&&
213  if (detID != old_detID) {
214  old_detID = detID;
215  std::pair<const typename thePayloadObject::Range, const int> rangeAndNCols = ped->getRangeAndNCols(detID);
216  old_range = rangeAndNCols.first;
217  old_cols = rangeAndNCols.second;
218  return oldColumnValuePed_;
219  }
220  return ped->getGain(col, row, old_range, old_cols, isDead, isNoisy);
221  } else
222  throw cms::Exception("NullPointer")
223  << "[SiPixelGainCalibrationServicePayloadGetter::getGainByPixel] SiPixelGainCalibrationRcd not initialized ";
224 }
225 
226 template <class thePayloadObject, class theDBRecordType>
228  const uint32_t& detID, const int& col, const int& row, bool& isDeadColumn, bool& isNoisyColumn) {
229  if (ESetupInit_) {
230  //&&&&&&&&&&&&&&&&&&&&
231  //Access from DB
232  //&&&&&&&&&&&&&&&&&&&&
233  // see if we are in the same averaged data block
234  bool inTheSameAveragedDataBlock = false;
235  if (row / numberOfRowsAveragedOver_ == oldAveragedBlockDataPed_)
236  inTheSameAveragedDataBlock = true;
237 
238  if (detID != old_detID) {
239  old_detID = detID;
240  std::pair<const typename thePayloadObject::Range, const int> rangeAndNCols = ped->getRangeAndNCols(detID);
241  old_range = rangeAndNCols.first;
242  old_cols = rangeAndNCols.second;
243  oldColumnIndexGain_ = -1;
244  } else if (col == oldColumnIndexPed_ && inTheSameAveragedDataBlock) // same DetID, same column, same data block
245  {
246  isDeadColumn = oldThisColumnIsDeadPed_;
247  isNoisyColumn = oldThisColumnIsNoisyPed_;
248  return oldColumnValuePed_;
249  }
250 
251  oldColumnIndexPed_ = col;
252  oldAveragedBlockDataPed_ = row / numberOfRowsAveragedOver_;
253  oldColumnValuePed_ = ped->getPed(col, row, old_range, old_cols, isDeadColumn, isNoisyColumn);
254  oldThisColumnIsDeadPed_ = isDeadColumn;
255  oldThisColumnIsNoisyPed_ = isNoisyColumn;
256 
257  return oldColumnValuePed_;
258 
259  } else
260  throw cms::Exception("NullPointer") << "[SiPixelGainCalibrationServicePayloadGetter::getPedestalByColumn] "
261  "SiPixelGainCalibrationRcd not initialized ";
262 }
263 
264 template <class thePayloadObject, class theDBRecordType>
266  const uint32_t& detID, const int& col, const int& row, bool& isDeadColumn, bool& isNoisyColumn) {
267  if (ESetupInit_) {
268  //&&&&&&&&&&&&&&&&&&&&
269  //Access from DB
270  //&&&&&&&&&&&&&&&&&&&&
271  bool inTheSameAveragedDataBlock = false;
272  if (row / numberOfRowsAveragedOver_ == oldAveragedBlockDataGain_)
273  inTheSameAveragedDataBlock = true;
274 
275  if (detID != old_detID) {
276  old_detID = detID;
277  std::pair<const typename thePayloadObject::Range, const int> rangeAndNCols = ped->getRangeAndNCols(detID);
278  old_range = rangeAndNCols.first;
279  old_cols = rangeAndNCols.second;
280  oldColumnIndexPed_ = -1;
281  } else if (col == oldColumnIndexGain_ && inTheSameAveragedDataBlock) // same DetID, same column
282  {
283  isDeadColumn = oldThisColumnIsDeadGain_;
284  isDeadColumn = oldThisColumnIsNoisyGain_;
285  return oldColumnValueGain_;
286  }
287 
288  oldColumnIndexGain_ = col;
289  oldAveragedBlockDataGain_ = row / numberOfRowsAveragedOver_;
290  oldColumnValueGain_ = ped->getGain(col, row, old_range, old_cols, isDeadColumn, isNoisyColumn);
291  oldThisColumnIsDeadGain_ = isDeadColumn;
292  oldThisColumnIsNoisyGain_ = isNoisyColumn;
293 
294  return oldColumnValueGain_;
295 
296  } else
297  throw cms::Exception("NullPointer")
298  << "[SiPixelGainCalibrationServicePayloadGetter::getGainByColumn] SiPixelGainCalibrationRcd not initialized ";
299 }
300 
301 template <class thePayloadObject, class theDBRecordType>
303  std::string payload, const uint32_t& detID, const int& col, const int& row, const double value) const {
304  std::cerr << "[SiPixelGainCalibrationServicePayloadGetter::SiPixelGainCalibrationServicePayloadGetter]"
305  << "[SiPixelGainCalibrationServicePayloadGetter] ERROR - Slow down, speed racer! You have tried to read "
306  "the ped/gain on a pixel that is flagged as dead/noisy. For payload: "
307  << payload << " DETID: " << detID << " col: " << col << " row: " << row
308  << ". You must check if the pixel is dead/noisy before asking for the ped/gain value, otherwise you will "
309  "get corrupt data! value: "
310  << value << std::endl;
311 
312  // really yell if this occurs
313 
314  edm::LogError("SiPixelGainCalibrationService")
315  << "[SiPixelGainCalibrationServicePayloadGetter::SiPixelGainCalibrationServicePayloadGetter]"
316  << "[SiPixelGainCalibrationServicePayloadGetter] ERROR - Slow down, speed racer! You have tried to read the "
317  "ped/gain on a pixel that is flagged as dead/noisy. For payload: "
318  << payload << " DETID: " << detID << " col: " << col << " row: " << row
319  << ". You must check if the pixel is dead/noisy before asking for the ped/gain value, otherwise you will get "
320  "corrupt data! value: "
321  << value << std::endl;
322 }
323 
324 #endif
SiPixelGainCalibrationServiceBase::isDeadColumn
virtual bool isDeadColumn(const uint32_t &detID, const int &col, const int &row)=0
MessageLogger.h
funct::false
false
Definition: Factorize.h:34
SiPixelGainCalibrationServicePayloadGetter::payload
thePayloadObject const & payload() const
Definition: SiPixelGainCalibrationServiceBase.h:75
ESHandle.h
Range
PixelRecoRange< float > Range
Definition: PixelTripletHLTGenerator.cc:31
SiPixelGainCalibrationServicePayloadGetter::old_detID
uint32_t old_detID
Definition: SiPixelGainCalibrationServiceBase.h:104
SiPixelGainCalibrationServicePayloadGetter::isDeadColumn
bool isDeadColumn(const uint32_t &detID, const int &col, const int &row) override=0
SiPixelGainCalibrationServiceBase::getGainHigh
virtual double getGainHigh()=0
SiPixelGainCalibrationServiceBase::DigiIterator
edm::DetSet< PixelDigi >::const_iterator DigiIterator
Definition: SiPixelGainCalibrationServiceBase.h:31
SiPixelGainCalibrationServicePayloadGetter::~SiPixelGainCalibrationServicePayloadGetter
~SiPixelGainCalibrationServicePayloadGetter() override
Definition: SiPixelGainCalibrationServiceBase.h:61
SiPixelGainCalibrationServiceBase::isDead
virtual bool isDead(const uint32_t &detID, const int &col, const int &row)=0
SiPixelGainCalibrationServiceBase::getGain
virtual float getGain(const uint32_t &detID, const int &col, const int &row)=0
cuy.col
col
Definition: cuy.py:1010
edm::LogInfo
Definition: MessageLogger.h:254
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
SiPixelGainCalibrationServicePayloadGetter::oldColumnIndexPed_
int oldColumnIndexPed_
Definition: SiPixelGainCalibrationServiceBase.h:117
SiPixelGainCalibrationServicePayloadGetter::pedHigh_
double pedHigh_
Definition: SiPixelGainCalibrationServiceBase.h:102
PixelDigi.h
SiPixelGainCalibrationServicePayloadGetter::getPedestalByColumn
float getPedestalByColumn(const uint32_t &detID, const int &col, const int &row, bool &isDeadColumn, bool &isNoisyColumn)
Definition: SiPixelGainCalibrationServiceBase.h:227
SiPixelGainCalibrationServicePayloadGetter::isNoisy
bool isNoisy(const uint32_t &detID, const int &col, const int &row) override=0
SiPixelGainCalibrationServicePayloadGetter::numberOfRowsAveragedOver_
int numberOfRowsAveragedOver_
Definition: SiPixelGainCalibrationServiceBase.h:98
SiPixelGainCalibrationServicePayloadGetter::getGainByColumn
float getGainByColumn(const uint32_t &detID, const int &col, const int &row, bool &isDeadColumn, bool &isNoisyColumn)
Definition: SiPixelGainCalibrationServiceBase.h:265
SiPixelGainCalibrationServiceBase::getGainLow
virtual double getGainLow()=0
SiPixelGainCalibrationServicePayloadGetter::setESObjects
void setESObjects(const edm::EventSetup &es) override
Definition: SiPixelGainCalibrationServiceBase.h:146
SiPixelGainCalibrationServicePayloadGetter::gainHigh_
double gainHigh_
Definition: SiPixelGainCalibrationServiceBase.h:100
SiPixelGainCalibrationServicePayloadGetter::conf_
edm::ParameterSet conf_
Definition: SiPixelGainCalibrationServiceBase.h:95
SiPixelGainCalibrationServicePayloadGetter::getGainByPixel
float getGainByPixel(const uint32_t &detID, const int &col, const int &row, bool &isDeadPixel, bool &isNoisyPixel)
Definition: SiPixelGainCalibrationServiceBase.h:207
SiPixelGainCalibrationServicePayloadGetter::getDetIds
std::vector< uint32_t > getDetIds() override
Definition: SiPixelGainCalibrationServiceBase.h:155
SiPixelGainCalibrationServicePayloadGetter
Definition: SiPixelGainCalibrationServiceBase.h:58
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
SiPixelGainCalibrationServicePayloadGetter::ESetupInit_
bool ESetupInit_
Definition: SiPixelGainCalibrationServiceBase.h:96
SiPixelGainCalibrationServicePayloadGetter::ped
edm::ESHandle< thePayloadObject > ped
Definition: SiPixelGainCalibrationServiceBase.h:97
SiPixelGainCalibrationServicePayloadGetter::getGain
float getGain(const uint32_t &detID, const int &col, const int &row) override=0
SiPixelGainCalibrationServicePayloadGetter::isNoisyColumn
bool isNoisyColumn(const uint32_t &detID, const int &col, const int &row) override=0
SiPixelGainCalibrationServicePayloadGetter::getPedestal
float getPedestal(const uint32_t &detID, const int &col, const int &row) override=0
metsig::electron
Definition: SignAlgoResolutions.h:48
edm::ESHandle< thePayloadObject >
SiPixelGainCalibrationServiceBase::isNoisyColumn
virtual bool isNoisyColumn(const uint32_t &detID, const int &col, const int &row)=0
jets_cff.payload
payload
Definition: jets_cff.py:34
SiPixelGainCalibrationServiceBase::~SiPixelGainCalibrationServiceBase
virtual ~SiPixelGainCalibrationServiceBase()
Definition: SiPixelGainCalibrationServiceBase.h:34
ParameterSetDescription.h
b
double b
Definition: hdecay.h:118
SiPixelGainCalibrationServicePayloadGetter::oldColumnValueGain_
float oldColumnValueGain_
Definition: SiPixelGainCalibrationServiceBase.h:118
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiPixelGainCalibrationServicePayloadGetter::oldAveragedBlockDataPed_
int oldAveragedBlockDataPed_
Definition: SiPixelGainCalibrationServiceBase.h:110
SiPixelGainCalibrationServicePayloadGetter::pedLow_
double pedLow_
Definition: SiPixelGainCalibrationServiceBase.h:101
SiPixelGainCalibrationServicePayloadGetter::getGainHigh
double getGainHigh() override
Definition: SiPixelGainCalibrationServiceBase.h:168
edm::ParameterSet
Definition: ParameterSet.h:36
edm::LogError
Definition: MessageLogger.h:183
SiPixelGainCalibrationServiceBase
Definition: SiPixelGainCalibrationServiceBase.h:29
SiPixelGainCalibrationServiceBase::SiPixelGainCalibrationServiceBase
SiPixelGainCalibrationServiceBase()
Definition: SiPixelGainCalibrationServiceBase.h:33
SiPixelGainCalibrationServiceBase::getPedHigh
virtual double getPedHigh()=0
beam_dqm_sourceclient-live_cfg.cerr
cerr
Definition: beam_dqm_sourceclient-live_cfg.py:17
SiPixelGainCalibrationServicePayloadGetter::oldColumnValuePed_
float oldColumnValuePed_
Definition: SiPixelGainCalibrationServiceBase.h:119
SiPixelGainCalibrationServicePayloadGetter::old_cols
int old_cols
Definition: SiPixelGainCalibrationServiceBase.h:105
value
Definition: value.py:1
edm::EventSetup
Definition: EventSetup.h:57
DetSetVector.h
SiPixelGainCalibrationServicePayloadGetter::oldThisColumnIsNoisyPed_
bool oldThisColumnIsNoisyPed_
Definition: SiPixelGainCalibrationServiceBase.h:115
SiPixelGainCalibrationServiceBase::getDetIds
virtual std::vector< uint32_t > getDetIds()=0
get
#define get
SiPixelGainCalibrationServicePayloadGetter::oldAveragedBlockDataGain_
int oldAveragedBlockDataGain_
Definition: SiPixelGainCalibrationServiceBase.h:109
SiPixelGainCalibrationServicePayloadGetter::isDead
bool isDead(const uint32_t &detID, const int &col, const int &row) override=0
SiPixelGainCalibrationServicePayloadGetter::getPedLow
double getPedLow() override
Definition: SiPixelGainCalibrationServiceBase.h:174
SiPixelGainCalibrationServiceBase::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &desc)
Definition: SiPixelGainCalibrationServiceBase.h:36
SiPixelGainCalibrationServiceBase::getPedLow
virtual double getPedLow()=0
SiPixelGainCalibrationServiceBase::setESObjects
virtual void setESObjects(const edm::EventSetup &es)=0
SiPixelGainCalibrationServicePayloadGetter::oldThisColumnIsDeadPed_
bool oldThisColumnIsDeadPed_
Definition: SiPixelGainCalibrationServiceBase.h:113
SiPixelGainCalibrationServicePayloadGetter::oldColumnIndexGain_
int oldColumnIndexGain_
Definition: SiPixelGainCalibrationServiceBase.h:116
Exception
Definition: hltDiff.cc:246
SiPixelGainCalibrationServicePayloadGetter::getPedHigh
double getPedHigh() override
Definition: SiPixelGainCalibrationServiceBase.h:180
EventSetup.h
SiPixelGainCalibrationServicePayloadGetter::oldThisColumnIsDeadGain_
bool oldThisColumnIsDeadGain_
Definition: SiPixelGainCalibrationServiceBase.h:112
Exception.h
SiPixelGainCalibrationServicePayloadGetter::oldThisColumnIsNoisyGain_
bool oldThisColumnIsNoisyGain_
Definition: SiPixelGainCalibrationServiceBase.h:114
SiPixelGainCalibrationServicePayloadGetter::gainLow_
double gainLow_
Definition: SiPixelGainCalibrationServiceBase.h:99
SiPixelGainCalibrationServiceBase::getPedestal
virtual float getPedestal(const uint32_t &detID, const int &col, const int &row)=0
ParameterSet.h
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:82
SiPixelGainCalibrationServicePayloadGetter::getGainLow
double getGainLow() override
Definition: SiPixelGainCalibrationServiceBase.h:162
SiPixelGainCalibrationServicePayloadGetter::SiPixelGainCalibrationServicePayloadGetter
SiPixelGainCalibrationServicePayloadGetter(const edm::ParameterSet &conf)
Definition: SiPixelGainCalibrationServiceBase.h:125
SiPixelGainCalibrationServicePayloadGetter::throwExepctionForBadRead
void throwExepctionForBadRead(std::string payload, const uint32_t &detID, const int &col, const int &row, double value=-1) const
Definition: SiPixelGainCalibrationServiceBase.h:302
SiPixelGainCalibrationServiceBase::calibrate
virtual void calibrate(uint32_t detID, DigiIterator b, DigiIterator e, float conversionFactor, float offset, int *electron)
Definition: SiPixelGainCalibrationService.cc:19
SiPixelGainCalibrationServicePayloadGetter::old_range
thePayloadObject::Range old_range
Definition: SiPixelGainCalibrationServiceBase.h:121
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
SiPixelGainCalibrationServicePayloadGetter::getPedestalByPixel
float getPedestalByPixel(const uint32_t &detID, const int &col, const int &row, bool &isDeadPixel, bool &isNoisyPixel)
Definition: SiPixelGainCalibrationServiceBase.h:186
SiPixelGainCalibrationServiceBase::isNoisy
virtual bool isNoisy(const uint32_t &detID, const int &col, const int &row)=0
edm::DetSet::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSet.h:31