CMS 3D CMS Logo

LayerEncoding.h
Go to the documentation of this file.
1 #ifndef L1Trigger_TrackerTFP_LayerEncoding_h
2 #define L1Trigger_TrackerTFP_LayerEncoding_h
3 
7 
8 #include <vector>
9 
10 namespace trackerTFP {
11 
18  class LayerEncoding {
19  public:
21  LayerEncoding(const DataFormats* dataFormats);
23  // Set of layers in each (zT,tanL) digi Bin of each eta sector numbered 0->N
24  const std::vector<int>& layerEncoding(int binEta, int binZT, int binCot) const {
25  return layerEncoding_.at(binEta).at(binZT).at(binCot);
26  }
27  // maybe layers for given ets sector, bin in zT and bin in cotThea
28  const std::vector<int>& maybeLayer(int binEta, int binZT, int binCot) const {
29  return maybeLayer_.at(binEta).at(binZT).at(binCot);
30  }
31  // encoded layer id for given eta sector, bin in zT, bin in cotThea and decoed layer id, returns -1 if layer incositent with track
32  const int layerIdKF(int binEta, int binZT, int binCot, int layerId) const;
33  // pattern of maybe layers for given eta sector, bin in zT and bin in cotThea
34  TTBV maybePattern(int binEta, int binZT, int binCot) const;
35 
36  private:
37  // helper class providing run-time constants
38  const tt::Setup* setup_;
39  // helper class providing dataformats
41  // data foramt of variable zT
42  const DataFormat* zT_;
43  // data foramt of variable cotTheta
44  const DataFormat* cot_;
45  // outer to inner indices: eta sector, bin in zT, bin in cotTheta, layerId
46  std::vector<std::vector<std::vector<std::vector<int>>>> layerEncoding_;
47  // outer to inner indices: eta sector, bin in zT, bin in cotTheta, layerId of maybe layers
48  std::vector<std::vector<std::vector<std::vector<int>>>> maybeLayer_;
49  };
50 
51 } // namespace trackerTFP
52 
54 
55 #endif
const std::vector< int > & maybeLayer(int binEta, int binZT, int binCot) const
Definition: LayerEncoding.h:28
const DataFormats * dataFormats_
Definition: LayerEncoding.h:40
Bit vector used by Track Trigger emulators. Mainly used to convert integers into arbitrary (within ma...
Definition: TTBV.h:20
Class to process and provide run-time constants used by Track Trigger emulators.
Definition: Setup.h:44
const tt::Setup * setup_
Definition: LayerEncoding.h:38
const std::vector< int > & layerEncoding(int binEta, int binZT, int binCot) const
Definition: LayerEncoding.h:24
TTBV maybePattern(int binEta, int binZT, int binCot) const
#define EVENTSETUP_DATA_DEFAULT_RECORD(_data_, _record_)
const DataFormat * cot_
Definition: LayerEncoding.h:44
std::vector< std::vector< std::vector< std::vector< int > > > > layerEncoding_
Definition: LayerEncoding.h:46
std::vector< std::vector< std::vector< std::vector< int > > > > maybeLayer_
Definition: LayerEncoding.h:48
Class to encode layer ids for Kalman Filter Layers consitent with rough r-z track parameters are coun...
Definition: LayerEncoding.h:18
const int layerIdKF(int binEta, int binZT, int binCot, int layerId) const
Class to calculate and provide dataformats used by Track Trigger emulator.
Definition: DataFormats.h:216
const DataFormat * zT_
Definition: LayerEncoding.h:42