CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
CSCDigiValidator Class Reference

#include <UserCode/CSCDigiValidator/src/CSCDigiValidator.cc>

Inheritance diagram for CSCDigiValidator:
edm::EDFilter edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 CSCDigiValidator (const edm::ParameterSet &)
 
 ~CSCDigiValidator ()
 
- Public Member Functions inherited from edm::EDFilter
 EDFilter ()
 
virtual ~EDFilter ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Member Functions

virtual void beginJob ()
 
virtual void endJob ()
 
virtual bool filter (edm::Event &, const edm::EventSetup &)
 
std::vector< CSCComparatorDigirelabelCompDigis (const CSCChamberMap *m, CSCDetId _id, std::vector< CSCComparatorDigi >::const_iterator b, std::vector< CSCComparatorDigi >::const_iterator e)
 
std::vector< CSCStripDigirelabelStripDigis (const CSCChamberMap *, CSCDetId, std::vector< CSCStripDigi >::const_iterator, std::vector< CSCStripDigi >::const_iterator)
 
std::vector< CSCStripDigisanitizeStripDigis (std::vector< CSCStripDigi >::const_iterator, std::vector< CSCStripDigi >::const_iterator)
 
std::vector< CSCWireDigisanitizeWireDigis (std::vector< CSCWireDigi >::const_iterator, std::vector< CSCWireDigi >::const_iterator)
 
std::vector< CSCComparatorDigizeroSupCompDigis (std::vector< CSCComparatorDigi >::const_iterator, std::vector< CSCComparatorDigi >::const_iterator)
 
std::vector< CSCStripDigizeroSupStripDigis (std::vector< CSCStripDigi >::const_iterator, std::vector< CSCStripDigi >::const_iterator)
 

Private Attributes

edm::InputTag alct1
 
edm::InputTag alct2
 
edm::InputTag clct1
 
edm::InputTag clct2
 
edm::InputTag comp1
 
edm::InputTag comp2
 
edm::InputTag csctf1
 
edm::InputTag csctf2
 
edm::InputTag csctfstubs1
 
edm::InputTag csctfstubs2
 
edm::InputTag lct1
 
edm::InputTag lct2
 
bool reorderStrips
 
edm::InputTag strip1
 
edm::InputTag strip2
 
edm::InputTag wire1
 
edm::InputTag wire2
 

Additional Inherited Members

- Public Types inherited from edm::EDFilter
typedef EDFilter ModuleType
 
typedef WorkerT< EDFilterWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDFilter
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDFilter
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 39 of file CSCDigiValidator.h.

Constructor & Destructor Documentation

CSCDigiValidator::CSCDigiValidator ( const edm::ParameterSet iConfig)
explicit

Definition at line 55 of file CSCDigiValidator.cc.

55  :
56  wire1(iConfig.getUntrackedParameter<edm::InputTag>("inputWire")),
57  strip1(iConfig.getUntrackedParameter<edm::InputTag>("inputStrip")),
58  comp1(iConfig.getUntrackedParameter<edm::InputTag>("inputComp")),
59  clct1(iConfig.getUntrackedParameter<edm::InputTag>("inputCLCT")),
60  alct1(iConfig.getUntrackedParameter<edm::InputTag>("inputALCT")),
61  lct1(iConfig.getUntrackedParameter<edm::InputTag>("inputCorrLCT")),
62  csctf1(iConfig.getUntrackedParameter<edm::InputTag>("inputCSCTF")),
63  csctfstubs1(iConfig.getUntrackedParameter<edm::InputTag>("inputCSCTFStubs")),
64  wire2(iConfig.getUntrackedParameter<edm::InputTag>("repackWire")),
65  strip2(iConfig.getUntrackedParameter<edm::InputTag>("repackStrip")),
66  comp2(iConfig.getUntrackedParameter<edm::InputTag>("repackComp")),
67  clct2(iConfig.getUntrackedParameter<edm::InputTag>("repackCLCT")),
68  alct2(iConfig.getUntrackedParameter<edm::InputTag>("repackALCT")),
69  lct2(iConfig.getUntrackedParameter<edm::InputTag>("repackCorrLCT")),
70  csctf2(iConfig.getUntrackedParameter<edm::InputTag>("repackCSCTF")),
71  csctfstubs2(iConfig.getUntrackedParameter<edm::InputTag>("repackCSCTFStubs"))
72  // reorderStrips(iConfig.getUntrackedParameter<bool>("applyStripReordering",true))
73 {
74  //now do what ever initialization is needed
75  // produces<std::map<std::string,unsigned> >(); // # of errors enumerated by error type
76 }
edm::InputTag strip2
T getUntrackedParameter(std::string const &, T const &) const
edm::InputTag csctfstubs2
edm::InputTag alct2
edm::InputTag wire2
edm::InputTag csctfstubs1
edm::InputTag wire1
edm::InputTag comp1
edm::InputTag alct1
edm::InputTag comp2
edm::InputTag strip1
edm::InputTag clct2
edm::InputTag lct1
edm::InputTag clct1
edm::InputTag csctf2
edm::InputTag lct2
edm::InputTag csctf1
CSCDigiValidator::~CSCDigiValidator ( )

Definition at line 79 of file CSCDigiValidator.cc.

80 {
81 
82  // do anything here that needs to be done at desctruction time
83  // (e.g. close files, deallocate resources etc.)
84 
85 }

Member Function Documentation

void CSCDigiValidator::beginJob ( void  )
privatevirtual

Reimplemented from edm::EDFilter.

Definition at line 1030 of file CSCDigiValidator.cc.

1031 {
1032 }
void CSCDigiValidator::endJob ( void  )
privatevirtual

Reimplemented from edm::EDFilter.

Definition at line 1036 of file CSCDigiValidator.cc.

1037 {
1038 }
bool CSCDigiValidator::filter ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDFilter.

Definition at line 94 of file CSCDigiValidator.cc.

References a, alct1, alct2, b, trackerHits::c, clct1, clct2, comp1, comp2, gather_cfg::cout, CSCDetId, csctf1, csctf2, csctfstubs1, csctfstubs2, dt, edm::EventSetup::get(), edm::Event::getByLabel(), i, gen::k, lct1, lct2, python.multivaluedict::map(), max(), min, relabelCompDigis(), relabelStripDigis(), asciidump::s, sanitizeWireDigis(), edm::second(), findQualityFiles::size, strip1, strip2, RecoTauPiZeroBuilderPlugins_cfi::strips, testEve_cfg::tracks, wire1, wire2, zeroSupCompDigis(), zeroSupStripDigis(), and SurfaceOrientation::zplus.

