CMS 3D CMS Logo

Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes

EcalDumpRaw Class Reference

#include <EcalDumpRaw.h>

Inheritance diagram for EcalDumpRaw:
edm::EDAnalyzer

List of all members.

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
void analyzeEB (const edm::Event &, const edm::EventSetup &) const
void analyzeEE (const edm::Event &, const edm::EventSetup &) const
 EcalDumpRaw (const edm::ParameterSet &)
void endJob ()
 ~EcalDumpRaw ()

Private Types

enum  {
  inDaqHeader, inDccHeader, inTccBlock, inSrBlock,
  inTowerBlock
}

Private Member Functions

void analyzeApd ()
void analyzeFed (int fedId)
bool decode (const uint32_t *data, int iWord32, std::ostream &out)
double max (std::vector< double > a, unsigned &pos)
double min (std::vector< double > a)
std::string srRange (int offset) const
std::string toNth (int n)
template<class T >
std::string toString (T val)
std::string tpgTag (int tccType, unsigned iSeq) const
std::string ttfTag (int tccType, unsigned iSeq) const

Static Private Member Functions

static int lme (int dccId1, int side)
static int lmodOfRu (int ru1)
static int modOfRu (int ru1)
static int sideOfRu (int ru1)

Private Attributes

std::vector< double > adc_
double amplCut_
int beg_fed_id_
int bx_
int dccCh_
std::vector< int > dccChStatus_
unsigned dccId_
enum EcalDumpRaw:: { ... }  decodeState_
int detailedTrigType_
bool dump_
bool dumpAdc_
std::ofstream dumpFile_
int end_fed_id_
unsigned eventId_
std::vector< unsigned > eventList_
std::vector< int > feBx_
unsigned fedId_
std::vector< int > feL1a_
std::vector< int > feRuId_
std::string filename_
int first_event_
int iEvent_
int iRu_
unsigned iSrWord64_
int iTcc_
unsigned iTccWord64_
int iTow_
unsigned iTowerWord64_
int l1a_
bool l1aHistory_
int l1amax_
int l1aMaxX_
int l1amin_
int l1aMinX_
std::vector< std::vector
< uint32_t > > 
l1as_
int last_event_
std::vector< uint32_t > lastOrbit_
unsigned maxEventId_
int maxEvt_
unsigned minEventId_
std::vector< int > nTpgs_
int nTts_
unsigned orbit0_
bool orbit0Set_
uint32_t orbit_
std::vector< std::vector
< uint32_t > > 
orbits_
int profileFedId_
int profileRuId_
bool pulsePerLme_
bool pulsePerLmod_
bool pulsePerRu_
unsigned side_
int simpleTrigType_
int srpBx_
int srpL1a_
int tccBlockLen64_
int tccBx_
int tccId_
int tccL1a_
int tccType_
 type of TCC currently parsed
size_t towerBlockLength_
std::vector< std::vector< int > > tpg_
int verbosity_
bool writeDcc_

Static Private Attributes

static const unsigned fedStart_ = 601
static const int maxTccsPerDcc_ = 4
static const int maxTpgsPerTcc_ = 68
static const unsigned nDccs_ = 54
static const int nRu_ = 70
static const int nSamples = 10
static const int ttId_ [nTccTypes_][maxTpgsPerTcc_]
static const int ebmTcc_ = 0
static const int ebpTcc_ = 1
static const int eeInnerTcc_ = 2
static const int eeOuterTcc_ = 3
static const int nTccTypes_ = 4

Detailed Description

Utility to dump ECAL Raw data. Hexadecimal dump is accompagned with a side by data interpretention.

The script test/dumpRaw can be used to run this module. E. g.: dumpRaw /store/..../data_file.root Run dumpRaw -h to get help on this script.

Author: Ph. Gras CEA/IRFU Saclay

Definition at line 32 of file EcalDumpRaw.h.


Member Enumeration Documentation

anonymous enum [private]
Enumerator:
inDaqHeader 
inDccHeader 
inTccBlock 
inSrBlock 
inTowerBlock 

Definition at line 101 of file EcalDumpRaw.h.


