Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DEventRFBunch_factory_Calibrations.h
Go to the documentation of this file.
1 // $Id$
2 //
3 // File: DEventRFBunch_factory_Calibrations.h
4 // Created: Tue Aug 9 14:29:24 EST 2011
5 // Creator: pmatt (on Linux ifarml6 2.6.18-128.el5 x86_64)
6 //
7 
8 #ifndef _DEventRFBunch_factory_Calibrations_
9 #define _DEventRFBunch_factory_Calibrations_
10 
11 #include <iostream>
12 #include <iomanip>
13 #include <map>
14 #include <utility>
15 #include <deque>
16 #include <vector>
17 
18 #include <TMath.h>
19 
20 #include <JANA/JFactory.h>
21 
22 #include <DVector3.h>
23 #include <DMatrix.h>
24 
25 #include <TTAB/DTTabUtilities.h>
26 #include <PID/DDetectorMatches.h>
27 #include <PID/DParticleID.h>
28 #include <PID/DEventRFBunch.h>
29 #include <RF/DRFTDCDigiTime.h>
31 #include <START_COUNTER/DSCHit.h>
32 
33 #include <HDGEOMETRY/DGeometry.h>
34 #include <DANA/DApplication.h>
35 
36 #include <ANALYSIS/DCutActions.h>
37 
38 using namespace std;
39 using namespace jana;
40 
41 class DEventRFBunch_factory_Calibrations : public jana::JFactory<DEventRFBunch>
42 {
43  public:
46  const char* Tag(void){return "Calibrations";}
47 
48  private:
49 
50  void Select_GoodTracks(JEventLoop* locEventLoop, vector<const DTrackWireBased*>& locSelectedWireBasedTracks) const;
51  jerror_t Select_RFBunch(JEventLoop* locEventLoop, vector<const DTrackWireBased*>& locTrackWireBasedVector, double locRFTime);
52 
53  bool Find_TrackTimes_SC(const DDetectorMatches* locDetectorMatches, const vector<const DTrackWireBased*>& locTrackWireBasedVector, vector<pair<double, const JObject*> >& locTimes) const;
54  int Conduct_Vote(JEventLoop* locEventLoop, double locRFTime, vector<pair<double, const JObject*> >& locTimes, int& locHighestNumVotes);
55 
56  int Find_BestRFBunchShifts(double locRFHitTime, const vector<pair<double, const JObject*> >& locTimes, map<int, vector<const JObject*> >& locNumBeamBucketsShiftedMap, set<int>& locBestRFBunchShifts);
57  int Break_TieVote_Tracks(map<int, vector<const JObject*> >& locNumBeamBucketsShiftedMap, set<int>& locBestRFBunchShifts);
58 
59  jerror_t Create_NaNRFBunch(void);
60 
62 
65 
70 
72 
73  jerror_t init(void); ///< Called once at program start.
74  jerror_t brun(jana::JEventLoop *locEventLoop, int32_t runnumber); ///< Called everytime a new run number is detected.
75  jerror_t evnt(jana::JEventLoop *locEventLoop, uint64_t eventnumber); ///< Called every event.
76  jerror_t erun(void); ///< Called everytime run number changes, provided brun has been called.
77  jerror_t fini(void); ///< Called after last event of last event source has been processed.
78 };
79 
80 #endif // _DEventRFBunch_factory_Calibrations_
81 
TVector3 DVector3
Definition: DVector3.h:14
DetectorSystem_t
Definition: GlueX.h:15