Referenced by python.Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::filter(), python.Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::find(), python.Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::setDataAccessor(), and python.Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::switchCenterView().

95 {
96  bool _err = false;
97  using namespace edm;
98 
99  typedef std::map<CSCDetId,
100  std::pair<std::vector<CSCWireDigi>,std::vector<CSCWireDigi> > >
101  matchingDetWireCollection;
102  typedef std::map<CSCDetId,
103  std::pair<std::vector<CSCStripDigi>,std::vector<CSCStripDigi> > >
104  matchingDetStripCollection;
105  typedef std::map<CSCDetId,
106  std::pair<std::vector<CSCComparatorDigi>,std::vector<CSCComparatorDigi> > >
107  matchingDetComparatorCollection;
108  typedef std::map<CSCDetId,
109  std::pair<std::vector<CSCCLCTDigi>,std::vector<CSCCLCTDigi> > >
110  matchingDetCLCTCollection;
111  typedef std::map<CSCDetId,
112  std::pair<std::vector<CSCALCTDigi>,std::vector<CSCALCTDigi> > >
113  matchingDetALCTCollection;
114  typedef std::map<CSCDetId,
115  std::pair<std::vector<CSCCorrelatedLCTDigi>,std::vector<CSCCorrelatedLCTDigi> > >
116  matchingDetLCTCollection;
117 
118  // std::auto_ptr<std::map<std::string,unsigned> >
119  // errors(new std::map<std::string,unsigned>);
120 
122  iSetup.get<CSCChamberMapRcd>().get(hcham);
123  const CSCChamberMap* theMapping = hcham.product();
124 
128  Handle<CSCCLCTDigiCollection> _clct, _sclct;
129  Handle<CSCALCTDigiCollection> _alct, _salct;
131  Handle<L1CSCTrackCollection> _trk, _strk;
133 
134  // get wire digis before and after unpacking
135  iEvent.getByLabel(wire1,_swi);
136  iEvent.getByLabel(wire2,_wi);
137 
138  //get strip digis before and after unpacking
139  iEvent.getByLabel(strip1,_sst);
140  iEvent.getByLabel(strip2,_st);
141 
142  //get comparator digis before and after unpacking
143  iEvent.getByLabel(comp1,_scmp);
144  iEvent.getByLabel(comp2,_cmp);
145 
146  //get clcts
147  iEvent.getByLabel(clct1,_sclct);
148  iEvent.getByLabel(clct2,_clct);
149 
150  //get alcts
151  iEvent.getByLabel(alct1,_salct);
152  iEvent.getByLabel(alct2,_alct);
153 
154  //get lcts
155  iEvent.getByLabel(lct1,_slct);
156  iEvent.getByLabel(lct2,_lct);
157 
158  //get l1 tracks
159  iEvent.getByLabel(csctf1,_strk);
160  iEvent.getByLabel(csctfstubs1,_sdt);
161  iEvent.getByLabel(csctf2,_trk);
162  iEvent.getByLabel(csctfstubs2,_dt);
163 
164  //get DT stubs for L1 Tracks
165 
167  wi = _wi->begin(), swi= _swi->begin();
169  st = _st->begin(), sst = _sst->begin();
171  cmp = _cmp->begin(), scmp = _scmp->begin();
173  clct = _clct->begin(), sclct = _sclct->begin();
175  alct = _alct->begin(), salct = _salct->begin();
177  lct = _lct->begin(), slct = _slct->begin();
178  L1CSCTrackCollection::const_iterator
179  trk = _trk->begin(), strk = _strk->begin();
180  std::vector<csctf::TrackStub>::const_iterator
181  dt = _dt->get().begin(), sdt = _sdt->get().begin();
182 
183  //per detID, create lists of various digi types
184  matchingDetWireCollection wires;
185  matchingDetStripCollection strips;
186  matchingDetComparatorCollection comps;
187  matchingDetCLCTCollection clcts;
188  matchingDetALCTCollection alcts;
189  matchingDetLCTCollection lcts,trackstubs;
191 
192  //wires
193  for(;wi != _wi->end();++wi)
194  {
196  b=(*wi).second.first,e=(*wi).second.second;
197  std::vector<CSCWireDigi>::iterator
198  beg=wires[(*wi).first].first.end();
199  wires[(*wi).first].first.insert(beg,b,e);
200  }
201  for(;swi != _swi->end();++swi)
202  {
204  b=(*swi).second.first,e=(*swi).second.second;
205  //convert sim ring 4(ME1/a) to ring 1
206  CSCDetId _id = (*swi).first;
207  if((*swi).first.ring() == 4)
208  _id = CSCDetId((*swi).first.endcap(),(*swi).first.station(),
209  1, (*swi).first.chamber(),(*swi).first.layer());
210 
211  std::vector<CSCWireDigi>::iterator
212  beg=wires[_id].second.end();
213 
214  wires[_id].second.insert(beg,b,e);
215  // automatically combine wire digis after each insertion
216  wires[_id].second = sanitizeWireDigis(wires[_id].second.begin(),
217  wires[_id].second.end());
218  }
219 
220  //strips
221  for(;st != _st->end();++st)
222  {
224  b=(*st).second.first,e=(*st).second.second;
225  std::vector<CSCStripDigi>::iterator
226  beg=strips[(*st).first].first.end();
227 
228  //need to remove strips with no active ADCs
229  std::vector<CSCStripDigi> zs = zeroSupStripDigis(b,e);
230 
231  strips[(*st).first].first.insert(beg,zs.begin(),zs.end());
232  }
233  for(;sst != _sst->end();++sst)
234  {
236  b=(*sst).second.first,e=(*sst).second.second;
237  // conversion of ring 4->1 not necessary here
238  CSCDetId _id = (*sst).first;
239  //if((*sst).first.ring() == 4)
240  // _id = CSCDetId((*sst).first.endcap(),(*sst).first.station(),
241  // 1, (*sst).first.chamber(),(*sst).first.layer());
242 
243  std::vector<CSCStripDigi>::iterator
244  beg=strips[_id].second.end();
245 
246  std::vector<CSCStripDigi> relab = relabelStripDigis(theMapping,(*sst).first,b,e);
247 
248  strips[_id].second.insert(beg,relab.begin(),relab.end());
249  //strips[_id].second.insert(beg,b,e);
250  }
251 
252  //comparators
253  for(;cmp != _cmp->end();++cmp)
254  {
256  b=(*cmp).second.first,e=(*cmp).second.second;
257  std::vector<CSCComparatorDigi>::iterator
258  beg=comps[(*cmp).first].first.end();
259 
260  comps[(*cmp).first].first.insert(beg,b,e);
261  }
262  for(;scmp != _scmp->end();++scmp)
263  {
265  b=(*scmp).second.first,e=(*scmp).second.second;
266  // convert sim ring 4 (ME1/a) to ring 1
267  CSCDetId _id = (*scmp).first;
268  if((*scmp).first.ring() == 4)
269  _id = CSCDetId((*scmp).first.endcap(),(*scmp).first.station(),
270  1, (*scmp).first.chamber(),(*scmp).first.layer());
271 
272  std::vector<CSCComparatorDigi>::iterator
273  beg=comps[_id].second.begin();
274 
275  if((*scmp).first.ring()==4)
276  beg=comps[_id].second.end();
277 
278  std::vector<CSCComparatorDigi> zs =
279  zeroSupCompDigis(b,e);
280 
281  std::vector<CSCComparatorDigi> relab =
282  relabelCompDigis(theMapping,(*scmp).first,
283  zs.begin(),
284  zs.end());
285 
286  comps[_id].second.insert(beg,relab.begin(),relab.end());
287  }
288 
289  //CLCTs
290  for(;clct != _clct->end();++clct)
291  {
293  b=(*clct).second.first,e=(*clct).second.second;
294  std::vector<CSCCLCTDigi>::iterator
295  beg=clcts[(*clct).first].first.end();
296 
297  clcts[(*clct).first].first.insert(beg,b,e);
298  }
299  for(;sclct != _sclct->end();++sclct)
300  {
302  b=(*sclct).second.first,e=(*sclct).second.second;
303  // convert sim ring 4 (ME1/a) to ring 1
304  CSCDetId _id = (*sclct).first;
305  if((*sclct).first.ring() == 4)
306  _id = CSCDetId((*sclct).first.endcap(),(*sclct).first.station(),
307  1, (*sclct).first.chamber(),(*sclct).first.layer());
308 
309  std::vector<CSCCLCTDigi>::iterator
310  beg=clcts[_id].second.begin();
311 
312  if((*sclct).first.ring()==4)
313  beg=clcts[_id].second.end();
314 
315  clcts[_id].second.insert(beg,b,e);
316  }
317 
318  //ALCTs
319  for(;alct != _alct->end();++alct)
320  {
322  b=(*alct).second.first,e=(*alct).second.second;
323  std::vector<CSCALCTDigi>::iterator
324  beg=alcts[(*alct).first].first.end();
325 
326  alcts[(*alct).first].first.insert(beg,b,e);
327  }
328  for(;salct != _salct->end();++salct)
329  {
331  b=(*salct).second.first,e=(*salct).second.second;
332  // convert sim ring 4 (ME1/a) to ring 1
333  CSCDetId _id = (*salct).first;
334  if((*salct).first.ring() == 4)
335  _id = CSCDetId((*salct).first.endcap(),(*salct).first.station(),
336  1, (*salct).first.chamber(),(*salct).first.layer());
337 
338  std::vector<CSCALCTDigi>::iterator
339  beg=alcts[_id].second.begin();
340 
341  if((*salct).first.ring()==4)
342  beg=alcts[_id].second.end();
343 
344  alcts[_id].second.insert(beg,b,e);
345  }
346 
347  // Correlated LCTs
348  for(;lct != _lct->end();++lct)
349  {
351  b=(*lct).second.first,e=(*lct).second.second;
352  std::vector<CSCCorrelatedLCTDigi>::iterator
353  beg=lcts[(*lct).first].first.end();
354 
355  lcts[(*lct).first].first.insert(beg,b,e);
356  }
357  for(;slct != _slct->end();++slct)
358  {
360  b=(*slct).second.first,e=(*slct).second.second;
361  // convert sim ring 4 (ME1/a) to ring 1
362  CSCDetId _id = (*slct).first;
363  if((*slct).first.ring() == 4)
364  _id = CSCDetId((*slct).first.endcap(),(*slct).first.station(),
365  1, (*slct).first.chamber(),(*slct).first.layer());
366 
367  std::vector<CSCCorrelatedLCTDigi>::iterator
368  beg=lcts[_id].second.begin();
369 
370  if((*slct).first.ring()==4)
371  beg=lcts[_id].second.end();
372 
373  lcts[_id].second.insert(beg,b,e);
374  }
375  // remove attached LCT digis from tracks, should be put into their own collection and checked separately
376  for(; trk != _trk->end(); ++trk)
377  {
378  tracks.push_back(trk->first);
379 
380  }
381  for(;strk != _strk->end(); ++strk)
382  {
383  simtracks.push_back(strk->first);
384  }
385 
386  //now loop through each set and process if there are differences!
387  matchingDetWireCollection::const_iterator w;
388  matchingDetStripCollection::const_iterator s;
389  matchingDetComparatorCollection::const_iterator c;
390  matchingDetCLCTCollection::const_iterator cl;
391  matchingDetALCTCollection::const_iterator al;
392  matchingDetLCTCollection::const_iterator lc;
393 
394  for(w = wires.begin(); w != wires.end(); ++w)
395  {
396  if(w->second.first.size() != w->second.second.size())
397  {
398  std::cout << "Major error! # of wire digis in detID: " << w->first
399  << " is not equal between sim and unpacked!" << std::endl;
400  //eventually do more in this case!
401 
402  std::vector<CSCWireDigi> a = w->second.second;
403  std::vector<CSCWireDigi> b = w->second.first;
404  std::cout << "SIM OUTPUT:" << std::endl;
405  for(std::vector<CSCWireDigi>::const_iterator i = a.begin(); i != a.end(); ++i)
406  i->print();
407  std::cout << "UNPACKER OUTPUT:" << std::endl;
408  for(std::vector<CSCWireDigi>::const_iterator i = b.begin(); i != b.end(); ++i)
409  i->print();
410 
411  }
412  int max = std::min(w->second.first.size(),w->second.second.size());
413  std::vector<CSCWireDigi> cv = w->second.first;
414  std::vector<CSCWireDigi> sv = w->second.second;
415  for(int i = 0; i < max; ++i)
416  {
417  if(sv[i].getWireGroup() != cv[i].getWireGroup())
418  {
419  std::cout << "In detId: " << w->first << std::endl;
420  std::cout << "Wire Groups do not match: " << sv[i].getWireGroup()
421  << " != " << cv[i].getWireGroup() << std::endl;
422  }
423  if(sv[i].getTimeBin() != cv[i].getTimeBin())
424  {
425  std::cout << "In detId: " << w->first << std::endl;
426  std::cout << "First Time Bins do not match: " << sv[i].getTimeBin()
427  << " != " << cv[i].getTimeBin() << std::endl;
428  }
429  if(sv[i].getTimeBinWord() != cv[i].getTimeBinWord())
430  {
431  std::cout << "In detId: " << w->first << std::endl;
432  std::cout << "Time Bin Words do not match: " << sv[i].getTimeBinWord()
433  << " != " << cv[i].getTimeBinWord() << std::endl;
434  }
435  }
436  }
437  for(s = strips.begin(); s != strips.end(); ++s)
438  {
439  if(s->second.first.size() != s->second.second.size())
440  {
441  std::cout << "Major error! # of strip digis in detID: " << s->first
442  << " is not equal between sim and unpacked!" << std::endl;
443  //eventually do more in this case!
444 
445  std::vector<CSCStripDigi> a = s->second.second;
446  std::vector<CSCStripDigi> b = s->second.first;
447  std::cout << "SIM OUTPUT:" << std::endl;
448  for(std::vector<CSCStripDigi>::const_iterator i = a.begin(); i != a.end(); ++i)
449  i->print();
450  std::cout << "UNPACKER OUTPUT:" << std::endl;
451  for(std::vector<CSCStripDigi>::const_iterator i = b.begin(); i != b.end(); ++i)
452  i->print();
453  }
454  int max = std::min(s->second.first.size(),s->second.second.size());
455  std::vector<CSCStripDigi> cv = s->second.first;
456  std::vector<CSCStripDigi> sv = s->second.second;
457  for(int i = 0; i < max; ++i)
458  {
459  bool me1a = s->first.station()==1 && s->first.ring()==4;
460  bool me1b = s->first.station()==1 && s->first.ring()==1;
461  bool zplus = s->first.endcap()==1;
462  int k=i;
463 
464  if(me1a && zplus) k=max-i-1;
465  if(me1b && !zplus) k=max-i-1;
466 
467  if(sv[k].getStrip() != cv[i].getStrip())
468  {
469  std::cout << "In detId: " << s->first << std::endl;
470  std::cout << "Strips do not match: " << sv[k].getStrip()
471  << " != " << cv[i].getStrip() << std::endl;
472  }
473  if(sv[k].getADCCounts().size() != cv[i].getADCCounts().size())
474  {
475  std::cout << "In detId: " << s->first << std::endl;
476  std::cout << "ADC Readouts not of equal size!" << std::endl;
477  std::cout << sv[k].getADCCounts().size() << ' '
478  << cv[i].getADCCounts().size() << std::endl;
479  }
480  else
481  {
482  std::vector<int> sADC = sv[k].getADCCounts();
483  std::vector<int> uADC = cv[i].getADCCounts();
484 
485  for(unsigned iadc = 0; iadc < sADC.size(); ++iadc)
486  if(sADC[iadc] != uADC[iadc])
487  {
488  std::cout << "In detId: " << s->first << std::endl;
489  std::cout << "ADC counts not equal at index: " << iadc << std::endl
490  << std::hex <<sADC[iadc] << " != " << uADC[iadc] << std::dec
491  << std::endl;
492  }
493  }
494  if(sv[k].getADCOverflow().size() != cv[i].getADCOverflow().size())
495  {
496  std::cout << "In detId: " << s->first << std::endl;
497  std::cout << "ADC Overflows not of equal size!" << std::endl;
498  std::cout << sv[k].getADCOverflow().size() << ' '
499  << cv[i].getADCOverflow().size() << std::endl;
500  }
501  else
502  {
503  std::vector<uint16_t> sADC = sv[k].getADCOverflow();
504  std::vector<uint16_t> uADC = cv[i].getADCOverflow();
505 
506  for(unsigned iadc = 0; iadc < sADC.size(); ++iadc)
507  if(sADC[iadc] != uADC[iadc])
508  {
509  std::cout << "In detId: " << s->first << std::endl;
510  std::cout << "ADC overflows not equal at index: " << iadc << std::endl
511  << std::hex <<sADC[iadc] << " != " << uADC[iadc] << std::dec
512  << std::endl;
513  }
514  }
515  if(sv[k].getOverlappedSample().size() != cv[i].getOverlappedSample().size())
516  {
517  std::cout << "In detId: " << s->first << std::endl;
518  std::cout << "Overlapped Samples not of equal size!" << std::endl;
519  std::cout << sv[k].getOverlappedSample().size() << ' '
520  << cv[i].getOverlappedSample().size() << std::endl;
521  }
522  else
523  {
524  std::vector<uint16_t> sADC = sv[k].getOverlappedSample();
525  std::vector<uint16_t> uADC = cv[i].getOverlappedSample();
526 
527  for(unsigned iadc = 0; iadc < sADC.size(); ++iadc)
528  if(sADC[iadc] != uADC[iadc])
529  {
530  std::cout << "In detId: " << s->first << std::endl;
531  std::cout << "Overlapped Samples not equal at index: " << iadc << std::endl
532  << std::hex <<sADC[iadc] << " != " << uADC[iadc] << std::dec
533  << std::endl;
534  }
535  }
536  if(sv[k].getErrorstat().size() != cv[i].getErrorstat().size())
537  {
538  std::cout << "In detId: " << s->first << std::endl;
539  std::cout << "Errorstat not of equal size!" << std::endl;
540  std::cout << sv[k].getErrorstat().size() << ' '
541  << cv[i].getErrorstat().size() << std::endl;
542  }
543  else
544  {
545  std::vector<uint16_t> sADC = sv[k].getErrorstat();
546  std::vector<uint16_t> uADC = cv[i].getErrorstat();
547 
548  for(unsigned iadc = 0; iadc < sADC.size(); ++iadc)
549  if(sADC[iadc] != uADC[iadc])
550  {
551  std::cout << "In detId: " << s->first << std::endl;
552  std::cout << "Errorstat not equal at index: " << iadc << std::endl
553  << std::hex <<sADC[iadc] << " != " << uADC[iadc] << std::dec
554  << std::endl;
555  }
556  }
557  if(sv[k].pedestal() != cv[i].pedestal())
558  {
559  std::cout << "In detId: " << s->first << std::endl;
560  std::cout << "Pedestals not equal: " << sv[k].pedestal() << " != "
561  << cv[i].pedestal() << std::endl;
562  }
563  if(sv[k].amplitude() != cv[i].amplitude())
564  {
565  std::cout << "In detId: " << s->first << std::endl;
566  std::cout << "Amplitudes not equal: " << sv[k].amplitude() << " != "
567  << cv[i].amplitude() << std::endl;
568  }
569  }
570  }
571  for(c = comps.begin(); c != comps.end(); ++c)
572  {
573  if(c->second.first.size() != c->second.second.size())
574  {
575  std::cout << "Major error! # of comparator digis in detID: " << c->first
576  << " is not equal between sim and unpacked!" << std::endl;
577  //eventually do more in this case!
578 
579  std::vector<CSCComparatorDigi> a = c->second.second;
580  std::vector<CSCComparatorDigi> b = c->second.first;
581  std::cout << "SIM OUTPUT:" << std::endl;
582  for(std::vector<CSCComparatorDigi>::const_iterator i = a.begin(); i != a.end(); ++i)
583  i->print();
584  std::cout << "UNPACKER OUTPUT:" << std::endl;
585  for(std::vector<CSCComparatorDigi>::const_iterator i = b.begin(); i != b.end(); ++i)
586  i->print();
587  }
588  int max = std::min(c->second.first.size(),c->second.second.size());
589  std::vector<CSCComparatorDigi> cv = c->second.first;
590  std::vector<CSCComparatorDigi> sv = c->second.second;
591  for(int i = 0; i < max; ++i)
592  {
593  if(sv[i].getStrip() != cv[i].getStrip())
594  {
595  std::cout << "In detId: " << s->first << std::endl;
596  std::cout << "Comparator strips do not match: " << sv[i].getStrip()
597  << " != " << cv[i].getStrip() << std::endl;
598  }
599  if(sv[i].getComparator() != cv[i].getComparator())
600  {
601  std::cout << "In detId: " << c->first << std::endl;
602  std::cout << "Comparators do not match: " << sv[i].getComparator()
603  << " != " << cv[i].getComparator() << std::endl;
604  }
605  if(sv[i].getTimeBinWord() != cv[i].getTimeBinWord())
606  {
607  std::cout << "In detId: " << c->first << std::endl;
608  std::cout << "Comparator time bins words do not match: " << sv[i].getTimeBinWord()
609  << " != " << cv[i].getTimeBinWord() << std::endl;
610  }
611  }
612  }
613  for(cl = clcts.begin(); cl != clcts.end(); ++cl)
614  {
615  if(cl->second.first.size() != cl->second.second.size())
616  {
617  std::cout << "Major error! # of CLCT digis in detID: " << cl->first
618  << " is not equal between sim and unpacked!" << std::endl;
619  //eventually do more in this case!
620 
621  std::vector<CSCCLCTDigi> a = cl->second.second;
622  std::vector<CSCCLCTDigi> b = cl->second.first;
623  std::cout << "SIM OUTPUT:" << std::endl;
624  for(std::vector<CSCCLCTDigi>::const_iterator i = a.begin(); i != a.end(); ++i)
625  i->print();
626  std::cout << "UNPACKER OUTPUT:" << std::endl;
627  for(std::vector<CSCCLCTDigi>::const_iterator i = b.begin(); i != b.end(); ++i)
628  i->print();
629  }
630  int max = std::min(cl->second.first.size(),cl->second.second.size());
631  std::vector<CSCCLCTDigi> cv = cl->second.first;
632  std::vector<CSCCLCTDigi> sv = cl->second.second;
633  for(int i = 0; i < max; ++i)
634  {
635  if(cv[i].getKeyStrip() != sv[i].getKeyStrip())
636  {
637  std::cout << "In detId: " << cl->first << std::endl;
638  std::cout << "CLCT key strips do not match: " << sv[i].getKeyStrip()
639  << " != " << cv[i].getKeyStrip() << std::endl;
640  }
641  if(cv[i].getStrip() != sv[i].getStrip())
642  {
643  std::cout << "In detId: " << cl->first << std::endl;
644  std::cout << "CLCT strips do not match: " << sv[i].getStrip()
645  << " != " << cv[i].getStrip() << std::endl;
646  }
647  if(cv[i].isValid() != sv[i].isValid())
648  {
649  std::cout << "In detId: " << cl->first << std::endl;
650  std::cout << "CLCT Valid bits do not match: " << sv[i].isValid()
651  << " != " << cv[i].isValid() << std::endl;
652  }
653  if(cv[i].getQuality() != sv[i].getQuality())
654  {
655  std::cout << "In detId: " << cl->first << std::endl;
656  std::cout << "CLCT qualities do not match: " << sv[i].getQuality()
657  << " != " << cv[i].getQuality() << std::endl;
658  }
659  if(cv[i].getPattern() != sv[i].getPattern())
660  {
661  std::cout << "In detId: " << cl->first << std::endl;
662  std::cout << "CLCT patterns do not match: " << sv[i].getPattern()
663  << " != " << cv[i].getPattern() << std::endl;
664  }
665  if(cv[i].getStripType() != sv[i].getStripType())
666  {
667  std::cout << "In detId: " << cl->first << std::endl;
668  std::cout << "CLCT strip types do not match: " << sv[i].getStripType()
669  << " != " << cv[i].getStripType() << std::endl;
670  }
671  if(cv[i].getBend() != sv[i].getBend())
672  {
673  std::cout << "In detId: " << cl->first << std::endl;
674  std::cout << "CLCT bends do not match: " << sv[i].getBend()
675  << " != " << cv[i].getBend() << std::endl;
676  }
677  if(cv[i].getCFEB() != sv[i].getCFEB())
678  {
679  std::cout << "In detId: " << cl->first << std::endl;
680  std::cout << "CLCT CFEBs do not match: " << sv[i].getCFEB()
681  << " != " << cv[i].getCFEB() << std::endl;
682  }
683  if(((short)cv[i].getBX()) != ((short)sv[i].getBX()) - 4)
684  {
685  std::cout << "In detId: " << cl->first << std::endl;
686  std::cout << "CLCT BX do not match: " << sv[i].getBX() - 4
687  << " != " << cv[i].getBX() << std::endl;
688  }
689  if(cv[i].getFullBX() != sv[i].getFullBX())
690  {
691  std::cout << "In detId: " << cl->first << std::endl;
692  std::cout << "CLCT Full BX do not match: " << sv[i].getFullBX()
693  << " != " << cv[i].getFullBX() << std::endl;
694  }
695  if(cv[i].getTrknmb() != sv[i].getTrknmb())
696  {
697  std::cout << "In detId: " << cl->first << std::endl;
698  std::cout << "CLCT Track numbers do not match: " << sv[i].getTrknmb()
699  << " != " << cv[i].getTrknmb() << std::endl;
700  }
701  }
702  }
703  for(al = alcts.begin(); al != alcts.end(); ++al)
704  {
705  if(al->second.first.size() != al->second.second.size())
706  {
707  std::cout << "Major error! # of ALCT digis in detID: " << al->first
708  << " is not equal between sim and unpacked!" << std::endl;
709  //eventually do more in this case!
710 
711  std::vector<CSCALCTDigi> a = al->second.second;
712  std::vector<CSCALCTDigi> b = al->second.first;
713  std::cout << "SIM OUTPUT:" << std::endl;
714  for(std::vector<CSCALCTDigi>::const_iterator i = a.begin(); i != a.end(); ++i)
715  i->print();
716  std::cout << "UNPACKER OUTPUT:" << std::endl;
717  for(std::vector<CSCALCTDigi>::const_iterator i = b.begin(); i != b.end(); ++i)
718  i->print();
719  }
720  int max = std::min(al->second.first.size(),al->second.second.size());
721  std::vector<CSCALCTDigi> cv = al->second.first;
722  std::vector<CSCALCTDigi> sv = al->second.second;
723  for(int i = 0; i < max; ++i)
724  {
725  if(cv[i].getKeyWG() != sv[i].getKeyWG())
726  {
727  std::cout << "In detId: " << al->first << std::endl;
728  std::cout << "ALCT key wire groups do not match: " << sv[i].getKeyWG()
729  << " != " << cv[i].getKeyWG() << std::endl;
730  }
731  if(cv[i].isValid() != sv[i].isValid())
732  {
733  std::cout << "In detId: " << al->first << std::endl;
734  std::cout << "ALCT Valid bits do not match: " << sv[i].isValid()
735  << " != " << cv[i].isValid() << std::endl;
736  }
737  if(cv[i].getQuality() != sv[i].getQuality())
738  {
739  std::cout << "In detId: " << al->first << std::endl;
740  std::cout << "ALCT qualities do not match: " << sv[i].getQuality()
741  << " != " << cv[i].getQuality() << std::endl;
742  }
743  if(cv[i].getAccelerator() != sv[i].getAccelerator())
744  {
745  std::cout << "In detId: " << al->first << std::endl;
746  std::cout << "ALCT accelerator bits do not match: " << sv[i].getAccelerator()
747  << " != " << cv[i].getAccelerator() << std::endl;
748  }
749  if(cv[i].getCollisionB() != sv[i].getCollisionB())
750  {
751  std::cout << "In detId: " << al->first << std::endl;
752  std::cout << "ALCT CollisionB flags do not match: " << sv[i].getCollisionB()
753  << " != " << cv[i].getCollisionB() << std::endl;
754  }
755  if((cv[i].getBX()) != (sv[i].getBX()))
756  {
757  std::cout << "In detId: " << al->first << std::endl;
758  std::cout << "ALCT BX do not match: " << sv[i].getBX()
759  << " != " << cv[i].getBX() << std::endl;
760  }
761  if(cv[i].getFullBX() != sv[i].getFullBX())
762  {
763  std::cout << "In detId: " << cl->first << std::endl;
764  std::cout << "ALCT Full BX do not match: " << sv[i].getFullBX()
765  << " != " << cv[i].getFullBX() << std::endl;
766  }
767  }
768  }
769  for(lc = lcts.begin(); lc != lcts.end(); ++lc)
770  {
771  if(lc->second.first.size() != lc->second.second.size())
772  {
773  std::cout << "Major error! # of Correlated LCT digis in detID: " << lc->first
774  << " is not equal between sim and unpacked!" << std::endl;
775  //eventually do more in this case!
776 
777  std::vector<CSCCorrelatedLCTDigi> a = lc->second.second;
778  std::vector<CSCCorrelatedLCTDigi> b = lc->second.first;
779  std::cout << "SIM OUTPUT:" << std::endl;
780  for(std::vector<CSCCorrelatedLCTDigi>::const_iterator i = a.begin(); i != a.end(); ++i)
781  i->print();
782  std::cout << "UNPACKER OUTPUT:" << std::endl;
783  for(std::vector<CSCCorrelatedLCTDigi>::const_iterator i = b.begin(); i != b.end(); ++i)
784  i->print();
785  }
786  int max = std::min(lc->second.first.size(),lc->second.second.size());
787  std::vector<CSCCorrelatedLCTDigi> cv = lc->second.first;
788  std::vector<CSCCorrelatedLCTDigi> sv = lc->second.second;
789  for(int i = 0; i < max; ++i)
790  {
791  if(cv[i].getStrip() != sv[i].getStrip())
792  {
793  std::cout << "In detId: " << lc->first << std::endl;
794  std::cout << "Correlated LCT strips do not match: " << sv[i].getStrip()
795  << " != " << cv[i].getStrip() << std::endl;
796  }
797  if(cv[i].getKeyWG() != sv[i].getKeyWG())
798  {
799  std::cout << "In detId: " << lc->first << std::endl;
800  std::cout << "Correlated LCT key wire groups do not match: " << sv[i].getKeyWG()
801  << " != " << cv[i].getKeyWG() << std::endl;
802  }
803  if(cv[i].isValid() != sv[i].isValid())
804  {
805  std::cout << "In detId: " << lc->first << std::endl;
806  std::cout << "Correlated LCT Valid bits do not match: " << sv[i].isValid()
807  << " != " << cv[i].isValid() << std::endl;
808  }
809  if(cv[i].getQuality() != sv[i].getQuality())
810  {
811  std::cout << "In detId: " << lc->first << std::endl;
812  std::cout << "Correlated LCT qualities do not match: " << sv[i].getQuality()
813  << " != " << cv[i].getQuality() << std::endl;
814  }
815  if(cv[i].getPattern() != sv[i].getPattern())
816  {
817  std::cout << "In detId: " << lc->first << std::endl;
818  std::cout << "Correlated LCT ALCT patterns do not match: " << sv[i].getPattern()
819  << " != " << cv[i].getPattern() << std::endl;
820  }
821  if(cv[i].getCLCTPattern() != sv[i].getCLCTPattern())
822  {
823  std::cout << "In detId: " << lc->first << std::endl;
824  std::cout << "Correlated LCT CLCT patterns do not match: " << sv[i].getCLCTPattern()
825  << " != " << cv[i].getCLCTPattern() << std::endl;
826  }
827  if(cv[i].getStripType() != sv[i].getStripType())
828  {
829  std::cout << "In detId: " << lc->first << std::endl;
830  std::cout << "Correlated LCT strip types do not match: " << sv[i].getStripType()
831  << " != " << cv[i].getStripType() << std::endl;
832  }
833  if(cv[i].getBend() != sv[i].getBend())
834  {
835  std::cout << "In detId: " << lc->first << std::endl;
836  std::cout << "Correlated LCT bends do not match: " << sv[i].getBend()
837  << " != " << cv[i].getBend() << std::endl;
838  }
839  if(cv[i].getMPCLink() != sv[i].getMPCLink())
840  {
841  std::cout << "In detId: " << lc->first << std::endl;
842  std::cout << "Correlated LCT MPC Links do not match: " << sv[i].getMPCLink()
843  << " != " << cv[i].getMPCLink() << std::endl;
844  }
845  if((cv[i].getBX()) != (sv[i].getBX()-6))
846  {
847  std::cout << "In detId: " << lc->first << std::endl;
848  std::cout << "Correlated LCT BX do not match: " << sv[i].getBX()-6
849  << " != " << cv[i].getBX() << std::endl;
850  }
851  if(cv[i].getCSCID() != sv[i].getCSCID())
852  {
853  std::cout << "In detId: " << lc->first << std::endl;
854  std::cout << "Correlated LCT CSCIDs do not match: " << sv[i].getCSCID()
855  << " != " << cv[i].getCSCID() << std::endl;
856  }
857  if(cv[i].getBX0() != sv[i].getBX0())
858  {
859  std::cout << "In detId: " << lc->first << std::endl;
860  std::cout << "Correlated LCT BX0s do not match: " << sv[i].getBX0()
861  << " != " << cv[i].getBX0() << std::endl;
862  }
863  if(cv[i].getSyncErr() != sv[i].getSyncErr())
864  {
865  std::cout << "In detId: " << lc->first << std::endl;
866  std::cout << "Correlated LCT SyncErrs do not match: " << sv[i].getSyncErr()
867  << " != " << cv[i].getSyncErr() << std::endl;
868  }
869  if(cv[i].getTrknmb() != sv[i].getTrknmb())
870  {
871  std::cout << "In detId: " << lc->first << std::endl;
872  std::cout << "Correlated LCT Track numbers do not match: " << sv[i].getTrknmb()
873  << " != " << cv[i].getTrknmb() << std::endl;
874  }
875  }
876  }
877  if(tracks.get().size() != simtracks.get().size())
878  {
879  std::cout << "Major error! # of L1 Tracks is not equal between sim and unpacked!" << std::endl;
880  std::vector<csc::L1Track> a = simtracks.get();
881  std::vector<csc::L1Track> b = tracks.get();
882  std::cout << "SIM OUTPUT:" << std::endl;
883  for(std::vector<csc::L1Track>::const_iterator i = a.begin(); i != a.end(); ++i)
884  i->print();
885  std::cout << "UNPACKER OUTPUT:" << std::endl;
886  for(std::vector<csc::L1Track>::const_iterator i = b.begin(); i != b.end(); ++i)
887  i->print();
888  }
889 
890 
891  // iEvent.put(errors);
892  return _err;
893 }
edm::InputTag strip2
float dt
Definition: AMPTWrapper.h:126
int i
Definition: DBlmapReader.cc:9
edm::InputTag csctfstubs2
edm::InputTag alct2
std::vector< CSCComparatorDigi > zeroSupCompDigis(std::vector< CSCComparatorDigi >::const_iterator, std::vector< CSCComparatorDigi >::const_iterator)
std::vector< CSCComparatorDigi > relabelCompDigis(const CSCChamberMap *m, CSCDetId _id, std::vector< CSCComparatorDigi >::const_iterator b, std::vector< CSCComparatorDigi >::const_iterator e)
edm::InputTag wire2
#define min(a, b)
Definition: mlp_lapack.h:161
edm::InputTag csctfstubs1
edm::InputTag wire1
U second(std::pair< T, U > const &p)
edm::InputTag comp1
const T & max(const T &a, const T &b)
edm::InputTag alct1
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
edm::InputTag comp2
int k[5][pyjets_maxn]
edm::InputTag strip1
tuple tracks
Definition: testEve_cfg.py:39
edm::InputTag clct2
const T & get() const
Definition: EventSetup.h:55
double b
Definition: hdecay.h:120
std::vector< DigiType >::const_iterator const_iterator
edm::InputTag lct1
std::vector< CSCStripDigi > zeroSupStripDigis(std::vector< CSCStripDigi >::const_iterator, std::vector< CSCStripDigi >::const_iterator)
double a
Definition: hdecay.h:121
tuple cout
Definition: gather_cfg.py:41
edm::InputTag clct1
string s
Definition: asciidump.py:422
edm::InputTag csctf2
std::vector< CSCWireDigi > sanitizeWireDigis(std::vector< CSCWireDigi >::const_iterator, std::vector< CSCWireDigi >::const_iterator)
tuple size
Write out results.
std::vector< CSCStripDigi > relabelStripDigis(const CSCChamberMap *, CSCDetId, std::vector< CSCStripDigi >::const_iterator, std::vector< CSCStripDigi >::const_iterator)
edm::InputTag lct2
edm::InputTag csctf1
std::vector< CSCComparatorDigi > CSCDigiValidator::relabelCompDigis ( const CSCChamberMap m,
CSCDetId  _id,
std::vector< CSCComparatorDigi >::const_iterator  b,
std::vector< CSCComparatorDigi >::const_iterator  e 
)
private

