Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
JEventProcessor_TS_scaler.h
Go to the documentation of this file.
1 // $Id$
2 //
3 // File: JEventProcessor_TS_scaler.h
4 // Created: Thu May 26 12:16:56 EDT 2016
5 // Creator: jrsteven (on Linux ifarm1401 2.6.32-431.el6.x86_64 x86_64)
6 //
7 
8 #ifndef _JEventProcessor_TS_scaler_
9 #define _JEventProcessor_TS_scaler_
10 
11 #include <map>
12 
13 #include "TFile.h"
14 #include "TTree.h"
15 #include "TH1I.h"
16 #include "TH2I.h"
17 
18 #include <JANA/JEventProcessor.h>
19 
21 
22 class JEventProcessor_TS_scaler:public jana::JEventProcessor{
23  public:
26  const char* className(void){return "JEventProcessor_TS_scaler";}
27  enum { kScalers = 32 };
28  enum { kFPScalers = 16 };
29 
30  private:
31  jerror_t init(void); ///< Called once at program start.
32  jerror_t brun(jana::JEventLoop *locEventLoop, int32_t locRunNumber); ///< Called everytime a new run number is detected.
33  jerror_t evnt(jana::JEventLoop *locEventLoop, uint64_t locEventNumber); ///< Called every event.
34  jerror_t erun(void); ///< Called everytime run number changes, provided brun has been called.
35  jerror_t fini(void); ///< Called after last event of last event source has been processed.
36 
37  float dCurrent;
38  uint64_t dEventNumber;
41  uint32_t dTrigCount[kScalers];
45 
46  //TREE
48  //thread_local: Each thread has its own object: no lock needed
49  //important: manages it's own data internally: don't want to call new/delete every event!
50  static thread_local DTreeFillData dTreeFillData;
51 
52  bool dIsFirstInterval; // first SYNC event in file
53  bool dIsLastInterval; // interval after last SYNC event in file (need to combine with first SYNC event in next file)
54  ULong64_t dTotalEventNumber; // Total event number at sync event
55  uint32_t dSyncEventNumber; // SYNC event number
56  uint32_t dSyncEventLiveTime; // Live time: in clock counts (integrated)
57  uint32_t dSyncEventBusyTime; // Busy time: in clock counts (integrated)
58  uint32_t dSyncEventInstLiveTime; // Live time: in percent x10 (instantaneous)
59  uint32_t dSyncEventUnixTime; // SYNC event UNIX timestamp
60  uint32_t dScalerTriggerBit[kScalers]; // GTP scaler value by bit over current interval between SYNC events
61  uint32_t dFPScalerTriggerBit[kFPScalers]; // FP scaler value by bit over current interval between SYNC events
62  uint32_t dScalerRateTriggerBit[kScalers]; // GTP scaler value by bit over current interval between SYNC events
63  uint32_t dFPScalerRateTriggerBit[kFPScalers]; // FP scaler value by bit over current interval between SYNC events
64 
65  uint32_t dRecordedTriggerBit[kScalers]; // Recoreded GTP triggers by bit over current interval between SYNC events
66  uint32_t dFPRecordedTriggerBit[kFPScalers]; // Recoreded FP triggers by bit over current interval between SYNC events
67 
68  vector<uint32_t> dTrigBits;
69  vector<uint32_t> dFPTrigBits;
72  map<uint32_t, TH1I*> dHistTS_trigrate, dHistTS_FPtrigrate;
73  map<uint32_t, TH1I*> dHistTS_livetime, dHistTS_FPlivetime;
74  map<uint32_t, TH1I*> dHistTS_Recorded, dHistTS_FPRecorded;
75  map<uint32_t, TH1I*> dHistTS_Scaler, dHistTS_FPScaler;
76 
77 };
78 
79 #endif // _JEventProcessor_TS_scaler_
80 
map< uint32_t, TH1I * > dHistTS_FPtrigrate
uint32_t dScalerRateTriggerBit[kScalers]
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
uint32_t dFPScalerTriggerBit[kFPScalers]
jerror_t brun(jana::JEventLoop *locEventLoop, int32_t locRunNumber)
Called everytime a new run number is detected.
uint32_t dFPScalerRateTriggerBit[kFPScalers]
map< uint32_t, TH1I * > dHistTS_livetime
uint32_t dFPRecordedTriggerBitPrevious[kFPScalers]
jerror_t init(void)
Called once at program start.
map< uint32_t, TH1I * > dHistTS_Scaler
uint32_t dFPScalerTriggerBitPrevious[kFPScalers]
uint32_t dRecordedTriggerBitPrevious[kScalers]
static thread_local DTreeFillData dTreeFillData
uint32_t dScalerTriggerBitPrevious[kScalers]
jerror_t fini(void)
Called after last event of last event source has been processed.
map< uint32_t, TH1I * > dHistTS_FPScaler
map< uint32_t, TH1I * > dHistTS_Recorded
map< uint32_t, TH1I * > dHistTS_FPlivetime
map< uint32_t, TH1I * > dHistTS_trigrate
map< uint32_t, TH1I * > dHistTS_FPRecorded
uint32_t dFPRecordedTriggerBit[kFPScalers]
jerror_t evnt(jana::JEventLoop *locEventLoop, uint64_t locEventNumber)
Called every event.