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 (const FreeTrajectoryState &fts, PropagationDirection dir) const override
 NavigableLayer interface. More...
 
std::vector< const DetLayer * > compatibleLayers (NavigationDirection dir) const override
 
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 (const FreeTrajectoryState &fts, PropagationDirection dir) const override
 NavigableLayer interface. More...
 
std::vector< const DetLayer * > nextLayers (NavigationDirection 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
 
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 MapB &map, const FreeTrajectoryState &fts) const
 
void pushResult (std::vector< const DetLayer * > &result, const MapE &map) 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 = nullptr
 

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() [1/3]

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 35 of file ETLNavigableLayer.h.

42  : theDetLayer(fdl),
43  theInnerBarrelLayers(innerBarrel),
44  theOuterEndcapLayers(outerEndcap),
45  theInnerEndcapLayers(innerEndcap),
46  theAllInnerBarrelLayers(allInnerBarrel),
47  theAllOuterEndcapLayers(allOuterEndcap),
48  theAllInnerEndcapLayers(allInnerEndcap) {}

◆ ETLNavigableLayer() [2/3]

ETLNavigableLayer::ETLNavigableLayer ( const ForwardDetLayer fdl,
const MapE outerEndcap 
)
inline

Constructor with outer layers only.

Definition at line 51 of file ETLNavigableLayer.h.

52  : theDetLayer(fdl), theOuterEndcapLayers(outerEndcap) {}

◆ ETLNavigableLayer() [3/3]

ETLNavigableLayer::ETLNavigableLayer ( const ForwardDetLayer fdl,
const MapE outerEndcap,
const MapE allOuterEndcap 
)
inline

Constructor with all outer layers only.

Definition at line 54 of file ETLNavigableLayer.h.

55  : theDetLayer(fdl), theOuterEndcapLayers(outerEndcap), theAllOuterEndcapLayers(allOuterEndcap) {}

Member Function Documentation

◆ compatibleLayers() [1/2]

vector< const DetLayer * > ETLNavigableLayer::compatibleLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
overridevirtual

NavigableLayer interface.

Implements MTDNavigableLayer.

Definition at line 76 of file ETLNavigableLayer.cc.

77  {
78  vector<const DetLayer*> result;
79  vector<const DetLayer*> barrel;
80 
81  if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) {
83  } else {
85  reverse(result.begin(), result.end());
87  reverse(barrel.begin(), barrel.end());
88  result.insert(result.end(), barrel.begin(), barrel.end());
89  }
90  result.reserve(result.size());
91  return result;
92 }

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

◆ compatibleLayers() [2/2]

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

Implements MTDNavigableLayer.

Definition at line 59 of file ETLNavigableLayer.cc.

59  {
60  vector<const DetLayer*> result;
61  vector<const DetLayer*> barrel;
62 
63  if (dir == insideOut) {
65  } else {
67  reverse(result.begin(), result.end());
69  reverse(barrel.begin(), barrel.end());
70  result.insert(result.end(), barrel.begin(), barrel.end());
71  }
72 
73  result.reserve(result.size());
74  return result;
75 }

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

◆ detLayer()

const DetLayer * ETLNavigableLayer::detLayer ( ) const
overridevirtual

return DetLayer

Implements MTDNavigableLayer.

Definition at line 138 of file ETLNavigableLayer.cc.

138 { return theDetLayer; }

◆ getAllInnerBarrelLayers()

MapB ETLNavigableLayer::getAllInnerBarrelLayers ( ) const
inline

Definition at line 81 of file ETLNavigableLayer.h.

81 { return theAllInnerBarrelLayers; }

References theAllInnerBarrelLayers.

◆ getAllInnerEndcapLayers()

MapE ETLNavigableLayer::getAllInnerEndcapLayers ( ) const
inline

Definition at line 80 of file ETLNavigableLayer.h.

80 { return theAllInnerEndcapLayers; }

References theAllInnerEndcapLayers.

◆ getAllOuterEndcapLayers()

MapE ETLNavigableLayer::getAllOuterEndcapLayers ( ) const
inline

Definition at line 79 of file ETLNavigableLayer.h.

79 { return theAllOuterEndcapLayers; }

References theAllOuterEndcapLayers.

◆ getInnerBarrelLayers()

MapB ETLNavigableLayer::getInnerBarrelLayers ( ) const
inline

Definition at line 77 of file ETLNavigableLayer.h.

77 { return theInnerBarrelLayers; }

References theInnerBarrelLayers.

◆ getInnerEndcapLayers()

MapE ETLNavigableLayer::getInnerEndcapLayers ( ) const
inline

Definition at line 76 of file ETLNavigableLayer.h.

76 { return theInnerEndcapLayers; }

References theInnerEndcapLayers.

