CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
AlignableNavigator Class Reference

#include <AlignableNavigator.h>

Public Types

typedef std::map< DetId,
AlignableDetOrUnitPtr
MapType
 
typedef MapType::value_type PairType
 

Public Member Functions

std::vector
< AlignableDetOrUnitPtr
alignableDetOrUnits ()
 return all AlignableDetOrUnitPtrs More...
 
AlignableDetOrUnitPtr alignableFromDetId (const DetId &detid)
 Returns AlignableDetOrUnitPtr corresponding to given DetId. More...
 
AlignableDetOrUnitPtr alignableFromGeomDet (const GeomDet *geomDet)
 Returns AlignableDetOrUnitPtr corresponding to given GeomDet. More...
 
 AlignableNavigator (Alignable *tracker, Alignable *muon=0)
 Constructor from one or two Alignables. More...
 
 AlignableNavigator (AlignableExtras *extras, Alignable *tracker, Alignable *muon=0)
 Constructor from one or two Alignables. More...
 
 AlignableNavigator (const std::vector< Alignable * > &alignables)
 Constructor from list of Alignbable. More...
 
std::vector
< AlignableDetOrUnitPtr
alignablesFromHits (const std::vector< const TransientTrackingRecHit * > &hitvec)
 Returns vector AlignableDetOrUnitPtr for given vector of Hits. More...
 
std::vector
< AlignableDetOrUnitPtr
alignablesFromHits (const TransientTrackingRecHit::ConstRecHitContainer &hitVec)
 Returns vector of AlignableDetOrUnitPtr for given vector of Hits. More...
 
bool detAndSubdetInMap (const DetId &detid) const
 Given a DetId, returns true if DetIds with this detector and subdetector id are in the map (not necessarily the exact DetId) More...
 
int size (void)
 Returns number of elements in map. More...
 

Private Member Functions

unsigned int recursiveGetId (Alignable *alignable)
 

Private Attributes

std::vector< std::pair< int,
int > > 
theDetAndSubdet
 
MapType theMap
 

Detailed Description

A class to navigate from a DetId to the corresponding AlignableDetOrUnitPtr. A map is created at construction time from all sub-structures of the constructor's argument(s) that are AlignableDet or AlignableDetUnit.

Definition at line 25 of file AlignableNavigator.h.

Member Typedef Documentation

Definition at line 39 of file AlignableNavigator.h.

typedef MapType::value_type AlignableNavigator::PairType

Definition at line 40 of file AlignableNavigator.h.

Constructor & Destructor Documentation

AlignableNavigator::AlignableNavigator ( Alignable tracker,
Alignable muon = 0 
)
explicit

Constructor from one or two Alignables.

Definition at line 18 of file AlignableNavigator.cc.

AlignableNavigator::AlignableNavigator ( AlignableExtras extras,
Alignable tracker,
Alignable muon = 0 
)
explicit

Constructor from one or two Alignables.

Definition at line 39 of file AlignableNavigator.cc.

AlignableNavigator::AlignableNavigator ( const std::vector< Alignable * > &  alignables)
explicit

Constructor from list of Alignbable.

Definition at line 67 of file AlignableNavigator.cc.

Member Function Documentation

std::vector< AlignableDetOrUnitPtr > AlignableNavigator::alignableDetOrUnits ( )

return all AlignableDetOrUnitPtrs

Definition at line 195 of file AlignableNavigator.cc.

AlignableDetOrUnitPtr AlignableNavigator::alignableFromDetId ( const DetId detid)
AlignableDetOrUnitPtr AlignableNavigator::alignableFromGeomDet ( const GeomDet geomDet)

Returns AlignableDetOrUnitPtr corresponding to given GeomDet.

Definition at line 90 of file AlignableNavigator.cc.

std::vector< AlignableDetOrUnitPtr > AlignableNavigator::alignablesFromHits ( const std::vector< const TransientTrackingRecHit * > &  hitvec)

Returns vector AlignableDetOrUnitPtr for given vector of Hits.

Definition at line 164 of file AlignableNavigator.cc.

std::vector< AlignableDetOrUnitPtr > AlignableNavigator::alignablesFromHits ( const TransientTrackingRecHit::ConstRecHitContainer hitVec)

Returns vector of AlignableDetOrUnitPtr for given vector of Hits.

Definition at line 180 of file AlignableNavigator.cc.

bool AlignableNavigator::detAndSubdetInMap ( const DetId detid) const

Given a DetId, returns true if DetIds with this detector and subdetector id are in the map (not necessarily the exact DetId)

Definition at line 208 of file AlignableNavigator.cc.

unsigned int AlignableNavigator::recursiveGetId ( Alignable alignable)
private

Add recursively DetId-AlignableDetOrUnitPtr pairs to map. Returns number of Alignables with DetId!=0 which are (illegaly) neither AlignableDet nor AlignableDetUnit and are thus not added to the map.

Definition at line 110 of file AlignableNavigator.cc.

int AlignableNavigator::size ( void  )
inline

Returns number of elements in map.

Definition at line 60 of file AlignableNavigator.h.

References theMap.

60 { return theMap.size(); }

Member Data Documentation

std::vector<std::pair<int,int> > AlignableNavigator::theDetAndSubdet
private

Definition at line 72 of file AlignableNavigator.h.

MapType AlignableNavigator::theMap
private

Definition at line 71 of file AlignableNavigator.h.

Referenced by size().