Constructor & Destructor Documentation

EcalDumpRaw::EcalDumpRaw ( const edm::ParameterSet ps) [explicit]

Definition at line 130 of file EcalDumpRaw.cc.

References beg_fed_id_, gather_cfg::cout, dumpFile_, end_fed_id_, filename_, first_event_, edm::ParameterSet::getUntrackedParameter(), last_event_, max(), verbosity_, and writeDcc_.

                                                 :
  iEvent_(0),
  adc_(nSamples, 0.),
  amplCut_(ps.getUntrackedParameter<double>("amplCut", 5.)),
  dump_(ps.getUntrackedParameter<bool>("dump", true)),
  dumpAdc_(ps.getUntrackedParameter<bool>("dumpAdc", true)),
  l1aHistory_(ps.getUntrackedParameter<bool>("l1aHistory", true)),
  //  doHisto_(ps.getUntrackedParameter<bool>("doHisto", true)),
  maxEvt_(ps.getUntrackedParameter<int>("maxEvt", 10000)),
  profileFedId_(ps.getUntrackedParameter<int>("profileFedId", 0)),
  profileRuId_(ps.getUntrackedParameter<int>("profileRuId", 1)),
  l1aMinX_(ps.getUntrackedParameter<int>("l1aMinX", 1)),
  l1aMaxX_(ps.getUntrackedParameter<int>("l1aMaxX", 601)),
  lastOrbit_(nDccs_, numeric_limits<uint32_t>::max()),
  eventId_(numeric_limits<unsigned>::max()),
  eventList_(ps.getUntrackedParameter<vector<unsigned> >("eventList", vector<unsigned>())),
  minEventId_(999999),
  maxEventId_(0),
  orbit0_(0),
  orbit0Set_(false),
  bx_(-1),
  l1a_(-1),
  l1amin_(numeric_limits<int>::max()),
  l1amax_(-numeric_limits<int>::min()),
  simpleTrigType_(-1),
  detailedTrigType_(-1),
  //  histo_("hist.root", "RECREATE"),
  l1as_(36+2),
  orbits_(36+2),
  tpg_(maxTccsPerDcc_, std::vector<int>(maxTpgsPerTcc_)),
  nTpgs_(maxTccsPerDcc_, 0),
  dccChStatus_(70, 0),
  srpL1a_(-1),
  tccL1a_(-1),
  nTts_(-1),
  tccBlockLen64_(19),
  feL1a_(nRu_,-1),
  srpBx_(-1),
  tccBx_(-1),
  tccType_(0),
  feBx_(nRu_,-1),
  feRuId_(nRu_,-1),
  iTow_(0),
  pulsePerRu_(ps.getUntrackedParameter<bool>("pulsePerRu", true)),
  pulsePerLmod_(ps.getUntrackedParameter<bool>("pulsePerLmod", true)),
  pulsePerLme_(ps.getUntrackedParameter<bool>("pulsePerLme", true)),
  tccId_(0)
{
  verbosity_= ps.getUntrackedParameter<int>("verbosity",1);

  beg_fed_id_= ps.getUntrackedParameter<int>("beg_fed_id",601);
  end_fed_id_= ps.getUntrackedParameter<int>("end_fed_id",654);


  first_event_ = ps.getUntrackedParameter<int>("first_event",1);
  last_event_  = ps.getUntrackedParameter<int>("last_event",
                                               numeric_limits<int>::max());

  writeDcc_ = ps.getUntrackedParameter<bool>("writeDCC",false);
  filename_  = ps.getUntrackedParameter<string>("filename","dump.bin");
  if(writeDcc_){
    dumpFile_.open(filename_.c_str());
    if(dumpFile_.bad()){
      /*edm::LogError("EcalDumpRaw")*/ std::cout << "Failed to open file '"
                               << filename_.c_str() << "' specified by "
                               << "parameter filename for writing. DCC data "
        " dump will be disabled.";
      writeDcc_ = false;
    }
  }
}
EcalDumpRaw::~EcalDumpRaw ( )

Definition at line 205 of file EcalDumpRaw.cc.

                         {
}

Member Function Documentation

