44 verbose_(ps.getUntrackedParameter < bool > (
"verbose",
false)),
45 l1GtDataSource_( ps.getParameter< edm::
InputTag >(
"l1GtData")),
46 denomIsTech_(ps.getUntrackedParameter <bool> (
"denomIsTech",
true)),
47 denomBit_(ps.getUntrackedParameter <unsigned int> (
"denomBit", 40)),
48 tfIsTech_(ps.getUntrackedParameter <bool> (
"tfIsTech",
true)),
49 tfBit_(ps.getUntrackedParameter <unsigned int> (
"tfBit", 41)),
50 algoSelected_(ps.getUntrackedParameter<std::vector<unsigned int> >(
"algoMonitorBits", std::vector<unsigned int>())),
51 techSelected_(ps.getUntrackedParameter<std::vector<unsigned int> >(
"techMonitorBits", std::vector<unsigned int>())),
52 folderName_( ps.getUntrackedParameter< std::
string>(
"dqmFolder",
53 std::
string(
"L1T/L1Scalers_EvF"))),
67 fedStart_(ps.getUntrackedParameter<unsigned int>(
"firstFED", 0)),
68 fedStop_(ps.getUntrackedParameter<unsigned int>(
"lastFED", 931)),
71 fedRawCollection_(ps.getParameter<edm::
InputTag>(
"fedRawData")),
72 maskedList_(ps.getUntrackedParameter<std::vector<int> >(
"maskedChannels", std::vector<int>())),
73 HcalRecHitCollection_(ps.getParameter<edm::
InputTag>(
"HFRecHitCollection"))
75 LogDebug(
"Status") <<
"constructor" ;
83 LogDebug(
"Status") <<
"L1Scalers::beginJob()...";
105 "Bits vs Bunch Number",
106 3600, -0.5, 3599.5, 64, -0.5, 63.5);
115 bxNum_ =
dbe_->book1D(
"bxNum",
"Bunch number from GTFE",
130 std::stringstream sdenom;
132 else sdenom <<
"algo" ;
140 std::stringstream
ss;
142 algoBxDiff_.push_back(
dbe_->book1D(
"BX_diff_algo"+ ss.str(),
"BX_diff_algo"+ ss.str(),9,-4,5));
147 std::stringstream
ss;
149 techBxDiff_.push_back(
dbe_->book1D(
"BX_diff_tech"+ ss.str(),
"BX_diff_tech"+ ss.str(),9,-4,5));
155 std::stringstream ss1;
157 dtBxDiff_ =
dbe_->book1D(
"BX_diff_DT" + ss1.str(),
"BX_diff_DT" + ss1.str(),9,-4,5);
159 cscBxDiff_ =
dbe_->book1D(
"BX_diff_CSC" + ss1.str(),
"BX_diff_CSC" + ss1.str(),9,-4,5);
161 rpcbBxDiff_ =
dbe_->book1D(
"BX_diff_RPCb" + ss1.str(),
"BX_diff_RPCb" + ss1.str(),9,-4,5);
163 rpcfBxDiff_ =
dbe_->book1D(
"BX_diff_RPCf" + ss1.str(),
"BX_diff_RPCf" + ss1.str(),9,-4,5);
187 LogDebug(
"Status") <<
"L1Scalers::analyze event " <<
nev_ ;
196 LogDebug(
"Product") <<
"can't find L1GlobalTriggerReadoutRecord "
206 int gtfeBx = gtfeWord.
bxNr();
210 bool tfBitGood =
false;
214 for(
int iebx=0; iebx<=4; iebx++) {
217 DecisionWord gtDecisionWord = gtRecord->decisionWord(iebx-2);
219 if ( ! gtDecisionWord.empty() ) {
221 for ( uint
i = 0;
i < gtDecisionWord.size(); ++
i ) {
222 if ( gtDecisionWord[
i] ) {
229 for ( uint
i = 0;
i < gtDecisionWord.size(); ++
i ) {
230 if ( gtDecisionWord[
i] ) {
233 for ( uint
j = i + 1;
j < gtDecisionWord.size(); ++
j ) {
234 if ( gtDecisionWord[
j] ) {
248 if ( ! tw.empty() ) {
250 for ( uint
i = 0;
i < tw.size(); ++
i ) {
257 for ( uint
i = 0;
i < tw.size(); ++
i ) {
268 if( tw[
tfBit_] ) tfBitGood =
true;
288 if (!gmtCollection.
isValid()) {
289 edm::LogInfo(
"DataNotFound") <<
"can't find L1MuGMTReadoutCollection with label "
294 int bx1st[4] = {9, 9, 9, 9};
298 for(
int iebx=0; iebx<=4; iebx++) {
300 DecisionWord gtDecisionWord = gtRecord->decisionWord(iebx-2);
302 bool denomBitGood =
false;
306 if ( ! tw.empty() ) {
314 if ( ! gtDecisionWord.empty() ) {
325 if ( ! tw.empty() ) {
334 if(!gtDecisionWord.empty()){
353 std::vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->
getRecords();
355 std::vector<L1MuGMTReadoutRecord>::const_iterator RRItr;
357 for( RRItr = gmt_records.begin(); RRItr != gmt_records.end(); RRItr++ ) {
358 std::vector<L1MuRegionalCand> INPCands[4] = {
359 RRItr->getDTBXCands(),
360 RRItr->getBrlRPCCands(),
361 RRItr->getCSCCands(),
362 RRItr->getFwdRPCCands()
364 std::vector<L1MuRegionalCand>::const_iterator INPItr;
365 int BxInEvent = RRItr->getBxInEvent();
368 for(
int i=0;
i<4;
i++) {
369 for( INPItr = INPCands[
i].
begin(); INPItr != INPCands[
i].end(); ++INPItr ) {
370 if(!INPItr->empty()) {
371 if(bx1st[
i]==9) bx1st[
i]=BxInEvent+2;
LuminosityBlockID id() const
MonitorElement * l1scalers_
edm::InputTag l1GtDataSource_
MonitorElement * rpcfBxDiffLumi_
L1Scalers(const edm::ParameterSet &ps)
Constructors.
edm::LuminosityBlockNumber_t luminosityBlock() const
void endRun(const edm::Run &run, const edm::EventSetup &c)
EndRun.
MonitorElement * rpcbBxDiffLumi_
MonitorElement * dtBxDiffLumi_
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
std::vector< int > earliestTech_
std::vector< MonitorElement * > algoBxDiff_
void analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * cscBxDiff_
MonitorElement * l1techScalers_
std::vector< bool > DecisionWord
typedefs
MonitorElement * l1scalersBx_
MonitorElement * l1TtCounter_
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
std::vector< MonitorElement * > techBxDiff_
std::vector< MonitorElement * > techBxDiffLumi_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::vector< unsigned int > algoSelected_
const cms_uint16_t bxNr() const
get/set bunch cross number as counted in the GTFE board
MonitorElement * l1Correlations_
std::vector< unsigned int > techSelected_
MonitorElement * rpcbBxDiff_
MonitorElement * dtBxDiff_
T const * product() const
unsigned int rateAlgoCounter_
std::vector< int > earliestAlgo_
MonitorElement * nLumiBlock_
void beginJob(void)
BeginJob.
LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * l1techScalersBx_
std::vector< MonitorElement * > algoBxDiffLumi_
std::vector< L1MuGMTReadoutRecord > const & getRecords() const
MonitorElement * l1AlgoCounter_
volatile std::atomic< bool > shutdown_flag false
MonitorElement * rpcfBxDiff_
void beginRun(const edm::Run &run, const edm::EventSetup &c)
BeginRun.
unsigned int rateTtCounter_
MonitorElement * cscBxDiffLumi_