ESUnpacker

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
#ifndef EventFilter_ESRawToDigi_ESUnpacker_h
#define EventFilter_ESRawToDigi_ESUnpacker_h

#include <iostream>
#include <vector>
#include <bitset>
#include <sstream>
#include <map>

#include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
#include "DataFormats/EcalDigi/interface/ESDataFrame.h"
#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
#include "DataFormats/FEDRawData/interface/FEDRawData.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ParameterSet/interface/FileInPath.h"
#include "DataFormats/EcalRawData/interface/ESDCCHeaderBlock.h"
#include "DataFormats/EcalRawData/interface/ESKCHIPBlock.h"
#include "DataFormats/EcalRawData/interface/EcalRawDataCollections.h"

class ESDigiToRaw;

class ESUnpacker {
public:
  typedef unsigned int Word32;
  typedef unsigned long long Word64;

  ESUnpacker(const edm::ParameterSet& ps);
  ~ESUnpacker();

  void interpretRawData(int fedId,
                        const FEDRawData& rawData,
                        ESRawDataCollection& dccs,
                        ESLocalRawDataCollection& kchips,
                        ESDigiCollection& digis);
  void word2digi(int kchip, int kPACE[4], const Word64& word, ESDigiCollection& digis);

  void setRunNumber(int i) { run_number_ = i; };
  void setOrbitNumber(int i) { orbit_number_ = i; };
  void setBX(int i) { bx_ = i; };
  void setLV1(int i) { lv1_ = i; };
  void setTriggerType(int i) { trgtype_ = i; };

private:
  const edm::ParameterSet pset_;

  int fedId_;
  int run_number_;
  int orbit_number_;
  int bx_;
  int lv1_;
  int dac_;
  int gain_;
  int precision_;
  int runtype_;
  int seqtype_;
  int trgtype_;
  int vminor_;
  int vmajor_;
  int optoRX0_;
  int optoRX1_;
  int optoRX2_;
  int FEch_[36];

  bool debug_;
  edm::FileInPath lookup_;

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

protected:
  Word64 m1, m2, m4, m5, m6, m8, m12, m16, m32;

  int zside_[4288][4], pl_[4288][4], x_[4288][4], y_[4288][4];
};

#endif