CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

MuonBarrelNavigableLayer Class Reference

#include <MuonBarrelNavigableLayer.h>

Inheritance diagram for MuonBarrelNavigableLayer:
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
MapE getAllInnerBackwardLayers () const
MapB getAllInnerBarrelLayers () const
MapE getAllInnerForwardLayers () const
MapE getAllOuterBackwardLayers () const
MapB getAllOuterBarrelLayers () const
MapE getAllOuterForwardLayers () const
MapE getInnerBackwardLayers () const
MapB getInnerBarrelLayers () const
MapE getInnerForwardLayers () const
MapE getOuterBackwardLayers () const
MapB getOuterBarrelLayers () const
MapE getOuterForwardLayers () const
 MuonBarrelNavigableLayer (BarrelDetLayer *bdl, const MapB &outerBarrel, const MapE &outerBackward, const MapE &outerForward, const MapB &allOuterBarrel, const MapE &allOuterBackward, const MapE &allOuterForward)
 MuonBarrelNavigableLayer (BarrelDetLayer *bdl, const MapB &outerBarrel, const MapB &innerBarrel, const MapE &outerBackward, const MapE &outerForward, const MapE &innerBackward, const MapE &innerForward, const MapB &allOuterBarrel, const MapB &allInnerBarrel, const MapE &allOuterBackward, const MapE &allOuterForward, const MapE &allInnerBackward, const MapE &allInnerForward)
 MuonBarrelNavigableLayer (BarrelDetLayer *bdl, const MapB &outerBarrel, const MapE &outerBackward, const MapE &outerForward)
 Constructor with outer layers only.
 MuonBarrelNavigableLayer (BarrelDetLayer *bdl, const MapB &outerBarrel, const MapB &innerBarrel, const MapE &outerBackward, const MapE &outerForward, const MapE &innerBackward, const MapE &innerForward)
 Constructor.
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 &)
void setInwardLinks (const MapB &)
 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

MapE theAllInnerBackwardLayers
MapB theAllInnerBarrelLayers
MapE theAllInnerForwardLayers
MapE theAllOuterBackwardLayers
MapB theAllOuterBarrelLayers
MapE theAllOuterForwardLayers
BarrelDetLayertheDetLayer
MapE theInnerBackwardLayers
MapB theInnerBarrelLayers
MapE theInnerForwardLayers
MapE theOuterBackwardLayers
MapB theOuterBarrelLayers
MapE theOuterForwardLayers

Detailed Description

Navigable layer for Barrel Muon

Date:
2007/01/18 13:28:36
Revision:
1.6
Author:
: Stefano Lacaprara - INFN Padova <stefano.lacaprara@pd.infn.it>

Modification:

Chang Liu: compatibleLayers(dir) and compatibleLayers(fts, dir) are added, which returns ALL DetLayers that are compatible with a given DetLayer.

Navigable layer for Barrel Muon

Date:
2007/01/29 16:24:33
Revision:
1.11
Author:
: Stefano Lacaprara - INFN Padova <stefano.lacaprara@pd.infn.it>

Modification:

Chang Liu: compatibleLayers(dir) and compatibleLayers(fts, dir) are added, which returns ALL DetLayers that are compatible with a given DetLayer.

Definition at line 37 of file MuonBarrelNavigableLayer.h.


Constructor & Destructor Documentation

MuonBarrelNavigableLayer::MuonBarrelNavigableLayer ( BarrelDetLayer bdl,
const MapB outerBarrel,
const MapB innerBarrel,
const MapE outerBackward,
const MapE outerForward,
const MapE innerBackward,
const MapE innerForward 
) [inline]

Constructor.

Definition at line 42 of file MuonBarrelNavigableLayer.h.

                                                       :
      theDetLayer(bdl), 
      theOuterBarrelLayers(outerBarrel),
      theInnerBarrelLayers(innerBarrel), 
      theOuterBackwardLayers(outerBackward),
      theInnerBackwardLayers(innerBackward),
      theOuterForwardLayers(outerForward),
      theInnerForwardLayers(innerForward) {}
