CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
ETLNavigableLayer Class Reference

#include <ETLNavigableLayer.h>

Inheritance diagram for ETLNavigableLayer:
MTDNavigableLayer 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...
 
 ETLNavigableLayer (const ForwardDetLayer *fdl, const MapB &innerBarrel, const MapE &outerEndcap, const MapE &innerEndcap, const MapB &allInnerBarrel, const MapE &allOuterEndcap, const MapE &allInnerEndcap)
 
 ETLNavigableLayer (const ForwardDetLayer *fdl, const MapE &outerEndcap)
 Constructor with outer layers only. More...
 
 ETLNavigableLayer (const ForwardDetLayer *fdl, const MapE &outerEndcap, const MapE &allOuterEndcap)
 Constructor with all outer layers only. More...
 
MapB getAllInnerBarrelLayers () const
 
MapE getAllInnerEndcapLayers () const
 
MapE getAllOuterEndcapLayers () const
 
MapB getInnerBarrelLayers () const
 
MapE getInnerEndcapLayers () const
 
MapE getOuterEndcapLayers () const
 Operations. 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 MTDNavigableLayer
bool isInsideOut (const FreeTrajectoryState &fts) const
 
MTDEtaRange 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.

Navigable layer for ETL

Author
: L. Gray - FNAL

Adapted from ETLNavigableLayer

Definition at line 33 of file ETLNavigableLayer.h.

Constructor & Destructor Documentation

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

Definition at line 37 of file ETLNavigableLayer.h.

43  :
44  theDetLayer(fdl),
45  theInnerBarrelLayers(innerBarrel),
46  theOuterEndcapLayers(outerEndcap),
47  theInnerEndcapLayers(innerEndcap),
48  theAllInnerBarrelLayers(allInnerBarrel),
49  theAllOuterEndcapLayers(allOuterEndcap),
50  theAllInnerEndcapLayers(allInnerEndcap) {}
const ForwardDetLayer * theDetLayer
ETLNavigableLayer::ETLNavigableLayer ( const ForwardDetLayer fdl,
const MapE outerEndcap 
)
inline

Constructor with outer layers only.

Definition at line 53 of file ETLNavigableLayer.h.

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

Constructor with all outer layers only.

Definition at line 58 of file ETLNavigableLayer.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 * > ETLNavigableLayer::compatibleLayers ( NavigationDirection  dir) const
overridevirtual

Implements MTDNavigableLayer.

Definition at line 70 of file ETLNavigableLayer.cc.

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

Referenced by ETLNavigableLayer().

70  {
71 
72  vector<const DetLayer*> result;
73  vector<const DetLayer*> barrel;
74 
75  if ( dir == insideOut ) {
77  }
78  else {
80  reverse(result.begin(),result.end());
82  reverse(barrel.begin(),barrel.end());
83  result.insert(result.end(),barrel.begin(),barrel.end());
84  }
85 
86  result.reserve(result.size());
87  return result;
88 
89 }
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
dbl *** dir
Definition: mlp_gen.cc:35
vector< const DetLayer * > ETLNavigableLayer::compatibleLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
overridevirtual

NavigableLayer interface.

Implements MTDNavigableLayer.

Definition at line 91 of file ETLNavigableLayer.cc.

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

92  {
93  vector<const DetLayer*> result;
94  vector<const DetLayer*> barrel;
95 
96  if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) {
98  }
99  else {
101  reverse(result.begin(),result.end());
103  reverse(barrel.begin(),barrel.end());
104  result.insert(result.end(),barrel.begin(),barrel.end());
105  }
106  result.reserve(result.size());
107  return result;
108 
109 }
void pushCompatibleResult(std::vector< const DetLayer * > &result, const MapB &map, const FreeTrajectoryState &fts) const
bool isInsideOut(const FreeTrajectoryState &fts) const
dbl *** dir
Definition: mlp_gen.cc:35
const DetLayer * ETLNavigableLayer::detLayer ( ) const
overridevirtual

return DetLayer

Implements MTDNavigableLayer.

Definition at line 165 of file ETLNavigableLayer.cc.

Referenced by ETLNavigableLayer().

165  {
166 
167  return theDetLayer;
168 
169 }
const ForwardDetLayer * theDetLayer
MapB ETLNavigableLayer::getAllInnerBarrelLayers ( ) const
inline
MapE ETLNavigableLayer::getAllInnerEndcapLayers ( ) const
inline

Definition at line 90 of file ETLNavigableLayer.h.

References theAllInnerEndcapLayers.

MapE ETLNavigableLayer::getAllOuterEndcapLayers ( ) const
inline

Definition at line 89 of file ETLNavigableLayer.h.

References theAllOuterEndcapLayers.

MapB ETLNavigableLayer::getInnerBarrelLayers ( ) const
inline

Definition at line 87 of file ETLNavigableLayer.h.

References theInnerBarrelLayers.

87 { return theInnerBarrelLayers; }
MapE ETLNavigableLayer::getInnerEndcapLayers ( ) const
inline

Definition at line 86 of file ETLNavigableLayer.h.

References theInnerEndcapLayers.

86 { return theInnerEndcapLayers; }
MapE ETLNavigableLayer::getOuterEndcapLayers ( ) const
inline

Operations.

Definition at line 85 of file ETLNavigableLayer.h.

References theOuterEndcapLayers.

85 { return theOuterEndcapLayers; }
vector< const DetLayer * > ETLNavigableLayer::nextLayers ( NavigationDirection  dir) const
overridevirtual

NavigableLayer interface.

Implements MTDNavigableLayer.

