CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
DCCMemBlock Class Reference

#include <DCCMemBlock.h>

Inheritance diagram for DCCMemBlock:
DCCDataBlockPrototype

Public Member Functions

 DCCMemBlock (DCCDataUnpacker *u, EcalElectronicsMapper *m, DCCEventBlock *e)
 
void display (std::ostream &o)
 
int unpack (const uint64_t **data, unsigned int *dwToEnd, unsigned int expectedTowerID)
 
void updateCollectors ()
 
virtual ~DCCMemBlock ()
 
- Public Member Functions inherited from DCCDataBlockPrototype
 DCCDataBlockPrototype (DCCDataUnpacker *unpacker, EcalElectronicsMapper *mapper, DCCEventBlock *event, bool unpack=true)
 
void enableSyncChecks ()
 
virtual unsigned int getLength ()
 
virtual int unpack (const uint64_t **data, unsigned int *dwToEnd)
 
virtual void updateEventPointers ()
 
virtual ~DCCDataBlockPrototype ()
 

Protected Member Functions

void fillPnDiodeDigisCollection ()
 
void unpackMemTowerData ()
 

Protected Attributes

unsigned int bx_
 
unsigned int expTowerID_
 
unsigned int expXtalTSamples_
 
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemBlockSizes_
 
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemChIds_
 
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemGains_
 
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemTtIds_
 
unsigned int kSamplesPerPn_
 
unsigned int l1_
 
unsigned int lastStripId_
 
unsigned int lastTowerBeforeMem_
 
unsigned int lastXtalId_
 
unsigned int nTSamples_
 
unsigned int numbDWInXtalBlock_
 
std::vector< short > pn_
 
std::unique_ptr< EcalPnDiodeDigiCollection > * pnDiodeDigis_
 
unsigned int towerId_
 
unsigned int unfilteredTowerBlockLength_
 
unsigned int xtalBlockSize_
 
- Protected Attributes inherited from DCCDataBlockPrototype
unsigned int blockLength_
 
const uint64_t * data_
 
const uint64_t ** datap_
 
unsigned int * dwToEnd_
 
bool error_
 
DCCEventBlockevent_
 
EcalElectronicsMappermapper_
 
bool sync_
 
DCCDataUnpackerunpacker_
 
bool unpackInternalData_
 

Detailed Description

Definition at line 34 of file DCCMemBlock.h.

Constructor & Destructor Documentation

DCCMemBlock::DCCMemBlock ( DCCDataUnpacker u,
EcalElectronicsMapper m,
DCCEventBlock e 
)

Definition at line 9 of file DCCMemBlock.cc.

References expXtalTSamples_, EcalElectronicsMapper::getUnfilteredTowerBlockLength(), mps_fire::i, kSamplesPerPn_, DCCDataBlockPrototype::mapper_, numbDWInXtalBlock_, EcalElectronicsMapper::numbXtalTSamples(), pn_, unfilteredTowerBlockLength_, and xtalBlockSize_.

11 {
12 
15 
19 
20  unsigned int numbOfXtalBlocks = (unfilteredTowerBlockLength_-1)/numbDWInXtalBlock_;
21  unsigned int numbOfPnBlocks = numbOfXtalBlocks/5; //change 5 by a variable
22  unsigned int vectorSize = numbOfPnBlocks*10*expXtalTSamples_;
23 
24  //Build pnDiodevector
25  for(unsigned int i =0; i< vectorSize; i++){ pn_.push_back(-1);}
26 
27 }
unsigned int kSamplesPerPn_
Definition: DCCMemBlock.h:57
unsigned int numbDWInXtalBlock_
Definition: DCCMemBlock.h:64
unsigned int expXtalTSamples_
Definition: DCCMemBlock.h:56
unsigned int unfilteredTowerBlockLength_
Definition: DCCMemBlock.h:67
std::vector< short > pn_
Definition: DCCMemBlock.h:53
unsigned int xtalBlockSize_
Definition: DCCMemBlock.h:65
unsigned int getUnfilteredTowerBlockLength()
EcalElectronicsMapper * mapper_
DCCDataBlockPrototype(DCCDataUnpacker *unpacker, EcalElectronicsMapper *mapper, DCCEventBlock *event, bool unpack=true)
virtual DCCMemBlock::~DCCMemBlock ( )
inlinevirtual

