Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DTrackLSFitter.h
Go to the documentation of this file.
1 // Author: David Lawrence June 25, 2004
2 //
3 //
4 // DTrackLSFitter.h
5 //
6 /// Example program for a Hall-D analyzer which uses DANA
7 ///
8 
9 #ifndef _DTRACKLSFITTER_H_
10 #define _DTRACKLSFITTER_H_
11 
12 #define DTRACKLSFITTER_UNDEFINED -2
13 #define DTRACKLSFITTER_FIT_NOT_ATTEMPTED -1
14 #define DTRACKLSFITTER_NOMINAL 0
15 #define DTRACKLSFITTER_EXCEPTION_THROWN 1
16 
17 #include <JANA/JEventProcessor.h>
20 #include <CDC/DCDCTrackHit.h>
21 #include <TRACKING/DMCThrown.h>
22 #include <TRACKING/DTrackFitter.h>
23 #include <TH1F.h>
24 #include <TFile.h>
25 #include <TNtuple.h>
26 #include <CLHEP/Matrix/Matrix.h>
27 #include <CLHEP/Matrix/Vector.h>
28 #include "chisqMin.h"
29 #include "hitDetails.h"
30 #include "combinedResidFunc.h"
31 #include "MyTrajectoryGrkuta.h"
32 
34 
36 {
37  public:
38  DTrackLSFitter(JEventLoop *loop);
40  jerror_t init(void); ///< Called once at program start.
41  jerror_t brun(JEventLoop *eventLoop, int32_t runnumber); ///< Called everytime a new run number is detected.
42  jerror_t evnt(JEventLoop *eventLoop, uint64_t eventnumber); ///< Called every event.
43  uint64_t eventNo;
44  jerror_t erun(void);
45  jerror_t fini(void);
47  HepVector getParams();
48  double getChiSquared();
49  int getSizeFDC();
50  int getSizeCDC();
51  int getStatus();
52  //void writeFDCHitsHddm(fitter_Event_t &eventHddm);
53 
54  // Virtual methods from TrackFitter base class
55  string Name(void) const {return string("MMI");}
56  fit_status_t FitTrack(void);
57  double ChiSq(fit_type_t fit_type, DReferenceTrajectory *rt, double *chisq_ptr=NULL, int *dof_ptr=NULL, vector<pull_t> *pulls_ptr=NULL);
58  private:
59 
60  //const DMagneticFieldMap *bfield; // supplied by DTrackFitter base class
62 
64  //ofstream *signatureFile;
65  //ifstream *configFile;
66  HepVector ppEnd;
69  //vector<const DFDCPseudo*>pseudopoints;
70  //vector<const DCDCTrackHit*>trackhits;
71  //vector<const DMCThrown*>thrown;
73  void setFitterStartParams();
74  //fitter_iostream_t* ios;
75  //void writeTrajectoryHddm(MyTrajectoryBfield &traj, int tag, fitter_Trajectorys_t *trajsHddm);
76  //void writeCDCDetailsHddm(vector<CDCHitDetails*> *CDCDetailsPtr, fitter_Trajectorys_t *trajsHddm);
77  //void writeCDCHitsHddm(fitter_Event_t &event);
78  int status; // status code
79  //void writeResidsHddm(const HepVector &params,
80  // vector<CDCHitDetails*>* &CDCDetailsPtr,
81  // fitter_Trajectorys_t *trajsHddm,
82  // combinedResidFunc &prf,
83  /// MyTrajectoryBfield &trajectory);
84  //void writeFitHddm(fitter_Trajectorys_t* trajsHddm);
85 };
86 
87 #endif // _DTRACKLSFITTER_H_
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
fit_status_t FitTrack(void)
char string[256]
fit_type_t fit_type
Definition: DTrackFitter.h:227
double ChiSq(fit_type_t fit_type, DReferenceTrajectory *rt, double *chisq_ptr=NULL, int *dof_ptr=NULL, vector< pull_t > *pulls_ptr=NULL)
jerror_t init(void)
Called once at program start.
jerror_t evnt(JEventLoop *eventLoop, uint64_t eventnumber)
Called every event.
DTrackLSFitter(JEventLoop *loop)
jerror_t erun(void)
jerror_t fini(void)
HepVector getParams()
const DLorentzDeflections * lorentz_def
double getChiSquared()
jerror_t brun(JEventLoop *eventLoop, int32_t runnumber)
Called everytime a new run number is detected.
uint64_t eventNo
string Name(void) const
JEventLoop * loop
Definition: DTrackFitter.h:231
chisqMin * fitPtr
class DFDCSegment_factory: definition for a JFactory that produces space points from pseudopoints...
void setFitterStartParams()
DFDCSegment_factory * segment_factory
HepVector ppEnd