void EcalDumpRaw::analyze ( const edm::Event event,
const edm::EventSetup es 
) [virtual]

Implements edm::EDAnalyzer.

Definition at line 210 of file EcalDumpRaw.cc.

References beg_fed_id_, bx_, benchmark_cfg::cerr, gather_cfg::cout, FEDRawData::data(), AlCaHLTBitMon_QueryRunRegistry::data, dccChStatus_, dccId_, decode(), dump_, dumpFile_, end_fed_id_, eventId_, eventList_, feBx_, feBxOffset, feL1a_, feRuId_, spr::find(), first_event_, i, iEvent_, iRu_, edm::HandleBase::isValid(), iTcc_, iTow_, l1a_, l1aHistory_, l1amax_, l1amin_, last_event_, FEDNumbering::lastFEDId(), maxEventId_, minEventId_, nRu_, nTpgs_, nTts_, asciidump::s, simpleTrigType_, FEDRawData::size(), srpBx_, srpL1a_, tccBx_, tccL1a_, tccType_, toNth(), trigNames, and writeDcc_.

                                                                  {
  ++iEvent_;
  eventId_ = event.id().event();

  if(eventList_.size()!=0 && find(eventList_.begin(), eventList_.end(),
                                  eventId_) == eventList_.end()){
    cout << "Skipping event " << eventId_ << ".\n";
    return;
  }
  
  if ((first_event_ > 0 && iEvent_ < first_event_) ||
      (last_event_ > 0 && last_event_ < iEvent_)) return;
  timeval start;
  timeval stop;
  gettimeofday(&start, 0);

  edm::Handle<FEDRawDataCollection> rawdata;
  event.getByType(rawdata);

  if(dump_ || l1aHistory_) cout << "\n======================================================================\n"
                                << toNth(iEvent_)
                                << " read event. "
                                << "Event id: "
                                << " " << eventId_
                                << "\n----------------------------------------------------------------------\n";
  
  if(l1aHistory_){
    edm::Handle<L1AcceptBunchCrossingCollection> l1aHist;
    event.getByType(l1aHist);
    if(!l1aHist.isValid() || l1aHist->size() == 0){
      cout << "L1A history not found.\n";
    } else{
      cout << "L1A history: \n";
      for(L1AcceptBunchCrossingCollection::const_iterator it = l1aHist->begin();
          it != l1aHist->end();
            ++it){
        cout << "L1A offset: " <<  it->l1AcceptOffset() << "\t"
             << "BX: " <<  it->bunchCrossing() << "\t"
             << "Orbit ID: " << it->orbitNumber() << "\t"
             << "Trigger type: " << it->eventType() << " ("
             << trigNames[it->eventType()&0xF] << ")\n";
        }
    }
    cout << "----------------------------------------------------------------------\n";
  }
  
  if(eventId_ < minEventId_) minEventId_ = eventId_;
  if(eventId_ > maxEventId_) maxEventId_ = eventId_;

#if 1

  bool dccIdErr = false;
  bool simpleTrigTypeErr = false;
  bool outOfSync = false;
  unsigned iFed = 0;
  unsigned refDccId = 0;
  int refSimpleTrigType = -1;
  int refBx = -1;
  //  static bool recordNextPhys = false;
  //static int bxCalib = -1;
  //x static int nCalib = 0;

  for (int id = 0; id<=FEDNumbering::lastFEDId(); ++id){

    if (id < beg_fed_id_ || end_fed_id_ < id) continue;

    const FEDRawData& data = rawdata->FEDData(id);

    if (data.size()>4){
      ++iFed;
      if ((data.size() % 8) !=0){
        cout << "***********************************************\n";
        cout << " Fed size in bits not multiple of 64, strange.\n";
        cout << "***********************************************\n";
      }


      size_t nWord32 = data.size()/4;
      const uint32_t * pData = ( reinterpret_cast<uint32_t*>(const_cast<unsigned char*> ( data.data())));
      stringstream s;
      srpL1a_ = -1;
      tccL1a_ = -1;
      srpBx_ = -1;
      tccBx_ = -1;
      iTow_ = 0;
      iRu_ = 0;
      nTts_ = -1;
      iTcc_ = 0;
      tccType_ = 0;

      for(int i = 0; i < nRu_; ++i){
        feL1a_[i]  = -1;
        feBx_[i]   = -1;
        feRuId_[i] = -1;
      }

      fill(nTpgs_.begin(), nTpgs_.end(), 0);

      fill(dccChStatus_.begin(), dccChStatus_.end(), 0);
      
      bool rc;
      for(size_t iWord32=0; iWord32 < nWord32; iWord32+=2){
        s.str("");
        if(id>=601 && id<=654){// ECAL DCC data
          rc = decode(pData+iWord32, iWord32/2, s);
        } else{
          rc = true;
        }
        if(rc && dump_){
          cout << setfill('0') << hex
               << "[" << setw(8) << iWord32*4 << "] "
               <<        setw(4) << (pData[iWord32+1]>>16 & 0xFFFF) << " "
               <<        setw(4) << (pData[iWord32+1]>>0  & 0xFFFF) << " "
               <<        setw(4) << (pData[iWord32]>>16 & 0xFFFF) << " "
               <<        setw(4) << (pData[iWord32]>>0  & 0xFFFF) << " "
               << setfill(' ') << dec
               << s.str() << "\n";
        }
      }

      if(iFed==1){
        refDccId = dccId_;
        refSimpleTrigType = simpleTrigType_;
        refBx = bx_;
      } else{
        if(dccId_!=refDccId){
          dccIdErr = true;
        }
        if(simpleTrigType_!=refSimpleTrigType){
          simpleTrigTypeErr = true;
        }
        if(refBx!=bx_){
          outOfSync = true;
        }
      }

      if(dump_) cout << flush; //flushing cout before writing to cerr

      if(srpBx_!=-1 && srpBx_!=bx_){
        cerr << "Bx discrepancy between SRP and DCC, Bx(SRP) = "
             << srpBx_ << ", Bx(DCC) = " << bx_
             << " in " << toNth(iEvent_) << " event, FED "
             << id << endl;
      }

      if(tccBx_!=-1 && tccBx_!=bx_){
        cerr << "Bx discrepancy between TCC and DCC, Bx(TCC) = "
             << srpBx_ << ", Bx(DCC) = " << bx_
             << " in " << toNth(iEvent_) << " event, FED "
             << id << endl;
      }

      bool feBxErr = false;
      for(int i=0; i < nRu_; ++i){
        int expectedFeBx;
        if(feBxOffset==0){
          expectedFeBx = bx_ - 1;
        } else{
          expectedFeBx = (bx_==3564) ? 0 : bx_;
        }
        if(feBx_[i]!=-1 && feBx_[i]!=expectedFeBx){
          cerr << "BX error for " << toNth(i+1) << " RU, RU ID "
               << feRuId_[i];
          if((unsigned) feRuId_[i] <= dccChStatus_.size()){
            bool detected = (dccChStatus_[feRuId_[i]-1] == 10 || dccChStatus_[feRuId_[i]-1] == 11);
            cerr << (detected?" ":" not ") << "detected by DCC (ch status: "
                 << dccChStatus_[feRuId_[i]-1] << ")";
          }
          cerr << " in " << toNth(iEvent_) << " event, FED "
               << id << "." << endl;
          
          feBxErr = true;
        }
      }
      if(feBxErr) cerr << "Bx discrepancy between DCC and at least one FE"
                       << " in " << toNth(iEvent_) << " event, FED "
                       << id << "\n";


      int localL1a = l1a_ & 0xFFF;
      if(srpL1a_!=-1 && srpL1a_!=localL1a){
        cerr << "Discrepancy between SRP and DCC L1a counter, L1a(SRP) = "
             << srpL1a_ << ", L1a(DCC) & 0xFFF = " << localL1a
             << " in " << toNth(iEvent_) << " event, FED "
             << id << endl;

      }

      if(tccL1a_!=-1 && tccL1a_!=localL1a){
        cerr << "Discrepancy between TCC and DCC L1a counter, L1a(TCC) = "
             << srpL1a_ << ", L1a(DCC) & 0xFFF = " << localL1a
             << " in " << toNth(iEvent_) << " event, FED "
             << id << endl;

      }

      bool feL1aErr = false;
      for(int i=0; i < nRu_; ++i){
        if(feL1a_[i]!=-1 && feL1a_[i]!=localL1a-1){
          cerr << "FE L1A error for " << toNth(i+1) << " RU, RU ID "
               << feRuId_[i];
          if((unsigned) feRuId_[i] <= dccChStatus_.size()){
            bool detected = (dccChStatus_[feRuId_[i]-1] == 9 || dccChStatus_[feRuId_[i]-1] == 11);
            cerr << (detected?" ":" not ") << "detected by DCC (ch status: "
                 << dccChStatus_[feRuId_[i]-1] << ")";
          }
          cerr << " in " << toNth(iEvent_) << " event, FED "
               << id << "." << endl;
          feL1aErr = true;
        }
      }
      if(feL1aErr) cerr << "Discrepancy in L1a counter between DCC "
                     "and at least one FE (L1A(DCC) & 0xFFF = " << localL1a << ")"
                        << " in " << toNth(iEvent_) << " event, FED "
                        << id << "\n";
      

      if(iTow_>0 && iTow_< nRu_ && feRuId_[iTow_] < feRuId_[iTow_-1]){
        cerr << "Error in RU ID (TT/SC ID)"
             << " in " << toNth(iEvent_) << " event, FED "
             << id << endl;
      }

      if (beg_fed_id_ <= id && id <= end_fed_id_ && writeDcc_){
        dumpFile_.write( reinterpret_cast <const char *> (pData), nWord32*4);
      }
      
      if(dump_) cout << "\n";
    } else{
      //      cout << "No data for FED " <<  id << ". Size = "
      //     << data.size() << " byte(s).\n";
    }
  } //next fed

  if(dump_) cout << "Number of selected FEDs with a data block: "
                 << iFed << "\n";

  if(dccIdErr){
    cout << flush;
    cerr << "DCC ID discrepancy in detailed trigger type "
         << " of " << toNth(iEvent_) << " event." << endl;
  }
  int bx = -1;
  if(!outOfSync){
    bx = bx_;
  }

  if(l1a_>0 && l1a_< l1amin_) l1amin_ = l1a_;
  if(l1a_>l1amax_) l1amax_ = l1a_;


#endif

  gettimeofday(&stop, 0);
  //  double dt  = (stop.tv_sec-start.tv_sec)*1.e3
  //  + (stop.tv_usec-start.tv_usec)*1.e-3;
  //  histo_.fillD("hCodeTime", "Code execution time;Duration (ms);Event count",
  //             PGXAxis(100, 0, 100),
  //             dt);
}
void EcalDumpRaw::analyzeApd ( ) [private]
void EcalDumpRaw::analyzeEB ( const edm::Event ,
const edm::EventSetup  
) const
void EcalDumpRaw::analyzeEE ( const edm::Event ,
const edm::EventSetup  
) const
void EcalDumpRaw::analyzeFed ( int  fedId) [private]
bool EcalDumpRaw::decode ( const uint32_t *  data,
int  iWord32,
std::ostream &  out 
) [private]

