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
Log Message:
new IPHC alignment

File Contents

# User Rev Content
1 econte 1.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