CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes
ESUnpacker Class Reference

#include <ESUnpacker.h>

Public Types

typedef unsigned int Word32
 
typedef unsigned long long Word64
 

Public Member Functions

 ESUnpacker (const edm::ParameterSet &ps)
 
void interpretRawData (int fedId, const FEDRawData &rawData, ESRawDataCollection &dccs, ESLocalRawDataCollection &kchips, ESDigiCollection &digis)
 
void setBX (int i)
 
void setLV1 (int i)
 
void setOrbitNumber (int i)
 
void setRunNumber (int i)
 
void setTriggerType (int i)
 
void word2digi (int kchip, int kPACE[4], const Word64 &word, ESDigiCollection &digis)
 
 ~ESUnpacker ()
 

Protected Attributes

Word64 m1
 
Word64 m12
 
Word64 m16
 
Word64 m2
 
Word64 m32
 
Word64 m4
 
Word64 m5
 
Word64 m6
 
Word64 m8
 
int pl_ [4288][4]
 
int x_ [4288][4]
 
int y_ [4288][4]
 
int zside_ [4288][4]
 

Private Member Functions

std::string print (const Word64 &word) const
 

Private Attributes

int bx_
 
int dac_
 
bool debug_
 
int FEch_ [36]
 
int fedId_
 
int gain_
 
edm::FileInPath lookup_
 
int lv1_
 
int optoRX0_
 
int optoRX1_
 
int optoRX2_
 
int orbit_number_
 
int precision_
 
const edm::ParameterSet pset_
 
int run_number_
 
int runtype_
 
int seqtype_
 
int trgtype_
 
int vmajor_
 
int vminor_
 

Detailed Description

Definition at line 25 of file ESUnpacker.h.

Member Typedef Documentation

typedef unsigned int ESUnpacker::Word32

Definition at line 29 of file ESUnpacker.h.

typedef unsigned long long ESUnpacker::Word64

Definition at line 30 of file ESUnpacker.h.

Constructor & Destructor Documentation

ESUnpacker::ESUnpacker ( const edm::ParameterSet ps)

Definition at line 10 of file ESUnpacker.cc.

References debug_, FrontierConditions_GlobalTag_cff::file, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), mps_fire::i, lookup_, m1, m12, m16, m2, m32, m4, m5, m6, m8, pl_, pset_, x_, y_, and zside_.

