8 #ifndef _DEventProcessor_bcal_calib_
9 #define _DEventProcessor_bcal_calib_
23 #include <JANA/JFactory.h>
24 #include <JANA/JEventProcessor.h>
25 #include <JANA/JEventLoop.h>
26 #include <JANA/JCalibration.h>
48 vector<const DCDCTrackHit *>
hits;
66 #define CDC_MATCH_RADIUS 5.0
72 const char*
className(
void){
return "DEventProcessor_bcal_calib";}
87 jerror_t
brun(jana::JEventLoop *eventLoop, int32_t runnumber);
88 jerror_t
evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber);
95 vector<const DCDCTrackHit *>&hits,
96 deque<trajectory_t>&trajectory,
97 double &chi2,
unsigned int &ndof,
98 bool timebased=
false);
100 deque<trajectory_t>&trajectory,
103 vector<cdc_segment_t>&segments,
104 vector<bool>&used_hits
106 jerror_t
LinkSegments(vector<cdc_segment_t>&axial_segments,
107 vector<bool>&used_axial,
108 vector<const DCDCTrackHit *>&axial_hits,
109 vector<const DCDCTrackHit *>&stereo_hits,
110 vector<cdc_track_t>&LinkedSegments);
114 void PlotLines(deque<trajectory_t>&traj);
118 unsigned int locate(vector<double>&xx,
double x);
159 #endif // _DEventProcessor_bcal_calib_
bool MatchCDCHit(const DVector3 &vhat, const DVector3 &pos0, const DCDCTrackHit *hit)
jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber)
Called everytime a new run number is detected.
const DBCALShower * match
double cdc_variance(double t)
bool MatchToBCAL(vector< const DBCALShower * > &bcalshowers, DMatrix4x1 &S)
unsigned int locate(vector< double > &xx, double x)
double cdc_drift_distance(double t)
void PlotLines(deque< trajectory_t > &traj)
jerror_t KalmanFilter(DMatrix4x1 &S, DMatrix4x4 &C, vector< const DCDCTrackHit * > &hits, deque< trajectory_t > &trajectory, double &chi2, unsigned int &ndof, bool timebased=false)
~DEventProcessor_bcal_calib()
jerror_t SetReferenceTrajectory(double z, DMatrix4x1 &S, deque< trajectory_t > &trajectory, const DCDCTrackHit *last_cdc)
jerror_t init(void)
Called once at program start.
jerror_t fini(void)
Called after last event of last event source has been processed.
DEventProcessor_bcal_calib()
jerror_t GuessForStateVector(const cdc_track_t &track, DMatrix4x1 &S)
vector< const DCDCTrackHit * > stereo_hits
vector< const DCDCTrackHit * > hits
double GetDriftDistance(double t)
double FindDoca(double z, const DMatrix4x1 &S, const DVector3 &vhat, const DVector3 &origin)
jerror_t LinkSegments(vector< cdc_segment_t > &axial_segments, vector< bool > &used_axial, vector< const DCDCTrackHit * > &axial_hits, vector< const DCDCTrackHit * > &stereo_hits, vector< cdc_track_t > &LinkedSegments)
const char * className(void)
Double_t sigma[NCHANNELS]
vector< const DCDCTrackHit * > axial_hits
vector< double > cdc_drift_table
double GetDriftVariance(double t)
jerror_t DoFilter(DMatrix4x1 &S, vector< const DCDCTrackHit * > &hits)
jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber)
Called every event.
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
jerror_t FindSegments(vector< const DCDCTrackHit * > &hits, vector< cdc_segment_t > &segments, vector< bool > &used_hits)