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

Definition at line 33 of file MuonForwardNavigableLayer.h.

Constructor & Destructor Documentation

◆ MuonForwardNavigableLayer() [1/3]

MuonForwardNavigableLayer::MuonForwardNavigableLayer ( 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 MuonForwardNavigableLayer.h.

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

◆ MuonForwardNavigableLayer() [2/3]

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

Constructor with outer layers only.

Definition at line 51 of file MuonForwardNavigableLayer.h.

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

◆ MuonForwardNavigableLayer() [3/3]

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

Constructor with all outer layers only.

Definition at line 54 of file MuonForwardNavigableLayer.h.

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

Member Function Documentation

◆ compatibleLayers() [1/2]

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

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 79 of file MuonForwardNavigableLayer.cc.

80  {
81  vector<const DetLayer*> result;
82  vector<const DetLayer*> barrel;
83 
84  if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) {
86  } else {
88  reverse(result.begin(), result.end());
90  reverse(barrel.begin(), barrel.end());
91  result.insert(result.end(), barrel.begin(), barrel.end());
92  }
93  result.reserve(result.size());
94  return result;
95 }

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

◆ compatibleLayers() [2/2]

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

Implements MuonNavigableLayer.

Definition at line 62 of file MuonForwardNavigableLayer.cc.

62  {
63  vector<const DetLayer*> result;
64  vector<const DetLayer*> barrel;
65 
66  if (dir == insideOut) {
68  } else {
70  reverse(result.begin(), result.end());
72  reverse(barrel.begin(), barrel.end());
73  result.insert(result.end(), barrel.begin(), barrel.end());
74  }
75 
76  result.reserve(result.size());
77  return result;
78 }

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

◆ detLayer()

const DetLayer * MuonForwardNavigableLayer::detLayer ( ) const
overridevirtual

return DetLayer

Implements MuonNavigableLayer.

Definition at line 141 of file MuonForwardNavigableLayer.cc.

141 { return theDetLayer; }

◆ getAllInnerBarrelLayers()

MapB MuonForwardNavigableLayer::getAllInnerBarrelLayers ( ) const
inline

Definition at line 81 of file MuonForwardNavigableLayer.h.

81 { return theAllInnerBarrelLayers; }

References theAllInnerBarrelLayers.

◆ getAllInnerEndcapLayers()

MapE MuonForwardNavigableLayer::getAllInnerEndcapLayers ( ) const
inline

Definition at line 80 of file MuonForwardNavigableLayer.h.

80 { return theAllInnerEndcapLayers; }

References theAllInnerEndcapLayers.

◆ getAllOuterEndcapLayers()

MapE MuonForwardNavigableLayer::getAllOuterEndcapLayers ( ) const
inline

Definition at line 79 of file MuonForwardNavigableLayer.h.

79 { return theAllOuterEndcapLayers; }

References theAllOuterEndcapLayers.

◆ getInnerBarrelLayers()

MapB MuonForwardNavigableLayer::getInnerBarrelLayers ( ) const
inline

Definition at line 77 of file MuonForwardNavigableLayer.h.

77 { return theInnerBarrelLayers; }

References theInnerBarrelLayers.

◆ getInnerEndcapLayers()

MapE MuonForwardNavigableLayer::getInnerEndcapLayers ( ) const
inline

Definition at line 76 of file MuonForwardNavigableLayer.h.

76 { return theInnerEndcapLayers; }

References theInnerEndcapLayers.

◆ getOuterEndcapLayers()

MapE MuonForwardNavigableLayer::getOuterEndcapLayers ( ) const
inline

Operations.

Definition at line 75 of file MuonForwardNavigableLayer.h.

75 { return theOuterEndcapLayers; }

References theOuterEndcapLayers.

◆ nextLayers() [1/2]

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

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 43 of file MuonForwardNavigableLayer.cc.

