Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
JEventProcessor_syncskim.h
Go to the documentation of this file.
1 // $Id$
2 //
3 // File: JEventProcessor_syncskim.h
4 // Created: Wed Feb 22 20:04:25 EST 2017
5 // Creator: davidl (on Linux gluon48.jlab.org 2.6.32-431.20.3.el6.x86_64 x86_64)
6 //
7 
8 #ifndef _JEventProcessor_syncskim_
9 #define _JEventProcessor_syncskim_
10 
11 #include <atomic>
12 
13 #include <JANA/JEventProcessor.h>
14 
15 #include <TTree.h>
16 #include <SyncEvent.h>
17 
18 class JEventProcessor_syncskim:public jana::JEventProcessor{
19  public:
22  const char* className(void){return "JEventProcessor_syncskim";}
23 
25  TTree *tree;
26 
27  // Values to do linear regression to find slope and intercept correlating
28  // 250MHz clock time to unix timestamp
29  double sum_n;
30  double sum_x;
31  double sum_y;
32  double sum_xy;
33  double sum_x2;
34 
35  // Some TAC runs were taken without sync events. For these we use the
36  // CODA control events as a backup
37  std::atomic<double> last_control_event_t;
38  std::atomic<double> last_physics_event_t;
39 
40  private:
41  jerror_t init(void); ///< Called once at program start.
42  jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber); ///< Called everytime a new run number is detected.
43  jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber); ///< Called every event.
44  jerror_t erun(void); ///< Called everytime run number changes, provided brun has been called.
45  jerror_t fini(void); ///< Called after last event of last event source has been processed.
46 };
47 
48 #endif // _JEventProcessor_syncskim_
49 
jerror_t fini(void)
Called after last event of last event source has been processed.
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
std::atomic< double > last_control_event_t
jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber)
Called every event.
jerror_t init(void)
Called once at program start.
jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber)
Called everytime a new run number is detected.
std::atomic< double > last_physics_event_t