Definition at line 956 of file CSCDigiValidator.cc.

References i, CSCDetId::ring(), CSCDetId::station(), and strip().

Referenced by filter().

959 {
960  std::vector<CSCComparatorDigi> _r; // the vector of comp digis with appropriate strip #'s
961 
962  bool me1a = _id.station()==1 && _id.ring()==4;
963  //bool zplus = _id.endcap()==1;
964  //bool me1b = _id.station()==1 && _id.ring()==1;
965 
966  for(std::vector<CSCComparatorDigi>::const_iterator i = b; i != e; ++i)
967  {
968  int strip=i->getStrip();
969 
970  // if(me1a&&zplus) strip=17-strip;
971  // if(me1b&&!zplus) strip=65-strip;
972  if(me1a) strip+=64;
973 
974  _r.push_back(CSCComparatorDigi(strip,i->getComparator(),
975  i->getTimeBinWord()));
976  }
977  return _r;
978 }
int i
Definition: DBlmapReader.cc:9
void strip(std::string &input, const std::string &blanks=" \n\t")
Definition: stringTools.cc:16
int ring() const
Definition: CSCDetId.h:77
double b
Definition: hdecay.h:120
int station() const
Definition: CSCDetId.h:88
std::vector< CSCStripDigi > CSCDigiValidator::relabelStripDigis ( const CSCChamberMap m,
CSCDetId  _id,
std::vector< CSCStripDigi >::const_iterator  b,
std::vector< CSCStripDigi >::const_iterator  e 
)
private