Member Function Documentation

void DCCMemBlock::display ( std::ostream &  o)
virtual

Reimplemented from DCCDataBlockPrototype.

Definition at line 348 of file DCCMemBlock.cc.

References DCCDataBlockPrototype::blockLength_, bx_, l1_, nTSamples_, and towerId_.

Referenced by ~DCCMemBlock().

348  {
349 
350  o<<"\n Unpacked Info for DCC MEM Block"
351  <<"\n DW1 ============================="
352  <<"\n Mem Tower Block Id "<<towerId_
353  <<"\n Numb Samp "<<nTSamples_
354  <<"\n Bx "<<bx_
355  <<"\n L1 "<<l1_
356  <<"\n blockLength "<<blockLength_;
357 }
unsigned int bx_
Definition: DCCMemBlock.h:69
unsigned int nTSamples_
Definition: DCCMemBlock.h:66
unsigned int l1_
Definition: DCCMemBlock.h:70
unsigned int towerId_
Definition: DCCMemBlock.h:63
void DCCMemBlock::fillPnDiodeDigisCollection ( )
protected

Definition at line 286 of file DCCMemBlock.cc.

References EcalBarrel, EcalEndcap, EcalElectronicsMapper::getActiveSM(), kSamplesPerPn_, lastTowerBeforeMem_, DCCDataBlockPrototype::mapper_, NUMB_SM_EB_MIN_MIN, NUMB_SM_EB_PLU_MAX, NUMB_SM_EE_MIN_MAX, NUMB_SM_EE_MIN_MIN, NUMB_SM_EE_PLU_MAX, NUMB_SM_EE_PLU_MIN, pn_, EcalPnDiodeDigi::setSample(), EcalPnDiodeDigi::setSize(), DCCDataUnpacker::silentMode_, and towerId_.

Referenced by unpack(), and ~DCCMemBlock().

286  {
287 
288  //todo change pnId max
289  for (int pnId=1; pnId<=5; pnId++){
290  bool errorOnPn(false);
291  unsigned int realPnId = pnId;
292 
293  if(towerId_==70){ realPnId += 5;}
294 
295  // Note : we are assuming always 5 VFE channels enabled
296  // This means we all have 5 pns per tower
297 
298  // solution before sending creation of PnDigi's in mapper as done with crystals
299  // mapper_->getActiveSM() : this is the 'dccid'
300  // number ranging internally in ECAL from 1 to 54, according convention specified here:
301  // http://indico.cern.ch/getFile.py/access?contribId=0&resId=0&materialId=slides&confId=11621
302 
303  // mapper_->getActiveDCC() : this is the FED_id (601 - 654 for ECAL at CMS)
304 
305  const int activeSM = mapper_->getActiveSM();
306  int subdet(0);
307  if (NUMB_SM_EB_MIN_MIN <= activeSM && activeSM <= NUMB_SM_EB_PLU_MAX) {
308  subdet = EcalBarrel;
309  }
310  else if( (NUMB_SM_EE_MIN_MIN <= activeSM && activeSM <= NUMB_SM_EE_MIN_MAX) ||
311  (NUMB_SM_EE_PLU_MIN <= activeSM && activeSM <= NUMB_SM_EE_PLU_MAX) ) {
312  subdet = EcalEndcap;
313  }
314  else {
316  edm::LogWarning("IncorrectMapping")
317  <<"\n mapper points to non existing dccid: " << activeSM;
318  }
319  }
320 
321 
322  EcalPnDiodeDetId PnId(subdet, activeSM, realPnId );
323 
324  EcalPnDiodeDigi thePnDigi(PnId );
325  thePnDigi.setSize(kSamplesPerPn_);
326 
327 
328  for (unsigned int ts =0; ts <kSamplesPerPn_; ts++){
329 
330  short pnDiodeData = pn_[(towerId_-lastTowerBeforeMem_)*250 + (pnId-1)*kSamplesPerPn_ + ts];
331  if( pnDiodeData == -1){
332  errorOnPn=true;
333  break;
334  }
335 
336  EcalFEMSample thePnSample(pnDiodeData );
337  thePnDigi.setSample(ts, thePnSample );
338  }
339 
340  if(!errorOnPn){ (*pnDiodeDigis_)->push_back(thePnDigi);}
341 
342  }
343 
344 }
unsigned int kSamplesPerPn_
Definition: DCCMemBlock.h:57
std::vector< short > pn_
Definition: DCCMemBlock.h:53
static std::atomic< bool > silentMode_
unsigned int lastTowerBeforeMem_
Definition: DCCMemBlock.h:61
EcalElectronicsMapper * mapper_
unsigned int towerId_
Definition: DCCMemBlock.h:63
int DCCMemBlock::unpack ( const uint64_t **  data,
unsigned int *  dwToEnd,
unsigned int  expectedTowerID 
)

