CMS 3D CMS Logo

List of all members | Public Member Functions
GeometricSearchTrackerBuilder Class Reference

#include <GeometricSearchTrackerBuilder.h>

Public Member Functions

GeometricSearchTrackerbuild (const GeometricDet *theGeometricTracker, const TrackerGeometry *theGeomDetGeometry, const TrackerTopology *tTopo) __attribute__((cold))
 
 GeometricSearchTrackerBuilder ()
 
 ~GeometricSearchTrackerBuilder ()
 

Detailed Description

GeometricSearchTrackerBuilder implementation

Definition at line 15 of file GeometricSearchTrackerBuilder.h.

Constructor & Destructor Documentation

GeometricSearchTrackerBuilder::GeometricSearchTrackerBuilder ( )
inline

Definition at line 18 of file GeometricSearchTrackerBuilder.h.

18 {}
GeometricSearchTrackerBuilder::~GeometricSearchTrackerBuilder ( )
inline

Definition at line 19 of file GeometricSearchTrackerBuilder.h.

References build().

19 {}

Member Function Documentation

GeometricSearchTracker * GeometricSearchTrackerBuilder::build ( const GeometricDet theGeometricTracker,
const TrackerGeometry theGeomDetGeometry,
const TrackerTopology tTopo 
)

Definition at line 25 of file GeometricSearchTrackerBuilder.cc.

References PixelBarrelLayerBuilder::build(), TOBLayerBuilder::build(), Phase2EndcapLayerBuilder::build(), Phase2OTBarrelLayerBuilder::build(), TIDLayerBuilder::build(), TECLayerBuilder::build(), TIBLayerBuilder::build(), PixelForwardLayerBuilder< T1, T2 >::build(), GeometricDet::components(), GeometricDet::OTPhase2Barrel, GeometricDet::OTPhase2EndCap, GeometricDet::PixelBarrel, GeometricDet::PixelEndCap, GeometricDet::PixelPhase1Barrel, GeometricDet::PixelPhase1EndCap, GeometricDet::PixelPhase2EndCap, GeometricDet::PixelPhase2FullDisk, GeometricDet::PixelPhase2ReducedDisk, GeometricDet::PixelPhase2TDRDisk, GeometricDet::TEC, GeometricDet::TIB, GeometricDet::TID, and GeometricDet::TOB.

Referenced by TrackerRecoGeometryESProducer::produce(), and ~GeometricSearchTrackerBuilder().

