CMS 3D CMS Logo

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 
18 #include <memory>
19 
22 
23 // Forward declarations
24 namespace edm {
25  class EventSetup;
26 }
27 
28 class DTGeometry;
29 class CSCGeometry;
30 class CSCLayer;
31 class RPCGeometry;
32 class GEMGeometry;
33 class ME0Geometry;
34 class MagneticField;
35 
36 namespace L1TMuon {
37 
38  // Forward declaration
39  class TriggerPrimitive;
40 
42  public:
45 
46  double calculateGlobalEta(const TriggerPrimitive&) const;
47  double calculateGlobalPhi(const TriggerPrimitive&) const;
48  double calculateBendAngle(const TriggerPrimitive&) const;
49 
51 
53 
54  const DTGeometry& getDTGeometry() const { return *_geodt; }
55  const CSCGeometry& getCSCGeometry() const { return *_geocsc; }
56  const RPCGeometry& getRPCGeometry() const { return *_georpc; }
57  const GEMGeometry& getGEMGeometry() const { return *_geogem; }
58  const ME0Geometry& getME0Geometry() const { return *_geome0; }
59 
60  const MagneticField& getMagneticField() const { return *_magfield; }
61 
62  private:
63  unsigned long long _geom_cache_id;
69 
70  unsigned long long _magfield_cache_id;
72 
74  double calcME0SpecificEta(const TriggerPrimitive&) const;
75  double calcME0SpecificPhi(const TriggerPrimitive&) const;
76  double calcME0SpecificBend(const TriggerPrimitive&) const;
77 
79  double calcGEMSpecificEta(const TriggerPrimitive&) const;
80  double calcGEMSpecificPhi(const TriggerPrimitive&) const;
81  double calcGEMSpecificBend(const TriggerPrimitive&) const;
82 
84  double calcRPCSpecificEta(const TriggerPrimitive&) const;
85  double calcRPCSpecificPhi(const TriggerPrimitive&) const;
86  double calcRPCSpecificBend(const TriggerPrimitive&) const;
87 
89  double calcCSCSpecificEta(const TriggerPrimitive&) const;
90  double calcCSCSpecificPhi(const TriggerPrimitive&) const;
91  double calcCSCSpecificBend(const TriggerPrimitive&) const;
92  bool isCSCCounterClockwise(const std::unique_ptr<const CSCLayer>&) const;
93 
95  double calcDTSpecificEta(const TriggerPrimitive&) const;
96  double calcDTSpecificPhi(const TriggerPrimitive&) const;
97  double calcDTSpecificBend(const TriggerPrimitive&) const;
98  };
99 
100 } // namespace L1TMuon
101 
102 #endif
DTGeometry
Definition: DTGeometry.h:28
L1TMuon::GeometryTranslator::getME0SpecificPoint
GlobalPoint getME0SpecificPoint(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:144
L1TMuon::GeometryTranslator::_magfield_cache_id
unsigned long long _magfield_cache_id
Definition: GeometryTranslator.h:70
ESHandle.h
L1TMuon::GeometryTranslator::calcGEMSpecificPhi
double calcGEMSpecificPhi(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:192
L1TMuon::GeometryTranslator::calcME0SpecificPhi
double calcME0SpecificPhi(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:166
L1TMuon::GeometryTranslator::getCSCSpecificPoint
GlobalPoint getCSCSpecificPoint(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:231
edm
HLT enums.
Definition: AlignableModifier.h:19
L1TMuon::GeometryTranslator::calcCSCSpecificPhi
double calcCSCSpecificPhi(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:290
ME0Geometry
Definition: ME0Geometry.h:12
L1TMuon::GeometryTranslator::getGlobalPoint
GlobalPoint getGlobalPoint(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:97
CSCLayer
Definition: CSCLayer.h:24
L1TMuon::GeometryTranslator::_georpc
edm::ESHandle< RPCGeometry > _georpc
Definition: GeometryTranslator.h:66
L1TMuon::GeometryTranslator::_geome0
edm::ESHandle< ME0Geometry > _geome0
Definition: GeometryTranslator.h:68
L1TMuon::GeometryTranslator::calcRPCSpecificEta
double calcRPCSpecificEta(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:212
L1TMuon::GeometryTranslator::getGEMGeometry
const GEMGeometry & getGEMGeometry() const
Definition: GeometryTranslator.h:57
L1TMuon::GeometryTranslator::calculateGlobalPhi
double calculateGlobalPhi(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:51
CSCGeometry
Definition: CSCGeometry.h:24
L1TMuon::GeometryTranslator::calcRPCSpecificPhi
double calcRPCSpecificPhi(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:216
L1TMuon::GeometryTranslator::_geogem
edm::ESHandle< GEMGeometry > _geogem
Definition: GeometryTranslator.h:67
L1TMuon::GeometryTranslator::_geocsc
edm::ESHandle< CSCGeometry > _geocsc
Definition: GeometryTranslator.h:65
L1TMuon::GeometryTranslator::calcGEMSpecificBend
double calcGEMSpecificBend(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:196
edm::ESHandle< DTGeometry >
L1TMuon::GeometryTranslator::calcCSCSpecificEta
double calcCSCSpecificEta(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:286
L1TMuon::GeometryTranslator::getRPCGeometry
const RPCGeometry & getRPCGeometry() const
Definition: GeometryTranslator.h:56
L1TMuon::TriggerPrimitive
Definition: MuonTriggerPrimitive.h:56
Point3DBase< float, GlobalTag >
L1TMuon::GeometryTranslator::calcDTSpecificBend
double calcDTSpecificBend(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:342
L1TMuon::GeometryTranslator::calcGEMSpecificEta
double calcGEMSpecificEta(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:188
L1TMuon::GeometryTranslator::_magfield
edm::ESHandle< MagneticField > _magfield
Definition: GeometryTranslator.h:71
L1TMuon::GeometryTranslator::GeometryTranslator
GeometryTranslator()
Definition: GeometryTranslator.cc:24
L1TMuon::GeometryTranslator::calcME0SpecificEta
double calcME0SpecificEta(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:162
L1TMuon::GeometryTranslator::getRPCSpecificPoint
GlobalPoint getRPCSpecificPoint(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:200
L1TMuon::GeometryTranslator::calcCSCSpecificBend
double calcCSCSpecificBend(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:294
L1TMuon::GeometryTranslator::checkAndUpdateGeometry
void checkAndUpdateGeometry(const edm::EventSetup &)
Definition: GeometryTranslator.cc:122
L1TMuon::GeometryTranslator::calculateGlobalEta
double calculateGlobalEta(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:28
edm::EventSetup
Definition: EventSetup.h:57
L1TMuon
Definition: CSCCollector.h:15
L1TMuon::GeometryTranslator::calcDTSpecificPhi
double calcDTSpecificPhi(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:339
L1TMuon::GeometryTranslator::calcME0SpecificBend
double calcME0SpecificBend(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:170
L1TMuon::GeometryTranslator
Definition: GeometryTranslator.h:41
L1TMuon::GeometryTranslator::isCSCCounterClockwise
bool isCSCCounterClockwise(const std::unique_ptr< const CSCLayer > &) const
Definition: GeometryTranslator.cc:296
L1TMuon::GeometryTranslator::~GeometryTranslator
~GeometryTranslator()
Definition: GeometryTranslator.cc:26
L1TMuon::GeometryTranslator::getDTGeometry
const DTGeometry & getDTGeometry() const
Definition: GeometryTranslator.h:54
L1TMuon::GeometryTranslator::calcDTSpecificPoint
GlobalPoint calcDTSpecificPoint(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:305
GEMGeometry
Definition: GEMGeometry.h:24
RPCGeometry
Definition: RPCGeometry.h:20
L1TMuon::GeometryTranslator::getCSCGeometry
const CSCGeometry & getCSCGeometry() const
Definition: GeometryTranslator.h:55
EventSetup
L1TMuon::GeometryTranslator::getME0Geometry
const ME0Geometry & getME0Geometry() const
Definition: GeometryTranslator.h:58
L1TMuon::GeometryTranslator::getMagneticField
const MagneticField & getMagneticField() const
Definition: GeometryTranslator.h:60
L1TMuon::GeometryTranslator::calcRPCSpecificBend
double calcRPCSpecificBend(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:222
MagneticField
Definition: MagneticField.h:19
L1TMuon::GeometryTranslator::calculateBendAngle
double calculateBendAngle(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:74
GlobalPoint.h
L1TMuon::GeometryTranslator::calcDTSpecificEta
double calcDTSpecificEta(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:337
L1TMuon::GeometryTranslator::getGEMSpecificPoint
GlobalPoint getGEMSpecificPoint(const TriggerPrimitive &) const
Definition: GeometryTranslator.cc:176
L1TMuon::GeometryTranslator::_geom_cache_id
unsigned long long _geom_cache_id
Definition: GeometryTranslator.h:63
L1TMuon::GeometryTranslator::_geodt
edm::ESHandle< DTGeometry > _geodt
Definition: GeometryTranslator.h:64