Definition at line 41 of file DCCMemBlock.cc.

References BLOCK_UNPACKED, DCCDataBlockPrototype::blockLength_, DCCEventBlock::bx(), bx_, data, DCCDataBlockPrototype::data_, DCCDataBlockPrototype::datap_, DCCDataBlockPrototype::dwToEnd_, DCCDataBlockPrototype::error_, DCCDataBlockPrototype::event_, expTowerID_, expXtalTSamples_, FE_MEM, fillPnDiodeDigisCollection(), DCCEventBlock::fov(), EcalElectronicsMapper::getActiveDCC(), EcalElectronicsMapper::getActiveSM(), H_FOV_MASK, hcalTTPDigis_cfi::id, isSynced(), l1_, DCCEventBlock::l1A(), lastStripId_, lastXtalId_, DCCDataBlockPrototype::mapper_, nTSamples_, DCCEventBlock::setFESyncNumbers(), DCCDataUnpacker::silentMode_, SKIP_BLOCK_UNPACKING, STOP_EVENT_UNPACKING, DCCDataBlockPrototype::sync_, TOWER_BX_B, TOWER_BX_MASK, TOWER_ID_MASK, TOWER_L1_B, TOWER_L1_MASK, TOWER_LENGTH_B, TOWER_LENGTH_MASK, TOWER_NSAMP_B, TOWER_NSAMP_MASK, towerId_, unfilteredTowerBlockLength_, unpackMemTowerData(), and DCCDataBlockPrototype::updateEventPointers().

Referenced by DCCEEEventBlock::unpack(), DCCEBEventBlock::unpack(), and ~DCCMemBlock().

