#include <RecoMuon/Navigation/interface/MuonForwardNavigableLayer.h>
Public Member Functions | |
virtual std::vector< const DetLayer * > | compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection dir) const |
NavigableLayer interface. | |
virtual std::vector< const DetLayer * > | compatibleLayers (NavigationDirection dir) const |
virtual DetLayer * | detLayer () const |
return DetLayer | |
MapB | getAllInnerBarrelLayers () const |
MapE | getAllInnerEndcapLayers () const |
MapE | getAllOuterEndcapLayers () const |
MapB | getInnerBarrelLayers () const |
MapE | getInnerEndcapLayers () const |
MapE | getOuterEndcapLayers () const |
Operations. | |
MuonForwardNavigableLayer (ForwardDetLayer *fdl, const MapE &outerEndcap, const MapE &allOuterEndcap) | |
Constructor with all outer layers only. | |
MuonForwardNavigableLayer (ForwardDetLayer *fdl, const MapE &outerEndcap) | |
Constructor with outer layers only. | |
MuonForwardNavigableLayer (ForwardDetLayer *fdl, const MapB &innerBarrel, const MapE &outerEndcap, const MapE &innerEndcap, const MapB &allInnerBarrel, const MapE &allOuterEndcap, const MapE &allInnerEndcap) | |
virtual std::vector< const DetLayer * > | nextLayers (const FreeTrajectoryState &fts, PropagationDirection dir) const |
NavigableLayer interface. | |
virtual std::vector< const DetLayer * > | nextLayers (NavigationDirection dir) const |
NavigableLayer interface. | |
virtual void | setDetLayer (DetLayer *) |
set DetLayer | |
void | setInwardCompatibleLinks (const MapB &, const MapE &) |
void | setInwardLinks (const MapB &, const MapE &) |
set inward links | |
Private Member Functions | |
void | pushCompatibleResult (std::vector< const DetLayer * > &result, const MapE &map, const FreeTrajectoryState &fts) const |
void | pushCompatibleResult (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 |
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 MapB &map) const |
Private Attributes | |
MapB | theAllInnerBarrelLayers |
MapE | theAllInnerEndcapLayers |
MapE | theAllOuterEndcapLayers |
ForwardDetLayer * | theDetLayer |
MapB | theInnerBarrelLayers |
MapE | theInnerEndcapLayers |
MapE | theOuterEndcapLayers |
Modification: Chang Liu: compatibleLayers(dir) and compatibleLayers(fts, dir) are added, which return ALL DetLayers that are compatible with a given DetLayer.
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 35 of file MuonForwardNavigableLayer.h.
MuonForwardNavigableLayer::MuonForwardNavigableLayer | ( | ForwardDetLayer * | fdl, | |
const MapB & | innerBarrel, | |||
const MapE & | outerEndcap, | |||
const MapE & | innerEndcap, | |||
const MapB & | allInnerBarrel, | |||
const MapE & | allOuterEndcap, | |||
const MapE & | allInnerEndcap | |||
) | [inline] |
Definition at line 39 of file MuonForwardNavigableLayer.h.
00045 : 00046 theDetLayer(fdl), 00047 theInnerBarrelLayers(innerBarrel), 00048 theOuterEndcapLayers(outerEndcap), 00049 theInnerEndcapLayers(innerEndcap), 00050 theAllInnerBarrelLayers(allInnerBarrel), 00051 theAllOuterEndcapLayers(allOuterEndcap), 00052 theAllInnerEndcapLayers(allInnerEndcap) {}
MuonForwardNavigableLayer::MuonForwardNavigableLayer | ( | ForwardDetLayer * | fdl, | |
const MapE & | outerEndcap | |||
) | [inline] |
Constructor with outer layers only.
Definition at line 55 of file MuonForwardNavigableLayer.h.
00056 : 00057 theDetLayer(fdl), 00058 theOuterEndcapLayers(outerEndcap) {}
MuonForwardNavigableLayer::MuonForwardNavigableLayer | ( | ForwardDetLayer * | fdl, | |
const MapE & | outerEndcap, | |||
const MapE & | allOuterEndcap | |||
) | [inline] |
Constructor with all outer layers only.
Definition at line 60 of file MuonForwardNavigableLayer.h.
00062 : 00063 theDetLayer(fdl), 00064 theOuterEndcapLayers(outerEndcap), 00065 theAllOuterEndcapLayers(allOuterEndcap) {}
vector< const DetLayer * > MuonForwardNavigableLayer::compatibleLayers | ( | const FreeTrajectoryState & | fts, | |
PropagationDirection | dir | |||
) | const [virtual] |
NavigableLayer interface.
Implements MuonNavigableLayer.
Definition at line 95 of file MuonForwardNavigableLayer.cc.
References alongMomentum, GeomDetEnumerators::barrel, MuonNavigableLayer::isInsideOut(), oppositeToMomentum, pushCompatibleResult(), HLT_VtxMuL3::result, theAllInnerBarrelLayers, theAllInnerEndcapLayers, and theAllOuterEndcapLayers.
00096 { 00097 vector<const DetLayer*> result; 00098 vector<const DetLayer*> barrel; 00099 00100 if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) { 00101 pushCompatibleResult(result, theAllOuterEndcapLayers, fts); 00102 } 00103 else { 00104 pushCompatibleResult(result, theAllInnerEndcapLayers, fts); 00105 reverse(result.begin(),result.end()); 00106 pushCompatibleResult(barrel, theAllInnerBarrelLayers, fts); 00107 reverse(barrel.begin(),barrel.end()); 00108 result.insert(result.end(),barrel.begin(),barrel.end()); 00109 } 00110 result.reserve(result.size()); 00111 return result; 00112 00113 }
vector< const DetLayer * > MuonForwardNavigableLayer::compatibleLayers | ( | NavigationDirection | dir | ) | const [virtual] |
Implements MuonNavigableLayer.
Definition at line 74 of file MuonForwardNavigableLayer.cc.
References GeomDetEnumerators::barrel, insideOut, pushResult(), HLT_VtxMuL3::result, theAllInnerBarrelLayers, theAllInnerEndcapLayers, and theAllOuterEndcapLayers.
00074 { 00075 00076 vector<const DetLayer*> result; 00077 vector<const DetLayer*> barrel; 00078 00079 if ( dir == insideOut ) { 00080 pushResult(result, theAllOuterEndcapLayers); 00081 } 00082 else { 00083 pushResult(result, theAllInnerEndcapLayers); 00084 reverse(result.begin(),result.end()); 00085 pushResult(barrel, theAllInnerBarrelLayers); 00086 reverse(barrel.begin(),barrel.end()); 00087 result.insert(result.end(),barrel.begin(),barrel.end()); 00088 } 00089 00090 result.reserve(result.size()); 00091 return result; 00092 00093 }
DetLayer * MuonForwardNavigableLayer::detLayer | ( | ) | const [virtual] |
return DetLayer
Implements MuonNavigableLayer.
Definition at line 169 of file MuonForwardNavigableLayer.cc.
References theDetLayer.
00169 { 00170 00171 return theDetLayer; 00172 00173 }
MapB MuonForwardNavigableLayer::getAllInnerBarrelLayers | ( | ) | const [inline] |
Definition at line 93 of file MuonForwardNavigableLayer.h.
References theAllInnerBarrelLayers.
00093 { return theAllInnerBarrelLayers; }
MapE MuonForwardNavigableLayer::getAllInnerEndcapLayers | ( | ) | const [inline] |
Definition at line 92 of file MuonForwardNavigableLayer.h.
References theAllInnerEndcapLayers.
00092 { return theAllInnerEndcapLayers; }
MapE MuonForwardNavigableLayer::getAllOuterEndcapLayers | ( | ) | const [inline] |
Definition at line 91 of file MuonForwardNavigableLayer.h.
References theAllOuterEndcapLayers.
00091 { return theAllOuterEndcapLayers; }
MapB MuonForwardNavigableLayer::getInnerBarrelLayers | ( | ) | const [inline] |
Definition at line 89 of file MuonForwardNavigableLayer.h.
References theInnerBarrelLayers.
00089 { return theInnerBarrelLayers; }
MapE MuonForwardNavigableLayer::getInnerEndcapLayers | ( | ) | const [inline] |
Definition at line 88 of file MuonForwardNavigableLayer.h.
References theInnerEndcapLayers.
00088 { return theInnerEndcapLayers; }
MapE MuonForwardNavigableLayer::getOuterEndcapLayers | ( | ) | const [inline] |
Operations.
Definition at line 87 of file MuonForwardNavigableLayer.h.
References theOuterEndcapLayers.
00087 { return theOuterEndcapLayers; }
vector< const DetLayer * > MuonForwardNavigableLayer::nextLayers | ( | const FreeTrajectoryState & | fts, | |
PropagationDirection | dir | |||
) | const [virtual] |
NavigableLayer interface.
Implements MuonNavigableLayer.
Definition at line 51 of file MuonForwardNavigableLayer.cc.
References alongMomentum, GeomDetEnumerators::barrel, MuonNavigableLayer::isInsideOut(), oppositeToMomentum, pushResult(), HLT_VtxMuL3::result, theInnerBarrelLayers, theInnerEndcapLayers, and theOuterEndcapLayers.
00052 { 00053 00054 vector<const DetLayer*> result; 00055 vector<const DetLayer*> barrel; 00056 00057 if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) { 00058 pushResult(result, theOuterEndcapLayers, fts); 00059 } 00060 else { 00061 pushResult(result, theInnerEndcapLayers, fts); 00062 reverse(result.begin(),result.end()); 00063 pushResult(barrel, theInnerBarrelLayers, fts); 00064 reverse(barrel.begin(),barrel.end()); 00065 result.insert(result.end(),barrel.begin(),barrel.end()); 00066 } 00067 00068 result.reserve(result.size()); 00069 return result; 00070 00071 }
vector< const DetLayer * > MuonForwardNavigableLayer::nextLayers | ( | NavigationDirection | dir | ) | const [virtual] |
NavigableLayer interface.
Implements MuonNavigableLayer.
Definition at line 28 of file MuonForwardNavigableLayer.cc.
References GeomDetEnumerators::barrel, insideOut, pushResult(), HLT_VtxMuL3::result, theInnerBarrelLayers, theInnerEndcapLayers, and theOuterEndcapLayers.
00028 { 00029 00030 vector<const DetLayer*> result; 00031 vector<const DetLayer*> barrel; 00032 00033 if ( dir == insideOut ) { 00034 pushResult(result, theOuterEndcapLayers); 00035 } 00036 else { 00037 pushResult(result, theInnerEndcapLayers); 00038 reverse(result.begin(),result.end()); 00039 pushResult(barrel, theInnerBarrelLayers); 00040 reverse(barrel.begin(),barrel.end()); 00041 result.insert(result.end(),barrel.begin(),barrel.end()); 00042 } 00043 00044 result.reserve(result.size()); 00045 return result; 00046 00047 }
void MuonForwardNavigableLayer::pushCompatibleResult | ( | std::vector< const DetLayer * > & | result, | |
const MapE & | map, | |||
const FreeTrajectoryState & | fts | |||
) | const [private] |
void MuonForwardNavigableLayer::pushCompatibleResult | ( | std::vector< const DetLayer * > & | result, | |
const MapB & | map, | |||
const FreeTrajectoryState & | fts | |||
) | const [private] |
Referenced by compatibleLayers().
void MuonForwardNavigableLayer::pushResult | ( | std::vector< const DetLayer * > & | result, | |
const MapE & | map, | |||
const FreeTrajectoryState & | fts | |||
) | const [private] |
void MuonForwardNavigableLayer::pushResult | ( | std::vector< const DetLayer * > & | result, | |
const MapB & | map, | |||
const FreeTrajectoryState & | fts | |||
) | const [private] |
void MuonForwardNavigableLayer::pushResult | ( | std::vector< const DetLayer * > & | result, | |
const MapE & | map | |||
) | const [private] |
void MuonForwardNavigableLayer::pushResult | ( | std::vector< const DetLayer * > & | result, | |
const MapB & | map | |||
) | const [private] |
Referenced by compatibleLayers(), and nextLayers().
set DetLayer
Implements MuonNavigableLayer.
Definition at line 176 of file MuonForwardNavigableLayer.cc.
References lat::endl().
00176 { 00177 00178 edm::LogError ("MuonForwardNavigablaLayer") << "MuonForwardNavigableLayer::setDetLayer called!! " << endl; 00179 00180 }
void MuonForwardNavigableLayer::setInwardCompatibleLinks | ( | const MapB & | innerCBL, | |
const MapE & | innerCEL | |||
) |
Definition at line 190 of file MuonForwardNavigableLayer.cc.
References theAllInnerBarrelLayers, and theAllInnerEndcapLayers.
Referenced by MuonNavigationSchool::createInverseLinks().
00191 { 00192 00193 theAllInnerBarrelLayers = innerCBL; 00194 theAllInnerEndcapLayers = innerCEL; 00195 00196 }
set inward links
Definition at line 183 of file MuonForwardNavigableLayer.cc.
References theInnerBarrelLayers, and theInnerEndcapLayers.
Referenced by MuonNavigationSchool::createInverseLinks().
00184 { 00185 00186 theInnerBarrelLayers = innerBL; 00187 theInnerEndcapLayers = innerEL; 00188 00189 }
Definition at line 130 of file MuonForwardNavigableLayer.h.
Referenced by compatibleLayers(), getAllInnerBarrelLayers(), and setInwardCompatibleLinks().
Definition at line 132 of file MuonForwardNavigableLayer.h.
Referenced by compatibleLayers(), getAllInnerEndcapLayers(), and setInwardCompatibleLinks().
Definition at line 131 of file MuonForwardNavigableLayer.h.
Referenced by compatibleLayers(), and getAllOuterEndcapLayers().
Definition at line 127 of file MuonForwardNavigableLayer.h.
Referenced by getInnerBarrelLayers(), nextLayers(), and setInwardLinks().
Definition at line 129 of file MuonForwardNavigableLayer.h.
Referenced by getInnerEndcapLayers(), nextLayers(), and setInwardLinks().
Definition at line 128 of file MuonForwardNavigableLayer.h.
Referenced by getOuterEndcapLayers(), and nextLayers().