CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/DataFormats/HcalDigi/src/HcalUpgradeDataFrame.cc

Go to the documentation of this file.
00001 #include "DataFormats/HcalDigi/interface/HcalUpgradeDataFrame.h"
00002 
00003 
00004 HcalUpgradeDataFrame::HcalUpgradeDataFrame() : id_(0), 
00005                                      capId_(0),
00006                                      size_(0),
00007                                      presamples_(0)
00008 {
00009 }
00010 
00011 HcalUpgradeDataFrame::HcalUpgradeDataFrame(HcalDetId id, int capId, int samples, int presamples) : id_(id),
00012                                                                                    capId_(capId)
00013 {
00014     setSize(samples) ;
00015     setPresamples(presamples) ;
00016 }
00017 
00018 void HcalUpgradeDataFrame::setSize(int size) {
00019   if (size>MAXSAMPLES) size_=MAXSAMPLES;
00020   else if (size<=0) size_=0;
00021   else size_=size;
00022 }
00023 
00024 void HcalUpgradeDataFrame::setPresamples(int presamples) {
00025   if (presamples>MAXSAMPLES) presamples_=MAXSAMPLES;
00026   else if (presamples<=0) presamples_=0;
00027   else presamples_=presamples;
00028 }
00029 
00030 void HcalUpgradeDataFrame::setSample(int relativeSample,
00031                                 const uint16_t adc,
00032                                 const uint8_t tdc,
00033                                 const bool dv) { 
00034 
00035     int linSample = presamples_ + relativeSample ;
00036     if ( linSample < MAXSAMPLES && linSample>=0) { 
00037         adc_[linSample] = adc&0xFF ; 
00038         tdc_[linSample] = tdc&0x1F ; 
00039         dv_[linSample] = dv ; 
00040     }    
00041 }
00042 
00043 std::ostream& operator<<(std::ostream& s, const HcalUpgradeDataFrame& digi) {
00044     s << digi.id() << " " << digi.size() << " samples  " << digi.presamples() << " presamples ";
00045     for (int i=0; i<digi.size(); i++) {
00046         int relSample = i - digi.presamples() ; 
00047         if ( relSample < 0 ) s << " (PRE) " ;
00048         else s << "       " ;
00049         s << int(digi.adc(relSample)) << " (adc)  " ;
00050         s << int(digi.tdc(relSample)) << " (tdc)  " ;
00051         if ( digi.valid(relSample) ) s << " (DV) " ; 
00052         s << std::endl ;
00053     }
00054     return s;
00055 }
00056   
00057