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
MuonBarrelNavigableLayer Class Reference

#include <MuonBarrelNavigableLayer.h>

Inheritance diagram for MuonBarrelNavigableLayer:
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...
 
MapE getAllInnerBackwardLayers () const
 
MapB getAllInnerBarrelLayers () const
 
MapE getAllInnerForwardLayers () const
 
MapE getAllOuterBackwardLayers () const
 
MapB getAllOuterBarrelLayers () const
 
MapE getAllOuterForwardLayers () const
 
MapE getInnerBackwardLayers () const
 
MapB getInnerBarrelLayers () const
 
MapE getInnerForwardLayers () const
 
MapE getOuterBackwardLayers () const
 
MapB getOuterBarrelLayers () const
 
MapE getOuterForwardLayers () const
 
 MuonBarrelNavigableLayer (BarrelDetLayer *bdl, const MapB &outerBarrel, const MapB &innerBarrel, const MapE &outerBackward, const MapE &outerForward, const MapE &innerBackward, const MapE &innerForward)
 Constructor. More...
 
 MuonBarrelNavigableLayer (BarrelDetLayer *bdl, const MapB &outerBarrel, const MapB &innerBarrel, const MapE &outerBackward, const MapE &outerForward, const MapE &innerBackward, const MapE &innerForward, const MapB &allOuterBarrel, const MapB &allInnerBarrel, const MapE &allOuterBackward, const MapE &allOuterForward, const MapE &allInnerBackward, const MapE &allInnerForward)
 
 MuonBarrelNavigableLayer (BarrelDetLayer *bdl, const MapB &outerBarrel, const MapE &outerBackward, const MapE &outerForward)
 Constructor with outer layers only. More...
 
 MuonBarrelNavigableLayer (const BarrelDetLayer *bdl, const MapB &outerBarrel, const MapE &outerBackward, const MapE &outerForward, const MapB &allOuterBarrel, const MapE &allOuterBackward, const MapE &allOuterForward)
 
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 &)
 
void setInwardLinks (const MapB &)
 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

MapE theAllInnerBackwardLayers
 
MapB theAllInnerBarrelLayers
 
MapE theAllInnerForwardLayers
 
MapE theAllOuterBackwardLayers
 
MapB theAllOuterBarrelLayers
 
MapE theAllOuterForwardLayers
 
const BarrelDetLayertheDetLayer
 
MapE theInnerBackwardLayers
 
MapB theInnerBarrelLayers
 
MapE theInnerForwardLayers
 
MapE theOuterBackwardLayers
 
MapB theOuterBarrelLayers
 
MapE theOuterForwardLayers
 

Additional Inherited Members

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

Detailed Description

Navigable layer for Barrel 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 returns ALL DetLayers that are compatible with a given DetLayer.

Definition at line 34 of file MuonBarrelNavigableLayer.h.

Constructor & Destructor Documentation

MuonBarrelNavigableLayer::MuonBarrelNavigableLayer ( BarrelDetLayer bdl,
const MapB outerBarrel,
const MapB innerBarrel,
const MapE outerBackward,
const MapE outerForward,
const MapE innerBackward,
const MapE innerForward 
)
inline

Constructor.

Definition at line 37 of file MuonBarrelNavigableLayer.h.

MuonBarrelNavigableLayer::MuonBarrelNavigableLayer ( BarrelDetLayer bdl,
const MapB outerBarrel,
const MapB innerBarrel,
const MapE outerBackward,
const MapE outerForward,
const MapE innerBackward,
const MapE innerForward,
const MapB allOuterBarrel,
const MapB allInnerBarrel,
const MapE allOuterBackward,
const MapE allOuterForward,
const MapE allInnerBackward,
const MapE allInnerForward 
)
inline

Definition at line 52 of file MuonBarrelNavigableLayer.h.

65  : theDetLayer(bdl),
66  theOuterBarrelLayers(outerBarrel),
67  theInnerBarrelLayers(innerBarrel),
68  theOuterBackwardLayers(outerBackward),
69  theInnerBackwardLayers(innerBackward),
70  theOuterForwardLayers(outerForward),
71  theInnerForwardLayers(innerForward),
72  theAllOuterBarrelLayers(allOuterBarrel),
73  theAllInnerBarrelLayers(allInnerBarrel),
74  theAllOuterBackwardLayers(allOuterBackward),
75  theAllInnerBackwardLayers(allInnerBackward),
76  theAllOuterForwardLayers(allOuterForward),
77  theAllInnerForwardLayers(allInnerForward) {}
const BarrelDetLayer * theDetLayer
MuonBarrelNavigableLayer::MuonBarrelNavigableLayer ( BarrelDetLayer bdl,
const MapB outerBarrel,
const MapE outerBackward,
const MapE outerForward 
)
inline

