CMS 3D CMS Logo

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
 
virtual void setDetLayer (DetLayer const *dl)=0
 
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 = 0
 

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 53 of file MuonForwardNavigableLayer.h.

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

Constructor with all outer layers only.

Definition at line 58 of file MuonForwardNavigableLayer.h.

References compatibleLayers(), detLayer(), dir, nextLayers(), and setDetLayer().

60  :
61  theDetLayer(fdl),
62  theOuterEndcapLayers(outerEndcap),
63  theAllOuterEndcapLayers(allOuterEndcap) {}
const ForwardDetLayer * theDetLayer

Member Function Documentation

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

Implements MuonNavigableLayer.

Definition at line 72 of file MuonForwardNavigableLayer.cc.

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

Referenced by MuonForwardNavigableLayer().

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
dbl *** dir
Definition: mlp_gen.cc:35
vector< const DetLayer * > MuonForwardNavigableLayer::compatibleLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
overridevirtual

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 93 of file MuonForwardNavigableLayer.cc.

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

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
dbl *** dir
Definition: mlp_gen.cc:35
const DetLayer * MuonForwardNavigableLayer::detLayer ( ) const
overridevirtual

return DetLayer

Implements MuonNavigableLayer.

Definition at line 167 of file MuonForwardNavigableLayer.cc.

Referenced by MuonForwardNavigableLayer().

167  {
168 
169  return theDetLayer;
170 
171 }
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 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
overridevirtual

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 26 of file MuonForwardNavigableLayer.cc.

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

Referenced by MuonForwardNavigableLayer().

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
dbl *** dir
Definition: mlp_gen.cc:35
vector< const DetLayer * > MuonForwardNavigableLayer::nextLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
overridevirtual

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 49 of file MuonForwardNavigableLayer.cc.

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

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
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 mps_fire::i.

Referenced by getAllInnerBarrelLayers().

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 }
MapB::const_iterator MapBI
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 mps_fire::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 }
MuonEtaRange trackingRange(const FreeTrajectoryState &fts) const
MapE::const_iterator MapEI
void MuonForwardNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapB map 
) const
private

Definition at line 113 of file MuonForwardNavigableLayer.cc.

References mps_fire::i.

Referenced by getAllInnerBarrelLayers().

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

Definition at line 121 of file MuonForwardNavigableLayer.cc.

References mps_fire::i.

122  {
123 
124  for (MapEI i = map.begin(); i != map.end(); i++) result.push_back((*i).first);
125 
126 }
MapE::const_iterator MapEI
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(), mps_fire::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 }
MapB::const_iterator MapBI
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(), mps_fire::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 }
GlobalPoint position() const
T eta() const
Definition: PV3DBase.h:76
MapE::const_iterator MapEI
void MuonForwardNavigableLayer::setDetLayer ( const DetLayer dl)
overridevirtual

set DetLayer

Implements MuonNavigableLayer.

Definition at line 174 of file MuonForwardNavigableLayer.cc.

Referenced by MuonForwardNavigableLayer().

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

set inward links

Definition at line 181 of file MuonForwardNavigableLayer.cc.

Referenced by MuonNavigationSchool::createInverseLinks(), and getAllInnerBarrelLayers().

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().

const 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().