19 if(locF1TDCHit != NULL)
23 vector<const DF1TDCHit*> locF1TDCHits;
24 locTDCDigiHit->Get(locF1TDCHits);
25 if(locF1TDCHits.empty())
27 cout <<
"ERROR: INCORRECT INPUT OBJECT TO DTTabUtilities::Convert_DigiTimeToNs_F1TDC(). RETURNING NaN." << endl;
28 return std::numeric_limits<double>::quiet_NaN();
37 uint32_t locROCID = locF1TDCHit->
rocid;
40 vector<const DF1TDCConfig*> locF1TDCConfigs;
41 locF1TDCHit->Get(locF1TDCConfigs);
44 map<uint32_t, const DCODAROCInfo*>::const_iterator locROCInfoIterator =
dCODAROCInfoMap.find(locROCID);
47 if(locCODAROCInfo == NULL)
68 double locTDCToNsScaleFactor = (32.0/152.0) * double(locF1TDCConfig->
REFCLKDIV) / (double(locF1TDCConfig->
HSDIV));
70 if(locIsHighResolutionReadout)
71 locTDCToNsScaleFactor /= 2.0;
74 uint64_t locRolloverTimeWindowLength = (uint64_t(32))*(uint64_t(locF1TDCConfig->
REFCNT + 2));
80 double locDeltaT = locTDCToNsScaleFactor*double(locF1TDCHit->
time) - double(locReferenceTimeThisWindow);
82 locDeltaT += double(locRolloverTimeWindowLength);
103 double locDeltaT = locTDCToNsScaleFactor*double(locF1TDCHit->
time) - double(locReferenceTimeThisWindow);
135 if(locIsLowResolutionReadout)
136 locTDCToNsScaleFactor *= 2.0;
137 return locTDCToNsScaleFactor;
144 uint64_t locReferenceClockTime = (uint64_t(4))*locCODAROCInfo->
timestamp;
145 uint64_t locNumRollovers = locReferenceClockTime/locRolloverTimeWindowLength;
146 return (locReferenceClockTime - locNumRollovers*locRolloverTimeWindowLength);
159 if(locCAEN1290TDCHit != NULL)
163 vector<const DCAEN1290TDCHit*> locCAEN1290TDCHits;
164 locTDCDigiHit->Get(locCAEN1290TDCHits);
165 if(locCAEN1290TDCHits.empty())
167 cout <<
"ERROR: INCORRECT INPUT OBJECT TO DTTabUtilities::Convert_DigiTimeToNs_CAEN1290TDC(). RETURNING NaN." << endl;
168 return std::numeric_limits<double>::quiet_NaN();
179 uint32_t locROCID = locCAEN1290TDCHit->
rocid;
182 map<uint32_t, const DCODAROCInfo*>::const_iterator locROCInfoIterator =
dCODAROCInfoMap.find(locROCID);
184 return std::numeric_limits<double>::quiet_NaN();
185 const DCODAROCInfo* locCODAROCInfo = locROCInfoIterator->second;
187 int locSystemClockBinRemainder = locCODAROCInfo->
timestamp % (uint64_t(6));
191 if(locNum4NsBlocksToShift <= 0)
192 locNum4NsBlocksToShift += 6;
194 return dTScale_CAEN*double(locCAEN1290TDCHit->
time) + 4.0*double(locNum4NsBlocksToShift);
200 return !( (QF>>6) & 0x01 );
209 if ( (QF>>1) & 0x03 )
return false;
211 if ( (QF>>4) & 0x02 )
return false;
uint64_t dNumTDCTicksInRolloverTimeWindow
double Convert_DigiTimeToNs_F1TDC(const JObject *locTDCDigiHit) const
bool CheckFADC250_NoErrors(uint32_t QF) const
bool dHasBadOrNoF1TDCConfigInfoFlag
double Convert_DigiTimeToNs_CAEN1290TDC(const JObject *locTDCDigiHit) const
int dCAENTIPhaseDifference
double Convert_TriggerReferenceSignal(void) const
bool dTriggerReferenceSignalIsLowResTDC
double Convert_DigiTimeToNs_F1TDC_GlobalSystemClock_ConfigInfo(const DF1TDCHit *locF1TDCHit, const DCODAROCInfo *locCODAROCInfo, const DF1TDCConfig *locF1TDCConfig) const
uint64_t Calc_ROCRefTimeThisWindow(const DCODAROCInfo *locCODAROCInfo, uint64_t locRolloverTimeWindowLength) const
bool CheckFADC250_PedestalOK(uint32_t QF) const
double Convert_DigiTimeToNs_F1TDC_TriggerReferenceSignal(const DF1TDCHit *locF1TDCHit) const
map< uint32_t, const DCODAROCInfo * > dCODAROCInfoMap
double Convert_DigiTimeToNs_F1TDC_GlobalSystemClock_CCDB(const DF1TDCHit *locF1TDCHit, const DCODAROCInfo *locCODAROCInfo) const
uint64_t dRolloverTimeWindowLength
double Calc_TDCToNsScaleFactor_CCDB(bool locIsLowResolutionReadout) const
uint64_t dTriggerReferenceSignal