CMS 3D CMS Logo

AngleConverterBase.h
Go to the documentation of this file.
1 #ifndef L1T_OmtfP1_ANGLECONVERTER_H
2 #define L1T_OmtfP1_ANGLECONVERTER_H
3 
5 
11 
12 #include <memory>
13 
14 namespace edm {
15  class EventSetup;
16 }
17 
18 class RPCGeometry;
19 class CSCGeometry;
20 class CSCLayer;
21 class DTGeometry;
22 
23 class L1MuDTChambPhDigi;
24 class L1MuDTChambThDigi;
27 class RPCDigi;
28 
29 class DTChamberId;
30 class CSCDetId;
31 class RPCDetId;
32 
33 struct EtaValue {
34  int eta = 0;
36  int etaSigma = 0;
37  int quality = 0;
38 
39  int bx = 0;
40  int timing = 0; //sub-bx timing, should be already in scale common for all muon subsystems
41 };
42 
47 };
48 
50 public:
52  virtual ~AngleConverterBase();
53 
55  virtual void checkAndUpdateGeometry(const edm::EventSetup&,
57  const MuonGeometryTokens& muonGeometryTokens);
58 
62  virtual int getProcessorPhi(int phiZero, l1t::tftype part, int dtScNum, int dtPhi) const;
63 
64  virtual int getProcessorPhi(int phiZero,
66  const CSCDetId& csc,
67  const CSCCorrelatedLCTDigi& digi) const;
68 
69  virtual int getProcessorPhi(unsigned int iProcessor,
71  const RPCDetId& rollId,
72  const unsigned int& digi) const;
73  virtual int getProcessorPhi(int phiZero,
75  const RPCDetId& rollId,
76  const unsigned int& digi1,
77  const unsigned int& digi2) const;
78 
81  virtual EtaValue getGlobalEtaDt(const DTChamberId& detId) const;
82 
83  //adds the eta segments from the thetaDigi to etaSegments
84  virtual void getGlobalEta(const L1MuDTChambThDigi& thetaDigi, std::vector<EtaValue>& etaSegments) const;
85  virtual std::vector<EtaValue> getGlobalEta(const L1MuDTChambThContainer* dtThDigis, int bxFrom, int bxTo) const;
86 
88  virtual EtaValue getGlobalEta(const CSCDetId& detId, const CSCCorrelatedLCTDigi& aDigi) const;
89 
91  virtual EtaValue getGlobalEtaCsc(const CSCDetId& detId) const;
92 
95  virtual EtaValue getGlobalEta(unsigned int rawid, const unsigned int& aDigi) const;
96 
97  float cscChamberEtaSize(const CSCDetId& id) const;
98 
99 protected:
101  virtual bool isCSCCounterClockwise(const CSCLayer* layer) const;
102 
104  virtual const int findBTIgroup(const L1MuDTChambPhDigi& aDigi, const L1MuDTChambThContainer* dtThDigis);
105 
106  // pointers to the current geometry records
107  unsigned long long _geom_cache_id = 0;
111 
113 
114  const ProcConfigurationBase* config = nullptr;
116  unsigned int nPhiBins = 0;
117 };
118 
119 #endif
edm::ESHandle< DTGeometry > _geodt
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > cscGeometryEsToken
edm::ESHandle< RPCGeometry > _georpc
virtual EtaValue getGlobalEtaDt(const DTChamberId &detId) const
Definition: config.py:1
edm::ESGetToken< RPCGeometry, MuonGeometryRecord > rpcGeometryEsToken
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
unsigned int nPhiBins
Number of phi bins along 2Pi.
Definition: L1Track.h:19
virtual const int findBTIgroup(const L1MuDTChambPhDigi &aDigi, const L1MuDTChambThContainer *dtThDigis)
Find BTI group.
float cscChamberEtaSize(const CSCDetId &id) const
virtual int getProcessorPhi(int phiZero, l1t::tftype part, int dtScNum, int dtPhi) const
edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeometryEsToken
virtual void getGlobalEta(const L1MuDTChambThDigi &thetaDigi, std::vector< EtaValue > &etaSegments) const
virtual void checkAndUpdateGeometry(const edm::EventSetup &, const ProcConfigurationBase *config, const MuonGeometryTokens &muonGeometryTokens)
Update the Geometry with current Event Setup.
part
Definition: HCALResponse.h:20
edm::ESHandle< CSCGeometry > _geocsc
edm::ESWatcher< MuonGeometryRecord > muonGeometryRecordWatcher
HLT enums.
virtual bool isCSCCounterClockwise(const CSCLayer *layer) const
Check orientation of strips in given CSC chamber.
virtual EtaValue getGlobalEtaCsc(const CSCDetId &detId) const
returns the eta position of the CSC chamber
unsigned long long _geom_cache_id
int etaSigma
error of the eta measurement