11  : pset_(ps), fedId_(0), run_number_(0), orbit_number_(0), bx_(0), lv1_(0), trgtype_(0)
12 {
13 
14  debug_ = pset_.getUntrackedParameter<bool>("debugMode", false);
15  lookup_ = ps.getParameter<edm::FileInPath>("LookupTable");
16 
17  m1 = ~(~Word64(0) << 1);
18  m2 = ~(~Word64(0) << 2);
19  m4 = ~(~Word64(0) << 4);
20  m5 = ~(~Word64(0) << 5);
21  m6 = ~(~Word64(0) << 6);
22  m8 = ~(~Word64(0) << 8);
23  m12 = ~(~Word64(0) << 12);
24  m16 = ~(~Word64(0) << 16);
25  m32 = ~(~Word64(0) << 32);
26 
27  // read in look-up table
28  int nLines, iz, ip, ix, iy, fed, kchip, pace, bundle, fiber, optorx;
29  std::ifstream file;
30  file.open(lookup_.fullPath().c_str());
31  if( file.is_open() ) {
32 
33  file >> nLines;
34 
35  for (int i=0; i<nLines; ++i) {
36  file>> iz >> ip >> ix >> iy >> fed >> kchip >> pace >> bundle >> fiber >> optorx;
37 
38  zside_[kchip-1][pace-1] = iz;
39  pl_[kchip-1][pace-1] = ip;
40  x_[kchip-1][pace-1] = ix;
41  y_[kchip-1][pace-1] = iy;
42  }
43 
44  } else {
45  edm::LogWarning("Invalid Data")<<"ESUnpacker::ESUnpacker : Look up table file can not be found in "<<lookup_.fullPath().c_str();
46  }
47 
48 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
bool debug_
Definition: ESUnpacker.h:66
int run_number_
Definition: ESUnpacker.h:49
edm::FileInPath lookup_
Definition: ESUnpacker.h:67
int fedId_
Definition: ESUnpacker.h:48
int y_[4288][4]
Definition: ESUnpacker.h:75
Word64 m5
Definition: ESUnpacker.h:73
int x_[4288][4]
Definition: ESUnpacker.h:75
Word64 m12
Definition: ESUnpacker.h:73
int zside_[4288][4]
Definition: ESUnpacker.h:75
Word64 m1
Definition: ESUnpacker.h:73
Word64 m32
Definition: ESUnpacker.h:73
uint64_t Word64
Word64 m2
Definition: ESUnpacker.h:73
int pl_[4288][4]
Definition: ESUnpacker.h:75
Word64 m8
Definition: ESUnpacker.h:73
Word64 m6
Definition: ESUnpacker.h:73
const edm::ParameterSet pset_
Definition: ESUnpacker.h:42
Word64 m16
Definition: ESUnpacker.h:73
int orbit_number_
Definition: ESUnpacker.h:50
int trgtype_
Definition: ESUnpacker.h:58
Word64 m4
Definition: ESUnpacker.h:73
ESUnpacker::~ESUnpacker ( )

Definition at line 50 of file ESUnpacker.cc.

50  {
51 }

Member Function Documentation

void ESUnpacker::interpretRawData ( int  fedId,
const FEDRawData rawData,
ESRawDataCollection dccs,
ESLocalRawDataCollection kchips,
ESDigiCollection digis 
)

Definition at line 53 of file ESUnpacker.cc.

References bx_, FEDHeader::bxID(), FEDTrailer::check(), FEDHeader::check(), dac_, FEDRawData::data(), debug_, FEch_, fedId_, gain_, ESDCCHeaderBlock::getOptoRX0(), ESDCCHeaderBlock::getOptoRX1(), ESDCCHeaderBlock::getOptoRX2(), RecoTauValidation_cfi::header, FEDTrailer::lenght(), LogDebug, lv1_, FEDHeader::lvl1ID(), m1, m12, m16, m32, m4, m6, m8, FEDHeader::moreHeaders(), FEDTrailer::moreTrailers(), optoRX0_, optoRX1_, optoRX2_, orbit_number_, precision_, print(), edm::SortedCollection< T, SORT >::push_back(), runtype_, seqtype_, ESKCHIPBlock::setBC(), ESDCCHeaderBlock::setBX(), ESDCCHeaderBlock::setDAC(), ESDCCHeaderBlock::setDCCErrors(), ESKCHIPBlock::setEC(), ESDCCHeaderBlock::setFEChannelStatus(), ESDCCHeaderBlock::setFedId(), ESKCHIPBlock::setFlag1(), ESKCHIPBlock::setFlag2(), ESDCCHeaderBlock::setGain(), ESKCHIPBlock::setId(), ESDCCHeaderBlock::setLV1(), ESDCCHeaderBlock::setMajorVersion(), ESDCCHeaderBlock::setMinorVersion(), ESKCHIPBlock::setOptoBC(), ESDCCHeaderBlock::setOptoBC0(), ESDCCHeaderBlock::setOptoBC1(), ESDCCHeaderBlock::setOptoBC2(), ESKCHIPBlock::setOptoEC(), ESDCCHeaderBlock::setOptoRX0(), ESDCCHeaderBlock::setOptoRX1(), ESDCCHeaderBlock::setOptoRX2(), ESDCCHeaderBlock::setOrbitNumber(), ESDCCHeaderBlock::setPrecision(), ESDCCHeaderBlock::setRunType(), ESDCCHeaderBlock::setSeqType(), ESDCCHeaderBlock::setTriggerType(), FEDRawData::size(), FEDHeader::sourceID(), trgtype_, vmajor_, vminor_, and word2digi().

Referenced by ESRawToDigi::produce().

53  {
54 
55  int nWords = rawData.size()/sizeof(Word64);
56  if (nWords==0) return;
57  int dccWords = 6;
58  int head, kPACE[4], kFlag1, kFlag2, kBC, kEC, optoBC, optoEC;
59  int kid = -1;
60 
61  ESDCCHeaderBlock ESDCCHeader;
62  ESDCCHeader.setFedId(fedId);
63 
64  // Event header
65  const Word64* header = reinterpret_cast<const Word64* >(rawData.data()); --header;
66  bool moreHeaders = true;
67  while (moreHeaders) {
68  ++header;
69  FEDHeader ESHeader( reinterpret_cast<const unsigned char*>(header) );
70  if ( !ESHeader.check() ) {
71  if (debug_) edm::LogWarning("Invalid Data")<<"ES : Failed header check !";
72  return;
73  }
74 
75  fedId_ = ESHeader.sourceID();
76  lv1_ = ESHeader.lvl1ID();
77  bx_ = ESHeader.bxID();
78 
79  if (debug_) {
80  LogDebug("ESUnpacker") << "[ESUnpacker]: FED Header candidate. Is header? "<< ESHeader.check();
81  if (ESHeader.check())
82  LogDebug("ESUnpacker") << ". BXID: "<<bx_<<" SourceID : "<<fedId_<<" L1ID: "<<lv1_;
83  else LogDebug("ESUnpacker")<<" WARNING!, this is not a ES Header";
84  }
85 
86  moreHeaders = ESHeader.moreHeaders();
87  }
88  if ( fedId != fedId_) {
89  if (debug_) edm::LogWarning("Invalid Data")<<"Invalid ES data with source id " <<fedId_;
90  ESDCCHeader.setDCCErrors(1);
91  dccs.push_back(ESDCCHeader);
92  return;
93  }
94  ESDCCHeader.setLV1(lv1_);
95  ESDCCHeader.setBX(bx_);
96 
97  // Event trailer
98  int slinkCRC = 1;
99  const Word64* trailer = reinterpret_cast<const Word64* >(rawData.data())+(nWords-1); ++trailer;
100  bool moreTrailers = true;
101  while (moreTrailers) {
102  --trailer;
103  FEDTrailer ESTrailer(reinterpret_cast<const unsigned char*>(trailer));
104  if ( !ESTrailer.check()) {
105  ++trailer;
106  if (debug_) edm::LogWarning("Invalid Data")<<"ES : Failed trailer check !";
107  return;
108  }
109  if ( ESTrailer.lenght() != nWords) {
110  if (debug_) edm::LogWarning("Invalid Data")<<"Invalid ES data : the length is not correct !";
111  ESDCCHeader.setDCCErrors(2);
112  dccs.push_back(ESDCCHeader);
113  return;
114  }
115  if ( ESTrailer.lenght() < 8) {
116  if (debug_) edm::LogWarning("Invalid Data")<<"Invalid ES data : the length is not correct !";
117  ESDCCHeader.setDCCErrors(3);
118  dccs.push_back(ESDCCHeader);
119  return;
120  }
121  slinkCRC = (*trailer >> 2 ) & 0x1;
122  if (debug_) {
123  LogDebug("ESUnpacker")<<"[ESUnpacker]: FED Trailer candidate. Is trailer? "<<ESTrailer.check();
124  if (ESTrailer.check())
125  LogDebug("ESUnpacker")<<". Length of the ES event: "<<ESTrailer.lenght();
126  else LogDebug("ESUnpacker")<<" WARNING!, this is not a ES Trailer";
127  }
128 
129  moreTrailers = ESTrailer.moreTrailers();
130  }
131 
132  if (slinkCRC != 0) {
133  ESDCCHeader.setDCCErrors(101);
134  dccs.push_back(ESDCCHeader);
135  return;
136  }
137 
138  // DCC data
139  std::vector<int> FEch_status;
140  int dccHeaderCount = 0;
141  int dccLineCount = 0;
142  int dccHead, dccLine;
143  int dccCRC1_ = 0;
144  int dccCRC2_ = 0;
145  int dccCRC3_ = 0;
146  for (const Word64* word=(header+1); word!=(header+dccWords+1); ++word) {
147  if (debug_) LogDebug("ESUnpacker")<<"DCC : "<<print(*word);
148  dccHead = (*word >> 60) & m4;
149  if (dccHead == 3) dccHeaderCount++;
150  dccLine = (*word >> 56) & m4;
151  dccLineCount++;
152  if (dccLine != dccLineCount) {
153  if (debug_) edm::LogWarning("Invalid Data")<<"Invalid ES data : DCC header order is not correct !";
154  ESDCCHeader.setDCCErrors(4);
155  dccs.push_back(ESDCCHeader);
156  return;
157  }
158  if (dccLineCount == 1) {
159  dccCRC1_ = (*word >> 24) & m1;
160  dccCRC2_ = (*word >> 25) & m1;
161  dccCRC3_ = (*word >> 26) & m1;
162  } else if (dccLineCount == 2) {
163  runtype_ = (*word >> 0) & m4;
164  seqtype_ = (*word >> 4) & m4;
165  dac_ = (*word >> 8) & m12;
166  gain_ = (*word >> 20) & m1;
167  precision_ = (*word >> 21) & m1;
168  trgtype_ = (*word >> 34) & m6;
169 
170  ESDCCHeader.setRunType(runtype_);
171  ESDCCHeader.setSeqType(seqtype_);
172  ESDCCHeader.setTriggerType(trgtype_);
173  ESDCCHeader.setDAC(dac_);
174  ESDCCHeader.setGain(gain_);
175  ESDCCHeader.setPrecision(precision_);
176  }
177  if (dccLineCount == 3) {
178  orbit_number_ = (*word >> 0) & m32;
179  vminor_ = (*word >> 40) & m8;
180  vmajor_ = (*word >> 48) & m8;
181 
182  ESDCCHeader.setOrbitNumber(orbit_number_);
183  ESDCCHeader.setMajorVersion(vmajor_);
184  ESDCCHeader.setMinorVersion(vminor_);
185  }
186  if (dccLineCount == 4) optoRX0_ = (*word >> 48) & m8;
187  if (dccLineCount == 5) optoRX1_ = (*word >> 48) & m8;
188  if (dccLineCount == 6) optoRX2_ = (*word >> 48) & m8;
189  if (dccLineCount >=4) {
190  for (unsigned int j=0; j<12; ++j) {
191  FEch_[(dccLineCount-4)*12+j] = (*word >> (j*4)) & m4;
192  FEch_status.push_back(FEch_[(dccLineCount-4)*12+j]);
193  }
194  }
195  }
196  if (vmajor_ < 4) {
197  if (debug_)
198  edm::LogWarning("Invalid Data")<<"Invalid ES data format : "<<vmajor_<<" "<<vminor_;
199  return;
200  }
201  if (dccHeaderCount != 6) {
202  edm::LogWarning("Invalid Data")<<"Invalid ES data : DCC header lines are "<<dccHeaderCount;
203  ESDCCHeader.setDCCErrors(5);
204  dccs.push_back(ESDCCHeader);
205  return;
206  }
207  ESDCCHeader.setOptoRX0(optoRX0_ + dccCRC1_);
208  ESDCCHeader.setOptoRX1(optoRX1_ + dccCRC2_);
209  ESDCCHeader.setOptoRX2(optoRX2_ + dccCRC3_);
210  ESDCCHeader.setFEChannelStatus(FEch_status);
211  int enableOptoRX[3] = {-1, -1, -1};
212  int NenableOptoRX = 0;
213  if (optoRX0_ == 128) {
214  enableOptoRX[NenableOptoRX] = 0;
215  NenableOptoRX++;
216  }
217  if (optoRX1_ == 128) {
218  enableOptoRX[NenableOptoRX] = 1;
219  NenableOptoRX++;
220  }
221  if (optoRX2_ == 128) {
222  enableOptoRX[NenableOptoRX] = 2;
223  }
224 
225  // Event data
226  int iopto = 0;
227  int opto = -1;
228  for (const Word64* word=(header+dccWords+1); word!=trailer; ++word) {
229  if (debug_) LogDebug("ESUnpacker")<<"Event : "<<print(*word);
230 
231  head = (*word >> 60) & m4;
232 
233  if (head == 12) {
234  if ((opto==0 && ESDCCHeader.getOptoRX0()==129) || (opto==1 && ESDCCHeader.getOptoRX1()==129) || (opto==2 && ESDCCHeader.getOptoRX2()==129))
235  word2digi(kid, kPACE, *word, digis);
236  } else if (head == 9) {
237  kid = (*word >> 2) & 0x07ff;
238  kPACE[0] = (*word >> 16) & m1;
239  kPACE[1] = (*word >> 17) & m1;
240  kPACE[2] = (*word >> 18) & m1;
241  kPACE[3] = (*word >> 19) & m1;
242  kFlag2 = (*word >> 20) & m4;
243  kFlag1 = (*word >> 24) & m8;
244  kBC = (*word >> 32) & m16;
245  kEC = (*word >> 48) & m8;
246 
247  ESKCHIPBlock ESKCHIP;
248  ESKCHIP.setId(kid);
249  ESKCHIP.setBC(kBC);
250  ESKCHIP.setEC(kEC);
251  ESKCHIP.setOptoBC(optoBC);
252  ESKCHIP.setOptoEC(optoEC);
253  ESKCHIP.setFlag1(kFlag1);
254  ESKCHIP.setFlag2(kFlag2);
255  kchips.push_back(ESKCHIP);
256  } else if (head == 6) {
257  optoBC = (*word >> 32) & m16;
258  optoEC = (*word >> 48) & m8;
259 
260  opto = enableOptoRX[iopto];
261  if (opto==0) ESDCCHeader.setOptoBC0(optoBC);
262  else if (opto==1) ESDCCHeader.setOptoBC1(optoBC);
263  else if (opto==2) ESDCCHeader.setOptoBC2(optoBC);
264  if (iopto < 2) ++iopto;
265  }
266  }
267 
268  dccs.push_back(ESDCCHeader);
269 }
#define LogDebug(id)
void setOptoBC2(const int &optoBC2)
int runtype_
Definition: ESUnpacker.h:56
void setOrbitNumber(const int &orbit)
int vmajor_
Definition: ESUnpacker.h:60
bool debug_
Definition: ESUnpacker.h:66
void setGain(const int &gain)
void setOptoBC(const int &OptoBC)
Definition: ESKCHIPBlock.h:29
void setFEChannelStatus(const std::vector< int > &FEch)
void setFedId(const int &fedId)
void setId(const int &kId)
Definition: ESKCHIPBlock.h:16
int fedId_
Definition: ESUnpacker.h:48
int optoRX0_
Definition: ESUnpacker.h:61
void setOptoRX1(const int &optoRX1)
int getOptoRX0() const
void push_back(T const &t)
int getOptoRX1() const
Word64 m12
Definition: ESUnpacker.h:73
void setPrecision(const int &precision)
void setOptoBC0(const int &optoBC0)
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
void setDCCErrors(const int &dccErrs)
void setEC(const int &EC)
Definition: ESKCHIPBlock.h:28
void setBX(const int &BX)
void setFlag1(const int &flag1)
Definition: ESKCHIPBlock.h:31
int seqtype_
Definition: ESUnpacker.h:57
int optoRX2_
Definition: ESUnpacker.h:63
void setMajorVersion(const int &vmajor)
void setSeqType(const int &seqType)
Word64 m1
Definition: ESUnpacker.h:73
int vminor_
Definition: ESUnpacker.h:59
void setLV1(const int &LV1)
Word64 m32
Definition: ESUnpacker.h:73
void setOptoBC1(const int &optoBC1)
uint64_t Word64
int optoRX1_
Definition: ESUnpacker.h:62
void setOptoRX0(const int &optoRX0)
void setMinorVersion(const int &vminor)
void setOptoEC(const int &OptoEC)
Definition: ESKCHIPBlock.h:30
void word2digi(int kchip, int kPACE[4], const Word64 &word, ESDigiCollection &digis)
Definition: ESUnpacker.cc:271
void setOptoRX2(const int &optoRX2)
int precision_
Definition: ESUnpacker.h:55
std::string print(const Word64 &word) const
Definition: ESUnpacker.cc:318
void setFlag2(const int &flag2)
Definition: ESKCHIPBlock.h:32
Word64 m8
Definition: ESUnpacker.h:73
int FEch_[36]
Definition: ESUnpacker.h:64
void setBC(const int &BC)
Definition: ESKCHIPBlock.h:27
void setTriggerType(const int &trgType)
void setRunType(const int &runType)
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:28
Word64 m6
Definition: ESUnpacker.h:73
int getOptoRX2() const
Word64 m16
Definition: ESUnpacker.h:73
unsigned long long Word64
Definition: ESUnpacker.h:30
int orbit_number_
Definition: ESUnpacker.h:50
void setDAC(const int &dac)
int trgtype_
Definition: ESUnpacker.h:58
Word64 m4
Definition: ESUnpacker.h:73
std::string ESUnpacker::print ( const Word64 word) const
private

Definition at line 318 of file ESUnpacker.cc.

References harvestTrackValidationPlots::str.

Referenced by interpretRawData().

319 {
320  std::ostringstream str;
321  str << "Word64: " << reinterpret_cast<const std::bitset<64>&> (word);
322  return str.str();
323 }
void ESUnpacker::setBX ( int  i)
inline

Definition at line 40 of file ESUnpacker.h.

References bx_, and mps_fire::i.

40 {bx_ = i;};
void ESUnpacker::setLV1 ( int  i)
inline

Definition at line 41 of file ESUnpacker.h.

References mps_fire::i, and lv1_.

41 {lv1_ = i;};
void ESUnpacker::setOrbitNumber ( int  i)
inline

Definition at line 39 of file ESUnpacker.h.

References mps_fire::i, and orbit_number_.

39 {orbit_number_ = i;};
int orbit_number_
Definition: ESUnpacker.h:50
void ESUnpacker::setRunNumber ( int  i)
inline

Definition at line 38 of file ESUnpacker.h.

References mps_fire::i, and run_number_.

38 {run_number_ = i;};
int run_number_
Definition: ESUnpacker.h:49
void ESUnpacker::setTriggerType ( int  i)
inline

Definition at line 42 of file ESUnpacker.h.

References mps_fire::i, pset_, and trgtype_.

42 {trgtype_ = i;};
int trgtype_
Definition: ESUnpacker.h:58
void ESUnpacker::word2digi ( int  kchip,
int  kPACE[4],
const Word64 word,
ESDigiCollection digis 
)

Definition at line 271 of file ESUnpacker.cc.

References ecalMGPA::adc(), ESSample::adc(), debug_, mps_fire::i, LogDebug, m16, m2, m5, pl_, ESDetId::plane(), ESDigiCollection::push_back(), ESDataFrame::sample(), ESDataFrame::setSample(), ESDataFrame::setSize(), ESDetId::six(), ESDetId::siy(), digi_MixPreMix_cfi::strip, ESDetId::strip(), ESDetId::validDetId(), vmajor_, vminor_, x_, y_, HcalDigiParam_cfi::zside, ESDetId::zside(), and zside_.

Referenced by interpretRawData().

272 {
273 
274  int pace = (word >> 53) & m2;
275  if (kPACE[pace]==0) return;
276  if (kid > 1511 || kid < 1) return;
277 
278  int adc[3];
279  adc[0] = (word >> 0) & m16;
280  adc[1] = (word >> 16) & m16;
281  adc[2] = (word >> 32) & m16;
282  int strip = (word >> 48) & m5;
283 
284  if (debug_) LogDebug("ESUnpacker")<<kid<<" "<<strip<<" "<<pace<<" "<<adc[0]<<" "<<adc[1]<<" "<<adc[2];
285 
286  int zside, plane, ix, iy;
287  zside = zside_[kid-1][pace];
288  plane = pl_[kid-1][pace];
289  ix = x_[kid-1][pace];
290  iy = y_[kid-1][pace];
291 
292  // convert strip number from electronics id to detector id
293  if (vmajor_ == 4 && (vminor_==2 || vminor_==3)) {
294  if (zside == 1 && plane == 1 && iy <= 20) strip = 31 - strip;
295  if (zside == 1 && plane == 2 && ix > 20) strip = 31 - strip;
296  if (zside == -1 && plane == 1 && iy > 20) strip = 31 - strip;
297  if (zside == -1 && plane == 2 && ix <= 20) strip = 31 - strip;
298  }
299 
300  if (debug_) LogDebug("ESUnpacker")<<"DetId : "<<zside<<" "<<plane<<" "<<ix<<" "<<iy<<" "<<strip+1;
301 
302  if (ESDetId::validDetId(strip+1, ix, iy, plane, zside)) {
303 
304  ESDetId detId(strip+1, ix, iy, plane, zside);
305  ESDataFrame df(detId);
306  df.setSize(3);
307 
308  for (int i=0; i<3; i++) df.setSample(i, adc[i]);
309 
310  digis.push_back(df);
311 
312  if (debug_)
313  LogDebug("ESUnpacker")<<"Si : "<<detId.zside()<<" "<<detId.plane()<<" "<<detId.six()<<" "<<detId.siy()<<" "<<detId.strip()<<" ("<<kid<<","<<pace<<") "<<df.sample(0).adc()<<" "<<df.sample(1).adc()<<" "<<df.sample(2).adc();
314  }
315 
316 }
#define LogDebug(id)
int adc(sample_type sample)
get the ADC sample (12 bits)
int vmajor_
Definition: ESUnpacker.h:60
bool debug_
Definition: ESUnpacker.h:66
int y_[4288][4]
Definition: ESUnpacker.h:75
Word64 m5
Definition: ESUnpacker.h:73
int x_[4288][4]
Definition: ESUnpacker.h:75
int zside_[4288][4]
Definition: ESUnpacker.h:75
int vminor_
Definition: ESUnpacker.h:59
Word64 m2
Definition: ESUnpacker.h:73
int pl_[4288][4]
Definition: ESUnpacker.h:75
static bool validDetId(int istrip, int ixs, int iys, int iplane, int iz)
check if a valid index combination
Definition: ESDetId.cc:22
void push_back(unsigned int i)
Word64 m16
Definition: ESUnpacker.h:73

Member Data Documentation

int ESUnpacker::bx_
private

Definition at line 51 of file ESUnpacker.h.

Referenced by interpretRawData(), and setBX().

int ESUnpacker::dac_
private

Definition at line 53 of file ESUnpacker.h.

Referenced by interpretRawData().

bool ESUnpacker::debug_
private

Definition at line 66 of file ESUnpacker.h.

Referenced by ESUnpacker(), interpretRawData(), and word2digi().

int ESUnpacker::FEch_[36]
private

Definition at line 64 of file ESUnpacker.h.

Referenced by interpretRawData().

int ESUnpacker::fedId_
private

Definition at line 48 of file ESUnpacker.h.

Referenced by interpretRawData().

int ESUnpacker::gain_
private

Definition at line 54 of file ESUnpacker.h.

Referenced by interpretRawData().

edm::FileInPath ESUnpacker::lookup_
private

Definition at line 67 of file ESUnpacker.h.

Referenced by ESUnpacker().

int ESUnpacker::lv1_
private

Definition at line 52 of file ESUnpacker.h.

Referenced by interpretRawData(), and setLV1().

Word64 ESUnpacker::m1
protected

Definition at line 73 of file ESUnpacker.h.

Referenced by ESUnpacker(), and interpretRawData().

Word64 ESUnpacker::m12
protected

Definition at line 73 of file ESUnpacker.h.

Referenced by ESUnpacker(), and interpretRawData().

Word64 ESUnpacker::m16
protected

Definition at line 73 of file ESUnpacker.h.

Referenced by ESUnpacker(), interpretRawData(), and word2digi().

Word64 ESUnpacker::m2
protected

Definition at line 73 of file ESUnpacker.h.

Referenced by ESUnpacker(), and word2digi().

Word64 ESUnpacker::m32
protected

Definition at line 73 of file ESUnpacker.h.

Referenced by ESUnpacker(), and interpretRawData().

Word64 ESUnpacker::m4
protected

Definition at line 73 of file ESUnpacker.h.

Referenced by ESUnpacker(), and interpretRawData().

Word64 ESUnpacker::m5
protected

Definition at line 73 of file ESUnpacker.h.

Referenced by ESUnpacker(), and word2digi().

Word64 ESUnpacker::m6
protected

Definition at line 73 of file ESUnpacker.h.

Referenced by ESUnpacker(), and interpretRawData().

Word64 ESUnpacker::m8
protected

Definition at line 73 of file ESUnpacker.h.

Referenced by ESUnpacker(), and interpretRawData().

int ESUnpacker::optoRX0_
private

Definition at line 61 of file ESUnpacker.h.

Referenced by interpretRawData().

int ESUnpacker::optoRX1_
private

Definition at line 62 of file ESUnpacker.h.

Referenced by interpretRawData().

int ESUnpacker::optoRX2_
private

Definition at line 63 of file ESUnpacker.h.

Referenced by interpretRawData().

int ESUnpacker::orbit_number_
private

Definition at line 50 of file ESUnpacker.h.

Referenced by interpretRawData(), and setOrbitNumber().

int ESUnpacker::pl_[4288][4]
protected

Definition at line 75 of file ESUnpacker.h.

Referenced by ESUnpacker(), and word2digi().

int ESUnpacker::precision_
private

Definition at line 55 of file ESUnpacker.h.

Referenced by interpretRawData().

const edm::ParameterSet ESUnpacker::pset_
private

Definition at line 42 of file ESUnpacker.h.

Referenced by ESUnpacker(), and setTriggerType().

int ESUnpacker::run_number_
private

Definition at line 49 of file ESUnpacker.h.

Referenced by setRunNumber().

int ESUnpacker::runtype_
private

Definition at line 56 of file ESUnpacker.h.

Referenced by interpretRawData().

int ESUnpacker::seqtype_
private

Definition at line 57 of file ESUnpacker.h.

Referenced by interpretRawData().

int ESUnpacker::trgtype_
private

Definition at line 58 of file ESUnpacker.h.

Referenced by interpretRawData(), and setTriggerType().

int ESUnpacker::vmajor_
private

Definition at line 60 of file ESUnpacker.h.

Referenced by interpretRawData(), and word2digi().

int ESUnpacker::vminor_
private

Definition at line 59 of file ESUnpacker.h.

Referenced by interpretRawData(), and word2digi().

int ESUnpacker::x_[4288][4]
protected

Definition at line 75 of file ESUnpacker.h.

Referenced by ESUnpacker(), and word2digi().

int ESUnpacker::y_[4288][4]
protected

Definition at line 75 of file ESUnpacker.h.

Referenced by ESUnpacker(), and word2digi().

int ESUnpacker::zside_[4288][4]
protected

Definition at line 75 of file ESUnpacker.h.

Referenced by ESUnpacker(), and word2digi().