1 |
econte |
1.1 |
#ifndef RECOTRACKER_TRANSIENTRACKINGRECHIT_TRecHit5DParamConstraint_H
|
2 |
|
|
#define RECOTRACKER_TRANSIENTRACKINGRECHIT_TRecHit5DParamConstraint_H
|
3 |
|
|
|
4 |
|
|
#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
|
5 |
|
|
#include "DataFormats/CLHEP/interface/Migration.h"
|
6 |
|
|
|
7 |
|
|
class GeomDetUnit;
|
8 |
|
|
|
9 |
|
|
class TRecHit5DParamConstraint : public TransientTrackingRecHit
|
10 |
|
|
{
|
11 |
|
|
|
12 |
|
|
private:
|
13 |
|
|
|
14 |
|
|
TRecHit5DParamConstraint( const TrajectoryStateOnSurface& tsos ) : tsos_( tsos ) {}
|
15 |
|
|
|
16 |
|
|
TRecHit5DParamConstraint( const TRecHit5DParamConstraint& other ) : tsos_( other.trajectoryState() ) {}
|
17 |
|
|
|
18 |
|
|
public:
|
19 |
|
|
|
20 |
|
|
virtual ~TRecHit5DParamConstraint() {}
|
21 |
|
|
|
22 |
|
|
virtual int dimension() const { return 5; }
|
23 |
|
|
|
24 |
|
|
virtual AlgebraicMatrix projectionMatrix() const {
|
25 |
|
|
AlgebraicMatrix projectionMatrix( 5, 5, 1 );
|
26 |
|
|
return projectionMatrix;
|
27 |
|
|
}
|
28 |
|
|
|
29 |
|
|
virtual AlgebraicVector parameters() const { return asHepVector( tsos_.localParameters().vector() ); }
|
30 |
|
|
|
31 |
|
|
virtual AlgebraicSymMatrix parametersError() const { return asHepMatrix( tsos_.localError().matrix() ); }
|
32 |
|
|
|
33 |
|
|
virtual LocalPoint localPosition() const { return tsos_.localPosition(); }
|
34 |
|
|
|
35 |
|
|
virtual LocalError localPositionError() const { return tsos_.localError().positionError(); }
|
36 |
|
|
|
37 |
|
|
virtual int charge() const { return tsos_.charge(); }
|
38 |
|
|
|
39 |
|
|
virtual bool canImproveWithTrack() const { return false; }
|
40 |
|
|
|
41 |
|
|
virtual const TrackingRecHit* hit() const { return 0; }
|
42 |
|
|
|
43 |
|
|
virtual std::vector<const TrackingRecHit*> recHits() const { return std::vector<const TrackingRecHit*>(); }
|
44 |
|
|
|
45 |
|
|
virtual std::vector<TrackingRecHit*> recHits() { return std::vector<TrackingRecHit*>(); }
|
46 |
|
|
|
47 |
|
|
virtual const GeomDetUnit* detUnit() const { return 0; }
|
48 |
|
|
|
49 |
|
|
virtual const GeomDet* det() const { return 0; }
|
50 |
|
|
|
51 |
|
|
virtual const Surface* surface() const { return &tsos_.surface(); }
|
52 |
|
|
|
53 |
|
|
virtual TransientTrackingRecHit::RecHitPointer clone( const TrajectoryStateOnSurface& tsos ) const {
|
54 |
|
|
//return new TRecHit5DParamConstraint( this->trajectoryState() );
|
55 |
|
|
return new TRecHit5DParamConstraint( tsos );
|
56 |
|
|
}
|
57 |
|
|
|
58 |
|
|
static TransientTrackingRecHit::RecHitPointer build( const TrajectoryStateOnSurface& tsos ) {
|
59 |
|
|
return RecHitPointer( new TRecHit5DParamConstraint( tsos ) );
|
60 |
|
|
}
|
61 |
|
|
|
62 |
|
|
private:
|
63 |
|
|
|
64 |
|
|
const TrajectoryStateOnSurface tsos_;
|
65 |
|
|
|
66 |
|
|
virtual TRecHit5DParamConstraint* clone() const {
|
67 |
|
|
return new TRecHit5DParamConstraint( this->trajectoryState() );
|
68 |
|
|
}
|
69 |
|
|
|
70 |
|
|
const TrajectoryStateOnSurface& trajectoryState() const { return tsos_; }
|
71 |
|
|
|
72 |
|
|
};
|
73 |
|
|
|
74 |
|
|
#endif
|