Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-06-03 00:12:14

0001 #ifndef L1Trigger_TrackerTFP_LayerEncoding_h
0002 #define L1Trigger_TrackerTFP_LayerEncoding_h
0003 
0004 #include "FWCore/Framework/interface/data_default_record_trait.h"
0005 #include "L1Trigger/TrackerTFP/interface/DataFormats.h"
0006 #include "L1Trigger/TrackTrigger/interface/SensorModule.h"
0007 
0008 #include <vector>
0009 
0010 namespace trackerTFP {
0011 
0012   /*! \class  trackerTFP::LayerEncoding
0013    *  \brief  Class to encode layer ids for Kalman Filter
0014    *          Layers (1 to 6 for barrel, 11 to 15 for end caps) consitent with rough r-z track parameters are counted from 0 onwards (0 to 7).
0015    *  \author Thomas Schuh
0016    *  \date   2020, July
0017    */
0018   class LayerEncoding {
0019   public:
0020     LayerEncoding() {}
0021     LayerEncoding(const DataFormats* dataFormats);
0022     ~LayerEncoding() = default;
0023     // Set of layers for given bin in zT
0024     const std::vector<int>& layerEncoding(int zT) const;
0025     // Set of layers for given zT in cm
0026     const std::vector<int>& layerEncoding(double zT) const;
0027     // pattern of maybe layers for given bin in zT
0028     const TTBV& maybePattern(int zT) const;
0029     // pattern of maybe layers for given zT in cm
0030     const TTBV& maybePattern(double zT) const;
0031     // fills numPS, num2S, numMissingPS and numMissingPS for given hitPattern and trajectory
0032     void analyze(
0033         int hitpattern, double cot, double z0, int& numPS, int& num2S, int& numMissingPS, int& numMissing2S) const;
0034 
0035   private:
0036     // helper class providing run-time constants
0037     const tt::Setup* setup_;
0038     // helper class providing dataformats
0039     const DataFormats* dataFormats_;
0040     // data foramt of variable zT
0041     const DataFormat* zT_;
0042     // outer to inner indices: bin in zT, layerId
0043     std::vector<std::vector<int>> layerEncoding_;
0044     // outer to inner indices: bin in zT, maybe patterns
0045     std::vector<TTBV> maybePattern_;
0046     std::vector<int> nullLE_;
0047     TTBV nullMP_;
0048   };
0049 
0050 }  // namespace trackerTFP
0051 
0052 EVENTSETUP_DATA_DEFAULT_RECORD(trackerTFP::LayerEncoding, trackerTFP::DataFormatsRcd);
0053 
0054 #endif