41  {
42 
43  error_ = false;
44  datap_ = data;
45  data_ = *data;
46  dwToEnd_ = dwToEnd;
47 
48 
49  if( (*dwToEnd_)<1){
51  edm::LogWarning("IncorrectEvent")
52  <<"\nUnable to unpack MEM block for event "<<event_->l1A()<<" in fed "<<mapper_->getActiveDCC()
53  <<"\nThe end of event was reached !";
54  }
55  return STOP_EVENT_UNPACKING;
56  }
57 
58  lastStripId_ = 0;
59  lastXtalId_ = 0;
60  expTowerID_ = expectedTowerID;
61 
62 
63  //Point to begin of block
64  data_++;
65 
66  towerId_ = ( *data_ ) & TOWER_ID_MASK;
71 
72  event_->setFESyncNumbers(l1_,bx_,short(expectedTowerID-1));
73 
74 
75  //debugging
76  //display(cout);
77 
78  // Block Length Check (1)
80 
81  // chosing channel 1 as representative of a dummy...
83  (*invalidMemBlockSizes_)->push_back(id);
85  edm::LogWarning("IncorrectEvent")
86  <<"\nFor event "<<event_->l1A()<<", fed "<<mapper_->getActiveDCC()<<" and tower block "<<towerId_
87  <<"\nExpected mem block size is "<<(unfilteredTowerBlockLength_*8)<<" bytes while "<<(blockLength_*8)<<" was found";
88  }
89  return STOP_EVENT_UNPACKING;
90 
91  }
92 
93  // Block Length Check (2)
94  if((*dwToEnd_)<blockLength_){
96  edm::LogWarning("IncorrectEvent")
97  <<"\nUnable to unpack MEM block for event "<<event_->l1A()<<" in fed "<<mapper_->getActiveDCC()
98  <<"\n Only "<<((*dwToEnd_)*8)<<" bytes are available while "<<(blockLength_*8)<<" are needed!";
99  // chosing channel 1 as representative of a dummy...
100  }
102  (*invalidMemBlockSizes_)->push_back(id);
103  return STOP_EVENT_UNPACKING;
104  }
105 
106  // Synchronization Check
107  if(sync_){
108  const unsigned int dccBx = ( event_->bx()) & TOWER_BX_MASK;
109  const unsigned int dccL1 = ( event_->l1A() ) & TOWER_L1_MASK;
110  const unsigned int fov = ( event_->fov() ) & H_FOV_MASK;
111 
112  if (! isSynced(dccBx, bx_, dccL1, l1_, FE_MEM, fov)) {
114  edm::LogWarning("IncorrectEvent")
115  << "Synchronization error for Mem block"
116  << " (L1A " << event_->l1A() << " bx " << event_->bx() << " fed " << mapper_->getActiveDCC() << ")\n"
117  << " dccBx = " << dccBx << " bx_ = " << bx_ << " dccL1 = " << dccL1 << " l1_ = " << l1_ << "\n"
118  << " => Stop event unpacking";
119  }
120  //Note : add to error collection ?
121  // need of a new collection
122  return STOP_EVENT_UNPACKING;
123  }
124  }
125 
126  // Number Of Samples Check
127  if( nTSamples_ != expXtalTSamples_ ){
129  edm::LogWarning("IncorrectEvent")
130  <<"\nUnable to unpack MEM block for event "<<event_->l1A()<<" in fed "<<mapper_->getActiveDCC()
131  <<"\nNumber of time samples "<<nTSamples_<<" is not the same as expected ("<<expXtalTSamples_<<")";
132  }
133  //Note : add to error collection ?
134  return STOP_EVENT_UNPACKING;
135  }
136 
137 
138  //Channel Id Check
139  if( expTowerID_ != towerId_){
140 
141  // chosing channel 1 as representative as a dummy...
143  (*invalidMemTtIds_)->push_back(id);
145  edm::LogWarning("IncorrectBlock")
146  <<"For event "<<event_->l1A()<<" and fed "<<mapper_->getActiveDCC() << " and sm: " << mapper_->getActiveSM()
147  <<"\nExpected mem tower block is "<<expTowerID_<<" while "<<towerId_<<" was found ";
148  }
149 
151 
152  // todo : go to the next mem
153  error_= true;
154 
156  return SKIP_BLOCK_UNPACKING;
157  }
158 
159 
160  //point to xtal data
161  data_++;
162 
163 
165 
167 
169 
170  return BLOCK_UNPACKED;
171 
172 }
unsigned int expTowerID_
Definition: DCCMemBlock.h:55
bool isSynced(const unsigned int dccBx, const unsigned int bx, const unsigned int dccL1, const unsigned int l1, const BlockType type, const unsigned int fov)
unsigned int bx_
Definition: DCCMemBlock.h:69
Ecal readout channel identification [32:20] Unused (so far) [19:13] DCC id [12:6] tower [5:3] strip [...
unsigned int lastStripId_
Definition: DCCMemBlock.h:59
unsigned int expXtalTSamples_
Definition: DCCMemBlock.h:56
unsigned int unfilteredTowerBlockLength_
Definition: DCCMemBlock.h:67
static std::atomic< bool > silentMode_
unsigned int bx()
Definition: DCCEventBlock.h:55
unsigned int fov()
Definition: DCCEventBlock.h:52
void setFESyncNumbers(short l1, short bx, short id)
Definition: DCCEventBlock.h:59
unsigned int nTSamples_
Definition: DCCMemBlock.h:66
void fillPnDiodeDigisCollection()
Definition: DCCMemBlock.cc:286
unsigned int l1_
Definition: DCCMemBlock.h:70
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
virtual void updateEventPointers()
void unpackMemTowerData()
Definition: DCCMemBlock.cc:176
unsigned int lastXtalId_
Definition: DCCMemBlock.h:60
EcalElectronicsMapper * mapper_
unsigned int towerId_
Definition: DCCMemBlock.h:63
unsigned int l1A()
Definition: DCCEventBlock.h:54
void DCCMemBlock::unpackMemTowerData ( )
protected

Definition at line 176 of file DCCMemBlock.cc.

References DCCDataBlockPrototype::data_, DCCDataBlockPrototype::error_, DCCDataBlockPrototype::event_, muonCSCDigis_cfi::gain, EcalElectronicsMapper::getActiveDCC(), EcalElectronicsMapper::getActiveSM(), mps_fire::i, cuy::ib, hcalTTPDigis_cfi::id, diffTreeTool::index, DCCEventBlock::l1A(), lastTowerBeforeMem_, DCCDataBlockPrototype::mapper_, nTSamples_, numbDWInXtalBlock_, pn_, simplePhotonAnalyzer_cfi::sample, DCCDataUnpacker::silentMode_, groupFilesInBlocks::temp, TOWER_DIGI_MASK, TOWER_STRIPID_MASK, TOWER_XTALID_B, TOWER_XTALID_MASK, and towerId_.

Referenced by unpack(), and ~DCCMemBlock().

176  {
177 
178 
179  //todo: move EcalPnDiodeDetId to electronics mapper
180 
181 
183  // differentiating the barrel and the endcap case
184  if (9 < mapper_->getActiveSM() || mapper_->getActiveSM() < 46){
185  lastTowerBeforeMem_ = 69; }
186  else {
187  lastTowerBeforeMem_ = 69; }
188 
189 
190  for(unsigned int expStripId = 1; expStripId<= 5; expStripId++){
191 
192  for(unsigned int expXtalId = 1; expXtalId <= 5; expXtalId++){
193 
194  const uint16_t * xData_= reinterpret_cast<const uint16_t *>(data_);
195 
196  // Get xtal data ids
197  unsigned int stripId = (*xData_) & TOWER_STRIPID_MASK;
198  unsigned int xtalId =((*xData_)>>TOWER_XTALID_B ) & TOWER_XTALID_MASK;
199 
200  bool errorOnDecoding(false);
201 
202  if(expStripId != stripId || expXtalId != xtalId){
203 
204  // chosing channel and strip as EcalElectronicsId
205  EcalElectronicsId id( mapper_->getActiveSM() , towerId_, expStripId, expXtalId);
206  (*invalidMemChIds_)->push_back(id);
207 
209  edm::LogWarning("IncorrectBlock")
210  <<"For event "<<event_->l1A()<<", fed "<<mapper_->getActiveDCC()<<" and tower mem block "<<towerId_
211  <<"\nThe expected strip is "<<expStripId<<" and "<<stripId<<" was found"
212  <<"\nThe expected xtal is "<<expXtalId <<" and "<<xtalId<<" was found";
213  }
214 
215  stripId = expStripId;
216  xtalId = expXtalId;
217 
218 
219 
220  errorOnDecoding = true;
221 
222  //Note : move to the next ...
223 
224  }
225 
226  unsigned int ipn, index;
227 
228  if((stripId-1)%2==0){ ipn = (towerId_-lastTowerBeforeMem_)*5 + xtalId - 1; }
229  else { ipn = (towerId_-lastTowerBeforeMem_)*5 + 5 - xtalId; }
230 
231 
232  //Cooking samples
233  for(unsigned int i =0; i< nTSamples_ ;i++){
234 
235  xData_++;
236 
237  index = ipn*50 + (stripId-1)*nTSamples_+i;
238 
239  //edm::LogDebug("EcalRawToDigiMemChId")<<"\n Strip id "<<std::dec<<stripId<<" Xtal id "<<xtalId
240  // <<" tsamp = "<<i<<" 16b = 0x "<<std::hex<<(*xData_)<<dec;
241 
242  unsigned int temp = (*xData_)&TOWER_DIGI_MASK;
243 
244  short sample(0);
245 
246 
247  if( (stripId-1)%2 ) {
248 
249  // If strip number is even, 14 bits are reversed in order
250  for(int ib=0;ib<14;ib++){
251  sample <<= 1;
252  sample |= (temp&1);
253  temp >>= 1;
254  }
255 
256  } else { sample=temp;}
257 
258  sample ^= 0x800;
259  unsigned int gain = sample>>12;
260 
261  if( gain >= 2 ){
262 
263  EcalElectronicsId id(mapper_->getActiveSM() , towerId_, stripId,xtalId);
264  (*invalidMemGains_)->push_back(id);
265 
267  edm::LogWarning("IncorrectGain")
268  <<"For event "<<event_->l1A()<<", fed "<<mapper_->getActiveDCC()<<" , mem tower block "<<towerId_
269  <<"\nIn strip "<<stripId<<" xtal "<<xtalId<<" the gain is "<<gain<<" in sample "<<(i+1);
270  }
271 
272  errorOnDecoding=true;
273  }
274 
275  if( !errorOnDecoding && !error_){pn_[index]=sample;} //Note : move to the next versus flag...
276 
277  }// loop over samples ended
278 
280  }//loop over xtals
281  }// loop over strips
282 
283 
284 }
Ecal readout channel identification [32:20] Unused (so far) [19:13] DCC id [12:6] tower [5:3] strip [...
unsigned int numbDWInXtalBlock_
Definition: DCCMemBlock.h:64
std::vector< short > pn_
Definition: DCCMemBlock.h:53
static std::atomic< bool > silentMode_
unsigned int lastTowerBeforeMem_
Definition: DCCMemBlock.h:61
unsigned int nTSamples_
Definition: DCCMemBlock.h:66
EcalElectronicsMapper * mapper_
unsigned int towerId_
Definition: DCCMemBlock.h:63
ib
Definition: cuy.py:660
unsigned int l1A()
Definition: DCCEventBlock.h:54
void DCCMemBlock::updateCollectors ( )
virtual

Reimplemented from DCCDataBlockPrototype.

Definition at line 29 of file DCCMemBlock.cc.

References invalidMemBlockSizes_, DCCDataUnpacker::invalidMemBlockSizesCollection(), invalidMemChIds_, DCCDataUnpacker::invalidMemChIdsCollection(), invalidMemGains_, DCCDataUnpacker::invalidMemGainsCollection(), invalidMemTtIds_, DCCDataUnpacker::invalidMemTtIdsCollection(), pnDiodeDigis_, DCCDataUnpacker::pnDiodeDigisCollection(), and DCCDataBlockPrototype::unpacker_.

Referenced by DCCEventBlock::updateCollectors(), and ~DCCMemBlock().

29  {
30 
36 
37 }
std::unique_ptr< EcalPnDiodeDigiCollection > * pnDiodeDigis_
Definition: DCCMemBlock.h:76
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemBlockSizesCollection()
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemBlockSizes_
Definition: DCCMemBlock.h:73
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemGainsCollection()
std::unique_ptr< EcalPnDiodeDigiCollection > * pnDiodeDigisCollection()
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemTtIdsCollection()
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemChIdsCollection()
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemChIds_
Definition: DCCMemBlock.h:72
DCCDataUnpacker * unpacker_
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemTtIds_
Definition: DCCMemBlock.h:74
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemGains_
Definition: DCCMemBlock.h:75

Member Data Documentation

unsigned int DCCMemBlock::bx_
protected

Definition at line 69 of file DCCMemBlock.h.

Referenced by display(), and unpack().

unsigned int DCCMemBlock::expTowerID_
protected

Definition at line 55 of file DCCMemBlock.h.

Referenced by unpack().

unsigned int DCCMemBlock::expXtalTSamples_
protected

Definition at line 56 of file DCCMemBlock.h.

Referenced by DCCMemBlock(), and unpack().

std::unique_ptr<EcalElectronicsIdCollection>* DCCMemBlock::invalidMemBlockSizes_
protected

Definition at line 73 of file DCCMemBlock.h.

Referenced by updateCollectors().

std::unique_ptr<EcalElectronicsIdCollection>* DCCMemBlock::invalidMemChIds_
protected

Definition at line 72 of file DCCMemBlock.h.

Referenced by updateCollectors().

std::unique_ptr<EcalElectronicsIdCollection>* DCCMemBlock::invalidMemGains_
protected

Definition at line 75 of file DCCMemBlock.h.

Referenced by updateCollectors().

std::unique_ptr<EcalElectronicsIdCollection>* DCCMemBlock::invalidMemTtIds_
protected

Definition at line 74 of file DCCMemBlock.h.

Referenced by updateCollectors().

unsigned int DCCMemBlock::kSamplesPerPn_
protected

Definition at line 57 of file DCCMemBlock.h.

Referenced by DCCMemBlock(), and fillPnDiodeDigisCollection().

unsigned int DCCMemBlock::l1_
protected

Definition at line 70 of file DCCMemBlock.h.

Referenced by display(), and unpack().

unsigned int DCCMemBlock::lastStripId_
protected

Definition at line 59 of file DCCMemBlock.h.

Referenced by unpack().

unsigned int DCCMemBlock::lastTowerBeforeMem_
protected

Definition at line 61 of file DCCMemBlock.h.

Referenced by fillPnDiodeDigisCollection(), and unpackMemTowerData().

unsigned int DCCMemBlock::lastXtalId_
protected

Definition at line 60 of file DCCMemBlock.h.

Referenced by unpack().

unsigned int DCCMemBlock::nTSamples_
protected

Definition at line 66 of file DCCMemBlock.h.

Referenced by display(), unpack(), and unpackMemTowerData().

unsigned int DCCMemBlock::numbDWInXtalBlock_
protected

Definition at line 64 of file DCCMemBlock.h.

Referenced by DCCMemBlock(), and unpackMemTowerData().

std::vector<short> DCCMemBlock::pn_
protected

Definition at line 53 of file DCCMemBlock.h.

Referenced by DCCMemBlock(), fillPnDiodeDigisCollection(), and unpackMemTowerData().

std::unique_ptr<EcalPnDiodeDigiCollection>* DCCMemBlock::pnDiodeDigis_
protected

Definition at line 76 of file DCCMemBlock.h.

Referenced by updateCollectors().

unsigned int DCCMemBlock::towerId_
protected

Definition at line 63 of file DCCMemBlock.h.

Referenced by display(), fillPnDiodeDigisCollection(), unpack(), and unpackMemTowerData().

unsigned int DCCMemBlock::unfilteredTowerBlockLength_
protected

Definition at line 67 of file DCCMemBlock.h.

Referenced by DCCMemBlock(), and unpack().

unsigned int DCCMemBlock::xtalBlockSize_
protected

Definition at line 65 of file DCCMemBlock.h.

Referenced by DCCMemBlock().