CMS 3D CMS Logo

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

#include <PixelMatchNextLayers.h>

Public Member Functions

std::vector
< TrajectoryMeasurement
badMeasurementsInNextLayers () const
 
TransientTrackingRecHit::RecHitContainer hitsInNextLayers () const
 
std::vector
< TrajectoryMeasurement
measurementsInNextLayers () const
 
 PixelMatchNextLayers (const LayerMeasurements *theLayerMeasurements, const DetLayer *ilayer, FreeTrajectoryState &aFTS, const PropagatorWithMaterial *aProp, const BarrelMeasurementEstimator *aBarrelMeas, const ForwardMeasurementEstimator *aForwardMeas, bool searchInTIDTEC)
 
std::vector< CLHEP::Hep3Vector > predictionInNextLayers () const
 

Private Attributes

std::vector
< TrajectoryMeasurement
badMeasurementsHere
 
TransientTrackingRecHit::RecHitContainer hitsHere
 
std::vector
< TrajectoryMeasurement
measurementsHere
 
std::vector< CLHEP::Hep3Vector > predictionHere
 

Detailed Description

Description: class to find the compatible hits in the next layer

Implementation: <Notes on="" implementation>="">

Definition at line 32 of file PixelMatchNextLayers.h.

Constructor & Destructor Documentation

PixelMatchNextLayers::PixelMatchNextLayers ( const LayerMeasurements theLayerMeasurements,
const DetLayer ilayer,
FreeTrajectoryState aFTS,
const PropagatorWithMaterial aProp,
const BarrelMeasurementEstimator aBarrelMeas,
const ForwardMeasurementEstimator aForwardMeas,
bool  searchInTIDTEC 
)

Definition at line 44 of file PixelMatchNextLayers.cc.

References alongMomentum, badMeasurementsHere, GeomDetEnumerators::endcap, hitsHere, DetLayer::location(), m, LayerMeasurements::measurements(), measurementsHere, DetLayer::nextLayers(), GeomDetEnumerators::PixelBarrel, GeomDetEnumerators::PixelEndcap, predictionHere, relativeConstraints::ring, GeometricSearchDet::surface(), GeomDetEnumerators::TEC, and GeomDetEnumerators::TID.

