CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
MuonForwardNavigableLayer Class Reference

#include <MuonForwardNavigableLayer.h>

Inheritance diagram for MuonForwardNavigableLayer:
MuonNavigableLayer NavigableLayer

Public Member Functions

std::vector< const DetLayer * > compatibleLayers (NavigationDirection dir) const override
 
std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection dir) const override
 NavigableLayer interface. More...
 
const DetLayerdetLayer () const override
 return DetLayer More...
 
MapB getAllInnerBarrelLayers () const
 
MapE getAllInnerEndcapLayers () const
 
MapE getAllOuterEndcapLayers () const
 
MapB getInnerBarrelLayers () const
 
MapE getInnerEndcapLayers () const
 
MapE getOuterEndcapLayers () const
 Operations. More...
 
 MuonForwardNavigableLayer (const ForwardDetLayer *fdl, const MapB &innerBarrel, const MapE &outerEndcap, const MapE &innerEndcap, const MapB &allInnerBarrel, const MapE &allOuterEndcap, const MapE &allInnerEndcap)
 
 MuonForwardNavigableLayer (const ForwardDetLayer *fdl, const MapE &outerEndcap)
 Constructor with outer layers only. More...
 
 MuonForwardNavigableLayer (const ForwardDetLayer *fdl, const MapE &outerEndcap, const MapE &allOuterEndcap)
 Constructor with all outer layers only. More...
 
std::vector< const DetLayer * > nextLayers (NavigationDirection dir) const override
 NavigableLayer interface. More...
 
std::vector< const DetLayer * > nextLayers (const FreeTrajectoryState &fts, PropagationDirection dir) const override
 NavigableLayer interface. More...
 
void setDetLayer (const DetLayer *) override
 set DetLayer More...
 
void setInwardCompatibleLinks (const MapB &, const MapE &)
 
void setInwardLinks (const MapB &, const MapE &)
 set inward links More...
 
- Public Member Functions inherited from MuonNavigableLayer
bool isInsideOut (const FreeTrajectoryState &fts) const
 
MuonEtaRange trackingRange (const FreeTrajectoryState &fts) const
 
- Public Member Functions inherited from NavigableLayer
virtual std::vector< const
DetLayer * > 
compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const
 
void setSchool (NavigationSchool const *sh)
 
virtual ~NavigableLayer ()
 

Private Member Functions

void pushCompatibleResult (std::vector< const DetLayer * > &result, const MapB &map, const FreeTrajectoryState &fts) const
 
void pushCompatibleResult (std::vector< const DetLayer * > &result, const MapE &map, const FreeTrajectoryState &fts) const
 
void pushResult (std::vector< const DetLayer * > &result, const MapB &map) const
 
void pushResult (std::vector< const DetLayer * > &result, const MapE &map) const
 
void pushResult (std::vector< const DetLayer * > &result, const MapB &map, const FreeTrajectoryState &fts) const
 
void pushResult (std::vector< const DetLayer * > &result, const MapE &map, const FreeTrajectoryState &fts) const
 

Private Attributes

MapB theAllInnerBarrelLayers
 
MapE theAllInnerEndcapLayers
 
MapE theAllOuterEndcapLayers
 
const ForwardDetLayertheDetLayer
 
MapB theInnerBarrelLayers
 
MapE theInnerEndcapLayers
 
MapE theOuterEndcapLayers
 

Additional Inherited Members

- Protected Attributes inherited from NavigableLayer
NavigationSchool const * school = nullptr
 

Detailed Description

Navigable layer for Forward Muon

Author
: Stefano Lacaprara - INFN Padova stefa.nosp@m.no.l.nosp@m.acapr.nosp@m.ara@.nosp@m.pd.in.nosp@m.fn.i.nosp@m.t

Modification: Chang Liu: compatibleLayers(dir) and compatibleLayers(fts, dir) are added, which return ALL DetLayers that are compatible with a given DetLayer.

Definition at line 33 of file MuonForwardNavigableLayer.h.

Constructor & Destructor Documentation

MuonForwardNavigableLayer::MuonForwardNavigableLayer ( const ForwardDetLayer fdl,
const MapB innerBarrel,
const MapE outerEndcap,
const MapE innerEndcap,
const MapB allInnerBarrel,
const MapE allOuterEndcap,
const MapE allInnerEndcap 
)
inline
MuonForwardNavigableLayer::MuonForwardNavigableLayer ( const ForwardDetLayer fdl,
const MapE outerEndcap 
)
inline

Constructor with outer layers only.

Definition at line 51 of file MuonForwardNavigableLayer.h.

MuonForwardNavigableLayer::MuonForwardNavigableLayer ( const ForwardDetLayer fdl,
const MapE outerEndcap,
const MapE allOuterEndcap 
)
inline

Constructor with all outer layers only.

Definition at line 54 of file MuonForwardNavigableLayer.h.

Member Function Documentation

vector< const DetLayer * > MuonForwardNavigableLayer::compatibleLayers ( NavigationDirection  dir) const
overridevirtual

