Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DTTabUtilities.h
Go to the documentation of this file.
1 // $Id$
2 //
3 // File: DTTabUtilities.h
4 // Created: Fri Apr 3 09:41:29 EDT 2015
5 // Creator: pmatt (on Linux pmattdesktop.jlab.org 2.6.32-504.12.2.el6.x86_64 x86_64)
6 //
7 
8 #ifndef _DTTabUtilities_
9 #define _DTTabUtilities_
10 
11 #include <limits>
12 #include <map>
13 #include <string>
14 #include <vector>
15 
16 #include <JANA/JObject.h>
17 #include <JANA/JFactory.h>
18 #include <JANA/JEventLoop.h>
19 
20 #include <DAQ/DCODAROCInfo.h>
21 #include <DAQ/DF1TDCConfig.h>
22 #include <DAQ/DF1TDCHit.h>
23 #include <DAQ/DCAEN1290TDCHit.h>
24 
25 using namespace std;
26 
27 // This object is MODIFIED every event, so make sure to get it anew for each event!
28  //DO NOT GRAB in your factory's brun() method.
29 class DTTabUtilities : public jana::JObject
30 {
31  public:
32  JOBJECT_PUBLIC(DTTabUtilities);
33 
34  DTTabUtilities(void);
35 
36  double Convert_DigiTimeToNs_F1TDC(const JObject* locTDCDigiHit) const;
37  double Convert_DigiTimeToNs_F1TDC(const DF1TDCHit* locF1TDCHit) const;
38  double Convert_DigiTimeToNs_CAEN1290TDC(const JObject* locTDCDigiHit) const;
39  double Convert_DigiTimeToNs_CAEN1290TDC(const DCAEN1290TDCHit* locCAEN1290TDCHit) const;
40 
41  //F1TDCs: New System
43  map<uint32_t, const DCODAROCInfo*> dCODAROCInfoMap; //key is rocid
44 
45  //F1TDCs: Old System ONLY //Early Fall 2014 Commissioning data ONLY
48  uint64_t dRolloverTimeWindowLength; //"T" or "T_{frame}"
49  uint64_t dNumTDCTicksInRolloverTimeWindow; //"N" or "N_{frame}"
50 
51  //CAEN1290s:
52  int dCAENTIPhaseDifference; //0 -> 5
53  double dTScale_CAEN;
54 
55  uint64_t Calc_ROCRefTimeThisWindow(const DCODAROCInfo* locCODAROCInfo, uint64_t locRolloverTimeWindowLength) const;
56  double Calc_TDCToNsScaleFactor_CCDB(bool locIsLowResolutionReadout) const;
57  double Convert_TriggerReferenceSignal(void) const;
58 
59  //FADC250s: convenience functions for v2 firmware (fall 2016 -> ?)
60  bool CheckFADC250_PedestalOK(uint32_t QF) const;
61  bool CheckFADC250_NoErrors(uint32_t QF) const;
62 
63  private:
64 
65  double Convert_DigiTimeToNs_F1TDC_GlobalSystemClock_ConfigInfo(const DF1TDCHit* locF1TDCHit, const DCODAROCInfo* locCODAROCInfo, const DF1TDCConfig* locF1TDCConfig) const;
66  double Convert_DigiTimeToNs_F1TDC_GlobalSystemClock_CCDB(const DF1TDCHit* locF1TDCHit, const DCODAROCInfo* locCODAROCInfo) const;
67  double Convert_DigiTimeToNs_F1TDC_TriggerReferenceSignal(const DF1TDCHit* locF1TDCHit) const;
68 };
69 
70 #endif // _DTTabUtilities_
uint64_t dNumTDCTicksInRolloverTimeWindow
bool dHasBadOrNoF1TDCConfigInfoFlag
int dCAENTIPhaseDifference
bool dTriggerReferenceSignalIsLowResTDC
map< uint32_t, const DCODAROCInfo * > dCODAROCInfoMap
uint64_t dRolloverTimeWindowLength
uint64_t dTriggerReferenceSignal