CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ProjectedRecHit2D.cc
Go to the documentation of this file.
5 
6 
8  const GeomDet* det, const GeomDet* originalDet,
9  const TransientTrackingRecHit& originalTransientHit,
10  float weight, float annealing ) :
11  GenericTransientTrackingRecHit( det, new ProjectedSiStripRecHit2D( pos, err, det->geographicalId(),
12  static_cast<const SiStripRecHit2D*>(originalTransientHit.hit())),weight, annealing)
13 {
14  const TSiStripRecHit2DLocalPos* specificOriginalTransientHit = static_cast<const TSiStripRecHit2DLocalPos*>(&originalTransientHit);
15  theCPE = specificOriginalTransientHit->cpe();
17 }
18 
21 {
22  if (theCPE != 0) {
24  if(!originalHit().cluster().isNull()){
25  const SiStripCluster& clust = *(originalHit().cluster());
26 
28  theCPE->localParameters( clust, *detUnit(), ts);
29 
30  RecHitPointer updatedOriginalHit =
31  TSiStripRecHit2DLocalPos::build( lv.first, lv.second, theOriginalDet,
32  originalHit().cluster(), theCPE, weight(), getAnnealingFactor());
33 
34  RecHitPointer hit = proj.project( *updatedOriginalHit, *det(), ts);
35 
36  return hit;
37  }else{
38  const SiStripCluster& clust = *(originalHit().cluster_regional());
39 
41  theCPE->localParameters( clust, *detUnit(), ts);
42 
43  RecHitPointer updatedOriginalHit =
44  TSiStripRecHit2DLocalPos::build( lv.first, lv.second, theOriginalDet,
45  originalHit().cluster_regional(), theCPE, weight(), getAnnealingFactor());
46 
47  RecHitPointer hit = proj.project( *updatedOriginalHit, *det(), ts);
48 
49  return hit;
50 
51  }
52  }
54  else return clone();
55 }
56 
61 
62  return result;
63 }
64 
66  const ProjectedSiStripRecHit2D* rh,
68  float weight, float annealing,
69  bool computeCoarseLocalPosition) :
70  GenericTransientTrackingRecHit( geom, *rh,weight, annealing), theCPE(cpe), theOriginalDet(originaldet) {
71  if (computeCoarseLocalPosition){
72  if (theCPE != 0) {
74  if(!originalHit().cluster().isNull()){
75  const SiStripCluster& clust = *(originalHit().cluster());
76 
78  theCPE->localParameters( clust, *detUnit());
79 
80  RecHitPointer updatedOriginalHit =
81  TSiStripRecHit2DLocalPos::build( lv.first, lv.second, theOriginalDet,
82  originalHit().cluster(), theCPE, weight, annealing);
83 
84  RecHitPointer hit = proj.project( *updatedOriginalHit, *det());
85  trackingRecHit_ = hit->hit()->clone();
86  }else{
87  const SiStripCluster& clust = *(originalHit().cluster_regional());
88 
90  theCPE->localParameters( clust, *detUnit());
91 
92  RecHitPointer updatedOriginalHit =
93  TSiStripRecHit2DLocalPos::build( lv.first, lv.second, theOriginalDet,
94  originalHit().cluster_regional(), theCPE, weight, annealing);
95 
96  RecHitPointer hit = proj.project( *updatedOriginalHit, *det());
97  trackingRecHit_ = hit->hit()->clone();
98  }
99  }
100  }
101 }
ReferenceCountingPointer< TransientTrackingRecHit > RecHitPointer
ProjectedRecHit2D(const LocalPoint &pos, const LocalError &err, const GeomDet *det, const GeomDet *originaldet, const TransientTrackingRecHit &originalHit, float weight, float annealing)
const StripClusterParameterEstimator * theCPE
virtual const TrackingRecHit * hit() const
const SiStripRecHit2D & originalHit() const
ClusterRegionalRef const & cluster_regional() const
static RecHitPointer build(const GeomDet *geom, const SiStripRecHit2D *rh, const StripClusterParameterEstimator *cpe, float weight=1., float annealing=1., bool computeCoarseLocalPosition=false)
std::pair< LocalPoint, LocalError > LocalValues
RecHitPointer project(const TransientTrackingRecHit &hit, const GeomDet &det, const TrajectoryStateOnSurface &ts) const
virtual ProjectedRecHit2D * clone() const
virtual LocalValues localParameters(const T &, const GeomDetUnit &) const =0
virtual ConstRecHitContainer transientHits() const
Composite interface: returns the component hits, if any.
const StripClusterParameterEstimator * cpe() const
const GeomDet * originalDet() const
tuple result
Definition: query.py:137
const GeomDetUnit * detUnit() const
std::vector< ConstRecHitPointer > ConstRecHitContainer
ClusterRef const & cluster() const
string const
Definition: compareJSON.py:14
const GeomDet * det() const
The GomeDet* can be zero for InvalidTransientRecHits and for TConstraintRecHit2Ds.
const GeomDet * theOriginalDet