ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/IPHCalignment2/RecoTracker/TransientTrackingRecHit/interface/TRecHit1DMomConstraint.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
Log Message:
new IPHC alignment

File Contents

# Content
1 #ifndef RECOTRACKER_TRANSIENTRACKINGRECHIT_TRecHit1DMomConstraint_H
2 #define RECOTRACKER_TRANSIENTRACKINGRECHIT_TRecHit1DMomConstraint_H
3
4 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
5
6 class GeomDetUnit;
7
8 class TRecHit1DMomConstraint : public TransientTrackingRecHit {
9 public:
10
11 virtual ~TRecHit1DMomConstraint() {}
12
13 virtual AlgebraicVector parameters() const {
14 AlgebraicVector result(1);
15 result[0] = charge_/fabs(mom_);
16 return result;
17 }
18
19 virtual AlgebraicSymMatrix parametersError() const {
20 AlgebraicSymMatrix m(1);
21 m[0][0] = err_/(mom_*mom_);//parametersErrors are squared
22 m[0][0] *= m[0][0];
23 return m;
24 }
25
26 virtual AlgebraicMatrix projectionMatrix() const {
27 AlgebraicMatrix theProjectionMatrix;
28 theProjectionMatrix = AlgebraicMatrix( 1, 5, 0);
29 theProjectionMatrix[0][0] = 1;
30 return theProjectionMatrix;
31 }
32 virtual int dimension() const {return 1;}
33
34 virtual LocalPoint localPosition() const {return LocalPoint(0,0,0);}
35 virtual LocalError localPositionError() const {return LocalError(0,0,0);}
36
37 double mom() const {return mom_;}
38 double err() const {return err_;}
39 int charge() const {return charge_;}
40
41 virtual const TrackingRecHit * hit() const {return 0;}//fixme return invalid
42
43
44
45 virtual std::vector<const TrackingRecHit*> recHits() const {
46 return hit()->recHits();
47 }
48 virtual std::vector<TrackingRecHit*> recHits() {
49 return std::vector<TrackingRecHit*>();
50 }
51
52 virtual bool canImproveWithTrack() const {return false;}
53
54 virtual RecHitPointer clone (const TrajectoryStateOnSurface& ts) const {return clone();}
55
56 virtual const GeomDetUnit* detUnit() const {return 0;}
57 virtual const GeomDet* det() const {return 0;}
58
59 static RecHitPointer build(const int charge,
60 const double mom,
61 const double err,//not sqared!!!
62 const Surface* surface) {
63 return RecHitPointer( new TRecHit1DMomConstraint( charge, mom, err, surface));
64 }
65
66 virtual const Surface * surface() const {return surface_;}
67
68 private:
69 const int charge_;
70 const double mom_;
71 const double err_;
72 const Surface* surface_;
73 /// Creates the TrackingRecHit internally, avoids redundent cloning
74 TRecHit1DMomConstraint(const int charge,
75 const double mom,
76 const double err,//notsquared
77 const Surface* surface):
78 charge_(charge),mom_(mom),err_(err),surface_(surface) {}
79
80 TRecHit1DMomConstraint( const TRecHit1DMomConstraint& other ):
81 charge_( other.charge() ), mom_( other.mom() ),err_( other.err() ), surface_((other.surface())) {}
82
83 virtual TRecHit1DMomConstraint * clone() const {
84 return new TRecHit1DMomConstraint(*this);
85 }
86
87 };
88
89 #endif