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 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_
edm::InputTag fedRawDataCollectionTag_
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_
edm::InputTag l1AcceptBunchCrossingCollectionTag_
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 33 of file EcalDumpRaw.h.


Member Enumeration Documentation

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

Definition at line 102 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),
  fedRawDataCollectionTag_(ps.getParameter<edm::InputTag>("fedRawDataCollectionTag")),
  l1AcceptBunchCrossingCollectionTag_(ps.getParameter<edm::InputTag>("l1AcceptBunchCrossingCollectionTag"))
{
  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 207 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 212 of file EcalDumpRaw.cc.

References beg_fed_id_, bx_, dtNoiseDBValidation_cfg::cerr, gather_cfg::cout, FEDRawData::data(), data, dccChStatus_, dccId_, decode(), dump_, dumpFile_, end_fed_id_, eventId_, eventList_, feBx_, feBxOffset, fedRawDataCollectionTag_, feL1a_, feRuId_, lumiContext::fill, spr::find(), first_event_, i, iEvent_, iRu_, edm::HandleBase::isValid(), iTcc_, iTow_, l1a_, l1AcceptBunchCrossingCollectionTag_, l1aHistory_, l1amax_, l1amin_, last_event_, FEDNumbering::lastFEDId(), maxEventId_, minEventId_, nRu_, nTpgs_, nTts_, lumiPlot::rawdata, alignCSCRings::s, FEDRawData::size(), srpBx_, srpL1a_, dqm_diff::start, 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.getByLabel(fedRawDataCollectionTag_, rawdata);

  if(dump_ || l1aHistory_) cout << "\n======================================================================\n"
                                << toNth(iEvent_)
                                << " read event. "
                                << "Event id: "
                                << " " << eventId_
                                << "\n----------------------------------------------------------------------\n";
  
  if(l1aHistory_){
    edm::Handle<L1AcceptBunchCrossingCollection> l1aHist;
    event.getByLabel(l1AcceptBunchCrossingCollectionTag_, l1aHist);
    if(!l1aHist.isValid()) {
      cout << "L1A history not found.\n";
    } else if (l1aHist->size() == 0) {
      cout << "L1A history is empty.\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;
  unsigned iFed = 0;
  unsigned refDccId = 0;
  //  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_;
      } else{
        if(dccId_!=refDccId){
          dccIdErr = 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) & 0xFFF)){
          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;
  }

  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 204 of file EcalDumpRaw.cc.

                        {
}
int EcalDumpRaw::lmodOfRu ( int  ru1) [static, private]

Definition at line 904 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 52 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 60 of file EcalDumpRaw.h.

References i, and m.

Referenced by ESElectronicsSim::decode(), 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 895 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 886 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 917 of file EcalDumpRaw.cc.

References fedId_, max(), min(), and alignCSCRings::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 459 of file EcalDumpRaw.cc.

References n, and alignCSCRings::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 70 of file EcalDumpRaw.h.

References alignCSCRings::s.

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

Definition at line 951 of file EcalDumpRaw.cc.

References Exception, ecaldqm::ttId(), 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 934 of file EcalDumpRaw.cc.

References Exception, ecaldqm::ttId(), 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 106 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

double EcalDumpRaw::amplCut_ [private]

Definition at line 109 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::beg_fed_id_ [private]

Definition at line 92 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().

int EcalDumpRaw::bx_ [private]

Definition at line 151 of file EcalDumpRaw.h.

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

int EcalDumpRaw::dccCh_ [private]

Definition at line 119 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

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

Definition at line 162 of file EcalDumpRaw.h.

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

unsigned EcalDumpRaw::dccId_ [private]

Definition at line 142 of file EcalDumpRaw.h.

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

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

Definition at line 156 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

bool EcalDumpRaw::dump_ [private]

Definition at line 110 of file EcalDumpRaw.h.

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

bool EcalDumpRaw::dumpAdc_ [private]

Definition at line 111 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

std::ofstream EcalDumpRaw::dumpFile_ [private]

Definition at line 179 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().

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

TCC types

Definition at line 130 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

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

Definition at line 131 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

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

Definition at line 132 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

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

Definition at line 133 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::end_fed_id_ [private]

Definition at line 93 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().

unsigned EcalDumpRaw::eventId_ [private]

Definition at line 144 of file EcalDumpRaw.h.

Referenced by analyze().

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

Definition at line 145 of file EcalDumpRaw.h.

Referenced by analyze().

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

Definition at line 176 of file EcalDumpRaw.h.

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

unsigned EcalDumpRaw::fedId_ [private]

Definition at line 141 of file EcalDumpRaw.h.

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

Definition at line 186 of file EcalDumpRaw.h.

Referenced by analyze().

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

Definition at line 122 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

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

Definition at line 171 of file EcalDumpRaw.h.

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

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

Definition at line 177 of file EcalDumpRaw.h.

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

std::string EcalDumpRaw::filename_ [private]

Definition at line 96 of file EcalDumpRaw.h.

Referenced by EcalDumpRaw().

Definition at line 94 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().

int EcalDumpRaw::iEvent_ [private]

Definition at line 97 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::iRu_ [private]

Definition at line 163 of file EcalDumpRaw.h.

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

unsigned EcalDumpRaw::iSrWord64_ [private]

Definition at line 100 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::iTcc_ [private]

Definition at line 185 of file EcalDumpRaw.h.

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

unsigned EcalDumpRaw::iTccWord64_ [private]

Definition at line 101 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::iTow_ [private]

Definition at line 178 of file EcalDumpRaw.h.

Referenced by analyze().

unsigned EcalDumpRaw::iTowerWord64_ [private]

Definition at line 99 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::l1a_ [private]

Definition at line 152 of file EcalDumpRaw.h.

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

Definition at line 187 of file EcalDumpRaw.h.

Referenced by analyze().

bool EcalDumpRaw::l1aHistory_ [private]

Definition at line 112 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::l1amax_ [private]

Definition at line 154 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::l1aMaxX_ [private]

Definition at line 118 of file EcalDumpRaw.h.

int EcalDumpRaw::l1amin_ [private]

Definition at line 153 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::l1aMinX_ [private]

Definition at line 117 of file EcalDumpRaw.h.

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

Definition at line 158 of file EcalDumpRaw.h.

int EcalDumpRaw::last_event_ [private]

Definition at line 95 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().

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

Definition at line 120 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

unsigned EcalDumpRaw::maxEventId_ [private]

Definition at line 147 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::maxEvt_ [private]

Definition at line 114 of file EcalDumpRaw.h.

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

Definition at line 124 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

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

Definition at line 123 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

unsigned EcalDumpRaw::minEventId_ [private]

Definition at line 146 of file EcalDumpRaw.h.

Referenced by analyze().

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

Definition at line 121 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

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

Definition at line 170 of file EcalDumpRaw.h.

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

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

Definition at line 108 of file EcalDumpRaw.h.

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

Definition at line 134 of file EcalDumpRaw.h.

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

Definition at line 161 of file EcalDumpRaw.h.

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

int EcalDumpRaw::nTts_ [private]

Definition at line 167 of file EcalDumpRaw.h.

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

unsigned EcalDumpRaw::orbit0_ [private]

Definition at line 148 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

bool EcalDumpRaw::orbit0Set_ [private]

Definition at line 150 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

uint32_t EcalDumpRaw::orbit_ [private]

Definition at line 149 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

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

Definition at line 159 of file EcalDumpRaw.h.

Definition at line 115 of file EcalDumpRaw.h.

Definition at line 116 of file EcalDumpRaw.h.

bool EcalDumpRaw::pulsePerLme_ [private]

Definition at line 182 of file EcalDumpRaw.h.

Definition at line 181 of file EcalDumpRaw.h.

bool EcalDumpRaw::pulsePerRu_ [private]

Definition at line 180 of file EcalDumpRaw.h.

unsigned EcalDumpRaw::side_ [private]

Definition at line 143 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

Definition at line 155 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::srpBx_ [private]

Definition at line 172 of file EcalDumpRaw.h.

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

int EcalDumpRaw::srpL1a_ [private]

Definition at line 164 of file EcalDumpRaw.h.

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

Definition at line 169 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::tccBx_ [private]

Definition at line 173 of file EcalDumpRaw.h.

Referenced by analyze().

int EcalDumpRaw::tccId_ [private]

Definition at line 183 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

int EcalDumpRaw::tccL1a_ [private]

Definition at line 165 of file EcalDumpRaw.h.

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

int EcalDumpRaw::tccType_ [private]

type of TCC currently parsed

Definition at line 175 of file EcalDumpRaw.h.

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

Definition at line 104 of file EcalDumpRaw.h.

Referenced by ESElectronicsSim::decode().

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

Definition at line 160 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 139 of file EcalDumpRaw.h.

Referenced by tpgTag(), and ttfTag().

int EcalDumpRaw::verbosity_ [private]

Definition at line 90 of file EcalDumpRaw.h.

Referenced by EcalDumpRaw().

bool EcalDumpRaw::writeDcc_ [private]

Definition at line 91 of file EcalDumpRaw.h.

Referenced by analyze(), and EcalDumpRaw().