CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
AlignableObjectId.cc
Go to the documentation of this file.
2 
4 #include <algorithm>
5 
6 using namespace align;
7 
8 //__________________________________________________________________________________________________
10 {
11 
12  // Names are defined here!
13 
14  theMap.clear();
15  theReverseMap.clear();
16 
17  theMap.insert( PairEnumType( invalid , "invalid" ) );
18  theMap.insert( PairEnumType( AlignableDetUnit, "DetUnit" ) );
19  theMap.insert( PairEnumType( AlignableDet , "Det" ) );
20 
21  theMap.insert( PairEnumType(TPBModule , "TPBModule" ) );
22  theMap.insert( PairEnumType(TPBLadder , "TPBLadder" ) );
23  theMap.insert( PairEnumType(TPBLayer , "TPBLayer" ) );
24  theMap.insert( PairEnumType(TPBHalfBarrel , "TPBHalfBarrel" ) );
25  theMap.insert( PairEnumType(TPBBarrel , "TPBBarrel" ) );
26 
27  theMap.insert( PairEnumType(TPEModule , "TPEModule" ) );
28  theMap.insert( PairEnumType(TPEPanel , "TPEPanel" ) );
29  theMap.insert( PairEnumType(TPEBlade , "TPEBlade" ) );
30  theMap.insert( PairEnumType(TPEHalfDisk , "TPEHalfDisk" ) );
31  theMap.insert( PairEnumType(TPEHalfCylinder, "TPEHalfCylinder") );
32  theMap.insert( PairEnumType(TPEEndcap , "TPEEndcap" ) );
33 
34  theMap.insert( PairEnumType(TIBModule , "TIBModule" ) );
35  theMap.insert( PairEnumType(TIBString , "TIBString" ) );
36  theMap.insert( PairEnumType(TIBSurface , "TIBSurface" ) );
37  theMap.insert( PairEnumType(TIBHalfShell , "TIBHalfShell" ) );
38  theMap.insert( PairEnumType(TIBLayer , "TIBLayer" ) );
39  theMap.insert( PairEnumType(TIBHalfBarrel , "TIBHalfBarrel" ) );
40  theMap.insert( PairEnumType(TIBBarrel , "TIBBarrel" ) );
41 
42  theMap.insert( PairEnumType(TIDModule , "TIDModule" ) );
43  theMap.insert( PairEnumType(TIDSide , "TIDSide" ) );
44  theMap.insert( PairEnumType(TIDRing , "TIDRing" ) );
45  theMap.insert( PairEnumType(TIDDisk , "TIDDisk" ) );
46  theMap.insert( PairEnumType(TIDEndcap , "TIDEndcap" ) );
47 
48  theMap.insert( PairEnumType(TOBModule , "TOBModule" ) );
49  theMap.insert( PairEnumType(TOBRod , "TOBRod" ) );
50  theMap.insert( PairEnumType(TOBLayer , "TOBLayer" ) );
51  theMap.insert( PairEnumType(TOBHalfBarrel , "TOBHalfBarrel" ) );
52  theMap.insert( PairEnumType(TOBBarrel , "TOBBarrel" ) );
53 
54  theMap.insert( PairEnumType(TECModule , "TECModule" ) );
55  theMap.insert( PairEnumType(TECRing , "TECRing" ) );
56  theMap.insert( PairEnumType(TECPetal , "TECPetal" ) );
57  theMap.insert( PairEnumType(TECSide , "TECSide" ) );
58  theMap.insert( PairEnumType(TECDisk , "TECDisk" ) );
59  theMap.insert( PairEnumType(TECEndcap , "TECEndcap" ) );
60 
61  theMap.insert( PairEnumType(Pixel , "Pixel" ) );
62  theMap.insert( PairEnumType(Strip , "Strip" ) );
63  theMap.insert( PairEnumType(Tracker , "Tracker" ) );
64 
65  theMap.insert( PairEnumType( AlignableDTBarrel , "DTBarrel" ) );
66  theMap.insert( PairEnumType( AlignableDTWheel , "DTWheel" ) );
67  theMap.insert( PairEnumType( AlignableDTStation , "DTStation" ) );
68  theMap.insert( PairEnumType( AlignableDTChamber , "DTChamber" ) );
69  theMap.insert( PairEnumType( AlignableDTSuperLayer, "DTSuperLayer" ) );
70  theMap.insert( PairEnumType( AlignableDTLayer , "DTLayer" ) );
71  theMap.insert( PairEnumType( AlignableCSCEndcap , "CSCEndcap" ) );
72  theMap.insert( PairEnumType( AlignableCSCStation , "CSCStation" ) );
73  theMap.insert( PairEnumType( AlignableCSCRing , "CSCRing" ) );
74  theMap.insert( PairEnumType( AlignableCSCChamber , "CSCChamber" ) );
75  theMap.insert( PairEnumType( AlignableCSCLayer , "CSCLayer" ) );
76  theMap.insert( PairEnumType( AlignableMuon , "Muon" ) );
77 
78  theMap.insert( PairEnumType( BeamSpot, "BeamSpot" ) );
79 
80  // Create the reverse map
81  std::transform( theMap.begin(), theMap.end(),
82  std::inserter( theReverseMap, theReverseMap.begin() ),
83  reverse_pair() );
84 
85 }
86 
87 
88 //__________________________________________________________________________________________________
90 AlignableObjectId::nameToType( const std::string& name ) const
91 {
92  ReverseMapEnumType::const_iterator n = theReverseMap.find(name);
93 
94  if (theReverseMap.end() == n)
95  {
96  throw cms::Exception("AlignableObjectIdError")
97  << "Unknown alignableObjectId " << name;
98  }
99 
100  return n->second;
101 }
102 
103 
104 //__________________________________________________________________________________________________
106 {
107  MapEnumType::const_iterator t = theMap.find(type);
108 
109  if (theMap.end() == t)
110  {
111  throw cms::Exception("AlignableObjectIdError")
112  << "Unknown alignableObjectId " << type;
113  }
114 
115  return t->second;
116 }
type
Definition: HCALResponse.h:22
A muon DT Chamber( an AlignableDet )
std::pair< align::StructureType, std::string > PairEnumType
A muon DT SuperLayer ( an AlignableDet )
AlignableObjectId()
Constructor (create maps)
Definition: TOBRod.h:16
const std::string & typeToName(align::StructureType type) const
Convert type to name.
align::StructureType nameToType(const std::string &name) const
Convert name to type.
Constructor of the full muon geometry.
Definition: AlignableMuon.h:36
A muon CSC Chamber( an AlignableDet )