CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GeometryTranslator.h
Go to the documentation of this file.
1 #ifndef __L1TMUON_GEOMETRYTRANSLATOR_H__
2 #define __L1TMUON_GEOMETRYTRANSLATOR_H__
3 //
4 // Class: L1TMuon::GeometryTranslator
5 //
6 // Info: This class implements a the translations from packed bits or
7 // digi information into local or global CMS coordinates for all
8 // types of L1 trigger primitives that we want to consider for
9 // use in the integrated muon trigger.
10 //
11 // Note: This should be considered as a base class to some sort of global
12 // look-up table
13 //
14 // Author: L. Gray (FNAL)
15 // Some pieces of code lifted from: Matt Carver & Bobby Scurlock (UF)
16 //
17 
20 #include <memory>
21 
22 // forwards
23 namespace edm {
24  class EventSetup;
25 }
26 
27 class RPCGeometry;
28 class CSCGeometry;
29 class CSCLayer;
30 class DTGeometry;
31 
32 namespace l1t {
33 
34  class MuonTriggerPrimitive;
35 
37  public:
40 
41  double calculateGlobalEta(const MuonTriggerPrimitive&) const;
42  double calculateGlobalPhi(const MuonTriggerPrimitive&) const;
43  double calculateBendAngle(const MuonTriggerPrimitive&) const;
44 
46 
47  private:
48  // pointers to the current geometry records
49  unsigned long long _geom_cache_id;
53 
55  double calcRPCSpecificEta(const MuonTriggerPrimitive&) const;
56  double calcRPCSpecificPhi(const MuonTriggerPrimitive&) const;
57  double calcRPCSpecificBend(const MuonTriggerPrimitive&) const;
58 
60  double calcCSCSpecificEta(const MuonTriggerPrimitive&) const;
61  double calcCSCSpecificPhi(const MuonTriggerPrimitive&) const;
62  double calcCSCSpecificBend(const MuonTriggerPrimitive&) const;
63  bool isCSCCounterClockwise(const std::unique_ptr<const CSCLayer>&) const;
64 
66  double calcDTSpecificEta(const MuonTriggerPrimitive&) const;
67  double calcDTSpecificPhi(const MuonTriggerPrimitive&) const;
68  double calcDTSpecificBend(const MuonTriggerPrimitive&) const;
69  };
70 }
71 
72 #endif
double calcDTSpecificPhi(const MuonTriggerPrimitive &) const
double calcCSCSpecificEta(const MuonTriggerPrimitive &) const
GlobalPoint getRPCSpecificPoint(const MuonTriggerPrimitive &) const
double calcCSCSpecificBend(const MuonTriggerPrimitive &) const
double calcRPCSpecificEta(const MuonTriggerPrimitive &) const
double calcCSCSpecificPhi(const MuonTriggerPrimitive &) const
double calcDTSpecificBend(const MuonTriggerPrimitive &) const
unsigned long long _geom_cache_id
double calculateGlobalEta(const MuonTriggerPrimitive &) const
edm::ESHandle< RPCGeometry > _georpc
void checkAndUpdateGeometry(const edm::EventSetup &)
edm::ESHandle< DTGeometry > _geodt
double calcRPCSpecificPhi(const MuonTriggerPrimitive &) const
GlobalPoint getCSCSpecificPoint(const MuonTriggerPrimitive &) const
edm::ESHandle< CSCGeometry > _geocsc
GlobalPoint calcDTSpecificPoint(const MuonTriggerPrimitive &) const
bool isCSCCounterClockwise(const std::unique_ptr< const CSCLayer > &) const
double calculateBendAngle(const MuonTriggerPrimitive &) const
double calcRPCSpecificBend(const MuonTriggerPrimitive &) const
double calculateGlobalPhi(const MuonTriggerPrimitive &) const
double calcDTSpecificEta(const MuonTriggerPrimitive &) const