![]() |
![]() |
#include <EvFRecordUnpacker.h>
Public Member Functions | |
void | analyze (const edm::Event &e, const edm::EventSetup &c) |
EvFRecordUnpacker (const edm::ParameterSet &) | |
~EvFRecordUnpacker () | |
Private Attributes | |
TH2F * | corre_ |
TFile * | f_ |
TH1F * | l1_rb_delay_ |
edm::InputTag | label_ |
TH1F * | node_usage_ |
Definition at line 15 of file EvFRecordUnpacker.h.
data doxygen doxygen gen CMSSW_4_2_8 src EventFilter Utilities plugins EvFRecordUnpacker cc evf::EvFRecordUnpacker::EvFRecordUnpacker | ( | const edm::ParameterSet & | pset | ) |
Definition at line 13 of file EvFRecordUnpacker.cc.
References newFWLiteAna::bin.
: label_(pset.getParameter<edm::InputTag>("inputTag")) , node_usage_(0) , l1_rb_delay_(0) { node_usage_ = new TH1F("nodes","node usage",1600,0.,1600.); l1_rb_delay_ = new TH1F("l1-rb","l1-rb delay in ms",1000,0.,10000.); corre_ = new TH2F("corre","Correlation",1600,0.,1600.,1000,0.,10000.); for(unsigned int row = 0xa; row <=0xf; row++) for(unsigned int rack = 11; rack <= 18; rack++) for(unsigned int position_in_rack = 1; position_in_rack<=30; position_in_rack++) { unsigned int bin = (row-0xa)*9*30+(rack-11)*30+position_in_rack+1; std::ostringstream ost; ost << std::hex << row << "-" << std::dec << rack << "-" << std::setfill('0') << std::setw(2) << position_in_rack; node_usage_->GetXaxis()->SetBinLabel(bin,ost.str().c_str()); corre_->GetXaxis()->SetBinLabel(bin,ost.str().c_str()); } f_ = new TFile("histos.root","RECREATE"); } EvFRecordUnpacker::~EvFRecordUnpacker()
evf::EvFRecordUnpacker::~EvFRecordUnpacker | ( | ) |
Definition at line 36 of file EvFRecordUnpacker.cc.
References corre_, f_, l1_rb_delay_, and node_usage_.
{ f_->cd(); node_usage_->Write(); l1_rb_delay_->Write(); corre_->Write(); f_->Write(); f_->Close(); delete f_; delete corre_; if(node_usage_ !=0) delete node_usage_; if(l1_rb_delay_!=0) delete l1_rb_delay_; }
void evf::EvFRecordUnpacker::analyze | ( | const edm::Event & | e, |
const edm::EventSetup & | c | ||
) | [virtual] |
Implements edm::EDAnalyzer.
Definition at line 50 of file EvFRecordUnpacker.cc.
References corre_, runTheMatrix::data, edm::Event::eventAuxiliary(), evf::fedinterface::EVFFED_ID, evf::fedinterface::EVFFED_RBIDENT_OFFSET, evf::fedinterface::EVFFED_RBPCIDE_MASK, evf::fedinterface::EVFFED_RBPCIDE_SHIFT, evf::fedinterface::EVFFED_RBWCTIM_OFFSET, edm::Event::getByLabel(), l1_rb_delay_, label_, node_usage_, asciidump::s, edm::Timestamp::value(), and x.
{ edm::Timestamp ts = e.eventAuxiliary().time(); using namespace fedinterface; edm::Handle<FEDRawDataCollection> rawdata; e.getByLabel(label_,rawdata); unsigned int id = fedinterface::EVFFED_ID; const FEDRawData& data = rawdata->FEDData(id); // size_t size=data.size(); unsigned int rbident = *((unsigned int*)(data.data()+EVFFED_RBIDENT_OFFSET)); uint64_t rbtime = *((uint64_t*)(data.data()+EVFFED_RBWCTIM_OFFSET)); unsigned int s = (unsigned int)((rbtime >> 32)-(ts.value() >> 32)); unsigned int us = (unsigned int)((rbtime & 0xffffffff) - (ts.value() & 0xffffffff)); float deltams= s*1000.+((float)us)/1000.; unsigned int nodeid = (rbident >> EVFFED_RBPCIDE_SHIFT) & EVFFED_RBPCIDE_MASK; unsigned int rackid = (nodeid&0xfff00)>>8; unsigned int position_in_rack = nodeid&0x000ff; // std::cout << std::hex << rbident << " node id " << nodeid << " rack " << rackid << " position " << position_in_rack << std::dec << std::endl; unsigned int row = ((rackid & 0xf00) >> 8)-10; unsigned int rackno = (rackid & 0x0ff)-0x11; // std::cout << "row " << row << " rackno " << rackno << std::endl; // std::cout << "BIN " << row*9*30+rackno*30+position_in_rack << std::endl; position_in_rack = position_in_rack%16 + position_in_rack/16*10; float x = (row*9*30+rackno*30+position_in_rack)-0.00001; // std::cout << " X " << x << std::endl; node_usage_->Fill(x,1.); l1_rb_delay_->Fill(deltams,1.); corre_->Fill(x,deltams,1.); } }
TH2F* evf::EvFRecordUnpacker::corre_ [private] |
Definition at line 26 of file EvFRecordUnpacker.h.
Referenced by analyze(), and ~EvFRecordUnpacker().
TFile* evf::EvFRecordUnpacker::f_ [private] |
Definition at line 27 of file EvFRecordUnpacker.h.
Referenced by ~EvFRecordUnpacker().
TH1F* evf::EvFRecordUnpacker::l1_rb_delay_ [private] |
Definition at line 25 of file EvFRecordUnpacker.h.
Referenced by analyze(), and ~EvFRecordUnpacker().
edm::InputTag evf::EvFRecordUnpacker::label_ [private] |
Definition at line 23 of file EvFRecordUnpacker.h.
Referenced by analyze().
TH1F* evf::EvFRecordUnpacker::node_usage_ [private] |
Definition at line 24 of file EvFRecordUnpacker.h.
Referenced by analyze(), and ~EvFRecordUnpacker().