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(
65  int phiZero, l1t::tftype part, const CSCDetId& csc, const CSCCorrelatedLCTDigi& digi, unsigned int iInput) const;
66 
67  virtual int getProcessorPhi(unsigned int iProcessor,
69  const RPCDetId& rollId,
70  const unsigned int& digi) const;
71  virtual int getProcessorPhi(int phiZero,
73  const RPCDetId& rollId,
74  const unsigned int& digi1,
75  const unsigned int& digi2) const;
76 
79  virtual EtaValue getGlobalEtaDt(const DTChamberId& detId) const;
80 
81  //adds the eta segments from the thetaDigi to etaSegments
82  virtual void getGlobalEta(const L1MuDTChambThDigi& thetaDigi, std::vector<EtaValue>& etaSegments) const;
83  virtual std::vector<EtaValue> getGlobalEta(const L1MuDTChambThContainer* dtThDigis, int bxFrom, int bxTo) const;
84 
86  virtual EtaValue getGlobalEta(const CSCDetId& detId, const CSCCorrelatedLCTDigi& aDigi) const;
87 
89  virtual EtaValue getGlobalEtaCsc(const CSCDetId& detId) const;
90 
93  virtual EtaValue getGlobalEta(unsigned int rawid, const unsigned int& aDigi) const;
94 
95  float cscChamberEtaSize(const CSCDetId& id) const;
96 
97 protected:
99  virtual bool isCSCCounterClockwise(const CSCLayer* layer) const;
100 
102  virtual const int findBTIgroup(const L1MuDTChambPhDigi& aDigi, const L1MuDTChambThContainer* dtThDigis);
103 
104  // pointers to the current geometry records
105  unsigned long long _geom_cache_id = 0;
109 
111 
112  const ProcConfigurationBase* config = nullptr;
114  unsigned int nPhiBins = 0;
115 };
116 
117 #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
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