#include <SiPixelDaqInfo.h>
Public Member Functions | |
SiPixelDaqInfo (const edm::ParameterSet &) | |
~SiPixelDaqInfo () | |
Private Member Functions | |
virtual void | analyze (const edm::Event &, const edm::EventSetup &) |
virtual void | beginJob () |
virtual void | beginLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &) |
virtual void | endJob () |
virtual void | endLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &) |
virtual void | endRun (const edm::Run &, const edm::EventSetup &) |
Private Attributes | |
std::string | daqSource_ |
DQMStore * | dbe_ |
std::pair< int, int > | FEDRange_ |
int | FEDs_ [40] |
MonitorElement * | Fraction_ |
MonitorElement * | FractionBarrel_ |
MonitorElement * | FractionEndcap_ |
int | NEvents_ |
int | nFEDsBarrel_ |
int | nFEDsEndcap_ |
int | NumberOfFeds_ |
Definition at line 25 of file SiPixelDaqInfo.h.
SiPixelDaqInfo::SiPixelDaqInfo | ( | const edm::ParameterSet & | ps | ) | [explicit] |
Definition at line 11 of file SiPixelDaqInfo.cc.
References edm::ParameterSet::getUntrackedParameter(), and i.
{ FEDRange_.first = ps.getUntrackedParameter<unsigned int>("MinimumPixelFEDId", 0); FEDRange_.second = ps.getUntrackedParameter<unsigned int>("MaximumPixelFEDId", 39); daqSource_ = ps.getUntrackedParameter<string>("daqSource", "source"); NumberOfFeds_ =FEDRange_.second - FEDRange_.first +1; NEvents_ = 0; for(int i=0; i!=40; i++) FEDs_[i] = 0; }
SiPixelDaqInfo::~SiPixelDaqInfo | ( | ) |
Definition at line 24 of file SiPixelDaqInfo.cc.
{}
void SiPixelDaqInfo::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDAnalyzer.
Definition at line 165 of file SiPixelDaqInfo.cc.
References FEDRawDataCollection::FEDData(), edm::Event::getByLabel(), i, edm::HandleBase::isValid(), and FEDRawData::size().
{ NEvents_++; //cout<<"in SiPixelDaqInfo::analyze now!"<<endl; if(NEvents_>=1 && NEvents_<=100){ // check if any Pixel FED is in readout: edm::Handle<FEDRawDataCollection> rawDataHandle; iEvent.getByLabel(daqSource_, rawDataHandle); if(!rawDataHandle.isValid()){ edm::LogInfo("SiPixelDaqInfo") << daqSource_ << " is empty!"; return; } const FEDRawDataCollection& rawDataCollection = *rawDataHandle; nFEDsBarrel_ = 0; nFEDsEndcap_ = 0; for(int i = 0; i != 40; i++){ if(rawDataCollection.FEDData(i).size() > 208 ) FEDs_[i]++; } } }
void SiPixelDaqInfo::beginJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 147 of file SiPixelDaqInfo.cc.
References DQMStore::bookFloat(), dbe_, cmsCodeRules::cppFunctionSkipper::operator, and DQMStore::setCurrentFolder().
{ dbe_ = 0; dbe_ = Service<DQMStore>().operator->(); dbe_->setCurrentFolder("Pixel/EventInfo"); Fraction_= dbe_->bookFloat("DAQSummary"); dbe_->setCurrentFolder("Pixel/EventInfo/DAQContents"); FractionBarrel_= dbe_->bookFloat("PixelBarrelFraction"); FractionEndcap_= dbe_->bookFloat("PixelEndcapFraction"); }
void SiPixelDaqInfo::beginLuminosityBlock | ( | const edm::LuminosityBlock & | lumiBlock, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
void SiPixelDaqInfo::endJob | ( | void | ) | [private, virtual] |
void SiPixelDaqInfo::endLuminosityBlock | ( | const edm::LuminosityBlock & | lumiBlock, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 29 of file SiPixelDaqInfo.cc.
References edm::EventSetup::find(), edm::eventsetup::heterocontainer::HCTypeTag::findType(), edm::EventSetup::get(), and i.
{ edm::eventsetup::EventSetupRecordKey recordKey(edm::eventsetup::EventSetupRecordKey::TypeTag::findType("RunInfoRcd")); if(0 != iSetup.find( recordKey ) ) { // cout<<"record key found"<<endl; //get fed summary information ESHandle<RunInfo> sumFED; iSetup.get<RunInfoRcd>().get(sumFED); vector<int> FedsInIds= sumFED->m_fed_in; int FedCount=0; int FedCountBarrel=0; int FedCountEndcap=0; //loop on all active feds for(unsigned int fedItr=0;fedItr<FedsInIds.size(); ++fedItr) { int fedID=FedsInIds[fedItr]; //make sure fed id is in allowed range //cout<<fedID<<endl; if(fedID>=FEDRange_.first && fedID<=FEDRange_.second){ ++FedCount; if(fedID>=0 && fedID<=31) ++FedCountBarrel; else if(fedID>=32 && fedID<=39) ++FedCountEndcap; } } //Fill active fed fraction ME if(FedCountBarrel<=32){ FedCountBarrel = 0; FedCountEndcap = 0; FedCount = 0; NumberOfFeds_ = 40; for(int i=0; i!=40; i++){ if(i<=31 && FEDs_[i]>0) FedCountBarrel++; if(i>=32 && FEDs_[i]>0) FedCountEndcap++; if(FEDs_[i]>0) FedCount++; } } if(NumberOfFeds_>0){ //all Pixel: Fraction_->Fill( FedCount/NumberOfFeds_); //Barrel: FractionBarrel_->Fill( FedCountBarrel/32.); //Endcap: FractionEndcap_->Fill( FedCountEndcap/8.); }else{ Fraction_->Fill(-1); FractionBarrel_->Fill(-1); FractionEndcap_->Fill(-1); } }else{ Fraction_->Fill(-1); FractionBarrel_->Fill(-1); FractionEndcap_->Fill(-1); return; } }
void SiPixelDaqInfo::endRun | ( | const edm::Run & | r, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 84 of file SiPixelDaqInfo.cc.
References edm::EventSetup::find(), edm::eventsetup::heterocontainer::HCTypeTag::findType(), edm::EventSetup::get(), and i.
{ edm::eventsetup::EventSetupRecordKey recordKey(edm::eventsetup::EventSetupRecordKey::TypeTag::findType("RunInfoRcd")); if(0 != iSetup.find( recordKey ) ) { // cout<<"record key found"<<endl; //get fed summary information ESHandle<RunInfo> sumFED; iSetup.get<RunInfoRcd>().get(sumFED); vector<int> FedsInIds= sumFED->m_fed_in; int FedCount=0; int FedCountBarrel=0; int FedCountEndcap=0; //loop on all active feds for(unsigned int fedItr=0;fedItr<FedsInIds.size(); ++fedItr) { int fedID=FedsInIds[fedItr]; //make sure fed id is in allowed range //cout<<fedID<<endl; if(fedID>=FEDRange_.first && fedID<=FEDRange_.second){ ++FedCount; if(fedID>=0 && fedID<=31) ++FedCountBarrel; else if(fedID>=32 && fedID<=39) ++FedCountEndcap; } } if(FedCountBarrel>32){ FedCountBarrel = nFEDsBarrel_; FedCountEndcap = nFEDsEndcap_; FedCount = FedCountBarrel + FedCountEndcap; NumberOfFeds_ = 40; } //Fill active fed fraction ME if(FedCountBarrel<=32){ FedCountBarrel = 0; FedCountEndcap = 0; FedCount = 0; NumberOfFeds_ = 40; for(int i=0; i!=40; i++){ if(i<=31 && FEDs_[i]>0) FedCountBarrel++; if(i>=32 && FEDs_[i]>0) FedCountEndcap++; if(FEDs_[i]>0) FedCount++; } } if(NumberOfFeds_>0){ //all Pixel: Fraction_->Fill( FedCount/NumberOfFeds_); //Barrel: FractionBarrel_->Fill( FedCountBarrel/32.); //Endcap: FractionEndcap_->Fill( FedCountEndcap/8.); }else{ Fraction_->Fill(-1); FractionBarrel_->Fill(-1); FractionEndcap_->Fill(-1); } }else{ Fraction_->Fill(-1); FractionBarrel_->Fill(-1); FractionEndcap_->Fill(-1); return; } }
std::string SiPixelDaqInfo::daqSource_ [private] |
Definition at line 52 of file SiPixelDaqInfo.h.
DQMStore* SiPixelDaqInfo::dbe_ [private] |
Definition at line 39 of file SiPixelDaqInfo.h.
std::pair<int,int> SiPixelDaqInfo::FEDRange_ [private] |
Definition at line 45 of file SiPixelDaqInfo.h.
int SiPixelDaqInfo::FEDs_[40] [private] |
Definition at line 53 of file SiPixelDaqInfo.h.
MonitorElement* SiPixelDaqInfo::Fraction_ [private] |
Definition at line 41 of file SiPixelDaqInfo.h.
MonitorElement* SiPixelDaqInfo::FractionBarrel_ [private] |
Definition at line 42 of file SiPixelDaqInfo.h.
MonitorElement* SiPixelDaqInfo::FractionEndcap_ [private] |
Definition at line 43 of file SiPixelDaqInfo.h.
int SiPixelDaqInfo::NEvents_ [private] |
Definition at line 49 of file SiPixelDaqInfo.h.
int SiPixelDaqInfo::nFEDsBarrel_ [private] |
Definition at line 50 of file SiPixelDaqInfo.h.
int SiPixelDaqInfo::nFEDsEndcap_ [private] |
Definition at line 51 of file SiPixelDaqInfo.h.
int SiPixelDaqInfo::NumberOfFeds_ [private] |
Definition at line 47 of file SiPixelDaqInfo.h.