Implements MuonNavigableLayer.

Definition at line 62 of file MuonForwardNavigableLayer.cc.

References Reference_intrackfit_cff::barrel, insideOut, and mps_fire::result.

62  {
63  vector<const DetLayer*> result;
64  vector<const DetLayer*> barrel;
65 
66  if (dir == insideOut) {
68  } else {
70  reverse(result.begin(), result.end());
72  reverse(barrel.begin(), barrel.end());
73  result.insert(result.end(), barrel.begin(), barrel.end());
74  }
75 
76  result.reserve(result.size());
77  return result;
78 }
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
tuple result
Definition: mps_fire.py:311
vector< const DetLayer * > MuonForwardNavigableLayer::compatibleLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
overridevirtual

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 79 of file MuonForwardNavigableLayer.cc.

References alongMomentum, Reference_intrackfit_cff::barrel, oppositeToMomentum, and mps_fire::result.

80  {
81  vector<const DetLayer*> result;
82  vector<const DetLayer*> barrel;
83 
84  if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) {
86  } else {
88  reverse(result.begin(), result.end());
90  reverse(barrel.begin(), barrel.end());
91  result.insert(result.end(), barrel.begin(), barrel.end());
92  }
93  result.reserve(result.size());
94  return result;
95 }
tuple result
Definition: mps_fire.py:311
bool isInsideOut(const FreeTrajectoryState &fts) const
void pushCompatibleResult(std::vector< const DetLayer * > &result, const MapB &map, const FreeTrajectoryState &fts) const
const DetLayer * MuonForwardNavigableLayer::detLayer ( ) const
overridevirtual

return DetLayer

Implements MuonNavigableLayer.

Definition at line 141 of file MuonForwardNavigableLayer.cc.

141 { return theDetLayer; }
const ForwardDetLayer * theDetLayer
MapB MuonForwardNavigableLayer::getAllInnerBarrelLayers ( ) const
inline
MapE MuonForwardNavigableLayer::getAllInnerEndcapLayers ( ) const
inline
MapE MuonForwardNavigableLayer::getAllOuterEndcapLayers ( ) const
inline
MapB MuonForwardNavigableLayer::getInnerBarrelLayers ( ) const
inline

Definition at line 77 of file MuonForwardNavigableLayer.h.

References theInnerBarrelLayers.

MapE MuonForwardNavigableLayer::getInnerEndcapLayers ( ) const
inline

Definition at line 76 of file MuonForwardNavigableLayer.h.

References theInnerEndcapLayers.

MapE MuonForwardNavigableLayer::getOuterEndcapLayers ( ) const
inline

Operations.

Definition at line 75 of file MuonForwardNavigableLayer.h.

References theOuterEndcapLayers.

vector< const DetLayer * > MuonForwardNavigableLayer::nextLayers ( NavigationDirection  dir) const
overridevirtual

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 25 of file MuonForwardNavigableLayer.cc.

References Reference_intrackfit_cff::barrel, insideOut, and mps_fire::result.

25  {
26  vector<const DetLayer*> result;
27  vector<const DetLayer*> barrel;
28 
29  if (dir == insideOut) {
31  } else {
33  reverse(result.begin(), result.end());
35  reverse(barrel.begin(), barrel.end());
36  result.insert(result.end(), barrel.begin(), barrel.end());
37  }
38 
39  result.reserve(result.size());
40  return result;
41 }
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
tuple result
Definition: mps_fire.py:311
vector< const DetLayer * > MuonForwardNavigableLayer::nextLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
overridevirtual

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 43 of file MuonForwardNavigableLayer.cc.

References alongMomentum, Reference_intrackfit_cff::barrel, oppositeToMomentum, and mps_fire::result.

44  {
45  vector<const DetLayer*> result;
46  vector<const DetLayer*> barrel;
47 
48  if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) {
49  pushResult(result, theOuterEndcapLayers, fts);
50  } else {
51  pushResult(result, theInnerEndcapLayers, fts);
52  reverse(result.begin(), result.end());
53  pushResult(barrel, theInnerBarrelLayers, fts);
54  reverse(barrel.begin(), barrel.end());
55  result.insert(result.end(), barrel.begin(), barrel.end());
56  }
57 
58  result.reserve(result.size());
59  return result;
60 }
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
tuple result
Definition: mps_fire.py:311
bool isInsideOut(const FreeTrajectoryState &fts) const
void MuonForwardNavigableLayer::pushCompatibleResult ( std::vector< const DetLayer * > &  result,
const MapB map,
const FreeTrajectoryState fts 
) const
private

Definition at line 123 of file MuonForwardNavigableLayer.cc.

References mps_fire::i, and sistrip::SpyUtilities::range().

