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
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
0019
0020
0021 class LateralityCoarsedProvider : public LateralityProvider {
0022 public:
0023
0024 LateralityCoarsedProvider(const edm::ParameterSet &pset, edm::ConsumesCollector &iC);
0025 ~LateralityCoarsedProvider() override;
0026
0027
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
0037
0038 private:
0039
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
0045 const bool debug_;
0046 std::vector<lat_coarsed_combination> lat_combinations;
0047 edm::FileInPath laterality_filename_;
0048 };
0049
0050 #endif