Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DTrackHitSelector.h
Go to the documentation of this file.
1 // $Id$
2 //
3 // File: DTrackHitSelector.h
4 // Created: Thu Feb 5 13:34:58 EST 2009
5 // Creator: davidl (on Darwin harriet.jlab.org 9.6.0 i386)
6 //
7 
8 #ifndef _DTrackHitSelector_
9 #define _DTrackHitSelector_
10 
11 #include <JANA/JObject.h>
12 #include <JANA/JFactory.h>
13 
14 #include <TRACKING/DTrackFitter.h>
15 
16 
17 
19 class DCDCTrackHit;
20 class DFDCPseudo;
21 
22 /// The DTrackHitSelector class is a base class for algorithms that
23 /// will select hits from the drift chamber systems that are likely
24 /// to belong to a specified trajectory. This class doesn't actually
25 /// do the hit selection itself, it just provides a standard API so
26 /// multiple algorithms can be written. It is done this way since at
27 /// this point in time, we expect at least a couple of algorithms may
28 /// be tried. Feb. 6, 2009 DL
29 
30 class DTrackHitSelector:public jana::JObject{
31  public:
33 
34  DTrackHitSelector(JEventLoop *loop);
36 
37  enum fit_type_t{
38  kWireBased = DTrackFitter::kWireBased, // ensure compatibility with DTrackFitter
39  kTimeBased = DTrackFitter::kTimeBased, // ensure compatibility with DTrackFitter
41  };
42 
43  virtual void GetCDCHits(fit_type_t fit_type, const DReferenceTrajectory *rt, const vector<const DCDCTrackHit*> &cdchits_in, vector<const DCDCTrackHit*> &cdchits_out,int N=20) const =0;
44  virtual void GetFDCHits(fit_type_t fit_type, const DReferenceTrajectory *rt, const vector<const DFDCPseudo*> &fdchits_in, vector<const DFDCPseudo*> &fdchits_out, int N=20) const =0;
45  virtual void GetCDCHits(double Bz,double q,const vector<DTrackFitter::Extrapolation_t> &extrapolations, const vector<const DCDCTrackHit*> &cdchits_in, vector<const DCDCTrackHit*> &cdchits_out,int N=20) const =0;
46  virtual void GetFDCHits(double Bz,double q,
47  const vector<DTrackFitter::Extrapolation_t> &extrapolations, const vector<const DFDCPseudo*> &fdchits_in, vector<const DFDCPseudo*> &fdchits_out,int N) const=0;
48 
49 
50  void GetCDCHits(fit_type_t fit_type, const DReferenceTrajectory *rt, const vector<const DCDCTrackHit*> &cdchits_in, DTrackFitter *fitter,int N=20) const;
51  void GetCDCHits(double Bz,double q,const vector<DTrackFitter::Extrapolation_t> &extrapolations, const vector<const DCDCTrackHit*> &cdchits_in, DTrackFitter *fitter,int N) const;
52  void GetFDCHits(fit_type_t fit_type, const DReferenceTrajectory *rt, const vector<const DFDCPseudo*> &fdchits_in, DTrackFitter *fitter,int N=20) const;
53  void GetFDCHits(double Bz,double q,const vector<DTrackFitter::Extrapolation_t> &extrapolations, const vector<const DFDCPseudo*> &fdchits_in, DTrackFitter *fitter,int N=20) const;
54  void GetAllHits(fit_type_t fit_type, const DReferenceTrajectory *rt, const vector<const DCDCTrackHit*> &cdchits_in, const vector<const DFDCPseudo*> &fdchits_in, DTrackFitter *fitter,int N=20) const;
55 
56  protected:
57 
58  JEventLoop *loop;
59 };
60 
61 #endif // _DTrackHitSelector_
62 
The DTrackFitter class is a base class for different charged track fitting algorithms. It does not actually fit the track itself, but provides the interface and some common support features most algorthims will need to implement.
Definition: DTrackFitter.h:61
class DFDCPseudo: definition for a reconstructed point in the FDC
Definition: DFDCPseudo.h:74
The DTrackHitSelector class is a base class for algorithms that will select hits from the drift chamb...
virtual void GetCDCHits(fit_type_t fit_type, const DReferenceTrajectory *rt, const vector< const DCDCTrackHit * > &cdchits_in, vector< const DCDCTrackHit * > &cdchits_out, int N=20) const =0
const DTrackFitter * fitter
JOBJECT_PUBLIC(DTrackHitSelector)
virtual void GetFDCHits(fit_type_t fit_type, const DReferenceTrajectory *rt, const vector< const DFDCPseudo * > &fdchits_in, vector< const DFDCPseudo * > &fdchits_out, int N=20) const =0
void GetAllHits(fit_type_t fit_type, const DReferenceTrajectory *rt, const vector< const DCDCTrackHit * > &cdchits_in, const vector< const DFDCPseudo * > &fdchits_in, DTrackFitter *fitter, int N=20) const