Definition at line 931 of file CSCDigiValidator.cc.

References i, and strip().

Referenced by filter().

934 {
935  std::vector<CSCStripDigi> _r; // the vector of strip digis with appropriate strip #'s
936 
937  //bool me1a = _id.station()==1 && _id.ring()==4;
938  //bool zplus = _id.endcap()==1;
939  //bool me1b = _id.station()==1 && _id.ring()==1;
940 
941  for(std::vector<CSCStripDigi>::const_iterator i = b; i != e; ++i)
942  {
943  int strip=i->getStrip();
944 
945  //if(me1a&&zplus) strip=17-strip;
946  //if(me1b&&!zplus) strip=(65-strip-1)%(m->dmb(_id)*16) + 1;
947  //if(me1a) strip+=64;
948 
949  _r.push_back(CSCStripDigi(strip,i->getADCCounts(),i->getADCOverflow(),
950  i->getOverlappedSample(),i->getErrorstat()));
951  }
952  return _r;
953 }
int i
Definition: DBlmapReader.cc:9
void strip(std::string &input, const std::string &blanks=" \n\t")
Definition: stringTools.cc:16
double b
Definition: hdecay.h:120
std::vector< CSCStripDigi > CSCDigiValidator::sanitizeStripDigis ( std::vector< CSCStripDigi >::const_iterator  b,
std::vector< CSCStripDigi >::const_iterator  e 
)
private

