CMS 3D CMS Logo

MuonBarrelNavigableLayer Class Reference

Navigable layer for Barrel Muon. More...

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

Inheritance diagram for MuonBarrelNavigableLayer:

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

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.

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.

00048                                                        :
00049       theDetLayer(bdl), 
00050       theOuterBarrelLayers(outerBarrel),
00051       theInnerBarrelLayers(innerBarrel), 
00052       theOuterBackwardLayers(outerBackward),
00053       theInnerBackwardLayers(innerBackward),
00054       theOuterForwardLayers(outerForward),
00055       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.

00069                                                           :
00070       theDetLayer(bdl),
00071       theOuterBarrelLayers(outerBarrel),
00072       theInnerBarrelLayers(innerBarrel),
00073       theOuterBackwardLayers(outerBackward),
00074       theInnerBackwardLayers(innerBackward),
00075       theOuterForwardLayers(outerForward),
00076       theInnerForwardLayers(innerForward), 
00077       theAllOuterBarrelLayers(allOuterBarrel),
00078       theAllInnerBarrelLayers(allInnerBarrel),
00079       theAllOuterBackwardLayers(allOuterBackward),
00080       theAllInnerBackwardLayers(allInnerBackward),
00081       theAllOuterForwardLayers(allOuterForward),
00082       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.

00088                                                        :
00089       theDetLayer(bdl), 
00090       theOuterBarrelLayers(outerBarrel),
00091       theOuterBackwardLayers(outerBackward),
00092       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.

00100                                                           :
00101       theDetLayer(bdl),
00102       theOuterBarrelLayers(outerBarrel),
00103       theOuterBackwardLayers(outerBackward),
00104       theOuterForwardLayers(outerForward),
00105       theAllOuterBarrelLayers(allOuterBarrel),
00106       theAllOuterBackwardLayers(allOuterBackward),
00107       theAllOuterForwardLayers(allOuterForward) {}


Member Function Documentation

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, MuonNavigableLayer::isInsideOut(), oppositeToMomentum, pushCompatibleResult(), HLT_VtxMuL3::result, theAllInnerBackwardLayers, theAllInnerBarrelLayers, theAllInnerForwardLayers, theAllOuterBackwardLayers, theAllOuterBarrelLayers, and theAllOuterForwardLayers.

00098                                                                      {
00099   std::vector<const DetLayer*> result;
00100 
00101   if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) {
00102     pushCompatibleResult(result, theAllOuterBarrelLayers, fts);
00103     pushCompatibleResult(result, theAllOuterBackwardLayers, fts);
00104     pushCompatibleResult(result, theAllOuterForwardLayers, fts);
00105   }
00106   else {
00107     pushCompatibleResult(result, theAllInnerBarrelLayers, fts);
00108     reverse(result.begin(),result.end());
00109     pushCompatibleResult(result, theAllInnerBackwardLayers, fts);
00110     pushCompatibleResult(result, theAllInnerForwardLayers, fts);
00111   }
00112   result.reserve(result.size());
00113   return result;
00114 
00115 }

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

Implements MuonNavigableLayer.

Definition at line 76 of file MuonBarrelNavigableLayer.cc.

References insideOut, pushResult(), HLT_VtxMuL3::result, theAllInnerBackwardLayers, theAllInnerBarrelLayers, theAllInnerForwardLayers, theAllOuterBackwardLayers, theAllOuterBarrelLayers, and theAllOuterForwardLayers.

00076                                                                         {
00077 
00078   std::vector<const DetLayer*> result;
00079 
00080   if ( dir == insideOut ) {
00081     pushResult(result, theAllOuterBarrelLayers);
00082     pushResult(result, theAllOuterBackwardLayers);
00083     pushResult(result, theAllOuterForwardLayers);
00084   }
00085   else {
00086     pushResult(result, theAllInnerBarrelLayers);
00087     reverse(result.begin(),result.end());
00088     pushResult(result, theAllInnerBackwardLayers);
00089     pushResult(result, theAllInnerForwardLayers);
00090   }
00091 
00092   result.reserve(result.size());
00093   return result;
00094 }

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

return DetLayer

Implements MuonNavigableLayer.

Definition at line 165 of file MuonBarrelNavigableLayer.cc.

References theDetLayer.

00165                                                    {
00166   return theDetLayer;
00167 }

MapE MuonBarrelNavigableLayer::getAllInnerBackwardLayers (  )  const [inline]

Definition at line 138 of file MuonBarrelNavigableLayer.h.

References theAllInnerBackwardLayers.

00138 { return theAllInnerBackwardLayers; }

MapB MuonBarrelNavigableLayer::getAllInnerBarrelLayers (  )  const [inline]

Definition at line 136 of file MuonBarrelNavigableLayer.h.

References theAllInnerBarrelLayers.

00136 { return theAllInnerBarrelLayers; }

MapE MuonBarrelNavigableLayer::getAllInnerForwardLayers (  )  const [inline]

Definition at line 140 of file MuonBarrelNavigableLayer.h.

References theAllInnerForwardLayers.

00140 { return theAllInnerForwardLayers; }