Constructor with outer layers only.

Definition at line 80 of file MuonBarrelNavigableLayer.h.

MuonBarrelNavigableLayer::MuonBarrelNavigableLayer ( const BarrelDetLayer bdl,
const MapB outerBarrel,
const MapE outerBackward,
const MapE outerForward,
const MapB allOuterBarrel,
const MapE allOuterBackward,
const MapE allOuterForward 
)
inline

Definition at line 89 of file MuonBarrelNavigableLayer.h.

Member Function Documentation

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

Implements MuonNavigableLayer.

Definition at line 65 of file MuonBarrelNavigableLayer.cc.

References insideOut, and mps_fire::result.

65  {
66  std::vector<const DetLayer*> result;
67 
68  if (dir == insideOut) {
72  } else {
74  reverse(result.begin(), result.end());
77  }
78 
79  result.reserve(result.size());
80  return result;
81 }
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
tuple result
Definition: mps_fire.py:311
std::vector< const DetLayer * > MuonBarrelNavigableLayer::compatibleLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
overridevirtual

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 83 of file MuonBarrelNavigableLayer.cc.

References alongMomentum, oppositeToMomentum, and mps_fire::result.

84  {
85  std::vector<const DetLayer*> result;
86 
87  if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) {
91  } else {
93  reverse(result.begin(), result.end());
96  }
97  result.reserve(result.size());
98  return result;
99 }
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 * MuonBarrelNavigableLayer::detLayer ( ) const
overridevirtual

return DetLayer

Implements MuonNavigableLayer.

Definition at line 145 of file MuonBarrelNavigableLayer.cc.

145 { return theDetLayer; }
const BarrelDetLayer * theDetLayer
MapE MuonBarrelNavigableLayer::getAllInnerBackwardLayers ( ) const
inline
MapB MuonBarrelNavigableLayer::getAllInnerBarrelLayers ( ) const
inline

Definition at line 130 of file MuonBarrelNavigableLayer.h.

References theAllInnerBarrelLayers.

MapE MuonBarrelNavigableLayer::getAllInnerForwardLayers ( ) const
inline
MapE MuonBarrelNavigableLayer::getAllOuterBackwardLayers ( ) const
inline
MapB MuonBarrelNavigableLayer::getAllOuterBarrelLayers ( ) const
inline
MapE MuonBarrelNavigableLayer::getAllOuterForwardLayers ( ) const
inline
MapE MuonBarrelNavigableLayer::getInnerBackwardLayers ( ) const
inline

Definition at line 125 of file MuonBarrelNavigableLayer.h.

References theInnerBackwardLayers.

MapB MuonBarrelNavigableLayer::getInnerBarrelLayers ( ) const
inline

Definition at line 123 of file MuonBarrelNavigableLayer.h.

References theInnerBarrelLayers.

MapE MuonBarrelNavigableLayer::getInnerForwardLayers ( ) const
inline

Definition at line 127 of file MuonBarrelNavigableLayer.h.

References theInnerForwardLayers.

MapE MuonBarrelNavigableLayer::getOuterBackwardLayers ( ) const
inline
MapB MuonBarrelNavigableLayer::getOuterBarrelLayers ( ) const
inline
MapE MuonBarrelNavigableLayer::getOuterForwardLayers ( ) const
inline
std::vector< const DetLayer * > MuonBarrelNavigableLayer::nextLayers ( NavigationDirection  dir) const
overridevirtual

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 29 of file MuonBarrelNavigableLayer.cc.

References insideOut, and mps_fire::result.

29  {
30  std::vector<const DetLayer*> result;
31 
32  if (dir == insideOut) {
36  } else {
38  reverse(result.begin(), result.end());
41  }
42 
43  result.reserve(result.size());
44  return result;
45 }
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
tuple result
Definition: mps_fire.py:311
std::vector< const DetLayer * > MuonBarrelNavigableLayer::nextLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
overridevirtual

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 47 of file MuonBarrelNavigableLayer.cc.

References alongMomentum, oppositeToMomentum, and mps_fire::result.

48  {
49  std::vector<const DetLayer*> result;
50 
51  if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) {
52  pushResult(result, theOuterBarrelLayers, fts);
53  pushResult(result, theOuterBackwardLayers, fts);
54  pushResult(result, theOuterForwardLayers, fts);
55  } else {
56  pushResult(result, theInnerBarrelLayers, fts);
57  reverse(result.begin(), result.end());
58  pushResult(result, theInnerBackwardLayers, fts);
59  pushResult(result, theInnerForwardLayers, fts);
60  }
61  result.reserve(result.size());
62  return result;
63 }
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 MuonBarrelNavigableLayer::pushCompatibleResult ( std::vector< const DetLayer * > &  result,
const MapB map,
const FreeTrajectoryState fts 
) const
private

