ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/IPHCalignment2/RecoTracker/TransientTrackingRecHit/interface/TSiTrackerMultiRecHit.h
Revision: 1.1
Committed: Fri Nov 25 17:05:34 2011 UTC (13 years, 5 months ago) by econte
Content type: text/plain
Branch: MAIN
CVS Tags: TBD2011, TBD_2011, HEAD
Error occurred while calculating annotation data.
Log Message:
new IPHC alignment

File Contents

# Content
1 #ifndef TSiTrackerMultiRecHit_h
2 #define TSiTrackerMultiRecHit_h
3
4 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
5 #include "DataFormats/TrackerRecHit2D/interface/SiTrackerMultiRecHit.h"
6 #include "TrackingTools/TransientTrackingRecHit/interface/HelpertRecHit2DLocalPos.h"
7 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h"
8
9 /*
10 A TransientTrackingRecHit for the SiTrackerMultiRecHit
11 */
12
13 class TSiTrackerMultiRecHit : public TransientTrackingRecHit {
14 public:
15 //virtual ~TSiTrackerMultiRecHit() {delete theHitData;}
16 virtual ~TSiTrackerMultiRecHit() {}
17
18 virtual AlgebraicVector parameters() const {return theHitData.parameters();}
19 virtual AlgebraicSymMatrix parametersError() const {
20 return HelpertRecHit2DLocalPos().parError( theHitData.localPositionError(), *det());
21 //return theHitData.parametersError();
22 }
23
24 virtual void getKfComponents( KfComponentsHolder & holder ) const {
25 HelpertRecHit2DLocalPos().getKfComponents(holder, theHitData, *det());
26 }
27 virtual DetId geographicalId() const {return theHitData.geographicalId();}
28 virtual AlgebraicMatrix projectionMatrix() const {return theHitData.projectionMatrix();}
29 virtual int dimension() const {return theHitData.dimension();}
30
31 virtual LocalPoint localPosition() const {return theHitData.localPosition();}
32 virtual LocalError localPositionError() const {return theHitData.localPositionError();}
33
34 virtual const TrackingRecHit * hit() const {return &theHitData;};
35 const SiTrackerMultiRecHit* specificHit() const {return &theHitData;}
36
37 virtual bool isValid() const{return theHitData.isValid();}
38
39 virtual std::vector<const TrackingRecHit*> recHits() const {
40 return theHitData.recHits();
41 }
42 virtual std::vector<TrackingRecHit*> recHits() {
43 return theHitData.recHits();
44 }
45
46 virtual const GeomDetUnit* detUnit() const;
47
48 virtual bool canImproveWithTrack() const {return true;}
49
50 virtual RecHitPointer clone(const TrajectoryStateOnSurface& ts) const;
51
52 virtual ConstRecHitContainer transientHits() const {return theComponents;};
53
54 static RecHitPointer build( const GeomDet * geom, const SiTrackerMultiRecHit* rh,
55 const ConstRecHitContainer& components, float annealing=1.){
56 return RecHitPointer(new TSiTrackerMultiRecHit( geom, rh, components, annealing));
57 }
58 private:
59 SiTrackerMultiRecHit theHitData;
60 //holds the TransientTrackingRecHit components of the MultiRecHit with up-to-date weights
61 ConstRecHitContainer theComponents;
62
63 TSiTrackerMultiRecHit(const GeomDet * geom, const SiTrackerMultiRecHit* rh,
64 const ConstRecHitContainer& components, float annealing):
65 TransientTrackingRecHit(geom,1, annealing), theHitData(*rh), theComponents(components){}
66
67 virtual TSiTrackerMultiRecHit* clone() const {
68 return new TSiTrackerMultiRecHit(*this);
69 }
70
71 };
72
73 #endif