EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EicTrackingRecoHit.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EicTrackingRecoHit.h
1 //
2 // AYK (ayk@bnl.gov), 2013/06/12
3 //
4 // Tracking reco hit and GenFit interface classes;
5 //
6 
7 #ifndef _EIC_TRACKING_RECO_HIT_
8 #define _EIC_TRACKING_RECO_HIT_
9 
10 #include "GFRecoHitIfc.h"
11 #include "GFPlanarHitPolicy.h"
12 #include "GFSpacepointHitPolicy.h"
13 
14 #include <ostream>
15 
16 #include <PndGeoHandling.h>
17 
18 #include <EicTrackingDigiHit.h>
19 
21  public:
24 
25  protected:
27 
28  TMatrixT<double> getHMatrix(const GFAbsTrackRep* stateVector);
29 
30  virtual unsigned GetMdim() const = 0;
31 };
32 
33 class EicPlanarRecoHit : public EicTrackingRecoHit, public GFRecoHitIfc<GFPlanarHitPolicy> {
34 public:
36  EicPlanarRecoHit(EicTrackingDigiHit* hit, void *ptr = 0);
38 
39  private:
40  GFAbsRecoHit* clone() { return new EicPlanarRecoHit(*this); };
41 
42  unsigned GetMdim() const { return mDim; };
43 
44  UChar_t mDim;
45 
46  // Can not inherit this virtual function from EicTrackingRecoHit -> just call it;
47  TMatrixT<double> getHMatrix(const GFAbsTrackRep* stateVector) {
48  return EicTrackingRecoHit::getHMatrix(stateVector);
49  };
50 
52 };
53 
54 class EicSpaceRecoHit : public EicTrackingRecoHit, public GFRecoHitIfc<GFSpacepointHitPolicy> {
55 public:
57  EicSpaceRecoHit(EicTrackingDigiHit* hit, void *ptr = 0);
59 
60  private:
61  GFAbsRecoHit* clone() { return new EicSpaceRecoHit(*this); };
62 
63  unsigned GetMdim() const { return 2; };
64 
65  // Can not inherit this virtual function from EicTrackingRecoHit -> just call it;
66  TMatrixT<double> getHMatrix(const GFAbsTrackRep* stateVector) {
67  return EicTrackingRecoHit::getHMatrix(stateVector);
68  };
69 
71 };
72 
73 #endif