◆ getOuterEndcapLayers()

MapE ETLNavigableLayer::getOuterEndcapLayers ( ) const
inline

Operations.

Definition at line 75 of file ETLNavigableLayer.h.

75 { return theOuterEndcapLayers; }

References theOuterEndcapLayers.

◆ nextLayers() [1/2]

vector< const DetLayer * > ETLNavigableLayer::nextLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const
overridevirtual

NavigableLayer interface.

Implements MTDNavigableLayer.

Definition at line 41 of file ETLNavigableLayer.cc.

41  {
42  vector<const DetLayer*> result;
43  vector<const DetLayer*> barrel;
44 
45  if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) {
47  } else {
49  reverse(result.begin(), result.end());
51  reverse(barrel.begin(), barrel.end());
52  result.insert(result.end(), barrel.begin(), barrel.end());
53  }
54 
55  result.reserve(result.size());
56  return result;
57 }

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

◆ nextLayers() [2/2]

vector< const DetLayer * > ETLNavigableLayer::nextLayers ( NavigationDirection  dir) const
overridevirtual

NavigableLayer interface.

Implements MTDNavigableLayer.

Definition at line 23 of file ETLNavigableLayer.cc.

23  {
24  vector<const DetLayer*> result;
25  vector<const DetLayer*> barrel;
26 
27  if (dir == insideOut) {
29  } else {
31  reverse(result.begin(), result.end());
33  reverse(barrel.begin(), barrel.end());
34  result.insert(result.end(), barrel.begin(), barrel.end());
35  }
36 
37  result.reserve(result.size());
38  return result;
39 }

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

◆ pushCompatibleResult() [1/2]

void ETLNavigableLayer::pushCompatibleResult ( std::vector< const DetLayer * > &  result,
const MapB map,
const FreeTrajectoryState fts 
) const
private

Definition at line 120 of file ETLNavigableLayer.cc.

122  {
124  for (MapBI i = map.begin(); i != map.end(); i++)
125  if ((*i).second.isCompatible(range))
126  result.push_back((*i).first);
127 }

References mps_fire::i, genParticles_cff::map, FastTimerService_cff::range, and mps_fire::result.

◆ pushCompatibleResult() [2/2]

void ETLNavigableLayer::pushCompatibleResult ( std::vector< const DetLayer * > &  result,
const MapE map,
const FreeTrajectoryState fts 
) const
private

Definition at line 129 of file ETLNavigableLayer.cc.

131  {
133  for (MapEI i = map.begin(); i != map.end(); i++)
134  if ((*i).second.isCompatible(range))
135  result.push_back((*i).first);
136 }

References mps_fire::i, genParticles_cff::map, FastTimerService_cff::range, and mps_fire::result.

◆ pushResult() [1/4]

void ETLNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapB map 
) const
private

Definition at line 94 of file ETLNavigableLayer.cc.

94  {
95  for (MapBI i = map.begin(); i != map.end(); i++)
96  result.push_back((*i).first);
97 }

References mps_fire::i, genParticles_cff::map, and mps_fire::result.

◆ pushResult() [2/4]

void ETLNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapB map,
const FreeTrajectoryState fts 
) const
private

Definition at line 112 of file ETLNavigableLayer.cc.

114  {
115  for (MapBI i = map.begin(); i != map.end(); i++)
116  if ((*i).second.isInside(fts.position().eta()))
117  result.push_back((*i).first);
118 }

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

◆ pushResult() [3/4]

void ETLNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapE map 
) const
private

Definition at line 99 of file ETLNavigableLayer.cc.

99  {
100  for (MapEI i = map.begin(); i != map.end(); i++)
101  result.push_back((*i).first);
102 }

References mps_fire::i, genParticles_cff::map, and mps_fire::result.

◆ pushResult() [4/4]

void ETLNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapE map,
const FreeTrajectoryState fts 
) const
private

Definition at line 104 of file ETLNavigableLayer.cc.

106  {
107  for (MapEI i = map.begin(); i != map.end(); i++)
108  if ((*i).second.isInside(fts.position().eta()))
109  result.push_back((*i).first);
110 }

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

◆ setDetLayer()

void ETLNavigableLayer::setDetLayer ( const DetLayer dl)
overridevirtual

set DetLayer

Implements MTDNavigableLayer.

Definition at line 140 of file ETLNavigableLayer.cc.

140  {
141  edm::LogError("ETLNavigablaLayer") << "ETLNavigableLayer::setDetLayer called!! " << endl;
142 }

◆ setInwardCompatibleLinks()

void ETLNavigableLayer::setInwardCompatibleLinks ( const MapB innerCBL,
const MapE innerCEL 
)

Definition at line 148 of file ETLNavigableLayer.cc.