MapE MuonBarrelNavigableLayer::getAllOuterBackwardLayers (  )  const [inline]

Definition at line 137 of file MuonBarrelNavigableLayer.h.

References theAllOuterBackwardLayers.

Referenced by MuonNavigationSchool::createInverseLinks().

00137 { return theAllOuterBackwardLayers; }

MapB MuonBarrelNavigableLayer::getAllOuterBarrelLayers (  )  const [inline]

Definition at line 135 of file MuonBarrelNavigableLayer.h.

References theAllOuterBarrelLayers.

Referenced by MuonNavigationSchool::createInverseLinks().

00135 { return theAllOuterBarrelLayers; }

MapE MuonBarrelNavigableLayer::getAllOuterForwardLayers (  )  const [inline]

Definition at line 139 of file MuonBarrelNavigableLayer.h.

References theAllOuterForwardLayers.

Referenced by MuonNavigationSchool::createInverseLinks().

00139 { return theAllOuterForwardLayers; }

MapE MuonBarrelNavigableLayer::getInnerBackwardLayers (  )  const [inline]

Definition at line 131 of file MuonBarrelNavigableLayer.h.

References theInnerBackwardLayers.

00131 { return theInnerBackwardLayers; }

MapB MuonBarrelNavigableLayer::getInnerBarrelLayers (  )  const [inline]

Definition at line 129 of file MuonBarrelNavigableLayer.h.

References theInnerBarrelLayers.

00129 { return theInnerBarrelLayers; }

MapE MuonBarrelNavigableLayer::getInnerForwardLayers (  )  const [inline]

Definition at line 133 of file MuonBarrelNavigableLayer.h.

References theInnerForwardLayers.

00133 { return theInnerForwardLayers; }

MapE MuonBarrelNavigableLayer::getOuterBackwardLayers (  )  const [inline]

Definition at line 130 of file MuonBarrelNavigableLayer.h.

References theOuterBackwardLayers.

Referenced by MuonNavigationSchool::createInverseLinks().

00130 { return theOuterBackwardLayers; }

MapB MuonBarrelNavigableLayer::getOuterBarrelLayers (  )  const [inline]

Definition at line 128 of file MuonBarrelNavigableLayer.h.

References theOuterBarrelLayers.

Referenced by MuonNavigationSchool::createInverseLinks().

00128 { return theOuterBarrelLayers; }

MapE MuonBarrelNavigableLayer::getOuterForwardLayers (  )  const [inline]

Definition at line 132 of file MuonBarrelNavigableLayer.h.

References theOuterForwardLayers.

Referenced by MuonNavigationSchool::createInverseLinks().

00132 { return theOuterForwardLayers; }

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, MuonNavigableLayer::isInsideOut(), oppositeToMomentum, pushResult(), HLT_VtxMuL3::result, theInnerBackwardLayers, theInnerBarrelLayers, theInnerForwardLayers, theOuterBackwardLayers, theOuterBarrelLayers, and theOuterForwardLayers.

00056                                                                      {
00057 
00058   std::vector<const DetLayer*> result;
00059 
00060   if ( (isInsideOut(fts) && dir == alongMomentum) || ( !isInsideOut(fts) && dir == oppositeToMomentum)) {
00061     pushResult(result, theOuterBarrelLayers, fts);
00062     pushResult(result, theOuterBackwardLayers, fts);
00063     pushResult(result, theOuterForwardLayers, fts);
00064   }
00065   else {
00066     pushResult(result, theInnerBarrelLayers, fts);
00067     reverse(result.begin(),result.end());
00068     pushResult(result, theInnerBackwardLayers, fts);
00069     pushResult(result, theInnerForwardLayers, fts);
00070   }
00071   result.reserve(result.size());
00072   return result;
00073 }

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

NavigableLayer interface.

Implements MuonNavigableLayer.

Definition at line 32 of file MuonBarrelNavigableLayer.cc.

References insideOut, pushResult(), HLT_VtxMuL3::result, theInnerBackwardLayers, theInnerBarrelLayers, theInnerForwardLayers, theOuterBackwardLayers, theOuterBarrelLayers, and theOuterForwardLayers.

00032                                                                   {
00033   
00034   std::vector<const DetLayer*> result;
00035   
00036   if ( dir == insideOut ) {
00037     pushResult(result, theOuterBarrelLayers);
00038     pushResult(result, theOuterBackwardLayers);
00039     pushResult(result, theOuterForwardLayers);
00040   }
00041   else {
00042     pushResult(result, theInnerBarrelLayers);
00043     reverse(result.begin(),result.end());
00044     pushResult(result, theInnerBackwardLayers);
00045     pushResult(result, theInnerForwardLayers);
00046   }
00047   
00048   result.reserve(result.size());
00049   return result;
00050 
00051 }

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, range, and MuonNavigableLayer::trackingRange().

00158                                                                                 {
00159   MuonEtaRange range= trackingRange(fts);
00160   for (MapEI i = map.begin(); i != map.end(); i++)
00161     if ((*i).second.isCompatible(range)) result.push_back((*i).first);
00162 
00163 }

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, range, and MuonNavigableLayer::trackingRange().

