CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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

virtual std::vector< const
DetLayer * > 
compatibleLayers (NavigationDirection dir) const
 
virtual std::vector< const
DetLayer * > 
compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection dir) const
 NavigableLayer interface. More...
 
virtual DetLayerdetLayer () const
 return DetLayer More...
 
MapB getAllInnerBarrelLayers () const
 
MapE getAllInnerEndcapLayers () const
 
MapE getAllOuterEndcapLayers () const
 
MapB getInnerBarrelLayers () const
 
MapE getInnerEndcapLayers () const
 
MapE getOuterEndcapLayers () const
 Operations. More...
 
 MuonForwardNavigableLayer (ForwardDetLayer *fdl, const MapB &innerBarrel, const MapE &outerEndcap, const MapE &innerEndcap, const MapB &allInnerBarrel, const MapE &allOuterEndcap, const MapE &allInnerEndcap)
 
 MuonForwardNavigableLayer (ForwardDetLayer *fdl, const MapE &outerEndcap)
 Constructor with outer layers only. More...
 
 MuonForwardNavigableLayer (ForwardDetLayer *fdl, const MapE &outerEndcap, const MapE &allOuterEndcap)
 Constructor with all outer layers only. More...
 
virtual std::vector< const
DetLayer * > 
nextLayers (NavigationDirection dir) const
 NavigableLayer interface. More...
 
virtual std::vector< const
DetLayer * > 
nextLayers (const FreeTrajectoryState &fts, PropagationDirection dir) const
 NavigableLayer interface. More...
 
virtual void setDetLayer (DetLayer *)
 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
 
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
 
ForwardDetLayertheDetLayer
 
MapB theInnerBarrelLayers
 
MapE theInnerEndcapLayers
 
MapE theOuterEndcapLayers
 

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 ( ForwardDetLayer fdl,
const MapB innerBarrel,
const MapE outerEndcap,
const MapE innerEndcap,
const MapB allInnerBarrel,
const MapE allOuterEndcap,
const MapE allInnerEndcap 
)
inline
MuonForwardNavigableLayer::MuonForwardNavigableLayer ( ForwardDetLayer fdl,
const MapE outerEndcap 
)
inline

Constructor with outer layers only.

Definition at line 53 of file MuonForwardNavigableLayer.h.

54  :
55  theDetLayer(fdl),
56  theOuterEndcapLayers(outerEndcap) {}
MuonForwardNavigableLayer::MuonForwardNavigableLayer ( ForwardDetLayer fdl,
const MapE outerEndcap,
const MapE allOuterEndcap 
)
inline

Constructor with all outer layers only.

Definition at line 58 of file MuonForwardNavigableLayer.h.

Member Function Documentation

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

Implements MuonNavigableLayer.

Definition at line 72 of file MuonForwardNavigableLayer.cc.

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

72  {
73 
74  vector<const DetLayer*> result;
75  vector<const DetLayer*> barrel;
76 
77  if ( dir == insideOut ) {
79  }
80  else {
82  reverse(result.begin(),result.end());
84  reverse(barrel.begin(),barrel.end());
85  result.insert(result.end(),barrel.begin(),barrel.end());
86  }
87 
88  result.reserve(result.size());
89  return result;
90 
91 }
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
tuple result
Definition: query.py:137
dbl *** dir
Definition: mlp_gen.cc:35
vector< const DetLayer * > MuonForwardNavigableLayer::compatibleLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
virtual

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 93 of file MuonForwardNavigableLayer.cc.

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

94  {
95  vector<const DetLayer*> result;
96  vector<const DetLayer*> barrel;
97 
98  if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) {
100  }
101  else {
103  reverse(result.begin(),result.end());
105  reverse(barrel.begin(),barrel.end());
106  result.insert(result.end(),barrel.begin(),barrel.end());
107  }
108  result.reserve(result.size());
109  return result;
110 
111 }
bool isInsideOut(const FreeTrajectoryState &fts) const
void pushCompatibleResult(std::vector< const DetLayer * > &result, const MapB &map, const FreeTrajectoryState &fts) const
tuple result
Definition: query.py:137
dbl *** dir
Definition: mlp_gen.cc:35
DetLayer * MuonForwardNavigableLayer::detLayer ( ) const
virtual