148  {
149  theAllInnerBarrelLayers = innerCBL;
150  theAllInnerEndcapLayers = innerCEL;
151 }

Referenced by MTDNavigationSchool::createInverseLinks().

◆ setInwardLinks()

void ETLNavigableLayer::setInwardLinks ( const MapB innerBL,
const MapE innerEL 
)

set inward links

Definition at line 144 of file ETLNavigableLayer.cc.

144  {
145  theInnerBarrelLayers = innerBL;
146  theInnerEndcapLayers = innerEL;
147 }

Referenced by MTDNavigationSchool::createInverseLinks().

Member Data Documentation

◆ theAllInnerBarrelLayers

MapB ETLNavigableLayer::theAllInnerBarrelLayers
private

Definition at line 109 of file ETLNavigableLayer.h.

Referenced by getAllInnerBarrelLayers().

◆ theAllInnerEndcapLayers

MapE ETLNavigableLayer::theAllInnerEndcapLayers
private

Definition at line 111 of file ETLNavigableLayer.h.

Referenced by getAllInnerEndcapLayers().

◆ theAllOuterEndcapLayers

MapE ETLNavigableLayer::theAllOuterEndcapLayers
private

Definition at line 110 of file ETLNavigableLayer.h.

Referenced by getAllOuterEndcapLayers().

◆ theDetLayer

const ForwardDetLayer* ETLNavigableLayer::theDetLayer
private

Definition at line 105 of file ETLNavigableLayer.h.

◆ theInnerBarrelLayers

MapB ETLNavigableLayer::theInnerBarrelLayers
private

Definition at line 106 of file ETLNavigableLayer.h.

Referenced by getInnerBarrelLayers().

◆ theInnerEndcapLayers

MapE ETLNavigableLayer::theInnerEndcapLayers
private

Definition at line 108 of file ETLNavigableLayer.h.

Referenced by getInnerEndcapLayers().

◆ theOuterEndcapLayers

MapE ETLNavigableLayer::theOuterEndcapLayers
private

Definition at line 107 of file ETLNavigableLayer.h.

Referenced by getOuterEndcapLayers().

FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
mps_fire.i
i
Definition: mps_fire.py:355
Reference_intrackfit_cff.barrel
list barrel
Definition: Reference_intrackfit_cff.py:37
MTDNavigableLayer::trackingRange
MTDEtaRange trackingRange(const FreeTrajectoryState &fts) const
Definition: MTDNavigableLayer.cc:36
ETLNavigableLayer::theAllInnerEndcapLayers
MapE theAllInnerEndcapLayers
Definition: ETLNavigableLayer.h:111
oppositeToMomentum
Definition: PropagationDirection.h:4
ETLNavigableLayer::theInnerBarrelLayers
MapB theInnerBarrelLayers
Definition: ETLNavigableLayer.h:106
MapBI
MapB::const_iterator MapBI
Definition: MTDDetLayerMap.h:38
FreeTrajectoryState::position
GlobalPoint position() const
Definition: FreeTrajectoryState.h:67
MTDEtaRange
Definition: MTDEtaRange.h:15
groupFilesInBlocks.reverse
reverse
Definition: groupFilesInBlocks.py:131
MTDNavigableLayer::isInsideOut
bool isInsideOut(const FreeTrajectoryState &fts) const
Definition: MTDNavigableLayer.cc:76
MapEI
MapE::const_iterator MapEI
Definition: MTDDetLayerMap.h:39
ETLNavigableLayer::theInnerEndcapLayers
MapE theInnerEndcapLayers
Definition: ETLNavigableLayer.h:108
ETLNavigableLayer::pushResult
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
Definition: ETLNavigableLayer.cc:94
edm::LogError
Definition: MessageLogger.h:183
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
ETLNavigableLayer::pushCompatibleResult
void pushCompatibleResult(std::vector< const DetLayer * > &result, const MapB &map, const FreeTrajectoryState &fts) const
Definition: ETLNavigableLayer.cc:120
ETLNavigableLayer::theAllInnerBarrelLayers
MapB theAllInnerBarrelLayers
Definition: ETLNavigableLayer.h:109
ETLNavigableLayer::theDetLayer
const ForwardDetLayer * theDetLayer
Definition: ETLNavigableLayer.h:105
ETLNavigableLayer::theAllOuterEndcapLayers
MapE theAllOuterEndcapLayers
Definition: ETLNavigableLayer.h:110
ETLNavigableLayer::theOuterEndcapLayers
MapE theOuterEndcapLayers
Definition: ETLNavigableLayer.h:107
insideOut
Definition: NavigationDirection.h:4
mps_fire.result
result
Definition: mps_fire.py:303
genParticles_cff.map
map
Definition: genParticles_cff.py:11
alongMomentum
Definition: PropagationDirection.h:4
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23