125  {
127  for (MapBI i = map.begin(); i != map.end(); i++)
128  if ((*i).second.isCompatible(range))
129  result.push_back((*i).first);
130 }
MapB::const_iterator MapBI
const uint16_t range(const Frame &aFrame)
tuple result
Definition: mps_fire.py:311
MuonEtaRange trackingRange(const FreeTrajectoryState &fts) const
void MuonForwardNavigableLayer::pushCompatibleResult ( std::vector< const DetLayer * > &  result,
const MapE map,
const FreeTrajectoryState fts 
) const
private

Definition at line 132 of file MuonForwardNavigableLayer.cc.

References mps_fire::i, and sistrip::SpyUtilities::range().

134  {
136  for (MapEI i = map.begin(); i != map.end(); i++)
137  if ((*i).second.isCompatible(range))
138  result.push_back((*i).first);
139 }
const uint16_t range(const Frame &aFrame)
tuple result
Definition: mps_fire.py:311
MapE::const_iterator MapEI
MuonEtaRange trackingRange(const FreeTrajectoryState &fts) const
void MuonForwardNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapB map 
) const
private

Definition at line 97 of file MuonForwardNavigableLayer.cc.

References mps_fire::i.

97  {
98  for (MapBI i = map.begin(); i != map.end(); i++)
99  result.push_back((*i).first);
100 }
MapB::const_iterator MapBI
tuple result
Definition: mps_fire.py:311
void MuonForwardNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapE map 
) const
private

Definition at line 102 of file MuonForwardNavigableLayer.cc.

References mps_fire::i.

102  {
103  for (MapEI i = map.begin(); i != map.end(); i++)
104  result.push_back((*i).first);
105 }
tuple result
Definition: mps_fire.py:311
MapE::const_iterator MapEI
void MuonForwardNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapB map,
const FreeTrajectoryState fts 
) const
private

Definition at line 115 of file MuonForwardNavigableLayer.cc.

References PV3DBase< T, PVType, FrameType >::eta(), mps_fire::i, and FreeTrajectoryState::position().

117  {
118  for (MapBI i = map.begin(); i != map.end(); i++)
119  if ((*i).second.isInside(fts.position().eta()))
120  result.push_back((*i).first);
121 }
MapB::const_iterator MapBI
tuple result
Definition: mps_fire.py:311
GlobalPoint position() const
T eta() const
Definition: PV3DBase.h:73
void MuonForwardNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapE map,
const FreeTrajectoryState fts 
) const
private

Definition at line 107 of file MuonForwardNavigableLayer.cc.

References PV3DBase< T, PVType, FrameType >::eta(), mps_fire::i, and FreeTrajectoryState::position().

109  {
110  for (MapEI i = map.begin(); i != map.end(); i++)
111  if ((*i).second.isInside(fts.position().eta()))
112  result.push_back((*i).first);
113 }
tuple result
Definition: mps_fire.py:311
MapE::const_iterator MapEI
GlobalPoint position() const
T eta() const
Definition: PV3DBase.h:73
void MuonForwardNavigableLayer::setDetLayer ( const DetLayer dl)
overridevirtual

set DetLayer

Implements MuonNavigableLayer.

Definition at line 143 of file MuonForwardNavigableLayer.cc.

143  {
144  edm::LogError("MuonForwardNavigablaLayer") << "MuonForwardNavigableLayer::setDetLayer called!! " << endl;
145 }
Log< level::Error, false > LogError
void MuonForwardNavigableLayer::setInwardCompatibleLinks ( const MapB innerCBL,
const MapE innerCEL 
)
void MuonForwardNavigableLayer::setInwardLinks ( const MapB innerBL,
const MapE innerEL 
)

set inward links

Definition at line 147 of file MuonForwardNavigableLayer.cc.

Referenced by MuonNavigationSchool::createInverseLinks().

Member Data Documentation

MapB MuonForwardNavigableLayer::theAllInnerBarrelLayers
private

Definition at line 109 of file MuonForwardNavigableLayer.h.

Referenced by getAllInnerBarrelLayers().

MapE MuonForwardNavigableLayer::theAllInnerEndcapLayers
private

Definition at line 111 of file MuonForwardNavigableLayer.h.

Referenced by getAllInnerEndcapLayers().

MapE MuonForwardNavigableLayer::theAllOuterEndcapLayers
private

Definition at line 110 of file MuonForwardNavigableLayer.h.

Referenced by getAllOuterEndcapLayers().

const ForwardDetLayer* MuonForwardNavigableLayer::theDetLayer
private

Definition at line 105 of file MuonForwardNavigableLayer.h.

MapB MuonForwardNavigableLayer::theInnerBarrelLayers
private

Definition at line 106 of file MuonForwardNavigableLayer.h.

Referenced by getInnerBarrelLayers().

MapE MuonForwardNavigableLayer::theInnerEndcapLayers
private

Definition at line 108 of file MuonForwardNavigableLayer.h.

Referenced by getInnerEndcapLayers().

MapE MuonForwardNavigableLayer::theOuterEndcapLayers
private

Definition at line 107 of file MuonForwardNavigableLayer.h.

Referenced by getOuterEndcapLayers().