return DetLayer

Implements MuonNavigableLayer.

Definition at line 167 of file MuonForwardNavigableLayer.cc.

167  {
168 
169  return theDetLayer;
170 
171 }
MapB MuonForwardNavigableLayer::getAllInnerBarrelLayers ( ) const
inline
MapE MuonForwardNavigableLayer::getAllInnerEndcapLayers ( ) const
inline
MapE MuonForwardNavigableLayer::getAllOuterEndcapLayers ( ) const
inline
MapB MuonForwardNavigableLayer::getInnerBarrelLayers ( ) const
inline

Definition at line 87 of file MuonForwardNavigableLayer.h.

References theInnerBarrelLayers.

MapE MuonForwardNavigableLayer::getInnerEndcapLayers ( ) const
inline

Definition at line 86 of file MuonForwardNavigableLayer.h.

References theInnerEndcapLayers.

MapE MuonForwardNavigableLayer::getOuterEndcapLayers ( ) const
inline

Operations.

Definition at line 85 of file MuonForwardNavigableLayer.h.

References theOuterEndcapLayers.

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

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 26 of file MuonForwardNavigableLayer.cc.

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

26  {
27 
28  vector<const DetLayer*> result;
29  vector<const DetLayer*> barrel;
30 
31  if ( dir == insideOut ) {
33  }
34  else {
36  reverse(result.begin(),result.end());
38  reverse(barrel.begin(),barrel.end());
39  result.insert(result.end(),barrel.begin(),barrel.end());
40  }
41 
42  result.reserve(result.size());
43  return result;
44 
45 }
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
tuple result
Definition: query.py:137
dbl *** dir
Definition: mlp_gen.cc:35
vector< const DetLayer * > MuonForwardNavigableLayer::nextLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
virtual

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 49 of file MuonForwardNavigableLayer.cc.

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

50  {
51 
52  vector<const DetLayer*> result;
53  vector<const DetLayer*> barrel;
54 
55  if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) {
56  pushResult(result, theOuterEndcapLayers, fts);
57  }
58  else {
59  pushResult(result, theInnerEndcapLayers, fts);
60  reverse(result.begin(),result.end());
61  pushResult(barrel, theInnerBarrelLayers, fts);
62  reverse(barrel.begin(),barrel.end());
63  result.insert(result.end(),barrel.begin(),barrel.end());
64  }
65 
66  result.reserve(result.size());
67  return result;
68 
69 }
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
bool isInsideOut(const FreeTrajectoryState &fts) const
tuple result
Definition: query.py:137
dbl *** dir
Definition: mlp_gen.cc:35
void MuonForwardNavigableLayer::pushCompatibleResult ( std::vector< const DetLayer * > &  result,
const MapB map,
const FreeTrajectoryState fts 
) const
private

Definition at line 149 of file MuonForwardNavigableLayer.cc.

References i.

151  {
152  MuonEtaRange range=trackingRange(fts);
153  for ( MapBI i = map.begin(); i != map.end(); i++ )
154  if ((*i).second.isCompatible(range)) result.push_back((*i).first);
155 }
int i
Definition: DBlmapReader.cc:9
MapB::const_iterator MapBI
tuple result
Definition: query.py:137
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 157 of file MuonForwardNavigableLayer.cc.

References i.

159  {
160  MuonEtaRange range=trackingRange(fts);
161  for (MapEI i = map.begin(); i != map.end(); i++)
162  if ((*i).second.isCompatible(range)) result.push_back((*i).first);
163 
164 }
int i
Definition: DBlmapReader.cc:9
MapE::const_iterator MapEI
tuple result
Definition: query.py:137
MuonEtaRange trackingRange(const FreeTrajectoryState &fts) const
void MuonForwardNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapB map 
) const
private

Definition at line 113 of file MuonForwardNavigableLayer.cc.

References i.

114  {
115 
116  for (MapBI i = map.begin(); i != map.end(); i++) result.push_back((*i).first);
117 
118 }
int i
Definition: DBlmapReader.cc:9
MapB::const_iterator MapBI
tuple result
Definition: query.py:137
void MuonForwardNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapE map 
) const
private

