Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:45

0001 #ifndef L1Trigger_DTTriggerPhase2_LateralityCoarsedProvider_h
0002 #define L1Trigger_DTTriggerPhase2_LateralityCoarsedProvider_h
0003 
0004 #include "L1Trigger/DTTriggerPhase2/interface/LateralityProvider.h"
0005 
0006 // ===============================================================================
0007 // Previous definitions and declarations
0008 // ===============================================================================
0009 
0010 struct lat_coarsed_combination {
0011   short missing_layer;
0012   short cellLayout[cmsdt::NUM_LAYERS];
0013   short coarsed_times[cmsdt::NUM_LAYERS];
0014   lat_vector latcombs;
0015 };
0016 
0017 // ===============================================================================
0018 // Class declarations
0019 // ===============================================================================
0020 
0021 class LateralityCoarsedProvider : public LateralityProvider {
0022 public:
0023   // Constructors and destructor
0024   LateralityCoarsedProvider(const edm::ParameterSet &pset, edm::ConsumesCollector &iC);
0025   ~LateralityCoarsedProvider() override;
0026 
0027   // Main methods
0028   void initialise(const edm::EventSetup &iEventSetup) override;
0029   void run(edm::Event &iEvent,
0030            const edm::EventSetup &iEventSetup,
0031            MuonPathPtrs &inMpath,
0032            std::vector<lat_vector> &lateralities) override;
0033 
0034   void finish() override;
0035 
0036   // Other public methods
0037 
0038 private:
0039   // Private methods
0040   void analyze(MuonPathPtr &inMPath, std::vector<lat_vector> &lateralities);
0041   std::vector<short> coarsify_times(MuonPathPtr &inMPath);
0042   void fill_lat_combinations();
0043   std::vector<std::vector<short>> convertString(std::string chain);
0044   // Private attributes
0045   const bool debug_;
0046   std::vector<lat_coarsed_combination> lat_combinations;
0047   edm::FileInPath laterality_filename_;
0048 };
0049 
0050 #endif