Definition at line 981 of file CSCDigiValidator.cc.

983 {
984  std::vector<CSCStripDigi> _r; // vector of digis in proper order
985 
986  return _r;
987 }
std::vector< CSCWireDigi > CSCDigiValidator::sanitizeWireDigis ( std::vector< CSCWireDigi >::const_iterator  b,
std::vector< CSCWireDigi >::const_iterator  e 
)
private

Definition at line 899 of file CSCDigiValidator.cc.

References i, and matplotRender::t.

Referenced by filter().

901 {
902  typedef std::map<int,std::vector<CSCWireDigi> > wire2digi;
903 
904  std::vector<CSCWireDigi> _r; // the resulting vector of wire digis
905  wire2digi _wr2digis; // map of wires to a set of digis
906 
907  for(std::vector<CSCWireDigi>::const_iterator i = b; i != e; ++i)
908  _wr2digis[i->getWireGroup()].push_back(*i);
909 
910  for(wire2digi::const_iterator i = _wr2digis.begin(); i != _wr2digis.end(); ++i)
911  {
912  int wire = i->first;
913  unsigned tbin = 0x0;
914 
915  for(std::vector<CSCWireDigi>::const_iterator d = i->second.begin();
916  d != i->second.end(); ++d)
917  {
918  std::vector<int> binson = d->getTimeBinsOn();
919  for(std::vector<int>::const_iterator t = binson.begin();
920  t != binson.end(); ++t)
921  tbin |= 1<<(*t);
922  }
923 
924  _r.push_back(CSCWireDigi(wire,tbin));
925  }
926 
927  return _r;
928 }
int i
Definition: DBlmapReader.cc:9
double b
Definition: hdecay.h:120
std::vector< CSCComparatorDigi > CSCDigiValidator::zeroSupCompDigis ( std::vector< CSCComparatorDigi >::const_iterator  b,
std::vector< CSCComparatorDigi >::const_iterator  e 
)
private