Definition at line 127 of file MuonBarrelNavigableLayer.cc.

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

129  {
131  for (MapBI i = map.begin(); i != map.end(); i++)
132  if ((*i).second.isCompatible(range))
133  result.push_back((*i).first);
134 }
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 MuonBarrelNavigableLayer::pushCompatibleResult ( std::vector< const DetLayer * > &  result,
const MapE map,
const FreeTrajectoryState fts 
) const
private

Definition at line 136 of file MuonBarrelNavigableLayer.cc.

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

138  {
140  for (MapEI i = map.begin(); i != map.end(); i++)
141  if ((*i).second.isCompatible(range))
142  result.push_back((*i).first);
143 }
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 MuonBarrelNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapB map 
) const
private

Definition at line 101 of file MuonBarrelNavigableLayer.cc.

References mps_fire::i.

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

Definition at line 106 of file MuonBarrelNavigableLayer.cc.

References mps_fire::i.

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

Definition at line 111 of file MuonBarrelNavigableLayer.cc.

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

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

Definition at line 119 of file MuonBarrelNavigableLayer.cc.

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

121  {
122  for (MapEI i = map.begin(); i != map.end(); i++)
123  if ((*i).second.isInside(fts.position().eta()))
124  result.push_back((*i).first);
125 }
tuple result
Definition: mps_fire.py:311
MapE::const_iterator MapEI
GlobalPoint position() const
T eta() const
Definition: PV3DBase.h:73
void MuonBarrelNavigableLayer::setDetLayer ( const DetLayer dl)
overridevirtual

set DetLayer

Implements MuonNavigableLayer.

Definition at line 147 of file MuonBarrelNavigableLayer.cc.

147  {
148  edm::LogError("MuonBarrelNavigableLayer") << "MuonBarrelNavigableLayer::setDetLayer called!! " << endl;
149 }
Log< level::Error, false > LogError
void MuonBarrelNavigableLayer::setInwardCompatibleLinks ( const MapB innerCBL)
void MuonBarrelNavigableLayer::setInwardLinks ( const MapB innerBL)

set inward links

Definition at line 151 of file MuonBarrelNavigableLayer.cc.

Referenced by MuonNavigationSchool::createInverseLinks().

Member Data Documentation

MapE MuonBarrelNavigableLayer::theAllInnerBackwardLayers
private

Definition at line 167 of file MuonBarrelNavigableLayer.h.

Referenced by getAllInnerBackwardLayers().

MapB MuonBarrelNavigableLayer::theAllInnerBarrelLayers
private

Definition at line 165 of file MuonBarrelNavigableLayer.h.

Referenced by getAllInnerBarrelLayers().

MapE MuonBarrelNavigableLayer::theAllInnerForwardLayers
private

Definition at line 169 of file MuonBarrelNavigableLayer.h.

Referenced by getAllInnerForwardLayers().

MapE MuonBarrelNavigableLayer::theAllOuterBackwardLayers
private

Definition at line 166 of file MuonBarrelNavigableLayer.h.

Referenced by getAllOuterBackwardLayers().

MapB MuonBarrelNavigableLayer::theAllOuterBarrelLayers
private

Definition at line 164 of file MuonBarrelNavigableLayer.h.

Referenced by getAllOuterBarrelLayers().

MapE MuonBarrelNavigableLayer::theAllOuterForwardLayers
private

Definition at line 168 of file MuonBarrelNavigableLayer.h.

Referenced by getAllOuterForwardLayers().

const BarrelDetLayer* MuonBarrelNavigableLayer::theDetLayer
private

Definition at line 157 of file MuonBarrelNavigableLayer.h.

MapE MuonBarrelNavigableLayer::theInnerBackwardLayers
private

Definition at line 161 of file MuonBarrelNavigableLayer.h.

Referenced by getInnerBackwardLayers().

MapB MuonBarrelNavigableLayer::theInnerBarrelLayers
private

Definition at line 159 of file MuonBarrelNavigableLayer.h.

Referenced by getInnerBarrelLayers().

MapE MuonBarrelNavigableLayer::theInnerForwardLayers
private

Definition at line 163 of file MuonBarrelNavigableLayer.h.

Referenced by getInnerForwardLayers().

MapE MuonBarrelNavigableLayer::theOuterBackwardLayers
private

Definition at line 160 of file MuonBarrelNavigableLayer.h.

Referenced by getOuterBackwardLayers().

MapB MuonBarrelNavigableLayer::theOuterBarrelLayers
private

Definition at line 158 of file MuonBarrelNavigableLayer.h.

Referenced by getOuterBarrelLayers().

MapE MuonBarrelNavigableLayer::theOuterForwardLayers
private

Definition at line 162 of file MuonBarrelNavigableLayer.h.

Referenced by getOuterForwardLayers().