CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GeometricSearchTracker.cc
Go to the documentation of this file.
3 
4 using namespace std;
5 
6 GeometricSearchTracker::GeometricSearchTracker(const vector<BarrelDetLayer*>& pxlBar,
7  const vector<BarrelDetLayer*>& tib,
8  const vector<BarrelDetLayer*>& tob,
9  const vector<ForwardDetLayer*>& negPxlFwd,
10  const vector<ForwardDetLayer*>& negTid,
11  const vector<ForwardDetLayer*>& negTec,
12  const vector<ForwardDetLayer*>& posPxlFwd,
13  const vector<ForwardDetLayer*>& posTid,
14  const vector<ForwardDetLayer*>& posTec):
15  thePixelBarrelLayers(pxlBar.begin(),pxlBar.end()),
16  theTibLayers(tib.begin(),tib.end()),
17  theTobLayers(tob.begin(),tob.end()),
18  theNegPixelForwardLayers(negPxlFwd.begin(),negPxlFwd.end()),
19  theNegTidLayers(negTid.begin(),negTid.end()),
20  theNegTecLayers(negTec.begin(),negTec.end()),
21  thePosPixelForwardLayers(posPxlFwd.begin(),posPxlFwd.end()),
22  thePosTidLayers(posTid.begin(),posTid.end()),
23  thePosTecLayers(posTec.begin(),posTec.end())
24 {
26  theBarrelLayers.insert(theBarrelLayers.end(),theTibLayers.begin(),theTibLayers.end());
27  theBarrelLayers.insert(theBarrelLayers.end(),theTobLayers.begin(),theTobLayers.end());
28 
32 
36 
37 
40  theAllLayers.assign(theBarrelLayers.begin(),theBarrelLayers.end());
41  theAllLayers.insert(theAllLayers.end(),
42  theForwardLayers.begin(),
43  theForwardLayers.end());
44 
45  edm::LogInfo("TkDetLayers")
46  << "------ GeometricSearchTracker constructed with: ------" << "\n"
47  << "n pxlBarLayers: " << this->pixelBarrelLayers().size() << "\n"
48  << "n tibLayers: " << this->tibLayers().size() << "\n"
49  << "n tobLayers: " << this->tobLayers().size() << "\n"
50  << "n negPxlFwdLayers: " << this->negPixelForwardLayers().size() << "\n"
51  << "n negPxlFwdLayers: " << this->posPixelForwardLayers().size() << "\n"
52  << "n negTidLayers: " << this->negTidLayers().size() << "\n"
53  << "n posTidLayers: " << this->posTidLayers().size() << "\n"
54  << "n negTecLayers: " << this->negTecLayers().size() << "\n"
55  << "n posTecLayers: " << this->posTecLayers().size() << "\n"
56 
57  << "n barreLayers: " << this->barrelLayers().size() << "\n"
58  << "n negforwardLayers: " << this->negForwardLayers().size() << "\n"
59  << "n posForwardLayers: " << this->posForwardLayers().size() ;
60 }
61 
62 
64  for(vector<DetLayer*>::const_iterator it=theAllLayers.begin(); it!=theAllLayers.end();it++){
65  delete *it;
66  }
67 
68 }
69 
70 
79 
80 const DetLayer*
82 {
83  switch(id.subdetId()) {
85  //edm::LogInfo(TkDetLayers) << "TIB layer n: " << TIBDetId(id).layer() ;
86  return theTibLayers[TIBDetId(id).layer()-1];
87  break;
88 
90  //edm::LogInfo(TkDetLayers) << "TOB layer n: " << TOBDetId(id).layer() ;
91  return theTobLayers[TOBDetId(id).layer()-1];
92  break;
93 
95  //edm::LogInfo(TkDetLayers) << "TID wheel n: " << TIDDetId(id).wheel() ;
96  if(TIDDetId(id).side() ==1 ) {
97  return theNegTidLayers[TIDDetId(id).wheel()-1];
98  }else if( TIDDetId(id).side() == 2 ) {
99  return thePosTidLayers[TIDDetId(id).wheel()-1];
100  }
101  break;
102 
104  //edm::LogInfo(TkDetLayers) << "TEC wheel n: " << TECDetId(id).wheel() ;
105  if(TECDetId(id).side() ==1 ) {
106  return theNegTecLayers[TECDetId(id).wheel()-1];
107  }else if( TECDetId(id).side() == 2 ) {
108  return thePosTecLayers[TECDetId(id).wheel()-1];
109  }
110  break;
111 
113  //edm::LogInfo(TkDetLayers) << "PixelBarrel layer n: " << PXBDetId(id).layer() ;
114  return thePixelBarrelLayers[PXBDetId(id).layer()-1];
115  break;
116 
118  //edm::LogInfo(TkDetLayers) << "PixelEndcap disk n: " << PXFDetId(id).disk() ;
119  if(PXFDetId(id).side() ==1 ) {
120  return theNegPixelForwardLayers[PXFDetId(id).disk()-1];
121  }else if( PXFDetId(id).side() == 2 ) {
122  return thePosPixelForwardLayers[PXFDetId(id).disk()-1];
123  }
124  break;
125 
126  default:
127  edm::LogError("TkDetLayers") << "ERROR:layer not found!" ;
128  // throw(something);
129  }
130  return 0; //just to avoid compile warnings
131 }
std::vector< ForwardDetLayer * > theForwardLayers
unsigned int layer() const
layer id
Definition: TOBDetId.h:39
std::vector< ForwardDetLayer * > const & posTecLayers() const
std::vector< ForwardDetLayer * > theNegTidLayers
std::vector< BarrelDetLayer * > theTibLayers
unsigned int layer() const
layer id
Definition: PXBDetId.h:35
std::vector< ForwardDetLayer * > thePosTidLayers
std::vector< BarrelDetLayer * > const & barrelLayers() const
std::vector< ForwardDetLayer * > const & negTecLayers() const
std::vector< BarrelDetLayer * > theBarrelLayers
std::vector< BarrelDetLayer * > thePixelBarrelLayers
std::vector< BarrelDetLayer * > theTobLayers
std::vector< ForwardDetLayer * > const & posPixelForwardLayers() const
std::vector< ForwardDetLayer * > theNegPixelForwardLayers
std::vector< ForwardDetLayer * > thePosPixelForwardLayers
#define end
Definition: vmac.h:38
std::vector< ForwardDetLayer * > const & negForwardLayers() const
unsigned int disk() const
disk id
Definition: PXFDetId.h:43
virtual const DetLayer * idToLayer(const DetId &detId) const
Give the DetId of a module, returns the pointer to the corresponding DetLayer.
Definition: DetId.h:20
std::vector< ForwardDetLayer * > const & posForwardLayers() const
std::vector< ForwardDetLayer * > thePosForwardLayers
unsigned int wheel() const
wheel id
Definition: TECDetId.h:52
unsigned int layer() const
layer id
Definition: TIBDetId.h:41
std::vector< ForwardDetLayer * > thePosTecLayers
std::vector< BarrelDetLayer * > const & tibLayers() const
#define begin
Definition: vmac.h:31
std::vector< ForwardDetLayer * > const & posTidLayers() const
GeometricSearchTracker(const std::vector< BarrelDetLayer * > &pxlBar, const std::vector< BarrelDetLayer * > &tib, const std::vector< BarrelDetLayer * > &tob, const std::vector< ForwardDetLayer * > &negPxlFwd, const std::vector< ForwardDetLayer * > &negTid, const std::vector< ForwardDetLayer * > &negTec, const std::vector< ForwardDetLayer * > &posPxlFwd, const std::vector< ForwardDetLayer * > &posTid, const std::vector< ForwardDetLayer * > &posTec)
std::vector< DetLayer * > theAllLayers
std::vector< ForwardDetLayer * > theNegForwardLayers
std::vector< ForwardDetLayer * > const & negTidLayers() const
std::vector< ForwardDetLayer * > theNegTecLayers
unsigned int wheel() const
wheel id
Definition: TIDDetId.h:50
std::vector< BarrelDetLayer * > const & tobLayers() const
std::vector< BarrelDetLayer * > const & pixelBarrelLayers() const
std::vector< ForwardDetLayer * > const & negPixelForwardLayers() const