Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
JEventProcessor_FDCProjectionResiduals.h
Go to the documentation of this file.
1 // $Id$
2 //
3 // File: JEventProcessor_FDCProjectionResiduals.h
4 // Created: Wed Oct 26 14:07:16 EDT 2016
5 // Creator: mstaib (on Linux ifarm1401 2.6.32-431.el6.x86_64 x86_64)
6 //
7 
8 #ifndef _JEventProcessor_FDCProjectionResiduals_
9 #define _JEventProcessor_FDCProjectionResiduals_
10 
11 #include <set>
12 #include <map>
13 #include <vector>
14 #include <deque>
15 using namespace std;
16 
17 #include <TTree.h>
18 #include <TFile.h>
19 #include <TH1.h>
20 #include <TH2.h>
21 #include <TH3.h>
22 #include <TMath.h>
23 
24 #include <JANA/JFactory.h>
25 #include <JANA/JEventProcessor.h>
26 #include <JANA/JEventLoop.h>
27 #include <JANA/JCalibration.h>
28 
29 #include <HDGEOMETRY/DGeometry.h>
33 #include <PID/DChargedTrack.h>
34 #include <PID/DParticleID.h>
35 #include <PID/DDetectorMatches.h>
36 #include <CDC/DCDCTrackHit.h>
37 
38 class JEventProcessor_FDCProjectionResiduals:public jana::JEventProcessor{
39  public:
42  const char* className(void){return "JEventProcessor_FDCProjectionResiduals";}
43 
44  private:
45  jerror_t init(void); ///< Called once at program start.
46  jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber); ///< Called everytime a new run number is detected.
47  jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber); ///< Called every event.
48  jerror_t erun(void); ///< Called everytime run number changes, provided brun has been called.
49  jerror_t fini(void); ///< Called after last event of last event source has been processed.
50 
54  double dTargetLength;
55 
59 
60  vector< vector< DCDCWire * > > cdcwires; // CDC Wires Referenced by [ring][straw]
61  vector<vector<double> >max_sag;
62  vector<vector<double> >sag_phi_offset;
63 
64  vector<double> cdc_drift_table;
65  double long_drift_func[3][3];
66  double short_drift_func[3][3];
67  double endplate_z,endplate_dz,endplate_rmin,endplate_rmax;
68 
69  bool Expect_Hit(const DTrackTimeBased* thisTimeBasedTrack, DCDCWire* wire, double distanceToWire, double& delta, double& dz, const DTrackFitter *fitter);
70  double CDCDriftDistance(double delta, double t);
71  unsigned int Locate(vector<double>&xx,double x);
72  double GetDOCA(DVector3, DVector3, DVector3, DVector3, DVector3&, DVector3&);
73 
74 };
75 
76 #endif // _JEventProcessor_FDCProjectionResiduals_
77 
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
unsigned int Locate(vector< double > &xx, double x)
double short_drift_func[3][3]
TVector3 DVector3
Definition: DVector3.h:14
Double_t x[NCHANNELS]
Definition: st_tw_resols.C:39
double long_drift_func[3][3]
const DTrackFitter * fitter