MuonBarrelNavigableLayer::MuonBarrelNavigableLayer ( BarrelDetLayer bdl,
const MapB outerBarrel,
const MapB innerBarrel,
const MapE outerBackward,
const MapE outerForward,
const MapE innerBackward,
const MapE innerForward,
const MapB allOuterBarrel,
const MapB allInnerBarrel,
const MapE allOuterBackward,
const MapE allOuterForward,
const MapE allInnerBackward,
const MapE allInnerForward 
) [inline]

Definition at line 57 of file MuonBarrelNavigableLayer.h.

                                                          :
      theDetLayer(bdl),
      theOuterBarrelLayers(outerBarrel),
      theInnerBarrelLayers(innerBarrel),
      theOuterBackwardLayers(outerBackward),
      theInnerBackwardLayers(innerBackward),
      theOuterForwardLayers(outerForward),
      theInnerForwardLayers(innerForward), 
      theAllOuterBarrelLayers(allOuterBarrel),
      theAllInnerBarrelLayers(allInnerBarrel),
      theAllOuterBackwardLayers(allOuterBackward),
      theAllInnerBackwardLayers(allInnerBackward),
      theAllOuterForwardLayers(allOuterForward),
      theAllInnerForwardLayers(allInnerForward) {}
MuonBarrelNavigableLayer::MuonBarrelNavigableLayer ( BarrelDetLayer bdl,
const MapB outerBarrel,
const MapE outerBackward,
const MapE outerForward 
) [inline]

Constructor with outer layers only.

Definition at line 85 of file MuonBarrelNavigableLayer.h.

                                                       :
      theDetLayer(bdl), 
      theOuterBarrelLayers(outerBarrel),
      theOuterBackwardLayers(outerBackward),
      theOuterForwardLayers(outerForward) { }
MuonBarrelNavigableLayer::MuonBarrelNavigableLayer ( BarrelDetLayer bdl,
const MapB outerBarrel,
const MapE outerBackward,
const MapE outerForward,
const MapB allOuterBarrel,
const MapE allOuterBackward,
const MapE allOuterForward 
) [inline]

Definition at line 94 of file MuonBarrelNavigableLayer.h.

                                                          :
      theDetLayer(bdl),
      theOuterBarrelLayers(outerBarrel),
      theOuterBackwardLayers(outerBackward),
      theOuterForwardLayers(outerForward),
      theAllOuterBarrelLayers(allOuterBarrel),
      theAllOuterBackwardLayers(allOuterBackward),
      theAllOuterForwardLayers(allOuterForward) {}

Member Function Documentation

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

Implements MuonNavigableLayer.

Definition at line 76 of file MuonBarrelNavigableLayer.cc.

References insideOut, and query::result.

                                                                        {

  std::vector<const DetLayer*> result;

  if ( dir == insideOut ) {
    pushResult(result, theAllOuterBarrelLayers);
    pushResult(result, theAllOuterBackwardLayers);
    pushResult(result, theAllOuterForwardLayers);
  }
  else {
    pushResult(result, theAllInnerBarrelLayers);
    reverse(result.begin(),result.end());
    pushResult(result, theAllInnerBackwardLayers);
    pushResult(result, theAllInnerForwardLayers);
  }

  result.reserve(result.size());
  return result;
}
std::vector< const DetLayer * > MuonBarrelNavigableLayer::compatibleLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const [virtual]

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 97 of file MuonBarrelNavigableLayer.cc.

References alongMomentum, oppositeToMomentum, and query::result.

                                                                     {
  std::vector<const DetLayer*> result;

  if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) {
    pushCompatibleResult(result, theAllOuterBarrelLayers, fts);
    pushCompatibleResult(result, theAllOuterBackwardLayers, fts);
    pushCompatibleResult(result, theAllOuterForwardLayers, fts);
  }
  else {
    pushCompatibleResult(result, theAllInnerBarrelLayers, fts);
    reverse(result.begin(),result.end());
    pushCompatibleResult(result, theAllInnerBackwardLayers, fts);
    pushCompatibleResult(result, theAllInnerForwardLayers, fts);
  }
  result.reserve(result.size());
  return result;

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