Referenced by analyze().

void EcalDumpRaw::endJob ( void  ) [virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 202 of file EcalDumpRaw.cc.

                        {
}
int EcalDumpRaw::lme ( int  dccId1,
int  side 
) [static, private]

Definition at line 869 of file EcalDumpRaw.cc.

References min().

Referenced by ESElectronicsSim::decode().

                                      {
  int fedid = ((dcc1-1)%600) + 600; //to handle both FED and DCC id.
   vector<int> lmes;
   // EE -
   if( fedid <= 609 ) {
     if ( fedid <= 607 ) {
       lmes.push_back(fedid-601+83);
     } else if ( fedid == 608 ) {
       lmes.push_back(90);
       lmes.push_back(91);
     } else if ( fedid == 609 ) {
       lmes.push_back(92);
     }
   } //EB
   else if ( fedid >= 610  && fedid <= 645 ) {
     lmes.push_back(2*(fedid-610)+1);
     lmes.push_back(lmes[0]+1);
   } // EE+
   else if ( fedid >= 646 ) {
     if ( fedid <= 652 ) {
       lmes.push_back(fedid-646+73);
     } else if ( fedid == 653 ) {
       lmes.push_back(80);
       lmes.push_back(81);
     } else if ( fedid == 654 ) {
       lmes.push_back(82);
     }
   }
   return lmes.size()==0?-1:lmes[std::min(lmes.size(), (size_t)side)];
}
int EcalDumpRaw::lmodOfRu ( int  ru1) [static, private]

Definition at line 919 of file EcalDumpRaw.cc.

                                {
  int iEta0 = (ru1-1)/4;
  int iPhi0 = (ru1-1)%4;
  int rs;
  if(iEta0==0){
    rs =  1;
  } else{
    rs = 2 + ((iEta0-1)/4)*2 + (iPhi0%4)/2;
  }
  //  cout << "ru1 = " << ru1 << " -> lmod = " << rs << "\n";
  return rs;
}
double EcalDumpRaw::max ( std::vector< double >  a,
unsigned &  pos 
) [inline, private]

Definition at line 51 of file EcalDumpRaw.h.

References i, m, and pos.

Referenced by ESElectronicsSim::decode(), EcalDumpRaw(), and srRange().

                                                {
    pos = 0;
    double m = a[pos];
    for(unsigned i = 1; i < a.size(); ++i){
      if(a[i]>m){ m = a[i]; pos = i;}
    }
    return m;
  }
double EcalDumpRaw::min ( std::vector< double >  a) [inline, private]

Definition at line 59 of file EcalDumpRaw.h.

References i, and m.

Referenced by ESElectronicsSim::decode(), lme(), and srRange().

                                 {
    double m = a[0];
    for(unsigned i = 1; i < a.size(); ++i){
      if(a[i]<m) m = a[i];
    }
    return m;
  }
int EcalDumpRaw::modOfRu ( int  ru1) [static, private]

Definition at line 910 of file EcalDumpRaw.cc.

                               {
  int iEta0 = (ru1-1)/4;
  if(iEta0<5){
    return 1;
  } else{
    return 2 + (iEta0-5)/4;
  }
}
int EcalDumpRaw::sideOfRu ( int  ru1) [static, private]

Definition at line 901 of file EcalDumpRaw.cc.

Referenced by ESElectronicsSim::decode().

                                {
  if(ru1 < 5 || (ru1-5)%4 >= 2){
    return 0;
  } else{
    return 1;
  }
}
std::string EcalDumpRaw::srRange ( int  offset) const [private]

Definition at line 932 of file EcalDumpRaw.cc.

References fedId_, max(), min(), and asciidump::s.

Referenced by ESElectronicsSim::decode().

                                              {
  int min = offset+1;
  int max = offset+4;
  stringstream buf;
  if(628 <= fedId_ && fedId_ <= 646){//EB+
    buf << right << min << ".."
        << left  << max;
  } else{
    buf << right << max << ".."
        << left  << min;
  }
  string s = buf.str();
  buf.str("");
  buf << setw(6) << right << s;
  return buf.str();
}
string EcalDumpRaw::toNth ( int  n) [private]

Definition at line 471 of file EcalDumpRaw.cc.

References n, and asciidump::s.

Referenced by analyze().

                              {
  stringstream s;
  s << n;
  if(n%100<10 || n%100>20){
    switch(n%10){
    case 1:
      s << "st";
      break;
    case 2:
      s << "nd";
      break;
    case 3:
      s << "rd";
      break;
    default:
      s << "th";
    }
  } else{
    s << "th";
  }
  return s.str();
}
template<class T >
std::string EcalDumpRaw::toString ( T  val) [inline, private]

Definition at line 69 of file EcalDumpRaw.h.

References asciidump::s.

                           {
    std::stringstream s;
    s << val;
    return s.str();
  }
std::string EcalDumpRaw::tpgTag ( int  tccType,
unsigned  iSeq 
) const [private]

Definition at line 966 of file EcalDumpRaw.cc.

References Exception, and ttId_.

Referenced by ESElectronicsSim::decode().

                                                             {
  if((unsigned)iSeq > sizeof(ttId_))
    throw cms::Exception("OutOfRange")
      << __FILE__ << ":"  << __LINE__ << ": "
      << "parameter out of range\n";
                             
  const int ttId = ttId_[tccType][iSeq];
  stringstream buf;
  buf.str("");
  if(ttId==0){
    buf << "    '0'";
  } else{
    buf << "TPG# " << setw(2) << ttId;
  }
  return buf.str();
}
std::string EcalDumpRaw::ttfTag ( int  tccType,
unsigned  iSeq 
) const [private]

Definition at line 949 of file EcalDumpRaw.cc.

References Exception, and ttId_.

Referenced by ESElectronicsSim::decode().

                                                             {
  if((unsigned)iSeq > sizeof(ttId_))
    throw cms::Exception("OutOfRange")
      << __FILE__ << ":"  << __LINE__ << ": "
      << "parameter out of range\n";
                             
  const int ttId = ttId_[tccType][iSeq];
  stringstream buf;
  buf.str("");
  if(ttId==0){
    buf << "    '0'";
  } else{
    buf << "TTF# " << setw(2) << ttId;
  }
  return buf.str();
}

Member Data Documentation

std::vector<double> EcalDumpRaw::adc_ [private]

Definition at line 105 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

double EcalDumpRaw::amplCut_ [private]

Definition at line 108 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::beg_fed_id_ [private]

Definition at line 91 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().

int EcalDumpRaw::bx_ [private]

Definition at line 150 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

int EcalDumpRaw::dccCh_ [private]

Definition at line 118 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

std::vector<int> EcalDumpRaw::dccChStatus_ [private]

Definition at line 161 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

unsigned EcalDumpRaw::dccId_ [private]

Definition at line 141 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

enum { ... } EcalDumpRaw::decodeState_ [private]

Definition at line 155 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

bool EcalDumpRaw::dump_ [private]

Definition at line 109 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

bool EcalDumpRaw::dumpAdc_ [private]

Definition at line 110 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

std::ofstream EcalDumpRaw::dumpFile_ [private]

Definition at line 178 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().

const int EcalDumpRaw::ebmTcc_ = 0 [static, private]

TCC types

Definition at line 129 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

const int EcalDumpRaw::ebpTcc_ = 1 [static, private]

Definition at line 130 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

const int EcalDumpRaw::eeInnerTcc_ = 2 [static, private]

Definition at line 131 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

const int EcalDumpRaw::eeOuterTcc_ = 3 [static, private]

Definition at line 132 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::end_fed_id_ [private]

Definition at line 92 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().

unsigned EcalDumpRaw::eventId_ [private]

Definition at line 143 of file EcalDumpRaw.h.

Referenced by analyze().

std::vector<unsigned> EcalDumpRaw::eventList_ [private]

Definition at line 144 of file EcalDumpRaw.h.

Referenced by analyze().

std::vector<int> EcalDumpRaw::feBx_ [private]

Definition at line 175 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

unsigned EcalDumpRaw::fedId_ [private]

Definition at line 140 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode(), and srRange().

const unsigned EcalDumpRaw::fedStart_ = 601 [static, private]

Definition at line 121 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

std::vector<int> EcalDumpRaw::feL1a_ [private]

Definition at line 170 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

std::vector<int> EcalDumpRaw::feRuId_ [private]

Definition at line 176 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

std::string EcalDumpRaw::filename_ [private]

Definition at line 95 of file EcalDumpRaw.h.

Referenced by EcalDumpRaw().

Definition at line 93 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().

int EcalDumpRaw::iEvent_ [private]

Definition at line 96 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::iRu_ [private]

Definition at line 162 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

unsigned EcalDumpRaw::iSrWord64_ [private]

Definition at line 99 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::iTcc_ [private]

Definition at line 184 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

unsigned EcalDumpRaw::iTccWord64_ [private]

Definition at line 100 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::iTow_ [private]

Definition at line 177 of file EcalDumpRaw.h.

Referenced by analyze().

unsigned EcalDumpRaw::iTowerWord64_ [private]

Definition at line 98 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::l1a_ [private]

Definition at line 151 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

bool EcalDumpRaw::l1aHistory_ [private]

Definition at line 111 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::l1amax_ [private]

Definition at line 153 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::l1aMaxX_ [private]

Definition at line 117 of file EcalDumpRaw.h.

int EcalDumpRaw::l1amin_ [private]

Definition at line 152 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::l1aMinX_ [private]

Definition at line 116 of file EcalDumpRaw.h.

std::vector<std::vector<uint32_t> > EcalDumpRaw::l1as_ [private]

Definition at line 157 of file EcalDumpRaw.h.

int EcalDumpRaw::last_event_ [private]

Definition at line 94 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().

std::vector<uint32_t> EcalDumpRaw::lastOrbit_ [private]

Definition at line 119 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

unsigned EcalDumpRaw::maxEventId_ [private]

Definition at line 146 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::maxEvt_ [private]

Definition at line 113 of file EcalDumpRaw.h.

const int EcalDumpRaw::maxTccsPerDcc_ = 4 [static, private]

Definition at line 123 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

const int EcalDumpRaw::maxTpgsPerTcc_ = 68 [static, private]

Definition at line 122 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

unsigned EcalDumpRaw::minEventId_ [private]

Definition at line 145 of file EcalDumpRaw.h.

Referenced by analyze().

const unsigned EcalDumpRaw::nDccs_ = 54 [static, private]

Definition at line 120 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

const int EcalDumpRaw::nRu_ = 70 [static, private]

Definition at line 169 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

const int EcalDumpRaw::nSamples = 10 [static, private]

Definition at line 107 of file EcalDumpRaw.h.

const int EcalDumpRaw::nTccTypes_ = 4 [static, private]

Definition at line 133 of file EcalDumpRaw.h.

std::vector<int> EcalDumpRaw::nTpgs_ [private]

Definition at line 160 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

int EcalDumpRaw::nTts_ [private]

Definition at line 166 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

unsigned EcalDumpRaw::orbit0_ [private]

Definition at line 147 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

bool EcalDumpRaw::orbit0Set_ [private]

Definition at line 149 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

uint32_t EcalDumpRaw::orbit_ [private]

Definition at line 148 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

std::vector<std::vector<uint32_t> > EcalDumpRaw::orbits_ [private]

Definition at line 158 of file EcalDumpRaw.h.

Definition at line 114 of file EcalDumpRaw.h.

Definition at line 115 of file EcalDumpRaw.h.

bool EcalDumpRaw::pulsePerLme_ [private]

Definition at line 181 of file EcalDumpRaw.h.

Definition at line 180 of file EcalDumpRaw.h.

bool EcalDumpRaw::pulsePerRu_ [private]

Definition at line 179 of file EcalDumpRaw.h.

unsigned EcalDumpRaw::side_ [private]

Definition at line 142 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

Definition at line 154 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

int EcalDumpRaw::srpBx_ [private]

Definition at line 171 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

int EcalDumpRaw::srpL1a_ [private]

Definition at line 163 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

Definition at line 168 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::tccBx_ [private]

Definition at line 172 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::tccId_ [private]

Definition at line 182 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::tccL1a_ [private]

Definition at line 164 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

int EcalDumpRaw::tccType_ [private]

type of TCC currently parsed

Definition at line 174 of file EcalDumpRaw.h.

Referenced by analyze(), and ESElectronicsSim::decode().

Definition at line 103 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

std::vector<std::vector<int> > EcalDumpRaw::tpg_ [private]

Definition at line 159 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

const int EcalDumpRaw::ttId_ [static, private]

TT ID in the order the TPG appears in the data

Definition at line 138 of file EcalDumpRaw.h.

Referenced by tpgTag(), and ttfTag().

int EcalDumpRaw::verbosity_ [private]

Definition at line 89 of file EcalDumpRaw.h.

Referenced by EcalDumpRaw().

bool EcalDumpRaw::writeDcc_ [private]

Definition at line 90 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().