CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

MuonForwardNavigableLayer Class Reference

#include <MuonForwardNavigableLayer.h>

Inheritance diagram for MuonForwardNavigableLayer:
MuonNavigableLayer NavigableLayer

List of all members.

Public Member Functions

virtual std::vector< const
DetLayer * > 
compatibleLayers (NavigationDirection dir) const
virtual std::vector< const
DetLayer * > 
compatibleLayers (const FreeTrajectoryState &fts, PropagationDirection dir) const
 NavigableLayer interface.
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)
 Constructor with outer layers only.
 MuonForwardNavigableLayer (ForwardDetLayer *fdl, const MapE &outerEndcap, const MapE &allOuterEndcap)
 Constructor with all 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 (NavigationDirection dir) const
 NavigableLayer interface.
virtual std::vector< const
DetLayer * > 
nextLayers (const FreeTrajectoryState &fts, PropagationDirection 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 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 MapE &map) 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 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.

Navigable layer for Forward Muon

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.

                                                          :
      theDetLayer(fdl),
      theInnerBarrelLayers(innerBarrel),
      theOuterEndcapLayers(outerEndcap),
      theInnerEndcapLayers(innerEndcap),
      theAllInnerBarrelLayers(allInnerBarrel), 
      theAllOuterEndcapLayers(allOuterEndcap),
      theAllInnerEndcapLayers(allInnerEndcap)  {}
MuonForwardNavigableLayer::MuonForwardNavigableLayer ( ForwardDetLayer fdl,
const MapE outerEndcap 
) [inline]

Constructor with outer layers only.

Definition at line 55 of file MuonForwardNavigableLayer.h.

                                                       :
      theDetLayer(fdl),
      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.

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

Member Function Documentation

vector< const DetLayer * > MuonForwardNavigableLayer::compatibleLayers ( NavigationDirection  dir) const [virtual]

Implements MuonNavigableLayer.

Definition at line 74 of file MuonForwardNavigableLayer.cc.

References Reference_intrackfit_cff::barrel, insideOut, and query::result.

                                                                         {

  vector<const DetLayer*> result;
  vector<const DetLayer*> barrel;

  if ( dir == insideOut ) {
    pushResult(result, theAllOuterEndcapLayers);
  }
  else {
    pushResult(result, theAllInnerEndcapLayers);
    reverse(result.begin(),result.end());
    pushResult(barrel, theAllInnerBarrelLayers);
    reverse(barrel.begin(),barrel.end());
    result.insert(result.end(),barrel.begin(),barrel.end());
  }

  result.reserve(result.size());
  return result;

}
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, Reference_intrackfit_cff::barrel, oppositeToMomentum, and query::result.

                                                                      {
  vector<const DetLayer*> result;
  vector<const DetLayer*> barrel;
  
  if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) {
    pushCompatibleResult(result, theAllOuterEndcapLayers, fts);
  }
  else {
    pushCompatibleResult(result, theAllInnerEndcapLayers, fts);
    reverse(result.begin(),result.end());
    pushCompatibleResult(barrel, theAllInnerBarrelLayers, fts);
    reverse(barrel.begin(),barrel.end());
    result.insert(result.end(),barrel.begin(),barrel.end());
  }
  result.reserve(result.size());
  return result;

}
DetLayer * MuonForwardNavigableLayer::detLayer ( ) const [virtual]

return DetLayer

Implements MuonNavigableLayer.

Definition at line 169 of file MuonForwardNavigableLayer.cc.

                                                    {

  return theDetLayer;

}
MapB MuonForwardNavigableLayer::getAllInnerBarrelLayers ( ) const [inline]

Definition at line 93 of file MuonForwardNavigableLayer.h.

References theAllInnerBarrelLayers.

MapE MuonForwardNavigableLayer::getAllInnerEndcapLayers ( ) const [inline]

Definition at line 92 of file MuonForwardNavigableLayer.h.

References theAllInnerEndcapLayers.

MapE MuonForwardNavigableLayer::getAllOuterEndcapLayers ( ) const [inline]

Definition at line 91 of file MuonForwardNavigableLayer.h.