return DetLayer

Implements MuonNavigableLayer.

Definition at line 165 of file MuonBarrelNavigableLayer.cc.

                                                   {
  return theDetLayer;
}
MapE MuonBarrelNavigableLayer::getAllInnerBackwardLayers ( ) const [inline]

Definition at line 138 of file MuonBarrelNavigableLayer.h.

References theAllInnerBackwardLayers.

MapB MuonBarrelNavigableLayer::getAllInnerBarrelLayers ( ) const [inline]

Definition at line 136 of file MuonBarrelNavigableLayer.h.

References theAllInnerBarrelLayers.

MapE MuonBarrelNavigableLayer::getAllInnerForwardLayers ( ) const [inline]

Definition at line 140 of file MuonBarrelNavigableLayer.h.

References theAllInnerForwardLayers.

MapE MuonBarrelNavigableLayer::getAllOuterBackwardLayers ( ) const [inline]
MapB MuonBarrelNavigableLayer::getAllOuterBarrelLayers ( ) const [inline]
MapE MuonBarrelNavigableLayer::getAllOuterForwardLayers ( ) const [inline]
MapE MuonBarrelNavigableLayer::getInnerBackwardLayers ( ) const [inline]

Definition at line 131 of file MuonBarrelNavigableLayer.h.

References theInnerBackwardLayers.

MapB MuonBarrelNavigableLayer::getInnerBarrelLayers ( ) const [inline]

Definition at line 129 of file MuonBarrelNavigableLayer.h.

References theInnerBarrelLayers.

MapE MuonBarrelNavigableLayer::getInnerForwardLayers ( ) const [inline]

Definition at line 133 of file MuonBarrelNavigableLayer.h.

References theInnerForwardLayers.

MapE MuonBarrelNavigableLayer::getOuterBackwardLayers ( ) const [inline]
MapB MuonBarrelNavigableLayer::getOuterBarrelLayers ( ) const [inline]
MapE MuonBarrelNavigableLayer::getOuterForwardLayers ( ) const [inline]
std::vector< const DetLayer * > MuonBarrelNavigableLayer::nextLayers ( const FreeTrajectoryState fts,
PropagationDirection  dir 
) const [virtual]

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 55 of file MuonBarrelNavigableLayer.cc.

References alongMomentum, oppositeToMomentum, and query::result.

                                                                     {

  std::vector<const DetLayer*> result;

  if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) {
    pushResult(result, theOuterBarrelLayers, fts);
    pushResult(result, theOuterBackwardLayers, fts);
    pushResult(result, theOuterForwardLayers, fts);
  }
  else {
    pushResult(result, theInnerBarrelLayers, fts);
    reverse(result.begin(),result.end());
    pushResult(result, theInnerBackwardLayers, fts);
    pushResult(result, theInnerForwardLayers, fts);
  }
  result.reserve(result.size());
  return result;
}
std::vector< const DetLayer * > MuonBarrelNavigableLayer::nextLayers ( NavigationDirection  dir) const [virtual]

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 32 of file MuonBarrelNavigableLayer.cc.

References insideOut, and query::result.

                                                                  {
  
  std::vector<const DetLayer*> result;
  
  if ( dir == insideOut ) {
    pushResult(result, theOuterBarrelLayers);
    pushResult(result, theOuterBackwardLayers);
    pushResult(result, theOuterForwardLayers);
  }
  else {
    pushResult(result, theInnerBarrelLayers);
    reverse(result.begin(),result.end());
    pushResult(result, theInnerBackwardLayers);
    pushResult(result, theInnerForwardLayers);
  }
  
  result.reserve(result.size());
  return result;

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

Definition at line 156 of file MuonBarrelNavigableLayer.cc.

References i.

                                                                                {
  MuonEtaRange range= trackingRange(fts);
  for (MapEI i = map.begin(); i != map.end(); i++)
    if ((*i).second.isCompatible(range)) result.push_back((*i).first);

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

Definition at line 148 of file MuonBarrelNavigableLayer.cc.

References i.

                                                                                {
  MuonEtaRange range= trackingRange(fts);
  for ( MapBI i = map.begin(); i != map.end(); i++ )
    if ((*i).second.isCompatible(range)) result.push_back((*i).first);
}
void MuonBarrelNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapE map 
) const [private]

Definition at line 125 of file MuonBarrelNavigableLayer.cc.

References i.

                                                                 {

  for ( MapEI i = map.begin(); i != map.end(); i++ ) result.push_back((*i).first);  
}
void MuonBarrelNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapE map,
const FreeTrajectoryState fts 
) const [private]