Definition at line 121 of file MuonForwardNavigableLayer.cc.

References i.

122  {
123 
124  for (MapEI i = map.begin(); i != map.end(); i++) result.push_back((*i).first);
125 
126 }
int i
Definition: DBlmapReader.cc:9
MapE::const_iterator MapEI
tuple result
Definition: query.py:137
void MuonForwardNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapB map,
const FreeTrajectoryState fts 
) const
private

Definition at line 139 of file MuonForwardNavigableLayer.cc.

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

141  {
142 
143  for (MapBI i = map.begin(); i != map.end(); i++)
144  if ((*i).second.isInside(fts.position().eta())) result.push_back((*i).first);
145 
146 }
int i
Definition: DBlmapReader.cc:9
MapB::const_iterator MapBI
tuple result
Definition: query.py:137
GlobalPoint position() const
T eta() const
Definition: PV3DBase.h:76
void MuonForwardNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapE map,
const FreeTrajectoryState fts 
) const
private

Definition at line 129 of file MuonForwardNavigableLayer.cc.

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

131  {
132 
133  for (MapEI i = map.begin(); i != map.end(); i++)
134  if ((*i).second.isInside(fts.position().eta())) result.push_back((*i).first);
135 
136 }
int i
Definition: DBlmapReader.cc:9
MapE::const_iterator MapEI
tuple result
Definition: query.py:137
GlobalPoint position() const
T eta() const
Definition: PV3DBase.h:76
void MuonForwardNavigableLayer::setDetLayer ( DetLayer dl)
virtual

set DetLayer

Implements MuonNavigableLayer.

Definition at line 174 of file MuonForwardNavigableLayer.cc.

174  {
175 
176  edm::LogError ("MuonForwardNavigablaLayer") << "MuonForwardNavigableLayer::setDetLayer called!! " << endl;
177 
178 }
void MuonForwardNavigableLayer::setInwardCompatibleLinks ( const MapB innerCBL,
const MapE innerCEL 
)

Definition at line 188 of file MuonForwardNavigableLayer.cc.

Referenced by MuonNavigationSchool::createInverseLinks().

189  {
190 
191  theAllInnerBarrelLayers = innerCBL;
192  theAllInnerEndcapLayers = innerCEL;
193 
194 }
void MuonForwardNavigableLayer::setInwardLinks ( const MapB innerBL,
const MapE innerEL 
)

set inward links

Definition at line 181 of file MuonForwardNavigableLayer.cc.

Referenced by MuonNavigationSchool::createInverseLinks().

182  {
183 
184  theInnerBarrelLayers = innerBL;
185  theInnerEndcapLayers = innerEL;
186 
187 }

Member Data Documentation

MapB MuonForwardNavigableLayer::theAllInnerBarrelLayers
private

Definition at line 128 of file MuonForwardNavigableLayer.h.

Referenced by getAllInnerBarrelLayers().

MapE MuonForwardNavigableLayer::theAllInnerEndcapLayers
private

Definition at line 130 of file MuonForwardNavigableLayer.h.

Referenced by getAllInnerEndcapLayers().

MapE MuonForwardNavigableLayer::theAllOuterEndcapLayers
private

Definition at line 129 of file MuonForwardNavigableLayer.h.

Referenced by getAllOuterEndcapLayers().

ForwardDetLayer* MuonForwardNavigableLayer::theDetLayer
private

Definition at line 124 of file MuonForwardNavigableLayer.h.

MapB MuonForwardNavigableLayer::theInnerBarrelLayers
private

Definition at line 125 of file MuonForwardNavigableLayer.h.

Referenced by getInnerBarrelLayers().

MapE MuonForwardNavigableLayer::theInnerEndcapLayers
private

Definition at line 127 of file MuonForwardNavigableLayer.h.

Referenced by getInnerEndcapLayers().

MapE MuonForwardNavigableLayer::theOuterEndcapLayers
private

Definition at line 126 of file MuonForwardNavigableLayer.h.

Referenced by getOuterEndcapLayers().