References theAllOuterEndcapLayers.

MapB MuonForwardNavigableLayer::getInnerBarrelLayers ( ) const [inline]

Definition at line 89 of file MuonForwardNavigableLayer.h.

References theInnerBarrelLayers.

MapE MuonForwardNavigableLayer::getInnerEndcapLayers ( ) const [inline]

Definition at line 88 of file MuonForwardNavigableLayer.h.

References theInnerEndcapLayers.

MapE MuonForwardNavigableLayer::getOuterEndcapLayers ( ) const [inline]

Operations.

Definition at line 87 of file MuonForwardNavigableLayer.h.

References 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, Reference_intrackfit_cff::barrel, oppositeToMomentum, and query::result.

                                                                      {

  vector<const DetLayer*> result;
  vector<const DetLayer*> barrel;

  if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) {
    pushResult(result, theOuterEndcapLayers, fts);
  }
  else {
    pushResult(result, theInnerEndcapLayers, fts);
    reverse(result.begin(),result.end());
    pushResult(barrel, theInnerBarrelLayers, fts);
    reverse(barrel.begin(),barrel.end());
    result.insert(result.end(),barrel.begin(),barrel.end());
  }

  result.reserve(result.size());
  return result;

}
vector< const DetLayer * > MuonForwardNavigableLayer::nextLayers ( NavigationDirection  dir) const [virtual]

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 28 of file MuonForwardNavigableLayer.cc.

References Reference_intrackfit_cff::barrel, insideOut, and query::result.

                                                                   {

  vector<const DetLayer*> result;
  vector<const DetLayer*> barrel;

  if ( dir == insideOut ) {
    pushResult(result, theOuterEndcapLayers);
  }
  else {
    pushResult(result, theInnerEndcapLayers);
    reverse(result.begin(),result.end());
    pushResult(barrel, theInnerBarrelLayers);
    reverse(barrel.begin(),barrel.end());
    result.insert(result.end(),barrel.begin(),barrel.end());
  }

  result.reserve(result.size());
  return result;

}
void MuonForwardNavigableLayer::pushCompatibleResult ( std::vector< const DetLayer * > &  result,
const MapB map,
const FreeTrajectoryState fts 
) const [private]
void MuonForwardNavigableLayer::pushCompatibleResult ( std::vector< const DetLayer * > &  result,
const MapE 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]
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 FreeTrajectoryState fts 
) const [private]
void MuonForwardNavigableLayer::setDetLayer ( DetLayer dl) [virtual]

set DetLayer

Implements MuonNavigableLayer.

Definition at line 176 of file MuonForwardNavigableLayer.cc.

                                                        {

  edm::LogError ("MuonForwardNavigablaLayer") << "MuonForwardNavigableLayer::setDetLayer called!! " << endl;

}
void MuonForwardNavigableLayer::setInwardCompatibleLinks ( const MapB innerCBL,
const MapE innerCEL 
)
void MuonForwardNavigableLayer::setInwardLinks ( const MapB innerBL,
const MapE innerEL 
)

set inward links

Definition at line 183 of file MuonForwardNavigableLayer.cc.

Referenced by MuonNavigationSchool::createInverseLinks().

                                                                    {

  theInnerBarrelLayers = innerBL;
  theInnerEndcapLayers = innerEL;

}

Member Data Documentation

Definition at line 130 of file MuonForwardNavigableLayer.h.

Referenced by getAllInnerBarrelLayers().

Definition at line 132 of file MuonForwardNavigableLayer.h.

Referenced by getAllInnerEndcapLayers().

Definition at line 131 of file MuonForwardNavigableLayer.h.

Referenced by getAllOuterEndcapLayers().

Definition at line 126 of file MuonForwardNavigableLayer.h.

Definition at line 127 of file MuonForwardNavigableLayer.h.

Referenced by getInnerBarrelLayers().

Definition at line 129 of file MuonForwardNavigableLayer.h.

Referenced by getInnerEndcapLayers().

Definition at line 128 of file MuonForwardNavigableLayer.h.

Referenced by getOuterEndcapLayers().