13 monitorDir_(params.getUntrackedParameter<
std::
string> (
"monitorDir",
"")),
14 verbose_(params.getUntrackedParameter<
bool>(
"verbose",
false)),
15 gtUtil_(new
l1t::L1TGlobalUtil(params, consumesCollector(), *this, params.getParameter<
edm::InputTag>(
"l1tStage2uGtSource"), params.getParameter<
edm::InputTag>(
"l1tStage2uGtSource"))),
17 algoBitFirstBxInTrain_(-1),
18 algoBitLastBxInTrain_(-1),
20 algoNameFirstBxInTrain_(params.getUntrackedParameter<
std::
string>(
"firstBXInTrainAlgo",
"")),
21 algoNameLastBxInTrain_(params.getUntrackedParameter<
std::
string>(
"lastBXInTrainAlgo",
"")),
22 algoNameIsoBx_(params.getUntrackedParameter<
std::
string>(
"isoBXAlgo",
"")),
23 unprescaledAlgoShortList_(params.getUntrackedParameter<
std::vector<
std::
string>> (
"unprescaledAlgoShortList")),
24 prescaledAlgoShortList_(params.getUntrackedParameter<
std::vector<
std::
string>> (
"prescaledAlgoShortList"))
40 gtUtil_->retrieveL1Setup(evtSetup);
55 edm::LogWarning(
"L1TStage2uGTTiming") <<
"Algo \"" <<
algoNameIsoBx_ <<
"\" not found in the trigger menu " <<
gtUtil_->gtTriggerMenuName() <<
". Could not retrieve algo bit number.";
81 const auto numAlgs_d =
static_cast<double>(
numAlgs_);
87 first_collision_in_train_minus2_ = ibooker.
book2D(
"first_bunch_in_train_minus2",
"uGT: Algorithm Trigger Bits (first bunch in train minus 2) vs. BX Number In Event;Bunch Crossing Number In Event;Algorithm Trigger Bits", 5, -2.5, 2.5,
numAlgs_, -0.5, numAlgs_d-0.5);
88 den_first_collision_in_train_minus2_ = ibooker.
book2D(
"den_first_bunch_in_train_minus2",
"uGT: Algorithm Trigger Bits (all entries for each trigget bit first bunch in train minus 2) vs. BX Number In Event;Bunch Crossing Number In Event;Algorithm Trigger Bits", 5, -2.5, 2.5,
numAlgs_, -0.5, numAlgs_d-0.5);
90 first_collision_in_train_minus1_ = ibooker.
book2D(
"first_bunch_in_train_minus1",
"uGT: Algorithm Trigger Bits (first bunch in train minus 1) vs. BX Number In Event;Bunch Crossing Number In Event;Algorithm Trigger Bits", 5, -2.5, 2.5,
numAlgs_, -0.5, numAlgs_d-0.5);
91 den_first_collision_in_train_minus1_ = ibooker.
book2D(
"den_first_bunch_in_train_minus1",
"uGT: Algorithm Trigger Bits (all entries for each trigget bit first bunch in train minus 1) vs. BX Number In Event;Bunch Crossing Number In Event;Algorithm Trigger Bits", 5, -2.5, 2.5,
numAlgs_, -0.5, numAlgs_d-0.5);
93 first_collision_in_train_ = ibooker.
book2D(
"first_bunch_in_train",
"uGT: Algorithm Trigger Bits (first bunch in train) vs. BX Number In Event;Bunch Crossing Number In Event;Algorithm Trigger Bits (first bunch in train)", 5, -2.5, 2.5,
numAlgs_, -0.5, numAlgs_d-0.5);
94 den_first_collision_in_train_ = ibooker.
book2D(
"den_first_bunch_in_train",
"uGT: Algorithm Trigger Bits (all entries for each trigget bit first bunch in train) vs. BX Number In Event;Bunch Crossing Number In Event;Algorithm Trigger Bits (first bunch in train)", 5, -2.5, 2.5,
numAlgs_, -0.5, numAlgs_d-0.5);
96 last_collision_in_train_ = ibooker.
book2D(
"last_bunch_in_train",
"uGT: Algorithm Trigger Bits (last bunch in train) vs. BX Number In Event;Bunch Crossing Number In Event;Algorithm Trigger Bits (last bunch in train)", 5, -2.5, 2.5,
numAlgs_, -0.5, numAlgs_d-0.5);
97 den_last_collision_in_train_ = ibooker.
book2D(
"den_last_bunch_in_train",
"uGT: Algorithm Trigger Bits (all entries for each trigget bit last bunch in train) vs. BX Number In Event;Bunch Crossing Number In Event;Algorithm Trigger Bits (last bunch in train)", 5, -2.5, 2.5,
numAlgs_, -0.5, numAlgs_d-0.5);
99 isolated_collision_ = ibooker.
book2D(
"isolated_bunch",
"uGT: Algorithm Trigger Bits vs. BX Number In Event;Bunch Crossing Number In Event;Algorithm Trigger Bits", 5, -2.5, 2.5,
numAlgs_, -0.5, numAlgs_d-0.5);
100 den_isolated_collision_ = ibooker.
book2D(
"den_isolated_bunch_in_train",
"uGT: Algorithm Trigger Bits (all entries for each trigget bit isolated bunch in train) vs. BX Number In Event;Bunch Crossing Number In Event;Algorithm Trigger Bits (isolated bunch in train)", 5, -2.5, 2.5,
numAlgs_, -0.5, numAlgs_d-0.5);
169 edm::LogInfo(
"L1TStage2uGTTiming") <<
"L1TStage2uGTTiming DQM: Analyzing.." << std::endl;
177 edm::LogInfo(
"L1TStage2uGTTiming") <<
"Cannot find uGT readout record.";
184 int bxShiftFirst = -999;
185 int bxShiftLast = -999;
186 int bxShiftIso = -999;
247 if (bxShiftFirst > -999) {
252 for (
int ibx = minBx; ibx <= maxBx; ++ibx) {
253 for (
auto itr2 = uGtAlgs->
begin(ibx); itr2 != uGtAlgs->
end(ibx); ++itr2) {
254 auto algoBits = itr2->getAlgoDecisionInitial();
256 if (algoBits.at(
algo)) {
258 for (
int ibx2 = minBx; ibx2 <= maxBx; ++ibx2) {
266 for (
int ibx2 = minBx; ibx2 <= maxBx; ++ibx2) {
274 for (
int ibx2 = minBx; ibx2 <= maxBx; ++ibx2) {
285 if (bxShiftLast > -999) {
290 for (
int ibx = minBx; ibx <= maxBx; ++ibx) {
291 for (
auto itr2 = uGtAlgs->
begin(ibx); itr2 != uGtAlgs->
end(ibx); ++itr2) {
292 auto algoBits = itr2->getAlgoDecisionInitial();
294 if (algoBits.at(
algo)) {
296 for (
int ibx2 = minBx; ibx2 <= maxBx; ++ibx2) {
304 for (
int ibx2 = minBx; ibx2 <= maxBx; ++ibx2) {
312 for (
int ibx2 = minBx; ibx2 <= maxBx; ++ibx2) {
323 if (bxShiftIso > -999) {
328 for (
int ibx = minBx; ibx <= maxBx; ++ibx) {
329 for (
auto itr2 = uGtAlgs->
begin(ibx); itr2 != uGtAlgs->
end(ibx); ++itr2) {
330 auto algoBits = itr2->getAlgoDecisionInitial();
332 if (algoBits.at(
algo)) {
334 for (
int ibx2 = minBx; ibx2 <= maxBx; ++ibx2) {
342 for (
int ibx2 = minBx; ibx2 <= maxBx; ++ibx2) {
350 for (
int ibx2 = minBx; ibx2 <= maxBx; ++ibx2) {
362 for(
auto itr = uGtAlgs->
begin(2); itr != uGtAlgs->
end(2); ++itr) {
365 for(
auto itr2 = uGtAlgs->
begin(ibx); itr2 != uGtAlgs->
end(ibx); ++itr2) {
366 auto algoBits = itr2->getAlgoDecisionInitial();
368 if(algoBits.at(
algo)) {
383 for(
auto itr = uGtAlgs->
begin(1); itr != uGtAlgs->
end(1); ++itr) {
386 for(
auto itr2 = uGtAlgs->
begin(ibx); itr2 != uGtAlgs->
end(ibx); ++itr2) {
387 auto algoBits = itr2->getAlgoDecisionInitial();
389 if(algoBits.at(
algo)) {
MonitorElement * prescaled_algo_first_collision_in_train_
const_iterator end(int bx) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * den_unprescaled_algo_first_collision_in_train_
std::vector< std::pair< std::string, int > > prescaledAlgoBitName_
edm::EDGetTokenT< GlobalAlgBlkBxCollection > l1tStage2uGtSource_
MonitorElement * den_prescaled_algo_first_collision_in_train_
MonitorElement * den_prescaled_algo_last_collision_in_train_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * unprescaled_algo_isolated_collision_
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
MonitorElement * isolated_collision_
MonitorElement * den_first_collision_in_train_
MonitorElement * den_unprescaled_algo_last_collision_in_train_
std::vector< std::pair< std::string, int > > unprescaledAlgoBitName_
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * den_first_collision_in_train_minus2_
MonitorElement * last_collision_in_train_
MonitorElement * first_collision_in_train_minus2_
const std::string algoNameLastBxInTrain_
unsigned int useAlgoDecision_
void setCurrentFolder(std::string const &fullpath)
MonitorElement * unprescaled_algo_last_collision_in_train_
int algoBitLastBxInTrain_
std::shared_ptr< l1t::L1TGlobalUtil > gtUtil_
MonitorElement * prescaled_algo_isolated_collision_
MonitorElement * first_collision_in_train_minus1_
MonitorElement * den_last_collision_in_train_
int algoBitFirstBxInTrain_
MonitorElement * den_first_collision_in_train_minus1_
std::vector< std::string > unprescaledAlgoShortList_
std::vector< std::string > prescaledAlgoShortList_
MonitorElement * book2D(Args &&...args)
~L1TStage2uGTTiming() override
MonitorElement * den_prescaled_algo_isolated_collision_
const std::string algoNameIsoBx_
MonitorElement * den_isolated_collision_
const std::string algoNameFirstBxInTrain_
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override
MonitorElement * den_unprescaled_algo_isolated_collision_
MonitorElement * prescaled_algo_last_collision_in_train_
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * unprescaled_algo_first_collision_in_train_
const_iterator begin(int bx) const
L1TStage2uGTTiming(const edm::ParameterSet &ps)
MonitorElement * first_collision_in_train_
std::vector< T >::const_iterator const_iterator