50  {
51 
52  typedef std::vector<TrajectoryMeasurement>::const_iterator aMeas;
53  std::vector<const DetLayer*> allayers;
54  std::vector<const DetLayer*> nl = ilayer->nextLayers( aFTS, alongMomentum);
55  for (std::vector<const DetLayer*>::const_iterator il = nl.begin(); il != nl.end(); il++) {
56  allayers.push_back(*il);
57  std::vector<const DetLayer*> n2l = (*il)->nextLayers( aFTS, alongMomentum);
58  for (std::vector<const DetLayer*>::const_iterator i2l = n2l.begin(); i2l != n2l.end(); i2l++) {
59  allayers.push_back(*i2l);
60  }
61  }
62 
63  const TrajectoryStateOnSurface tsos(aFTS,ilayer->surface());
64 
65  if (tsos.isValid())
66  {
67  for (std::vector<const DetLayer*>::const_iterator il = allayers.begin(); il != allayers.end(); il++)
68  {
69  if ( (*il)->subDetector()==GeomDetEnumerators::PixelBarrel || (*il)->subDetector()==GeomDetEnumerators::PixelEndcap ) {
70 
71  std::vector<TrajectoryMeasurement> pixelMeasurements;
72  if ((*il)->subDetector()==GeomDetEnumerators::PixelBarrel) {
73  pixelMeasurements = theLayerMeasurements->measurements( **il, tsos , *aProp, *aBarrelMeas);
74  } else {
75  pixelMeasurements = theLayerMeasurements->measurements( **il, tsos, *aProp, *aForwardMeas);
76  }
77  for (aMeas m=pixelMeasurements.begin(); m!=pixelMeasurements.end(); m++){
78  if (m == pixelMeasurements.begin()){
79  CLHEP::Hep3Vector prediction(m->forwardPredictedState().globalPosition().x(),
80  m->forwardPredictedState().globalPosition().y(),
81  m->forwardPredictedState().globalPosition().z());
82  predictionHere.push_back( prediction);
83  }
84  if (m->recHit()->isValid()) {
85  measurementsHere.push_back( *m);
86  hitsHere.push_back( m->recHit());
87 
88  //std::cout<<"\n SH B-D "<<std::endl;
89 
90  } else {
91  badMeasurementsHere.push_back( *m);
92  }
93  }
94  }
95  if (searchInTIDTEC) {
96  //additional search in the TID layers
97  if ( ((*il)->subDetector())==GeomDetEnumerators::TID && (ilayer->location()) == GeomDetEnumerators::endcap)
98  {
99  std::vector<TrajectoryMeasurement> pixelMeasurements;
100  pixelMeasurements = theLayerMeasurements->measurements( (**il), tsos , *aProp, *aForwardMeas);
101 
102  for (aMeas m=pixelMeasurements.begin(); m!=pixelMeasurements.end(); m++)
103  {
104  // limit search in first ring
105  if (TIDDetId(m->recHit()->geographicalId()).ring() > 1) continue;
106  if (m == pixelMeasurements.begin())
107  {
108  CLHEP::Hep3Vector prediction(m->forwardPredictedState().globalPosition().x(),
109  m->forwardPredictedState().globalPosition().y(),
110  m->forwardPredictedState().globalPosition().z());
111  predictionHere.push_back( prediction);
112  }
113  if (m->recHit()->isValid())
114  {
115  measurementsHere.push_back( *m);
116  hitsHere.push_back(m->recHit());
117  }
118  // else{ std::cout<<" 2H not valid "<<std::endl;}
119  }
120  } //end of TID search
121 
122  //additional search in the TEC layers
123  if ( ((*il)->subDetector())==GeomDetEnumerators::TEC && (ilayer->location()) == GeomDetEnumerators::endcap)
124  {
125  std::vector<TrajectoryMeasurement> pixelMeasurements;
126  pixelMeasurements = theLayerMeasurements->measurements( (**il), tsos , *aProp, *aForwardMeas);
127 
128  for (aMeas m=pixelMeasurements.begin(); m!=pixelMeasurements.end(); m++)
129  {
130  // limit search in first ring and first third wheels
131  if (TECDetId(m->recHit()->geographicalId()).ring() > 1) continue;
132  if (TECDetId(m->recHit()->geographicalId()).wheel() > 3) continue;
133  if (m == pixelMeasurements.begin())
134  {
135  CLHEP::Hep3Vector prediction(m->forwardPredictedState().globalPosition().x(),
136  m->forwardPredictedState().globalPosition().y(),
137  m->forwardPredictedState().globalPosition().z());
138  predictionHere.push_back( prediction);
139  }
140  if (m->recHit()->isValid())
141  {
142  measurementsHere.push_back( *m);
143  hitsHere.push_back(m->recHit());
144 
145  //std::cout<<"\n SH TEC "<<std::endl;
146 
147  }
148  // else{ std::cout<<" 2H not valid "<<std::endl;}
149  }
150  } //end of TEC search
151  }
152  }
153  }
154 }
std::vector< TrajectoryMeasurement > measurements(const DetLayer &layer, const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
virtual Location location() const =0
Which part of the detector (barrel, endcap)
std::vector< TrajectoryMeasurement > measurementsHere
virtual std::vector< const DetLayer * > nextLayers(NavigationDirection direction) const
Definition: DetLayer.cc:35
TransientTrackingRecHit::RecHitContainer hitsHere
std::vector< TrajectoryMeasurement > badMeasurementsHere
std::vector< CLHEP::Hep3Vector > predictionHere

Member Function Documentation

std::vector< TrajectoryMeasurement > PixelMatchNextLayers::badMeasurementsInNextLayers ( ) const

Definition at line 162 of file PixelMatchNextLayers.cc.

References badMeasurementsHere.

162  {
163 
164  return badMeasurementsHere;
165 }
std::vector< TrajectoryMeasurement > badMeasurementsHere
TransientTrackingRecHit::RecHitContainer PixelMatchNextLayers::hitsInNextLayers ( ) const

Definition at line 167 of file PixelMatchNextLayers.cc.

References hitsHere.

167  {
168 
169  return hitsHere;
170 }
TransientTrackingRecHit::RecHitContainer hitsHere
std::vector< TrajectoryMeasurement > PixelMatchNextLayers::measurementsInNextLayers ( ) const

Definition at line 157 of file PixelMatchNextLayers.cc.

References measurementsHere.

Referenced by PixelHitMatcher::compatibleHits().

157  {
158 
159  return measurementsHere;
160 }
std::vector< TrajectoryMeasurement > measurementsHere
std::vector< CLHEP::Hep3Vector > PixelMatchNextLayers::predictionInNextLayers ( ) const

Definition at line 172 of file PixelMatchNextLayers.cc.

References predictionHere.

Referenced by PixelHitMatcher::compatibleHits().

172  {
173 
174  return predictionHere;
175 }
std::vector< CLHEP::Hep3Vector > predictionHere

Member Data Documentation

std::vector<TrajectoryMeasurement> PixelMatchNextLayers::badMeasurementsHere
private

Definition at line 50 of file PixelMatchNextLayers.h.

Referenced by badMeasurementsInNextLayers(), and PixelMatchNextLayers().

TransientTrackingRecHit::RecHitContainer PixelMatchNextLayers::hitsHere
private

Definition at line 51 of file PixelMatchNextLayers.h.

Referenced by hitsInNextLayers(), and PixelMatchNextLayers().

std::vector<TrajectoryMeasurement> PixelMatchNextLayers::measurementsHere
private

Definition at line 49 of file PixelMatchNextLayers.h.

Referenced by measurementsInNextLayers(), and PixelMatchNextLayers().

std::vector<CLHEP::Hep3Vector> PixelMatchNextLayers::predictionHere
private

Definition at line 52 of file PixelMatchNextLayers.h.

Referenced by PixelMatchNextLayers(), and predictionInNextLayers().