13 monitorDir_(ps.getUntrackedParameter<
std::
string>(
"monitorDir")) {}
22 iBooker.
book2D(
"lct_cscshower_data_nom_summary_denom",
"Data LCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
24 "lct_cscshower_data_nom_summary_num",
"Data LCT Nominal Shower Emul Matched", 36, 1, 37, 18, 0, 18);
26 iBooker.
book2D(
"alct_cscshower_data_nom_summary_denom",
"Data ALCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
28 "alct_cscshower_data_nom_summary_num",
"Data ALCT Nominal Shower Emul Matched", 36, 1, 37, 18, 0, 18);
30 iBooker.
book2D(
"clct_cscshower_data_nom_summary_denom",
"Data CLCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
32 "clct_cscshower_data_nom_summary_num",
"Data CLCT Nominal Shower Emul Matched", 36, 1, 37, 18, 0, 18);
35 iBooker.
book2D(
"lct_cscshower_emul_nom_summary_denom",
"Emul LCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
37 "lct_cscshower_emul_nom_summary_num",
"Emul LCT Nominal Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
39 iBooker.
book2D(
"alct_cscshower_emul_nom_summary_denom",
"Emul ALCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
41 "alct_cscshower_emul_nom_summary_num",
"Emul ALCT Nominal Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
43 iBooker.
book2D(
"clct_cscshower_emul_nom_summary_denom",
"Emul CLCT Nominal Shower All", 36, 1, 37, 18, 0, 18);
45 "clct_cscshower_emul_nom_summary_num",
"Emul CLCT Nominal Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
48 iBooker.
book2D(
"lct_cscshower_data_tight_summary_denom",
"Data LCT Tight Shower All", 36, 1, 37, 18, 0, 18);
50 "lct_cscshower_data_tight_summary_num",
"Data LCT Tight Shower Emul Matched", 36, 1, 37, 18, 0, 18);
52 iBooker.
book2D(
"alct_cscshower_data_tight_summary_denom",
"Data ALCT Tight Shower All", 36, 1, 37, 18, 0, 18);
54 "alct_cscshower_data_tight_summary_num",
"Data ALCT Tight Shower Emul Matched", 36, 1, 37, 18, 0, 18);
56 iBooker.
book2D(
"clct_cscshower_data_tight_summary_denom",
"Data CLCT Tight Shower All", 36, 1, 37, 18, 0, 18);
58 "clct_cscshower_data_tight_summary_num",
"Data CLCT Tight Shower Emul Matched", 36, 1, 37, 18, 0, 18);
61 iBooker.
book2D(
"lct_cscshower_emul_tight_summary_denom",
"Emul LCT Tight Shower All", 36, 1, 37, 18, 0, 18);
63 "lct_cscshower_emul_tight_summary_num",
"Emul LCT Tight Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
65 iBooker.
book2D(
"alct_cscshower_emul_tight_summary_denom",
"Emul ALCT Tight Shower All", 36, 1, 37, 18, 0, 18);
67 "alct_cscshower_emul_tight_summary_num",
"Emul ALCT Tight Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
69 iBooker.
book2D(
"clct_cscshower_emul_tight_summary_denom",
"Emul CLCT Tight Shower All", 36, 1, 37, 18, 0, 18);
71 "clct_cscshower_emul_tight_summary_num",
"Emul CLCT Tight Shower Not Matched to Data", 36, 1, 37, 18, 0, 18);
131 const std::array<std::string, 9> suffix_label{{
"4/2",
"4/1",
"3/2",
"3/1",
" 2/2",
"2/1",
"1/3",
"1/2",
"1/1"}};
134 for (
int ybin = 1; ybin <= 9; ++ybin) {
209 const std::map<std::pair<int, int>,
int> histIndexCSC = {{{1, 1}, 8},
230 for (
int endc = min_endcap; endc <= max_endcap; endc++) {
232 for (
int stat = min_station;
stat <= max_station;
stat++) {
233 int numsubs = ((
stat == 1) ? max_subsector : 1);
235 for (
int sect = min_sector; sect <= max_sector; sect++) {
236 for (
int subs = min_subsector; subs <= numsubs; subs++) {
238 for (
int cham = min_chamber;
cham <= max_chamber;
cham++) {
250 int sr = histIndexCSC.at({
stat,
ring});
253 bool chamber20 = (sr == 1
or sr == 3
or sr == 5
or sr == 12
or sr == 14
or sr == 16);
256 auto range_dataALCT = dataALCTshs->
get(detid);
257 auto range_emulALCT = emulALCTshs->
get(detid);
259 for (
auto dalct = range_dataALCT.first; dalct != range_dataALCT.second; dalct++) {
260 if (dalct->isValid() and dalct->isNominalInTime()) {
261 if (dalct->isTightInTime()) {
274 for (
auto ealct = range_emulALCT.first; ealct != range_emulALCT.second; ealct++) {
276 if (dalct->isTightInTime()) {
293 for (
auto ealct = range_emulALCT.first; ealct != range_emulALCT.second; ealct++) {
295 if (ealct->isValid() and ealct->isNominalInTime()) {
296 if (ealct->isTightInTime()) {
309 for (
auto dalct = range_dataALCT.first; dalct != range_dataALCT.second; dalct++) {
316 if (ealct->isTightInTime()) {
333 auto range_dataCLCT = dataCLCTshs->
get(detid);
334 auto range_emulCLCT = emulCLCTshs->
get(detid);
336 for (
auto dclct = range_dataCLCT.first; dclct != range_dataCLCT.second; dclct++) {
337 if (dclct->isValid() and dclct->isNominalInTime()) {
338 if (dclct->isTightInTime()) {
351 for (
auto eclct = range_emulCLCT.first; eclct != range_emulCLCT.second; eclct++) {
353 if (dclct->isTightInTime()) {
370 for (
auto eclct = range_emulCLCT.first; eclct != range_emulCLCT.second; eclct++) {
372 if (eclct->isValid() and eclct->isNominalInTime()) {
373 if (eclct->isTightInTime()) {
386 for (
auto dclct = range_dataCLCT.first; dclct != range_dataCLCT.second; dclct++) {
393 if (eclct->isTightInTime()) {
410 auto range_dataLCT = dataLCTshs->
get(detid);
411 auto range_emulLCT = emulLCTshs->
get(detid);
413 for (
auto dlct = range_dataLCT.first; dlct != range_dataLCT.second; dlct++) {
414 if (dlct->isValid() and dlct->isNominalInTime()) {
415 if (dlct->isTightInTime()) {
428 for (
auto elct = range_emulLCT.first; elct != range_emulLCT.second; elct++) {
430 if (dlct->isTightInTime()) {
447 for (
auto elct = range_emulLCT.first; elct != range_emulLCT.second; elct++) {
449 if (elct->isValid() and elct->isNominalInTime()) {
450 if (elct->isTightInTime()) {
463 for (
auto dlct = range_dataLCT.first; dlct != range_dataLCT.second; dlct++) {
470 if (elct->isTightInTime()) {
493 bool returnValue =
false;
MonitorElement * lctShowerEmulNomSummary_num_
MonitorElement * lctShowerEmulNomSummary_denom_
MonitorElement * alctShowerDataNomSummary_num_
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * clctShowerDataNomSummary_num_
MonitorElement * clctShowerDataTightSummary_denom_
edm::EDGetTokenT< CSCShowerDigiCollection > dataLCTShower_token_
virtual void setOption(const char *option)
static int maxTriggerCscId()
static int maxTriggerSectorId()
edm::EDGetTokenT< CSCShowerDigiCollection > dataCLCTShower_token_
edm::EDGetTokenT< CSCShowerDigiCollection > emulCLCTShower_token_
uint16_t bitsOutOfTime() const
void analyze(const edm::Event &, const edm::EventSetup &) override
static int maxStationId()
static int minTriggerSectorId()
static int ringFromTriggerLabels(int station, int triggerCSCID)
MonitorElement * lctShowerDataTightSummary_num_
MonitorElement * lctShowerEmulTightSummary_num_
L1TdeCSCTPGShower(const edm::ParameterSet &ps)
static int minStationId()
void bookHistograms(DQMStore::IBooker &, const edm::Run &, const edm::EventSetup &) override
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
MonitorElement * alctShowerEmulNomSummary_denom_
MonitorElement * alctShowerDataTightSummary_denom_
Range get(const IndexType &index) const
return the digis for a given DetUnit
bool isMatched(TrackingRecHit const &hit)
MonitorElement * lctShowerEmulTightSummary_denom_
MonitorElement * clctShowerDataNomSummary_denom_
virtual 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)
edm::EDGetTokenT< CSCShowerDigiCollection > emulALCTShower_token_
MonitorElement * alctShowerEmulNomSummary_num_
uint16_t getCSCID() const
MonitorElement * alctShowerDataTightSummary_num_
MonitorElement * clctShowerEmulTightSummary_denom_
MonitorElement * alctShowerEmulTightSummary_num_
static int minTriggerSubSectorId()
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
bool areSameShowers(const CSCShowerDigi &lhs, const CSCShowerDigi &rhs) const
MonitorElement * clctShowerEmulNomSummary_num_
uint16_t bitsInTime() const
MonitorElement * clctShowerEmulNomSummary_denom_
MonitorElement * lctShowerDataTightSummary_denom_
edm::EDGetTokenT< CSCShowerDigiCollection > dataALCTShower_token_
MonitorElement * alctShowerDataNomSummary_denom_
MonitorElement * lctShowerDataNomSummary_num_
MonitorElement * lctShowerDataNomSummary_denom_
edm::EDGetTokenT< CSCShowerDigiCollection > emulLCTShower_token_
static int minTriggerCscId()
MonitorElement * clctShowerDataTightSummary_num_
MonitorElement * clctShowerEmulTightSummary_num_
~L1TdeCSCTPGShower() override
MonitorElement * alctShowerEmulTightSummary_denom_
static int chamberFromTriggerLabels(int TriggerSector, int TriggerSubSector, int station, int TriggerCSCID)
static int maxTriggerSubSectorId()
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
A container for a generic type of digis indexed by some index, implemented with a map<IndexType...