CMS 3D CMS Logo

MuonForwardNavigableLayer Class Reference

Navigable layer for Forward Muon. More...

#include <RecoMuon/Navigation/interface/MuonForwardNavigableLayer.h>

Inheritance diagram for MuonForwardNavigableLayer:

MuonNavigableLayer NavigableLayer

List of all members.

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 DetLayerdetLayer () 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
ForwardDetLayertheDetLayer
MapB theInnerBarrelLayers
MapE theInnerEndcapLayers
MapE theOuterEndcapLayers


Detailed Description

Navigable layer for Forward Muon.

Date
2007/01/18 13:28:36
Revision
1.7

Author:
: Stefano Lacaprara - INFN Padova <stefano.lacaprara@pd.infn.it>
Modification: Chang Liu: compatibleLayers(dir) and compatibleLayers(fts, dir) are added, which return ALL DetLayers that are compatible with a given DetLayer.

Date
2007/01/29 16:24:52
Revision
1.10

Author:
: Stefano Lacaprara - INFN Padova <stefano.lacaprara@pd.infn.it>
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.


Constructor & Destructor Documentation

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) {}


Member Function Documentation

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

void MuonForwardNavigableLayer::setDetLayer ( DetLayer dl  )  [virtual]

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 }

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

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 }


Member Data Documentation

MapB MuonForwardNavigableLayer::theAllInnerBarrelLayers [private]

Definition at line 130 of file MuonForwardNavigableLayer.h.

Referenced by compatibleLayers(), getAllInnerBarrelLayers(), and setInwardCompatibleLinks().

MapE MuonForwardNavigableLayer::theAllInnerEndcapLayers [private]

Definition at line 132 of file MuonForwardNavigableLayer.h.

Referenced by compatibleLayers(), getAllInnerEndcapLayers(), and setInwardCompatibleLinks().

MapE MuonForwardNavigableLayer::theAllOuterEndcapLayers [private]

Definition at line 131 of file MuonForwardNavigableLayer.h.

Referenced by compatibleLayers(), and getAllOuterEndcapLayers().

ForwardDetLayer* MuonForwardNavigableLayer::theDetLayer [private]

Definition at line 126 of file MuonForwardNavigableLayer.h.

Referenced by detLayer().

MapB MuonForwardNavigableLayer::theInnerBarrelLayers [private]

Definition at line 127 of file MuonForwardNavigableLayer.h.

Referenced by getInnerBarrelLayers(), nextLayers(), and setInwardLinks().

MapE MuonForwardNavigableLayer::theInnerEndcapLayers [private]

Definition at line 129 of file MuonForwardNavigableLayer.h.

Referenced by getInnerEndcapLayers(), nextLayers(), and setInwardLinks().

MapE MuonForwardNavigableLayer::theOuterEndcapLayers [private]

Definition at line 128 of file MuonForwardNavigableLayer.h.

Referenced by getOuterEndcapLayers(), and nextLayers().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:28:43 2009 for CMSSW by  doxygen 1.5.4