Definition at line 139 of file MuonBarrelNavigableLayer.cc.

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

                                                                                {

  for (MapEI i = map.begin(); i != map.end(); i++)
    if ((*i).second.isInside(fts.position().eta())) result.push_back((*i).first); 

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

Definition at line 132 of file MuonBarrelNavigableLayer.cc.

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

                                                                                {
  for ( MapBI i = map.begin(); i != map.end(); i++ ) 
    if ((*i).second.isInside(fts.position().eta())) result.push_back((*i).first); 
}
void MuonBarrelNavigableLayer::pushResult ( std::vector< const DetLayer * > &  result,
const MapB map 
) const [private]

Definition at line 118 of file MuonBarrelNavigableLayer.cc.

References i.

                                                                 {

  for ( MapBI i = map.begin(); i != map.end(); i++ ) result.push_back((*i).first); 

}
void MuonBarrelNavigableLayer::setDetLayer ( DetLayer dl) [virtual]

set DetLayer

Implements MuonNavigableLayer.

Definition at line 170 of file MuonBarrelNavigableLayer.cc.

                                                       {
  edm::LogError("MuonBarrelNavigableLayer") << "MuonBarrelNavigableLayer::setDetLayer called!! " << endl;
}
void MuonBarrelNavigableLayer::setInwardCompatibleLinks ( const MapB innerCBL)

Definition at line 178 of file MuonBarrelNavigableLayer.cc.

Referenced by MuonNavigationSchool::createInverseLinks().

                                                                            {

  theAllInnerBarrelLayers = innerCBL;

}
void MuonBarrelNavigableLayer::setInwardLinks ( const MapB innerBL)

set inward links

Definition at line 175 of file MuonBarrelNavigableLayer.cc.

Referenced by MuonNavigationSchool::createInverseLinks().

                                                                 {
  theInnerBarrelLayers = innerBL;
}

Member Data Documentation

Definition at line 181 of file MuonBarrelNavigableLayer.h.

Referenced by getAllInnerBackwardLayers().

Definition at line 179 of file MuonBarrelNavigableLayer.h.

Referenced by getAllInnerBarrelLayers().

Definition at line 183 of file MuonBarrelNavigableLayer.h.

Referenced by getAllInnerForwardLayers().

Definition at line 180 of file MuonBarrelNavigableLayer.h.

Referenced by getAllOuterBackwardLayers().

Definition at line 178 of file MuonBarrelNavigableLayer.h.

Referenced by getAllOuterBarrelLayers().

Definition at line 182 of file MuonBarrelNavigableLayer.h.

Referenced by getAllOuterForwardLayers().

Definition at line 171 of file MuonBarrelNavigableLayer.h.

Definition at line 175 of file MuonBarrelNavigableLayer.h.

Referenced by getInnerBackwardLayers().

Definition at line 173 of file MuonBarrelNavigableLayer.h.

Referenced by getInnerBarrelLayers().

Definition at line 177 of file MuonBarrelNavigableLayer.h.

Referenced by getInnerForwardLayers().

Definition at line 174 of file MuonBarrelNavigableLayer.h.

Referenced by getOuterBackwardLayers().

Definition at line 172 of file MuonBarrelNavigableLayer.h.

Referenced by getOuterBarrelLayers().

Definition at line 176 of file MuonBarrelNavigableLayer.h.

Referenced by getOuterForwardLayers().