28 vector<double> locBeamPeriodVector;
29 locEventLoop->GetCalib(
"PHOTON_BEAM/RF/beam_period", locBeamPeriodVector);
33 map<string, double> locCCDBMap;
34 map<string, double>::iterator locIterator;
35 if(locEventLoop->GetCalib(
"/PHOTON_BEAM/RF/time_offset", locCCDBMap))
36 jout <<
"Error loading /PHOTON_BEAM/RF/time_offset !" << endl;
37 for(locIterator = locCCDBMap.begin(); locIterator != locCCDBMap.end(); ++locIterator)
47 if(locEventLoop->GetCalib(
"/PHOTON_BEAM/RF/time_offset_var", locCCDBMap))
48 jout <<
"Error loading /PHOTON_BEAM/RF/time_offset_var !" << endl;
49 for(locIterator = locCCDBMap.begin(); locIterator != locCCDBMap.end(); ++locIterator)
59 if(locEventLoop->GetCalib(
"/PHOTON_BEAM/RF/time_resolution_sq", locCCDBMap))
60 jout <<
"Error loading /PHOTON_BEAM/RF/time_resolution_sq !" << endl;
61 for(locIterator = locCCDBMap.begin(); locIterator != locCCDBMap.end(); ++locIterator)
81 vector<const DRFTDCDigiTime*> locRFTDCDigiTimes;
82 locEventLoop->Get(locRFTDCDigiTimes);
85 locEventLoop->GetSingle(locTTabUtilities);
88 vector<double> locRFTimes;
91 for(
size_t loc_i = 0; loc_i < locRFTDCDigiTimes.size(); ++loc_i)
98 locRFTimes.push_back(locRFTime);
101 if(locRFTimes.empty())
105 double locRFTimeVariance = 0.0;
109 locRFTime->
dTime = locAverageRFTime;
111 _data.push_back(locRFTime);
123 double locDeltaT = locTimeToStepTo - locTimeToStep;
124 int locNumBucketsToShift = (locDeltaT > 0.0) ? int(locDeltaT/locPeriod + 0.5) : int(locDeltaT/locPeriod - 0.5);
125 return (locTimeToStep + locPeriod*
double(locNumBucketsToShift));
130 double locRFTime = 0.0;
148 double locFirstTime = locRFTimes[0];
158 double locSumOneOverTimeVariance = 0.0;
159 double locSumTimeOverTimeVariance = 0.0;
162 if(!(locSingleTimeVariance > 0.0))
164 locRFTimeVariance = numeric_limits<double>::quiet_NaN();
167 locSumOneOverTimeVariance += double(locRFTimes.size()) / locSingleTimeVariance;
169 for(
size_t loc_i = 0; loc_i < locRFTimes.size(); ++loc_i)
172 locSumTimeOverTimeVariance += locShiftedRFTime / locSingleTimeVariance;
175 if(!(locSumOneOverTimeVariance > 0.0))
177 locRFTimeVariance = numeric_limits<double>::quiet_NaN();
181 locRFTimeVariance = 1.0 / locSumOneOverTimeVariance;
182 double locAverageRFTime = locSumTimeOverTimeVariance * locRFTimeVariance;
183 return locAverageRFTime;
double Convert_DigiTimeToNs_F1TDC(const JObject *locTDCDigiHit) const
jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber)
Called everytime a new run number is detected.
double dTimeOffsetVariance
jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber)
Called every event.
jerror_t init(void)
Called once at program start.
jerror_t fini(void)
Called after last event of last event source has been processed.
double Convert_DigiTimeToNs_CAEN1290TDC(const JObject *locTDCDigiHit) const
DetectorSystem_t dSourceSystem
DetectorSystem_t NameToSystem(const char *locSystemName)
double Convert_TDCToTime(const DRFTDCDigiTime *locRFTDCDigiTime, const DTTabUtilities *locTTabUtilities) const
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
double Calc_WeightedAverageRFTime(vector< double > &locRFTimes, double &locRFTimeVariance) const
double Step_TimeToNearInputTime(double locTimeToStep, double locTimeToStepTo) const