File indexing completed on 2023-10-25 09:41:55
0001 #ifndef DTLocalTriggerSynchTask_H
0002 #define DTLocalTriggerSynchTask_H
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "FWCore/Framework/interface/Frameworkfwd.h"
0012 #include "DataFormats/Common/interface/Handle.h"
0013 #include "FWCore/Framework/interface/LuminosityBlock.h"
0014
0015 #include "FWCore/Framework/interface/Event.h"
0016 #include "FWCore/Framework/interface/MakerMacros.h"
0017
0018 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0019
0020 #include "DQMServices/Core/interface/DQMStore.h"
0021
0022 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0023
0024 #include "DataFormats/DTDigi/interface/DTLocalTriggerCollection.h"
0025 #include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h"
0026 #include "Geometry/Records/interface/MuonGeometryRecord.h"
0027
0028
0029 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambPhContainer.h"
0030 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambThContainer.h"
0031
0032 #include <vector>
0033 #include <string>
0034 #include <map>
0035
0036 class DTGeometry;
0037 class DTChamberId;
0038 class DTRecSegment4D;
0039 class DTTTrigBaseSync;
0040 class DTLocalTrigger;
0041 class L1MuDTChambPhDigi;
0042 class L1MuDTChambThDigi;
0043
0044 typedef std::array<std::array<std::array<int, 13>, 5>, 6> DTArr3int;
0045 typedef std::array<std::array<std::array<std::array<int, 3>, 13>, 5>, 6> DTArr4int;
0046
0047 class DTLocalTriggerSynchTask : public DQMEDAnalyzer {
0048 friend class DTMonitorModule;
0049
0050 public:
0051
0052 DTLocalTriggerSynchTask(const edm::ParameterSet& ps);
0053
0054
0055 ~DTLocalTriggerSynchTask() override;
0056
0057 protected:
0058
0059 void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0060
0061
0062 void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
0063
0064
0065 void bookHistos(DQMStore::IBooker&, const DTChamberId& dtCh);
0066
0067
0068 void analyze(const edm::Event& event, const edm::EventSetup& context) override;
0069
0070 std::string& baseDir() { return baseDirectory; }
0071
0072 const int wheelArrayShift = 3;
0073
0074 private:
0075 int nevents;
0076
0077 DTArr3int phCodeBestTM;
0078 DTArr4int phCodeBXTM;
0079 DTArr3int segHitBest;
0080
0081 float bxTime;
0082 bool rangeInBX;
0083 int nBXLow;
0084 int nBXHigh;
0085 float angleRange;
0086 float minHitsPhi;
0087 int fineDelay;
0088 std::unique_ptr<DTTTrigBaseSync> tTrigSync;
0089
0090 std::string baseDirectory;
0091
0092 edm::ESGetToken<DTGeometry, MuonGeometryRecord> muonGeomToken_;
0093 const DTGeometry* muonGeom;
0094 std::map<uint32_t, std::map<std::string, MonitorElement*> > triggerHistos;
0095 MonitorElement* tm_IDDataErrorPlot;
0096
0097 edm::EDGetTokenT<L1MuDTChambPhContainer> tm_Token_;
0098 edm::EDGetTokenT<DTRecSegment4DCollection> seg_Token_;
0099 };
0100
0101 #endif
0102
0103
0104
0105
0106