28 {
29 
30  PixelBarrelLayerBuilder aPixelBarrelLayerBuilder;
31  Phase2OTBarrelLayerBuilder aPhase2OTBarrelLayerBuilder;
34  Phase2EndcapLayerBuilder aPhase2EndcapLayerBuilder;
35  TIBLayerBuilder aTIBLayerBuilder;
36  TOBLayerBuilder aTOBLayerBuilder;
37  TIDLayerBuilder aTIDLayerBuilder;
38  TECLayerBuilder aTECLayerBuilder;
39 
40  vector<BarrelDetLayer const*> thePxlBarLayers;
41  vector<BarrelDetLayer const*> theTIBLayers;
42  vector<BarrelDetLayer const*> theTOBLayers;
43  vector<ForwardDetLayer const*> theNegPxlFwdLayers;
44  vector<ForwardDetLayer const*> thePosPxlFwdLayers;
45  vector<ForwardDetLayer const*> theNegTIDLayers;
46  vector<ForwardDetLayer const*> thePosTIDLayers;
47  vector<ForwardDetLayer const*> theNegTECLayers;
48  vector<ForwardDetLayer const*> thePosTECLayers;
49 
50  vector<const GeometricDet*> theGeometricDetLayers = theGeometricTracker->components();
51  for(vector<const GeometricDet*>::const_iterator it=theGeometricDetLayers.begin();
52  it!=theGeometricDetLayers.end(); it++){
53 
54  if( (*it)->type() == GeometricDet::PixelBarrel) {
55  vector<const GeometricDet*> thePxlBarGeometricDetLayers = (*it)->components();
56  for(vector<const GeometricDet*>::const_iterator it2=thePxlBarGeometricDetLayers.begin();
57  it2!=thePxlBarGeometricDetLayers.end(); it2++){
58  thePxlBarLayers.push_back( aPixelBarrelLayerBuilder.build(*it2,theGeomDetGeometry) );
59  }
60  }
61 
62  if( (*it)->type() == GeometricDet::PixelPhase1Barrel) {
63  vector<const GeometricDet*> thePxlBarGeometricDetLayers = (*it)->components();
64  for(vector<const GeometricDet*>::const_iterator it2=thePxlBarGeometricDetLayers.begin();
65  it2!=thePxlBarGeometricDetLayers.end(); it2++){
66  thePxlBarLayers.push_back( aPixelBarrelLayerBuilder.build(*it2,theGeomDetGeometry) );
67  }
68  }
69 
70  if( (*it)->type() == GeometricDet::TIB) {
71  vector<const GeometricDet*> theTIBGeometricDetLayers = (*it)->components();
72  for(vector<const GeometricDet*>::const_iterator it2=theTIBGeometricDetLayers.begin();
73  it2!=theTIBGeometricDetLayers.end(); it2++){
74  theTIBLayers.push_back( aTIBLayerBuilder.build(*it2,theGeomDetGeometry) );
75  }
76  }
77 
78  if( (*it)->type() == GeometricDet::TOB) {
79  vector<const GeometricDet*> theTOBGeometricDetLayers = (*it)->components();
80  for(vector<const GeometricDet*>::const_iterator it2=theTOBGeometricDetLayers.begin();
81  it2!=theTOBGeometricDetLayers.end(); it2++){
82  theTOBLayers.push_back( aTOBLayerBuilder.build(*it2,theGeomDetGeometry) );
83  }
84  }
85 
86  if( (*it)->type() == GeometricDet::OTPhase2Barrel) {
87  vector<const GeometricDet*> theTOBGeometricDetLayers = (*it)->components();
88  for(vector<const GeometricDet*>::const_iterator it2=theTOBGeometricDetLayers.begin();
89  it2!=theTOBGeometricDetLayers.end(); it2++){
90  theTOBLayers.push_back( aPhase2OTBarrelLayerBuilder.build(*it2,theGeomDetGeometry) );
91  }
92  }
93 
94  if( (*it)->type() == GeometricDet::PixelEndCap) {
95  vector<const GeometricDet*> thePxlFwdGeometricDetLayers = (*it)->components();
96  for(vector<const GeometricDet*>::const_iterator it2=thePxlFwdGeometricDetLayers.begin();
97  it2!=thePxlFwdGeometricDetLayers.end(); it2++){
98  if((*it2)->positionBounds().z() < 0)
99  theNegPxlFwdLayers.push_back( aPixelForwardLayerBuilder.build(*it2,theGeomDetGeometry) );
100  if((*it2)->positionBounds().z() > 0)
101  thePosPxlFwdLayers.push_back( aPixelForwardLayerBuilder.build(*it2,theGeomDetGeometry) );
102  }
103  }
104 
105  if( (*it)->type() == GeometricDet::PixelPhase1EndCap ) {
106  vector<const GeometricDet*> thePxlFwdGeometricDetLayers = (*it)->components();
107  for(vector<const GeometricDet*>::const_iterator it2=thePxlFwdGeometricDetLayers.begin();
108  it2!=thePxlFwdGeometricDetLayers.end(); it2++){
109  if((*it2)->positionBounds().z() < 0)
110  theNegPxlFwdLayers.push_back( aPhase1PixelForwardLayerBuilder.build(*it2,theGeomDetGeometry) );
111  if((*it2)->positionBounds().z() > 0)
112  thePosPxlFwdLayers.push_back( aPhase1PixelForwardLayerBuilder.build(*it2,theGeomDetGeometry) );
113  }
114  }
115 
116  if( (*it)->type() == GeometricDet::PixelPhase2EndCap ){
117  vector<const GeometricDet*> thePxlFwdGeometricDetLayers = (*it)->components();
118  for(vector<const GeometricDet*>::const_iterator it2=thePxlFwdGeometricDetLayers.begin();
119  it2!=thePxlFwdGeometricDetLayers.end(); it2++){
120 
121  //FIXME: this is just to keep the compatibility with the PixelPhase1 extension layout
122  //hopefully we can get rid of it soon
123  if((*it2)->positionBounds().z() < 0){
124  if( (*it2)->type() == GeometricDet::PixelPhase2FullDisk || (*it2)->type() == GeometricDet::PixelPhase2ReducedDisk )
125  theNegPxlFwdLayers.push_back( aPhase1PixelForwardLayerBuilder.build(*it2,theGeomDetGeometry) );
126  else if( (*it2)->type() == GeometricDet::PixelPhase2TDRDisk )
127  theNegPxlFwdLayers.push_back( aPhase2EndcapLayerBuilder.build(*it2,theGeomDetGeometry,false) );
128  } else if((*it2)->positionBounds().z() > 0){
129  if( (*it2)->type() == GeometricDet::PixelPhase2FullDisk || (*it2)->type() == GeometricDet::PixelPhase2ReducedDisk )
130  thePosPxlFwdLayers.push_back( aPhase1PixelForwardLayerBuilder.build(*it2,theGeomDetGeometry) );
131  else if( (*it2)->type() == GeometricDet::PixelPhase2TDRDisk )
132  thePosPxlFwdLayers.push_back( aPhase2EndcapLayerBuilder.build(*it2,theGeomDetGeometry,false) );
133  } else {
134  edm::LogError("TkDetLayers") << "In PixelPhase2EndCap the disks are neither PixelPhase2FullDisk nor PixelPhase2ReducedDisk nor PixelPhase2TDRDisk...";
135  }
136 
137  }
138  }
139 
140  if( (*it)->type() == GeometricDet::TID){
141  vector<const GeometricDet*> theTIDGeometricDetLayers = (*it)->components();
142  for(vector<const GeometricDet*>::const_iterator it2=theTIDGeometricDetLayers.begin();
143  it2!=theTIDGeometricDetLayers.end(); it2++){
144  if((*it2)->positionBounds().z() < 0)
145  theNegTIDLayers.push_back( aTIDLayerBuilder.build(*it2,theGeomDetGeometry) );
146  if((*it2)->positionBounds().z() > 0)
147  thePosTIDLayers.push_back( aTIDLayerBuilder.build(*it2,theGeomDetGeometry) );
148  }
149  }
150 
151  if( (*it)->type() == GeometricDet::OTPhase2EndCap ){
152  vector<const GeometricDet*> theTIDGeometricDetLayers = (*it)->components();
153  for(vector<const GeometricDet*>::const_iterator it2=theTIDGeometricDetLayers.begin();
154  it2!=theTIDGeometricDetLayers.end(); it2++){
155  if((*it2)->positionBounds().z() < 0)
156  theNegTIDLayers.push_back( aPhase2EndcapLayerBuilder.build(*it2,theGeomDetGeometry,true) );
157  if((*it2)->positionBounds().z() > 0)
158  thePosTIDLayers.push_back( aPhase2EndcapLayerBuilder.build(*it2,theGeomDetGeometry,true) );
159  }
160  }
161 
162  if( (*it)->type() == GeometricDet::TEC) {
163  vector<const GeometricDet*> theTECGeometricDetLayers = (*it)->components();
164  for(vector<const GeometricDet*>::const_iterator it2=theTECGeometricDetLayers.begin();
165  it2!=theTECGeometricDetLayers.end(); it2++){
166  if((*it2)->positionBounds().z() < 0)
167  theNegTECLayers.push_back( aTECLayerBuilder.build(*it2,theGeomDetGeometry) );
168  if((*it2)->positionBounds().z() > 0)
169  thePosTECLayers.push_back( aTECLayerBuilder.build(*it2,theGeomDetGeometry) );
170  }
171  }
172 
173 
174  }
175 
176 
177  return new GeometricSearchTracker(thePxlBarLayers,theTIBLayers,theTOBLayers,
178  theNegPxlFwdLayers,theNegTIDLayers,theNegTECLayers,
179  thePosPxlFwdLayers,thePosTIDLayers,thePosTECLayers, tTopo);
180 }
TIBLayer * build(const GeometricDet *aTIBLayer, const TrackerGeometry *theGeomDetGeometry) __attribute__((cold))
TOBLayer * build(const GeometricDet *aTOBLayer, const TrackerGeometry *theGeomDetGeometry) __attribute__((cold))
TECLayer * build(const GeometricDet *aTECLayer, const TrackerGeometry *theGeomDetGeometry) __attribute__((cold))
PixelBarrelLayer * build(const GeometricDet *aPixelBarrelLayer, const TrackerGeometry *theGeomDetGeometry) __attribute__((cold))
TIDLayer * build(const GeometricDet *aTIDLayer, const TrackerGeometry *theGeomDetGeometry) __attribute__((cold))
Phase2OTBarrelLayer * build(const GeometricDet *aPhase2OTBarrelLayer, const TrackerGeometry *theGeomDetGeometry) __attribute__((cold))
ConstGeometricDetContainer & components()
Definition: GeometricDet.h:175
ForwardDetLayer * build(const GeometricDet *aPixelForwardLayer, const TrackerGeometry *theGeomDetGeometry) __attribute__((cold))
Phase2EndcapLayer * build(const GeometricDet *aPhase2EndcapLayer, const TrackerGeometry *theGeomDetGeometry, const bool isOuterTracker) __attribute__((cold))