#include <EcalBxOrbitNumberGrapher.h>
Public Member Functions | |
EcalBxOrbitNumberGrapher (const edm::ParameterSet &) | |
~EcalBxOrbitNumberGrapher () | |
Private Member Functions | |
virtual void | analyze (const edm::Event &, const edm::EventSetup &) |
virtual void | beginJob () |
virtual void | endJob () |
void | initHists (int) |
Private Attributes | |
TH1F * | bxnumberPlot_ |
std::string | digiProducer_ |
TFile * | file |
std::string | fileName_ |
TH1F * | numberofOrbitDiffPlot_ |
TH1F * | orbitErrorBxDiffPlot_ |
TH1F * | orbitErrorPlot_ |
int | runNum_ |
Description: <one line="" class="" summary>="">
Implementation: <Notes on="" implementation>="">
Definition at line 51 of file EcalBxOrbitNumberGrapher.h.
EcalBxOrbitNumberGrapher::EcalBxOrbitNumberGrapher | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 37 of file EcalBxOrbitNumberGrapher.cc.
: digiProducer_(iConfig.getParameter<std::string>("RawDigis")), runNum_(-1), fileName_ (iConfig.getUntrackedParameter<std::string>("fileName", std::string("ecalURechHitHists"))) { }
EcalBxOrbitNumberGrapher::~EcalBxOrbitNumberGrapher | ( | ) |
Definition at line 47 of file EcalBxOrbitNumberGrapher.cc.
{ }
void EcalBxOrbitNumberGrapher::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDAnalyzer.
Definition at line 58 of file EcalBxOrbitNumberGrapher.cc.
References bxnumberPlot_, gather_cfg::cout, digiProducer_, edm::Event::getByLabel(), edm::EventBase::id(), numberofOrbitDiffPlot_, orbitErrorBxDiffPlot_, orbitErrorPlot_, edm::EventID::run(), and runNum_.
{ using namespace edm; using namespace cms; //int ievt = iEvent.id().event(); int orbit = -100; int bx = -100; int numorbiterrors = 0; bool orbiterror = false; edm::Handle<EcalRawDataCollection> DCCHeaders; iEvent.getByLabel(digiProducer_, DCCHeaders); if (!DCCHeaders.isValid()) { edm::LogError("BxOrbitNumber") << "can't get the product for EcalRawDataCollection"; } //-----------------BX STuff here for ( EcalRawDataCollection::const_iterator headerItr= DCCHeaders->begin();headerItr != DCCHeaders->end(); ++headerItr ) { EcalDCCHeaderBlock::EcalDCCEventSettings settings = headerItr->getEventSettings(); int myorbit = headerItr->getOrbit(); int mybx = headerItr->getBX(); if ( orbit == -100 ) { orbit = myorbit; } else if (orbit != myorbit) { std::cout << " NOOOO This header has a conflicting orbit OTHER " << orbit << " new " << myorbit << std::endl; orbiterror = true; numorbiterrors++; orbitErrorBxDiffPlot_->Fill(myorbit - orbit); } if ( bx == -100 ) { bx = mybx; } else if (bx != mybx) { std::cout << " NOOOO This header has a conflicting bx OTHER " << bx << " new " << mybx << std::endl; } //LogDebug("EcalTimingCosmic") << " Lambda " << lambda; //hmm... this isn't good, I should keep a record of the wavelength in the headers as an inactive SM might have a different wavelength for this field and make this not go through. } if ( (bx != -100) & ( orbit != -100) ) { std::cout << " Interesting event Orbit " << orbit << " BX " << bx << std::endl; bxnumberPlot_->Fill(bx); if (orbiterror) { orbitErrorPlot_->Fill(bx); } } numberofOrbitDiffPlot_->Fill(numorbiterrors); if(runNum_==-1) { runNum_ = iEvent.id().run(); } }
void EcalBxOrbitNumberGrapher::beginJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 133 of file EcalBxOrbitNumberGrapher.cc.
References bxnumberPlot_, numberofOrbitDiffPlot_, orbitErrorBxDiffPlot_, and orbitErrorPlot_.
{ bxnumberPlot_ = new TH1F("bxnumber", "BX number of interexting events",3600, 0., 3600.); orbitErrorPlot_ = new TH1F("bxOfOrbitDiffs", "BX number of interexting events with orbit changes",3600, 0., 3600.); orbitErrorBxDiffPlot_ = new TH1F("orbitErrorDiffPlot","Orbit Difference of those HEADERS that have a difference",20,-10.,10.); numberofOrbitDiffPlot_ = new TH1F("numberOfOrbitDiffsPlot","Number of Orbit Differences",54,0., 54.); }
void EcalBxOrbitNumberGrapher::endJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 143 of file EcalBxOrbitNumberGrapher.cc.
References bxnumberPlot_, fileName_, numberofOrbitDiffPlot_, orbitErrorBxDiffPlot_, and orbitErrorPlot_.
{ using namespace std; fileName_ += ".bx.root"; TFile root_file_(fileName_.c_str() , "RECREATE"); bxnumberPlot_->Write(); orbitErrorPlot_->Write(); numberofOrbitDiffPlot_->Write(); orbitErrorBxDiffPlot_->Write(); root_file_.Close(); }
void EcalBxOrbitNumberGrapher::initHists | ( | int | FED | ) | [private] |
Definition at line 125 of file EcalBxOrbitNumberGrapher.cc.
{ }
TH1F* EcalBxOrbitNumberGrapher::bxnumberPlot_ [private] |
Definition at line 70 of file EcalBxOrbitNumberGrapher.h.
Referenced by analyze(), beginJob(), and endJob().
std::string EcalBxOrbitNumberGrapher::digiProducer_ [private] |
Definition at line 66 of file EcalBxOrbitNumberGrapher.h.
Referenced by analyze().
TFile* EcalBxOrbitNumberGrapher::file [private] |
Definition at line 75 of file EcalBxOrbitNumberGrapher.h.
std::string EcalBxOrbitNumberGrapher::fileName_ [private] |
Definition at line 68 of file EcalBxOrbitNumberGrapher.h.
Referenced by endJob().
TH1F* EcalBxOrbitNumberGrapher::numberofOrbitDiffPlot_ [private] |
Definition at line 73 of file EcalBxOrbitNumberGrapher.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* EcalBxOrbitNumberGrapher::orbitErrorBxDiffPlot_ [private] |
Definition at line 72 of file EcalBxOrbitNumberGrapher.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* EcalBxOrbitNumberGrapher::orbitErrorPlot_ [private] |
Definition at line 71 of file EcalBxOrbitNumberGrapher.h.
Referenced by analyze(), beginJob(), and endJob().
int EcalBxOrbitNumberGrapher::runNum_ [private] |
Definition at line 67 of file EcalBxOrbitNumberGrapher.h.
Referenced by analyze().