CMS 3D CMS Logo

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

#include <TrackerAlignableId.h>

Public Member Functions

 TrackerAlignableId ()
 
std::pair< int, int > typeAndLayerFromDetId (const DetId &detId, const TrackerTopology *tTopo) const
 

Detailed Description

Helper class to provide unique numerical ID's for Alignables. The unique ID is formed from:

Revision:
1.11
Date:
2007/10/08 13:49:05

(last update by

Author:
cklae

)

Definition at line 22 of file TrackerAlignableId.h.

Constructor & Destructor Documentation

TrackerAlignableId::TrackerAlignableId ( )
inline

Definition at line 27 of file TrackerAlignableId.h.

27 {}

Member Function Documentation

std::pair< int, int > TrackerAlignableId::typeAndLayerFromDetId ( const DetId detId,
const TrackerTopology tTopo 
) const

Return type and layer of DetId Keep this for now. Concept of a "layer" in Alignment is obsolete. Will be replaced by a more generic function.

Definition at line 18 of file TrackerAlignableId.cc.

References align::tib::layerNumber(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, TrackerTopology::pxbLayer(), TrackerTopology::pxfDisk(), DetId::rawId(), DetId::subdetId(), StripSubdetector::TEC, TrackerTopology::tecWheel(), StripSubdetector::TIB, TrackerTopology::tibLayer(), StripSubdetector::TID, TrackerTopology::tidWheel(), StripSubdetector::TOB, and TrackerTopology::tobLayer().

Referenced by TrackerOfflineValidation::bookHists(), AlignmentParameterSelector::layerDeselected(), and AlignmentParameterStore::typeAndLayer().

19 {
20 
21  int layerNumber = 0;
22 
23  unsigned int subdetId = static_cast<unsigned int>(detId.subdetId());
24 
25  if ( subdetId == StripSubdetector::TIB)
26  {
27 
28  layerNumber = tTopo->tibLayer(detId.rawId());
29  }
30  else if ( subdetId == StripSubdetector::TOB )
31  {
32 
33  layerNumber = tTopo->tobLayer(detId.rawId());
34  }
35  else if ( subdetId == StripSubdetector::TID)
36  {
37 
38  layerNumber = tTopo->tidWheel(detId.rawId());
39  }
40  else if ( subdetId == StripSubdetector::TEC )
41  {
42 
43  layerNumber = tTopo->tecWheel(detId.rawId());
44  }
45  else if ( subdetId == PixelSubdetector::PixelBarrel )
46  {
47 
48  layerNumber = tTopo->pxbLayer(detId.rawId());
49  }
50  else if ( subdetId == PixelSubdetector::PixelEndcap )
51  {
52 
53  layerNumber = tTopo->pxfDisk(detId.rawId());
54  }
55  else
56  edm::LogWarning("LogicError") << "Unknown subdetid: " << subdetId;
57 
58 
59  return std::make_pair( subdetId, layerNumber );
60 
61 }
unsigned int tibLayer(const DetId &id) const
unsigned int pxfDisk(const DetId &id) const
unsigned int tidWheel(const DetId &id) const
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
unsigned int pxbLayer(const DetId &id) const
unsigned int layerNumber(align::ID, const TrackerTopology *)
Layer number increases with rho from 1 to 8.
Definition: TIBNameSpace.h:86
unsigned int tecWheel(const DetId &id) const
unsigned int tobLayer(const DetId &id) const