14 Double_t locValue = locParamArray[0]*TMath::Gaus(locXArray[0], locParamArray[1], locParamArray[2]);
15 if(locParamArray[1] < 0.0)
16 locValue += locParamArray[0]*TMath::Gaus(locXArray[0], locParamArray[1] +
gBeamSignalPeriod, locParamArray[2]);
18 locValue += locParamArray[0]*TMath::Gaus(locXArray[0], locParamArray[1] -
gBeamSignalPeriod, locParamArray[2]);
25 Int_t locMaxBin = locHist->GetMaximumBin();
26 double locMean = locHist->GetBinCenter(locMaxBin);
28 string locFuncName =
string(locHist->GetName()) +
string(
"_Func");
30 locFunc->SetParameters(locHist->GetBinContent(locMaxBin), locMean, 0.1);
31 locFunc->SetParNames(
"Height",
"Fit #mu",
"Fit #sigma");
42 TDirectory *
locDirectory = (TDirectory*)gDirectory->FindObjectAny(
"RF");
48 gDirectory->cd(
"AverageDeltaT_RF_OtherRFs");
58 if(TVirtualPad::Pad() == NULL)
59 locCanvas =
new TCanvas(
"RF_FineTimeOffsets",
"RF_FineTimeOffsets", 1200, 800);
61 locCanvas = gPad->GetCanvas();
62 locCanvas->Divide(3, 2);
68 TF1* locTOFFitFunc_TAGH = NULL;
69 if(locHist_RFDeltaT_TAGH_TOF != NULL)
74 locHist->Fit(locTOFFitFunc_TAGH,
"QR");
76 locHist->GetXaxis()->SetTitleSize(0.05);
77 locHist->GetYaxis()->SetTitleSize(0.05);
78 locHist->GetXaxis()->SetLabelSize(0.05);
79 locHist->GetYaxis()->SetLabelSize(0.05);
86 TF1* locTOFFitFunc_PSC = NULL;
87 if(locHist_RFDeltaT_PSC_TOF != NULL)
92 locHist->Fit(locTOFFitFunc_PSC,
"QR");
94 locHist->GetXaxis()->SetTitleSize(0.05);
95 locHist->GetYaxis()->SetTitleSize(0.05);
96 locHist->GetXaxis()->SetLabelSize(0.05);
97 locHist->GetYaxis()->SetLabelSize(0.05);
104 TF1* locTOFFitFunc_FDC = NULL;
105 if(locHist_RFDeltaT_FDC_TOF != NULL)
110 locHist->Fit(locTOFFitFunc_FDC,
"QR");
112 locHist->GetXaxis()->SetTitleSize(0.05);
113 locHist->GetYaxis()->SetTitleSize(0.05);
114 locHist->GetXaxis()->SetLabelSize(0.05);
115 locHist->GetYaxis()->SetLabelSize(0.05);
122 if(locHist_RFDeltaT_FDC_TAGH != NULL)
127 locHist->Fit(locFunc,
"QR");
129 locHist->GetXaxis()->SetTitleSize(0.05);
130 locHist->GetYaxis()->SetTitleSize(0.05);
131 locHist->GetXaxis()->SetLabelSize(0.05);
132 locHist->GetYaxis()->SetLabelSize(0.05);
139 if(locHist_RFDeltaT_FDC_PSC != NULL)
144 locHist->Fit(locFunc,
"QR");
146 locHist->GetXaxis()->SetTitleSize(0.05);
147 locHist->GetYaxis()->SetTitleSize(0.05);
148 locHist->GetXaxis()->SetLabelSize(0.05);
149 locHist->GetYaxis()->SetLabelSize(0.05);
156 if(locHist_RFDeltaT_PSC_TAGH != NULL)
161 locHist->Fit(locFunc,
"QR");
163 locHist->GetXaxis()->SetTitleSize(0.05);
164 locHist->GetYaxis()->SetTitleSize(0.05);
165 locHist->GetXaxis()->SetLabelSize(0.05);
166 locHist->GetYaxis()->SetLabelSize(0.05);
171 double locTimeOffset_TOF = 0.0;
173 double locTimeOffset_FDC = locTOFFitFunc_FDC->GetParameter(1);
174 if(!(locHist_RFDeltaT_FDC_TOF->GetEntries() > 0.0))
175 locTimeOffset_FDC = 0.0;
177 double locTimeOffset_PSC = locTOFFitFunc_PSC->GetParameter(1);
178 if(!(locHist_RFDeltaT_PSC_TOF->GetEntries() > 0.0))
179 locTimeOffset_PSC = 0.0;
181 double locTimeOffset_TAGH = locTOFFitFunc_TAGH->GetParameter(1);
182 if(!(locHist_RFDeltaT_TAGH_TOF->GetEntries() > 0.0))
183 locTimeOffset_TAGH = 0.0;
186 double locTimeOffsetVariance_TOF = 0.0;
187 double locTimeOffsetVariance_FDC = locTOFFitFunc_FDC->GetParError(1)*locTOFFitFunc_FDC->GetParError(1);
188 double locTimeOffsetVariance_PSC = locTOFFitFunc_PSC->GetParError(1)*locTOFFitFunc_PSC->GetParError(1);
189 double locTimeOffsetVariance_TAGH = locTOFFitFunc_TAGH->GetParError(1)*locTOFFitFunc_TAGH->GetParError(1);
192 cout <<
"Fine offsets for TOF/TAGH/PSC/FDC are: 0.0, " << locTimeOffset_TAGH <<
", " << locTimeOffset_PSC <<
", " << locTimeOffset_FDC << endl;
196 ostringstream locCommandStream;
197 locCommandStream <<
"ccdb -v " << locVariation <<
" dump PHOTON_BEAM/RF/time_offset -r " << locRunNumber;
198 FILE* locInputFile = gSystem->OpenPipe(locCommandStream.str().c_str(),
"r");
199 if(locInputFile == NULL)
204 if(fgets(buff,
sizeof(buff), locInputFile) == NULL)
208 if(fgets(buff,
sizeof(buff), locInputFile) == NULL)
210 istringstream locConstantsStream(buff);
213 gSystem->ClosePipe(locInputFile);
216 double locCoarseTimeOffset_TOF = 0.0, locCoarseTimeOffset_TAGH = 0.0, locCoarseTimeOffset_PSC = 0.0, locCoarseTimeOffset_FDC = 0.0;
217 if(!(locConstantsStream >> locCoarseTimeOffset_TOF))
219 if(!(locConstantsStream >> locCoarseTimeOffset_TAGH))
221 if(!(locConstantsStream >> locCoarseTimeOffset_PSC))
223 if(!(locConstantsStream >> locCoarseTimeOffset_FDC))
227 cout <<
"Old coarse offsets for TOF/TAGH/PSC/FDC are: " << locCoarseTimeOffset_TOF <<
", " << locCoarseTimeOffset_TAGH <<
", " << locCoarseTimeOffset_PSC <<
", " << locCoarseTimeOffset_FDC << endl;
230 locTimeOffset_TOF += locCoarseTimeOffset_TOF;
231 locTimeOffset_TAGH += locCoarseTimeOffset_TAGH;
232 locTimeOffset_PSC += locCoarseTimeOffset_PSC;
233 locTimeOffset_FDC += locCoarseTimeOffset_FDC;
236 cout <<
"Final offsets for TOF/TAGH/PSC/FDC are: 0.0, " << locTimeOffset_TAGH <<
", " << locTimeOffset_PSC <<
", " << locTimeOffset_FDC << endl;
239 cout <<
"Final offset variances for TOF/TAGH/PSC/FDC are: 0.0, " << locTimeOffsetVariance_TAGH <<
", " << locTimeOffsetVariance_PSC <<
", " << locTimeOffsetVariance_FDC << endl;
242 ofstream locOutputFileStream;
243 locOutputFileStream.open(
"rf_fine_time_offsets.txt");
244 locOutputFileStream <<
"0.0 " << std::setprecision(8) << locTimeOffset_TAGH <<
" " << locTimeOffset_PSC <<
" " << locTimeOffset_FDC << endl;
245 locOutputFileStream.close();
248 ofstream locOutputFileStream2;
249 locOutputFileStream2.open(
"rf_time_offset_vars.txt");
250 locOutputFileStream2 <<
"0.0 " << std::setprecision(8) << locTimeOffsetVariance_TAGH <<
" " << locTimeOffsetVariance_PSC <<
" " << locTimeOffsetVariance_FDC << endl;
251 locOutputFileStream2.close();
TH1I * locHist_RFDeltaT_PSC_TOF
TH1I * locHist_RFDeltaT_TAGH_TOF
Double_t Periodic_Gaussian_Func(Double_t *locXArray, Double_t *locParamArray)
int RFMacro_FineTimeOffsets(int locRunNumber, string locVariation="default")
TH1I * locHist_RFDeltaT_PSC_TAGH
TF1 * Create_FitFunc(TH1I *locHist)
TH1I * locHist_RFDeltaT_FDC_TAGH
TDirectory * locDirectory
TH1I * locHist_RFDeltaT_FDC_PSC
TH1I * locHist_RFDeltaT_FDC_TOF