Definition at line 24 of file ETLNavigableLayer.cc.

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

Referenced by ETLNavigableLayer().

24  {
25 
26  vector<const DetLayer*> result;
27  vector<const DetLayer*> barrel;
28 
29  if ( dir == insideOut ) {
31  }
32  else {
34  reverse(result.begin(),result.end());
36  reverse(barrel.begin(),barrel.end());
37  result.insert(result.end(),barrel.begin(),barrel.end());
38  }
39 
40  result.reserve(result.size());
41  return result;
42 
43 }
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
dbl *** dir
Definition: mlp_gen.cc:35
vector< const DetLayer * > ETLNavigableLayer::nextLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
overridevirtual

NavigableLayer interface.

Implements MTDNavigableLayer.

Definition at line 47 of file ETLNavigableLayer.cc.

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

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

Definition at line 147 of file ETLNavigableLayer.cc.

References mps_fire::i.

Referenced by getAllInnerBarrelLayers().

149  {
150  MTDEtaRange range=trackingRange(fts);
151  for ( MapBI i = map.begin(); i != map.end(); i++ )
152  if ((*i).second.isCompatible(range)) result.push_back((*i).first);
153 }
MapB::const_iterator MapBI
MTDEtaRange trackingRange(const FreeTrajectoryState &fts) const
void ETLNavigableLayer::pushCompatibleResult ( std::vector< const DetLayer * > &  result,
const MapE map,
const FreeTrajectoryState fts 
) const
private

Definition at line 155 of file ETLNavigableLayer.cc.

References mps_fire::i.

157  {
158  MTDEtaRange range=trackingRange(fts);
159  for (MapEI i = map.begin(); i != map.end(); i++)
160  if ((*i).second.isCompatible(range)) result.push_back((*i).first);
161 
162 }
MTDEtaRange trackingRange(const FreeTrajectoryState &fts) const
MapE::const_iterator MapEI
void ETLNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapB map 
) const
private

Definition at line 111 of file ETLNavigableLayer.cc.

References mps_fire::i.

Referenced by getAllInnerBarrelLayers().

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

Definition at line 119 of file ETLNavigableLayer.cc.

References mps_fire::i.

120  {
121 
122  for (MapEI i = map.begin(); i != map.end(); i++) result.push_back((*i).first);
123 
124 }
MapE::const_iterator MapEI
void ETLNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapB map,
const FreeTrajectoryState fts 
) const
private

Definition at line 137 of file ETLNavigableLayer.cc.

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

139  {
140 
141  for (MapBI i = map.begin(); i != map.end(); i++)
142  if ((*i).second.isInside(fts.position().eta())) result.push_back((*i).first);
143 
144 }
MapB::const_iterator MapBI
GlobalPoint position() const
T eta() const
Definition: PV3DBase.h:76
void ETLNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapE map,
const FreeTrajectoryState fts 
) const
private

Definition at line 127 of file ETLNavigableLayer.cc.

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

129  {
130 
131  for (MapEI i = map.begin(); i != map.end(); i++)
132  if ((*i).second.isInside(fts.position().eta())) result.push_back((*i).first);
133 
134 }
GlobalPoint position() const
T eta() const
Definition: PV3DBase.h:76
MapE::const_iterator MapEI
void ETLNavigableLayer::setDetLayer ( const DetLayer dl)
overridevirtual

set DetLayer

Implements MTDNavigableLayer.

Definition at line 172 of file ETLNavigableLayer.cc.

Referenced by ETLNavigableLayer().

172  {
173 
174  edm::LogError ("ETLNavigablaLayer") << "ETLNavigableLayer::setDetLayer called!! " << endl;
175 
176 }
void ETLNavigableLayer::setInwardCompatibleLinks ( const MapB innerCBL,
const MapE innerCEL 
)

Definition at line 186 of file ETLNavigableLayer.cc.

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

187  {
188 
189  theAllInnerBarrelLayers = innerCBL;
190  theAllInnerEndcapLayers = innerCEL;
191 
192 }
void ETLNavigableLayer::setInwardLinks ( const MapB innerBL,
const MapE innerEL 
)

set inward links

Definition at line 179 of file ETLNavigableLayer.cc.

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

180  {
181 
182  theInnerBarrelLayers = innerBL;
183  theInnerEndcapLayers = innerEL;
184 
185 }

Member Data Documentation

MapB ETLNavigableLayer::theAllInnerBarrelLayers
private

Definition at line 128 of file ETLNavigableLayer.h.

Referenced by getAllInnerBarrelLayers().

MapE ETLNavigableLayer::theAllInnerEndcapLayers
private

Definition at line 130 of file ETLNavigableLayer.h.

Referenced by getAllInnerEndcapLayers().

MapE ETLNavigableLayer::theAllOuterEndcapLayers
private

Definition at line 129 of file ETLNavigableLayer.h.

Referenced by getAllOuterEndcapLayers().

const ForwardDetLayer* ETLNavigableLayer::theDetLayer
private

Definition at line 124 of file ETLNavigableLayer.h.

MapB ETLNavigableLayer::theInnerBarrelLayers
private

Definition at line 125 of file ETLNavigableLayer.h.

Referenced by getInnerBarrelLayers().

MapE ETLNavigableLayer::theInnerEndcapLayers
private

Definition at line 127 of file ETLNavigableLayer.h.

Referenced by getInnerEndcapLayers().

MapE ETLNavigableLayer::theOuterEndcapLayers
private

Definition at line 126 of file ETLNavigableLayer.h.

Referenced by getOuterEndcapLayers().