19 #include <boost/function.hpp>
20 #include <boost/bind.hpp>
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;
50 using namespace trackerTrie;
60 typedef TrackingGeometry::DetUnitContainer::const_iterator Iter;
61 Iter
b=modules.begin();
67 unsigned int rawid = (*b)->geographicalId().rawId();
73 unsigned int rawid = (*last)->geographicalId().rawId();
74 int subdetid = (*last)->geographicalId().subdetId();
75 std::cout << rawid <<
" " << subdetid << std::endl;
80 unsigned int layerId[] = {1,3,5,21,22,41,42,61,62};
95 for (
int i=0;
i<9;
i++) {
97 if (layerId[
i]>9) s+=
char(layerId[
i]/10);
98 s+=
char(layerId[
i]%10);
108 vector<const GeometricDet*> theGeometricDetLayers = theGeometricTracker->
components();
109 for(vector<const GeometricDet*>::const_iterator it=theGeometricDetLayers.begin();
110 it!=theGeometricDetLayers.end(); it++){
113 vector<const GeometricDet*> thePxlBarGeometricDetLayers = (*it)->components();
114 for(vector<const GeometricDet*>::const_iterator it2=thePxlBarGeometricDetLayers.begin();
115 it2!=thePxlBarGeometricDetLayers.end(); it2++){
116 thePxlBarLayers.push_back( aPixelBarrelLayerBuilder.
build(*it2,theGeomDetGeometry) );
121 vector<const GeometricDet*> thePxlBarGeometricDetLayers = (*it)->components();
122 for(vector<const GeometricDet*>::const_iterator it2=thePxlBarGeometricDetLayers.begin();
123 it2!=thePxlBarGeometricDetLayers.end(); it2++){
124 thePxlBarLayers.push_back( aPixelBarrelLayerBuilder.
build(*it2,theGeomDetGeometry) );
129 vector<const GeometricDet*> theTIBGeometricDetLayers = (*it)->components();
130 for(vector<const GeometricDet*>::const_iterator it2=theTIBGeometricDetLayers.begin();
131 it2!=theTIBGeometricDetLayers.end(); it2++){
132 theTIBLayers.push_back( aTIBLayerBuilder.
build(*it2,theGeomDetGeometry) );
137 vector<const GeometricDet*> theTOBGeometricDetLayers = (*it)->components();
138 for(vector<const GeometricDet*>::const_iterator it2=theTOBGeometricDetLayers.begin();
139 it2!=theTOBGeometricDetLayers.end(); it2++){
140 theTOBLayers.push_back( aTOBLayerBuilder.
build(*it2,theGeomDetGeometry) );
145 vector<const GeometricDet*> theTOBGeometricDetLayers = (*it)->components();
146 for(vector<const GeometricDet*>::const_iterator it2=theTOBGeometricDetLayers.begin();
147 it2!=theTOBGeometricDetLayers.end(); it2++){
148 theTOBLayers.push_back( aPhase2OTBarrelLayerBuilder.
build(*it2,theGeomDetGeometry) );
153 vector<const GeometricDet*> thePxlFwdGeometricDetLayers = (*it)->components();
154 for(vector<const GeometricDet*>::const_iterator it2=thePxlFwdGeometricDetLayers.begin();
155 it2!=thePxlFwdGeometricDetLayers.end(); it2++){
156 if((*it2)->positionBounds().z() < 0)
157 theNegPxlFwdLayers.push_back( aPixelForwardLayerBuilder.
build(*it2,theGeomDetGeometry) );
158 if((*it2)->positionBounds().z() > 0)
159 thePosPxlFwdLayers.push_back( aPixelForwardLayerBuilder.
build(*it2,theGeomDetGeometry) );
164 vector<const GeometricDet*> thePxlFwdGeometricDetLayers = (*it)->components();
165 for(vector<const GeometricDet*>::const_iterator it2=thePxlFwdGeometricDetLayers.begin();
166 it2!=thePxlFwdGeometricDetLayers.end(); it2++){
167 if((*it2)->positionBounds().z() < 0)
168 theNegPxlFwdLayers.push_back( aPhase1PixelForwardLayerBuilder.
build(*it2,theGeomDetGeometry) );
169 if((*it2)->positionBounds().z() > 0)
170 thePosPxlFwdLayers.push_back( aPhase1PixelForwardLayerBuilder.
build(*it2,theGeomDetGeometry) );
175 vector<const GeometricDet*> thePxlFwdGeometricDetLayers = (*it)->components();
176 for(vector<const GeometricDet*>::const_iterator it2=thePxlFwdGeometricDetLayers.begin();
177 it2!=thePxlFwdGeometricDetLayers.end(); it2++){
181 if((*it2)->positionBounds().z() < 0){
183 theNegPxlFwdLayers.push_back( aPhase1PixelForwardLayerBuilder.
build(*it2,theGeomDetGeometry) );
185 theNegPxlFwdLayers.push_back( aPhase2EndcapLayerBuilder.
build(*it2,theGeomDetGeometry,
false) );
186 }
else if((*it2)->positionBounds().z() > 0){
188 thePosPxlFwdLayers.push_back( aPhase1PixelForwardLayerBuilder.
build(*it2,theGeomDetGeometry) );
190 thePosPxlFwdLayers.push_back( aPhase2EndcapLayerBuilder.
build(*it2,theGeomDetGeometry,
false) );
192 edm::LogError(
"TkDetLayers") <<
"In PixelPhase2EndCap the disks are neither PixelPhase2FullDisk nor PixelPhase2ReducedDisk nor PixelPhase2TDRDisk...";
199 vector<const GeometricDet*> theTIDGeometricDetLayers = (*it)->components();
200 for(vector<const GeometricDet*>::const_iterator it2=theTIDGeometricDetLayers.begin();
201 it2!=theTIDGeometricDetLayers.end(); it2++){
202 if((*it2)->positionBounds().z() < 0)
203 theNegTIDLayers.push_back( aTIDLayerBuilder.
build(*it2,theGeomDetGeometry) );
204 if((*it2)->positionBounds().z() > 0)
205 thePosTIDLayers.push_back( aTIDLayerBuilder.
build(*it2,theGeomDetGeometry) );
210 vector<const GeometricDet*> theTIDGeometricDetLayers = (*it)->components();
211 for(vector<const GeometricDet*>::const_iterator it2=theTIDGeometricDetLayers.begin();
212 it2!=theTIDGeometricDetLayers.end(); it2++){
213 if((*it2)->positionBounds().z() < 0)
214 theNegTIDLayers.push_back( aPhase2EndcapLayerBuilder.
build(*it2,theGeomDetGeometry,
true) );
215 if((*it2)->positionBounds().z() > 0)
216 thePosTIDLayers.push_back( aPhase2EndcapLayerBuilder.
build(*it2,theGeomDetGeometry,
true) );
221 vector<const GeometricDet*> theTECGeometricDetLayers = (*it)->components();
222 for(vector<const GeometricDet*>::const_iterator it2=theTECGeometricDetLayers.begin();
223 it2!=theTECGeometricDetLayers.end(); it2++){
224 if((*it2)->positionBounds().z() < 0)
225 theNegTECLayers.push_back( aTECLayerBuilder.
build(*it2,theGeomDetGeometry) );
226 if((*it2)->positionBounds().z() > 0)
227 thePosTECLayers.push_back( aTECLayerBuilder.
build(*it2,theGeomDetGeometry) );
236 theNegPxlFwdLayers,theNegTIDLayers,theNegTECLayers,
237 thePosPxlFwdLayers,thePosTIDLayers,thePosTECLayers, tTopo);
virtual char const * what() const
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))
std::string trackerHierarchy(unsigned int id)
ConstGeometricDetContainer & components()
void insert(std::string const &str, const T &value)
GeometricSearchTracker * build(const GeometricDet *theGeometricTracker, const TrackerGeometry *theGeomDetGeometry, const TrackerTopology *tTopo) __attribute__((cold))
std::vector< GeomDetUnit const * > DetUnitContainer
const TrieNode< T > * node(std::string const &str) const
get node matching a string
ForwardDetLayer * build(const GeometricDet *aPixelForwardLayer, const TrackerGeometry *theGeomDetGeometry) __attribute__((cold))
Phase2EndcapLayer * build(const GeometricDet *aPhase2EndcapLayer, const TrackerGeometry *theGeomDetGeometry, const bool isOuterTracker) __attribute__((cold))
const DetUnitContainer & detUnits() const
Returm a vector of all GeomDetUnit.