Back to home page

Project CMSSW displayed by LXR

 
 

    


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 // Previous definitions and declarations
0026 // ===============================================================================
0027 
0028 // ===============================================================================
0029 // Class declarations
0030 // ===============================================================================
0031 
0032 class MuonPathConfirmator {
0033 public:
0034   // Constructors and destructor
0035   MuonPathConfirmator(const edm::ParameterSet &pset, edm::ConsumesCollector &iC);
0036   ~MuonPathConfirmator();
0037 
0038   // Main methods
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   // Other public methods
0048 
0049 private:
0050   // Private methods
0051   void analyze(cmsdt::metaPrimitive mp,
0052                edm::Handle<DTDigiCollection> dtdigis,
0053                std::vector<cmsdt::metaPrimitive> &outMetaPrimitives);
0054   // Private attributes
0055   bool debug_;
0056   double minx_match_2digis_;
0057   //shift
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