Definition at line 1011 of file CSCDigiValidator.cc.

References i, and edm::productstatus::present().

Referenced by filter().

1013 {
1014  std::vector<CSCComparatorDigi> _r;
1015 
1016  for(std::vector<CSCComparatorDigi>::const_iterator i = b; i != e; ++i)
1017  {
1018  bool present = false;
1019 
1020  if(i->getTimeBin() < 10) present=true;
1021 
1022  if(present) _r.push_back(*i);
1023  }
1024 
1025  return _r;
1026 }
int i
Definition: DBlmapReader.cc:9
ProductStatus present()
Definition: ProductStatus.h:17
double b
Definition: hdecay.h:120
std::vector< CSCStripDigi > CSCDigiValidator::zeroSupStripDigis ( std::vector< CSCStripDigi >::const_iterator  b,
std::vector< CSCStripDigi >::const_iterator  e 
)
private

Definition at line 990 of file CSCDigiValidator.cc.

References a, i, and beamvalidation::nonzero().

Referenced by filter().

992 {
993  std::vector<CSCStripDigi> _r; // zero-suppressed strip digis
994  std::vector<int> counts;
995 
996  for(std::vector<CSCStripDigi>::const_iterator i = b; i != e; ++i)
997  {
998  bool nonzero=false;
999  counts = i->getADCCounts();
1000  for(std::vector<int>::const_iterator a = counts.begin(); a != counts.end(); ++a)
1001  if((*a) != 0) nonzero = true;
1002 
1003  if(nonzero) _r.push_back(*i);
1004  }
1005 
1006  return _r;
1007 }
int i
Definition: DBlmapReader.cc:9
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121

Member Data Documentation

edm::InputTag CSCDigiValidator::alct1
private

Definition at line 71 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::alct2
private

Definition at line 72 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::clct1
private

Definition at line 71 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::clct2
private

Definition at line 72 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::comp1
private

Definition at line 71 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::comp2
private

Definition at line 72 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::csctf1
private

Definition at line 71 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::csctf2
private

Definition at line 72 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::csctfstubs1
private

Definition at line 71 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::csctfstubs2
private

Definition at line 72 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::lct1
private

Definition at line 71 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::lct2
private

Definition at line 72 of file CSCDigiValidator.h.

Referenced by filter().

bool CSCDigiValidator::reorderStrips
private

Definition at line 74 of file CSCDigiValidator.h.

edm::InputTag CSCDigiValidator::strip1
private

Definition at line 71 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::strip2
private

Definition at line 72 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::wire1
private

Definition at line 71 of file CSCDigiValidator.h.

Referenced by filter().

edm::InputTag CSCDigiValidator::wire2
private

Definition at line 72 of file CSCDigiValidator.h.

Referenced by filter().