File indexing completed on 2024-04-06 12:07:44
0001 #ifndef L1TCSCTF_H
0002 #define L1TCSCTF_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include <memory>
0013 #include <unistd.h>
0014
0015
0016 #include "FWCore/Framework/interface/Frameworkfwd.h"
0017
0018 #include "FWCore/Framework/interface/Event.h"
0019 #include "FWCore/Framework/interface/MakerMacros.h"
0020
0021 #include "FWCore/Framework/interface/ESHandle.h"
0022 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0023
0024 #include "DQMServices/Core/interface/DQMStore.h"
0025 #include "FWCore/ServiceRegistry/interface/Service.h"
0026 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0027
0028 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h"
0029 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTCand.h"
0030 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTExtendedCand.h"
0031 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h"
0032
0033
0034 #include "L1Trigger/CSCTrackFinder/interface/CSCSectorReceiverLUT.h"
0035
0036 #include "CondFormats/L1TObjects/interface/L1MuTriggerScales.h"
0037 #include "CondFormats/DataRecord/interface/L1MuTriggerScalesRcd.h"
0038 #include "CondFormats/L1TObjects/interface/L1MuTriggerPtScale.h"
0039 #include "CondFormats/DataRecord/interface/L1MuTriggerPtScaleRcd.h"
0040
0041 #include "DataFormats/L1CSCTrackFinder/interface/L1CSCStatusDigiCollection.h"
0042 #include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
0043 #include "DataFormats/L1CSCTrackFinder/interface/L1CSCTrackCollection.h"
0044 #include "DataFormats/L1CSCTrackFinder/interface/CSCTriggerContainer.h"
0045 #include "DataFormats/L1CSCTrackFinder/interface/TrackStub.h"
0046
0047 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0048
0049 #include <iostream>
0050 #include <fstream>
0051 #include <vector>
0052
0053
0054
0055
0056
0057 class L1TCSCTF : public DQMEDAnalyzer {
0058 public:
0059
0060 L1TCSCTF(const edm::ParameterSet& ps);
0061
0062
0063 ~L1TCSCTF() override;
0064
0065 protected:
0066
0067 void analyze(const edm::Event& e, const edm::EventSetup& c) override;
0068 void bookHistograms(DQMStore::IBooker& ibooker, edm::Run const&, edm::EventSetup const&) override;
0069
0070 private:
0071
0072
0073 MonitorElement* csctfntrack;
0074 MonitorElement* csctfbx;
0075 MonitorElement* csctfbx_H;
0076
0077 MonitorElement* csctferrors;
0078 MonitorElement* csctfoccupancies;
0079 MonitorElement* csctfoccupancies_H;
0080
0081 MonitorElement* csctferrors_mpc;
0082 MonitorElement* cscWireStripOverflow;
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092 MonitorElement* csctfChamberOccupancies;
0093 MonitorElement* csctfTrackPhi;
0094 MonitorElement* csctfTrackEta;
0095 MonitorElement* csctfTrackEtaLowQ;
0096 MonitorElement* csctfTrackEtaHighQ;
0097 MonitorElement* csctfTrackPhi_H;
0098 MonitorElement* csctfTrackEta_H;
0099 MonitorElement* cscTrackStubNumbers;
0100 MonitorElement* csctfTrackM;
0101 MonitorElement* trackModeVsQ;
0102 MonitorElement* csctfAFerror;
0103
0104
0105 MonitorElement* csctflcts;
0106
0107
0108 MonitorElement* me11_lctStrip;
0109 MonitorElement* me11_lctWire;
0110 MonitorElement* me11_lctLocalPhi;
0111 MonitorElement* me11_lctPackedPhi;
0112 MonitorElement* me11_lctGblPhi;
0113 MonitorElement* me11_lctGblEta;
0114
0115
0116 MonitorElement* me42_lctGblPhi;
0117 MonitorElement* me42_lctGblEta;
0118
0119
0120 MonitorElement* csc_strip_MEplus11;
0121 MonitorElement* csc_strip_MEplus12;
0122 MonitorElement* csc_strip_MEplus13;
0123 MonitorElement* csc_strip_MEplus21;
0124 MonitorElement* csc_strip_MEplus22;
0125 MonitorElement* csc_strip_MEplus31;
0126 MonitorElement* csc_strip_MEplus32;
0127 MonitorElement* csc_strip_MEplus41;
0128 MonitorElement* csc_strip_MEplus42;
0129
0130 MonitorElement* csc_strip_MEminus11;
0131 MonitorElement* csc_strip_MEminus12;
0132 MonitorElement* csc_strip_MEminus13;
0133 MonitorElement* csc_strip_MEminus21;
0134 MonitorElement* csc_strip_MEminus22;
0135 MonitorElement* csc_strip_MEminus31;
0136 MonitorElement* csc_strip_MEminus32;
0137 MonitorElement* csc_strip_MEminus41;
0138 MonitorElement* csc_strip_MEminus42;
0139
0140 MonitorElement* csc_wire_MEplus11;
0141 MonitorElement* csc_wire_MEplus12;
0142 MonitorElement* csc_wire_MEplus13;
0143 MonitorElement* csc_wire_MEplus21;
0144 MonitorElement* csc_wire_MEplus22;
0145 MonitorElement* csc_wire_MEplus31;
0146 MonitorElement* csc_wire_MEplus32;
0147 MonitorElement* csc_wire_MEplus41;
0148 MonitorElement* csc_wire_MEplus42;
0149
0150 MonitorElement* csc_wire_MEminus11;
0151 MonitorElement* csc_wire_MEminus12;
0152 MonitorElement* csc_wire_MEminus13;
0153 MonitorElement* csc_wire_MEminus21;
0154 MonitorElement* csc_wire_MEminus22;
0155 MonitorElement* csc_wire_MEminus31;
0156 MonitorElement* csc_wire_MEminus32;
0157 MonitorElement* csc_wire_MEminus41;
0158 MonitorElement* csc_wire_MEminus42;
0159
0160
0161
0162 MonitorElement* DTstubsTimeTrackMenTimeArrival[12];
0163 int BxInEvent_;
0164 bool isCSCcand_;
0165
0166 int L1ABXN;
0167
0168 int nev_;
0169 std::string outputFile_;
0170 bool verbose_;
0171 bool monitorDaemon_;
0172 std::ofstream logFile_;
0173 edm::InputTag gmtProducer, lctProducer, trackProducer, statusProducer, mbProducer;
0174 bool gangedME11a_;
0175
0176 CSCSectorReceiverLUT* srLUTs_[5][2][6];
0177
0178 const L1MuTriggerScales* ts;
0179 const L1MuTriggerPtScale* tpts;
0180 unsigned long long m_scalesCacheID;
0181 unsigned long long m_ptScaleCacheID;
0182
0183
0184 edm::EDGetTokenT<L1MuGMTReadoutCollection> gmtProducerToken_;
0185 edm::EDGetTokenT<L1CSCStatusDigiCollection> statusToken_;
0186 edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> corrlctsToken_;
0187 edm::EDGetTokenT<L1CSCTrackCollection> tracksToken_;
0188 edm::EDGetTokenT<CSCTriggerContainer<csctf::TrackStub> > dtStubsToken_;
0189 edm::EDGetTokenT<L1CSCTrackCollection> mbtracksToken_;
0190 edm::ESGetToken<L1MuTriggerScales, L1MuTriggerScalesRcd> l1muTscalesToken_;
0191 edm::ESGetToken<L1MuTriggerPtScale, L1MuTriggerPtScaleRcd> ptscalesToken_;
0192 };
0193
0194 #endif