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

Date:
2007/01/18 13:28:36
Revision:
1.7
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.

Navigable layer for Forward Muon

Date:
2007/01/29 16:24:52
Revision:
1.10
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 35 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 55 of file MuonForwardNavigableLayer.h.

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

Constructor with all outer layers only.

Definition at line 60 of file MuonForwardNavigableLayer.h.

Member Function Documentation

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

Implements MuonNavigableLayer.

Definition at line 74 of file MuonForwardNavigableLayer.cc.

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

74  {
75 
76  vector<const DetLayer*> result;
77  vector<const DetLayer*> barrel;
78 
79  if ( dir == insideOut ) {
81  }
82  else {
84  reverse(result.begin(),result.end());
86  reverse(barrel.begin(),barrel.end());
87  result.insert(result.end(),barrel.begin(),barrel.end());
88  }
89 
90  result.reserve(result.size());
91  return result;
92 
93 }
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 95 of file MuonForwardNavigableLayer.cc.

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

96  {
97  vector<const DetLayer*> result;
98  vector<const DetLayer*> barrel;
99 
100  if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) {
102  }
103  else {
105  reverse(result.begin(),result.end());
107  reverse(barrel.begin(),barrel.end());
108  result.insert(result.end(),barrel.begin(),barrel.end());
109  }
110  result.reserve(result.size());
111  return result;
112 
113 }
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 169 of file MuonForwardNavigableLayer.cc.

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

Definition at line 89 of file MuonForwardNavigableLayer.h.

References theInnerBarrelLayers.

MapE MuonForwardNavigableLayer::getInnerEndcapLayers ( ) const
inline

Definition at line 88 of file MuonForwardNavigableLayer.h.

References theInnerEndcapLayers.

MapE MuonForwardNavigableLayer::getOuterEndcapLayers ( ) const
inline

Operations.

Definition at line 87 of file MuonForwardNavigableLayer.h.

References theOuterEndcapLayers.

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

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 28 of file MuonForwardNavigableLayer.cc.

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

28  {
29 
30  vector<const DetLayer*> result;
31  vector<const DetLayer*> barrel;
32 
33  if ( dir == insideOut ) {
35  }
36  else {
38  reverse(result.begin(),result.end());
40  reverse(barrel.begin(),barrel.end());
41  result.insert(result.end(),barrel.begin(),barrel.end());
42  }
43 
44  result.reserve(result.size());
45  return result;
46 
47 }
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 51 of file MuonForwardNavigableLayer.cc.

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

52  {
53 
54  vector<const DetLayer*> result;
55  vector<const DetLayer*> barrel;
56 
57  if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) {
58  pushResult(result, theOuterEndcapLayers, fts);
59  }
60  else {
61  pushResult(result, theInnerEndcapLayers, fts);
62  reverse(result.begin(),result.end());
63  pushResult(barrel, theInnerBarrelLayers, fts);
64  reverse(barrel.begin(),barrel.end());
65  result.insert(result.end(),barrel.begin(),barrel.end());
66  }
67 
68  result.reserve(result.size());
69  return result;
70 
71 }
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 151 of file MuonForwardNavigableLayer.cc.

References i.

153  {
154  MuonEtaRange range=trackingRange(fts);
155  for ( MapBI i = map.begin(); i != map.end(); i++ )
156  if ((*i).second.isCompatible(range)) result.push_back((*i).first);
157 }
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 159 of file MuonForwardNavigableLayer.cc.

References i.

161  {
162  MuonEtaRange range=trackingRange(fts);
163  for (MapEI i = map.begin(); i != map.end(); i++)
164  if ((*i).second.isCompatible(range)) result.push_back((*i).first);
165 
166 }
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 115 of file MuonForwardNavigableLayer.cc.

References i.

116  {
117 
118  for (MapBI i = map.begin(); i != map.end(); i++) result.push_back((*i).first);
119 
120 }
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 123 of file MuonForwardNavigableLayer.cc.

References i.

124  {
125 
126  for (MapEI i = map.begin(); i != map.end(); i++) result.push_back((*i).first);
127 
128 }
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 141 of file MuonForwardNavigableLayer.cc.

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

143  {
144 
145  for (MapBI i = map.begin(); i != map.end(); i++)
146  if ((*i).second.isInside(fts.position().eta())) result.push_back((*i).first);
147 
148 }
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:75
void MuonForwardNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapE map,
const FreeTrajectoryState fts 
) const
private

Definition at line 131 of file MuonForwardNavigableLayer.cc.

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

133  {
134 
135  for (MapEI i = map.begin(); i != map.end(); i++)
136  if ((*i).second.isInside(fts.position().eta())) result.push_back((*i).first);
137 
138 }
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:75
void MuonForwardNavigableLayer::setDetLayer ( DetLayer dl)
virtual

set DetLayer

Implements MuonNavigableLayer.

Definition at line 176 of file MuonForwardNavigableLayer.cc.

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

Definition at line 190 of file MuonForwardNavigableLayer.cc.

Referenced by MuonNavigationSchool::createInverseLinks().

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

set inward links

Definition at line 183 of file MuonForwardNavigableLayer.cc.

Referenced by MuonNavigationSchool::createInverseLinks().

184  {
185 
186  theInnerBarrelLayers = innerBL;
187  theInnerEndcapLayers = innerEL;
188 
189 }

Member Data Documentation

MapB MuonForwardNavigableLayer::theAllInnerBarrelLayers
private

Definition at line 130 of file MuonForwardNavigableLayer.h.

Referenced by getAllInnerBarrelLayers().

MapE MuonForwardNavigableLayer::theAllInnerEndcapLayers
private

Definition at line 132 of file MuonForwardNavigableLayer.h.

Referenced by getAllInnerEndcapLayers().

MapE MuonForwardNavigableLayer::theAllOuterEndcapLayers
private

Definition at line 131 of file MuonForwardNavigableLayer.h.

Referenced by getAllOuterEndcapLayers().

ForwardDetLayer* MuonForwardNavigableLayer::theDetLayer
private

Definition at line 126 of file MuonForwardNavigableLayer.h.

MapB MuonForwardNavigableLayer::theInnerBarrelLayers
private

Definition at line 127 of file MuonForwardNavigableLayer.h.

Referenced by getInnerBarrelLayers().

MapE MuonForwardNavigableLayer::theInnerEndcapLayers
private

Definition at line 129 of file MuonForwardNavigableLayer.h.

Referenced by getInnerEndcapLayers().

MapE MuonForwardNavigableLayer::theOuterEndcapLayers
private

Definition at line 128 of file MuonForwardNavigableLayer.h.

Referenced by getOuterEndcapLayers().