CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EcalHexDisplay.cc
Go to the documentation of this file.
1 
8 
10  verbosity_ (ps.getUntrackedParameter<int>("verbosity",1)),
11  beg_fed_id_ (ps.getUntrackedParameter<int>("beg_fed_id",0)),
12  end_fed_id_ (ps.getUntrackedParameter<int>("end_fed_id",654)),
13  first_event_ (ps.getUntrackedParameter<int>("first_event",1)),
14  last_event_ (ps.getUntrackedParameter<int>("last_event",9999999)),
15  event_ (0),
16  writeDcc_ (ps.getUntrackedParameter<bool>("writeDCC",false)),
17  filename_ (ps.getUntrackedParameter<std::string>("filename","dump.bin")),
18  fedRawDataCollectionTag_(ps.getParameter<edm::InputTag>("fedRawDataCollectionTag"))
19 {
20 }
21 
23 
24  event_++;
25  if (event_ < first_event_ || last_event_ < event_) return;
26 
27 
30 
31  std::ofstream dumpFile (filename_.c_str(),std::ios::app );
32 
33  for (int id= 0; id<=FEDNumbering::MAXFEDID; ++id){
34 
35  if (id < beg_fed_id_ || end_fed_id_ < id) continue;
36 
37  const FEDRawData& data = rawdata->FEDData(id);
38 
39  if (data.size()>4){
40 
41  std::cout << "\n\n\n[EcalHexDumperModule] Event: "
42  << std::dec << event_
43  << " fed_id: " << id
44  << " size_fed: " << data.size() << "\n"<< std::endl;
45 
46  if ( ( data.size() %16 ) !=0)
47  {
48  std::cout << "***********************************************" << std::endl;
49  std::cout<< "Fed size in bits not multiple of 64, strange." << std::endl;
50  std::cout << "***********************************************" << std::endl;
51  }
52 
53 
54  int length = data.size();
55  const unsigned long * pData = ( reinterpret_cast<unsigned long*>(const_cast<unsigned char*> ( data.data())));
56  std::cout << std::setfill('0');
57  for (int words=0; words < length/4; (words+=2) )
58  {
59  std::cout << std::setw(8) << std::hex << pData[words+1] << " ";
60  std::cout << std::setw(8) << std::hex << pData[words] << std::endl;
61  }
62 
63  std::cout << "\n";
64 
65 
66  if (beg_fed_id_ <= id && id <= end_fed_id_ && writeDcc_)
67  {
68  dumpFile.write( reinterpret_cast <const char *> (pData), length);
69  }
70  }
71 
72  }
73  dumpFile.close();
74  if (! writeDcc_) remove(filename_.c_str());
75 }
76 
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
edm::InputTag fedRawDataCollectionTag_
void analyze(const edm::Event &e, const edm::EventSetup &c)
EcalHexDisplay(const edm::ParameterSet &ps)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:420
void event_()
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:28
tuple cout
Definition: gather_cfg.py:121
dictionary rawdata
Definition: lumiPlot.py:393
volatile std::atomic< bool > shutdown_flag false
std::string filename_