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
 
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 = 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

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

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

Member Function Documentation

◆ compatibleLayers() [1/2]

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

Implements MuonNavigableLayer.

Definition at line 62 of file MuonForwardNavigableLayer.cc.

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

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 }
void pushResult(std::vector< const DetLayer *> &result, const MapB &map) const

◆ compatibleLayers() [2/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.

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

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 }
bool isInsideOut(const FreeTrajectoryState &fts) const
void pushCompatibleResult(std::vector< const DetLayer *> &result, const MapB &map, const FreeTrajectoryState &fts) const

◆ detLayer()

const DetLayer * MuonForwardNavigableLayer::detLayer ( ) const
overridevirtual

return DetLayer

Implements MuonNavigableLayer.

Definition at line 141 of file MuonForwardNavigableLayer.cc.

141 { return theDetLayer; }
const ForwardDetLayer * theDetLayer

◆ getAllInnerBarrelLayers()

MapB MuonForwardNavigableLayer::getAllInnerBarrelLayers ( ) const
inline

◆ getAllInnerEndcapLayers()

MapE MuonForwardNavigableLayer::getAllInnerEndcapLayers ( ) const
inline

◆ getAllOuterEndcapLayers()

MapE MuonForwardNavigableLayer::getAllOuterEndcapLayers ( ) const
inline

◆ getInnerBarrelLayers()

MapB MuonForwardNavigableLayer::getInnerBarrelLayers ( ) const
inline

Definition at line 77 of file MuonForwardNavigableLayer.h.

References theInnerBarrelLayers.

◆ getInnerEndcapLayers()

MapE MuonForwardNavigableLayer::getInnerEndcapLayers ( ) const
inline

Definition at line 76 of file MuonForwardNavigableLayer.h.

References theInnerEndcapLayers.

◆ getOuterEndcapLayers()

MapE MuonForwardNavigableLayer::getOuterEndcapLayers ( ) const
inline

Operations.

Definition at line 75 of file MuonForwardNavigableLayer.h.

References theOuterEndcapLayers.

◆ nextLayers() [1/2]

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

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 25 of file MuonForwardNavigableLayer.cc.

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

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 }
void pushResult(std::vector< const DetLayer *> &result, const MapB &map) const

◆ nextLayers() [2/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.

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

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 }
void pushResult(std::vector< const DetLayer *> &result, const MapB &map) const
bool isInsideOut(const FreeTrajectoryState &fts) const

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

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

125  {
127  for (MapBI i = map.begin(); i != map.end(); i++)
128  if ((*i).second.isCompatible(range))
129  result.push_back((*i).first);
130 }
MapB::const_iterator MapBI
MuonEtaRange trackingRange(const FreeTrajectoryState &fts) const

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

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

134  {
136  for (MapEI i = map.begin(); i != map.end(); i++)
137  if ((*i).second.isCompatible(range))
138  result.push_back((*i).first);
139 }
MapE::const_iterator MapEI
MuonEtaRange trackingRange(const FreeTrajectoryState &fts) const

◆ pushResult() [1/4]

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

Definition at line 97 of file MuonForwardNavigableLayer.cc.

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

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

◆ pushResult() [2/4]

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

Definition at line 102 of file MuonForwardNavigableLayer.cc.

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

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

◆ pushResult() [3/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.

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

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 }
T eta() const
Definition: PV3DBase.h:73
MapB::const_iterator MapBI
GlobalPoint position() const

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

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

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 }
T eta() const
Definition: PV3DBase.h:73
GlobalPoint position() const
MapE::const_iterator MapEI

◆ 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 }
Log< level::Error, false > LogError

◆ setInwardCompatibleLinks()

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

◆ setInwardLinks()

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

set inward links

Definition at line 147 of file MuonForwardNavigableLayer.cc.

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