Referenced by compatibleLayers().

00150                                                                                 {
00151   MuonEtaRange range= trackingRange(fts);
00152   for ( MapBI i = map.begin(); i != map.end(); i++ )
00153     if ((*i).second.isCompatible(range)) result.push_back((*i).first);
00154 }

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

00141                                                                                 {
00142 
00143   for (MapEI i = map.begin(); i != map.end(); i++)
00144     if ((*i).second.isInside(fts.position().eta())) result.push_back((*i).first); 
00145 
00146 }

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

00134                                                                                 {
00135   for ( MapBI i = map.begin(); i != map.end(); i++ ) 
00136     if ((*i).second.isInside(fts.position().eta())) result.push_back((*i).first); 
00137 }

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

Definition at line 125 of file MuonBarrelNavigableLayer.cc.

References i.

00126                                                                  {
00127 
00128   for ( MapEI i = map.begin(); i != map.end(); i++ ) result.push_back((*i).first);  
00129 }

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

Definition at line 118 of file MuonBarrelNavigableLayer.cc.

References i.

Referenced by compatibleLayers(), and nextLayers().

00119                                                                  {
00120 
00121   for ( MapBI i = map.begin(); i != map.end(); i++ ) result.push_back((*i).first); 
00122 
00123 }

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

set DetLayer

Implements MuonNavigableLayer.

Definition at line 170 of file MuonBarrelNavigableLayer.cc.

References lat::endl().

00170                                                        {
00171   edm::LogError("MuonBarrelNavigableLayer") << "MuonBarrelNavigableLayer::setDetLayer called!! " << endl;
00172 }

void MuonBarrelNavigableLayer::setInwardCompatibleLinks ( const MapB innerCBL  ) 

Definition at line 178 of file MuonBarrelNavigableLayer.cc.

References theAllInnerBarrelLayers.

Referenced by MuonNavigationSchool::createInverseLinks().

00178                                                                             {
00179 
00180   theAllInnerBarrelLayers = innerCBL;
00181 
00182 }

void MuonBarrelNavigableLayer::setInwardLinks ( const MapB innerBL  ) 

set inward links

Definition at line 175 of file MuonBarrelNavigableLayer.cc.

References theInnerBarrelLayers.

Referenced by MuonNavigationSchool::createInverseLinks().

00175                                                                  {
00176   theInnerBarrelLayers = innerBL;
00177 }


Member Data Documentation

MapE MuonBarrelNavigableLayer::theAllInnerBackwardLayers [private]

Definition at line 181 of file MuonBarrelNavigableLayer.h.

Referenced by compatibleLayers(), and getAllInnerBackwardLayers().

MapB MuonBarrelNavigableLayer::theAllInnerBarrelLayers [private]

Definition at line 179 of file MuonBarrelNavigableLayer.h.

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

MapE MuonBarrelNavigableLayer::theAllInnerForwardLayers [private]

Definition at line 183 of file MuonBarrelNavigableLayer.h.

Referenced by compatibleLayers(), and getAllInnerForwardLayers().

MapE MuonBarrelNavigableLayer::theAllOuterBackwardLayers [private]

Definition at line 180 of file MuonBarrelNavigableLayer.h.

Referenced by compatibleLayers(), and getAllOuterBackwardLayers().

MapB MuonBarrelNavigableLayer::theAllOuterBarrelLayers [private]

Definition at line 178 of file MuonBarrelNavigableLayer.h.

Referenced by compatibleLayers(), and getAllOuterBarrelLayers().

MapE MuonBarrelNavigableLayer::theAllOuterForwardLayers [private]

Definition at line 182 of file MuonBarrelNavigableLayer.h.

Referenced by compatibleLayers(), and getAllOuterForwardLayers().

BarrelDetLayer* MuonBarrelNavigableLayer::theDetLayer [private]

Definition at line 171 of file MuonBarrelNavigableLayer.h.

Referenced by detLayer().

MapE MuonBarrelNavigableLayer::theInnerBackwardLayers [private]

Definition at line 175 of file MuonBarrelNavigableLayer.h.

Referenced by getInnerBackwardLayers(), and nextLayers().

MapB MuonBarrelNavigableLayer::theInnerBarrelLayers [private]

Definition at line 173 of file MuonBarrelNavigableLayer.h.

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

MapE MuonBarrelNavigableLayer::theInnerForwardLayers [private]

Definition at line 177 of file MuonBarrelNavigableLayer.h.

Referenced by getInnerForwardLayers(), and nextLayers().

MapE MuonBarrelNavigableLayer::theOuterBackwardLayers [private]

Definition at line 174 of file MuonBarrelNavigableLayer.h.

Referenced by getOuterBackwardLayers(), and nextLayers().

MapB MuonBarrelNavigableLayer::theOuterBarrelLayers [private]

Definition at line 172 of file MuonBarrelNavigableLayer.h.

Referenced by getOuterBarrelLayers(), and nextLayers().

MapE MuonBarrelNavigableLayer::theOuterForwardLayers [private]

Definition at line 176 of file MuonBarrelNavigableLayer.h.

Referenced by getOuterForwardLayers(), and nextLayers().


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