File indexing completed on 2024-04-06 12:19:45
0001 #ifndef L1Trigger_DTTriggerPhase2_MuonPathConfirmator_h
0002 #define L1Trigger_DTTriggerPhase2_MuonPathConfirmator_h
0003
0004 #include "FWCore/Utilities/interface/ESGetToken.h"
0005 #include "FWCore/Framework/interface/ConsumesCollector.h"
0006 #include "FWCore/Framework/interface/FrameworkfwdMostUsed.h"
0007 #include "FWCore/Framework/interface/Event.h"
0008 #include "FWCore/Framework/interface/Frameworkfwd.h"
0009 #include "FWCore/Framework/interface/EventSetup.h"
0010 #include "FWCore/Framework/interface/Run.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0013
0014 #include "L1Trigger/DTTriggerPhase2/interface/constants.h"
0015 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
0016 #include "DataFormats/MuonDetId/interface/DTSuperLayerId.h"
0017 #include "DataFormats/MuonDetId/interface/DTLayerId.h"
0018 #include "DataFormats/MuonDetId/interface/DTWireId.h"
0019 #include "DataFormats/DTDigi/interface/DTDigiCollection.h"
0020
0021 #include <iostream>
0022 #include <fstream>
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032 class MuonPathConfirmator {
0033 public:
0034
0035 MuonPathConfirmator(const edm::ParameterSet &pset, edm::ConsumesCollector &iC);
0036 ~MuonPathConfirmator();
0037
0038
0039 void initialise(const edm::EventSetup &iEventSetup);
0040 void run(edm::Event &iEvent,
0041 const edm::EventSetup &iEventSetup,
0042 std::vector<cmsdt::metaPrimitive> inMetaPrimitives,
0043 edm::Handle<DTDigiCollection> dtdigis,
0044 std::vector<cmsdt::metaPrimitive> &outMetaPrimitives);
0045
0046 void finish();
0047
0048
0049 private:
0050
0051 void analyze(cmsdt::metaPrimitive mp,
0052 edm::Handle<DTDigiCollection> dtdigis,
0053 std::vector<cmsdt::metaPrimitive> &outMetaPrimitives);
0054
0055 bool debug_;
0056 double minx_match_2digis_;
0057
0058 edm::FileInPath shift_filename_;
0059 std::map<int, float> shiftinfo_;
0060 edm::FileInPath maxdrift_filename_;
0061 int maxdriftinfo_[5][4][14];
0062 int max_drift_tdc = -1;
0063
0064 int PARTIALS_PRECISSION = 4;
0065 int SEMICHAMBER_H_PRECISSION = 13 + PARTIALS_PRECISSION;
0066 int SEMICHAMBER_RES_SHR = SEMICHAMBER_H_PRECISSION;
0067 int LYRANDAHALF_RES_SHR = 4;
0068 float SEMICHAMBER_H_REAL = ((235. / 2.) / (16. * 6.5)) * std::pow(2, SEMICHAMBER_H_PRECISSION);
0069 int SEMICHAMBER_H = int(SEMICHAMBER_H_REAL);
0070 };
0071
0072 #endif