44  {
45  vector<const DetLayer*> result;
46  vector<const DetLayer*> barrel;
47 
48  if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) {
50  } else {
52  reverse(result.begin(), result.end());
54  reverse(barrel.begin(), barrel.end());
55  result.insert(result.end(), barrel.begin(), barrel.end());
56  }
57 
58  result.reserve(result.size());
59  return result;
60 }

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

◆ nextLayers() [2/2]

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

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 25 of file MuonForwardNavigableLayer.cc.

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

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

◆ pushCompatibleResult() [1/2]

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

Definition at line 123 of file MuonForwardNavigableLayer.cc.

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

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

◆ pushCompatibleResult() [2/2]

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

Definition at line 132 of file MuonForwardNavigableLayer.cc.

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

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

◆ pushResult() [1/4]

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

Definition at line 97 of file MuonForwardNavigableLayer.cc.

97  {
98  for (MapBI i = map.begin(); i != map.end(); i++)
99  result.push_back((*i).first);
100 }

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

◆ pushResult() [2/4]

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

Definition at line 115 of file MuonForwardNavigableLayer.cc.

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

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

◆ pushResult() [3/4]

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

Definition at line 102 of file MuonForwardNavigableLayer.cc.

102  {
103  for (MapEI i = map.begin(); i != map.end(); i++)
104  result.push_back((*i).first);
105 }

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

◆ pushResult() [4/4]

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

Definition at line 107 of file MuonForwardNavigableLayer.cc.

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

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

◆ setDetLayer()

void MuonForwardNavigableLayer::setDetLayer ( const DetLayer dl)
overridevirtual

set DetLayer

Implements MuonNavigableLayer.

Definition at line 143 of file MuonForwardNavigableLayer.cc.

143  {
144  edm::LogError("MuonForwardNavigablaLayer") << "MuonForwardNavigableLayer::setDetLayer called!! " << endl;
145 }

◆ setInwardCompatibleLinks()

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

Definition at line 151 of file MuonForwardNavigableLayer.cc.

151  {
152  theAllInnerBarrelLayers = innerCBL;
153  theAllInnerEndcapLayers = innerCEL;
154 }

Referenced by MuonNavigationSchool::createInverseLinks().

◆ setInwardLinks()

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

set inward links

Definition at line 147 of file MuonForwardNavigableLayer.cc.

147  {
148  theInnerBarrelLayers = innerBL;
149  theInnerEndcapLayers = innerEL;
150 }

Referenced by MuonNavigationSchool::createInverseLinks().

Member Data Documentation

◆ theAllInnerBarrelLayers

MapB MuonForwardNavigableLayer::theAllInnerBarrelLayers
private

Definition at line 109 of file MuonForwardNavigableLayer.h.

Referenced by getAllInnerBarrelLayers().

◆ theAllInnerEndcapLayers

MapE MuonForwardNavigableLayer::theAllInnerEndcapLayers
private

Definition at line 111 of file MuonForwardNavigableLayer.h.

Referenced by getAllInnerEndcapLayers().

◆ theAllOuterEndcapLayers

MapE MuonForwardNavigableLayer::theAllOuterEndcapLayers
private

Definition at line 110 of file MuonForwardNavigableLayer.h.

Referenced by getAllOuterEndcapLayers().

◆ theDetLayer

const ForwardDetLayer* MuonForwardNavigableLayer::theDetLayer
private

Definition at line 105 of file MuonForwardNavigableLayer.h.

◆ theInnerBarrelLayers

MapB MuonForwardNavigableLayer::theInnerBarrelLayers
private

Definition at line 106 of file MuonForwardNavigableLayer.h.

Referenced by getInnerBarrelLayers().

◆ theInnerEndcapLayers

MapE MuonForwardNavigableLayer::theInnerEndcapLayers
private

Definition at line 108 of file MuonForwardNavigableLayer.h.

Referenced by getInnerEndcapLayers().

◆ theOuterEndcapLayers

MapE MuonForwardNavigableLayer::theOuterEndcapLayers
private

Definition at line 107 of file MuonForwardNavigableLayer.h.

Referenced by getOuterEndcapLayers().

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