10 double locTotal = 0.0;
12 for(Int_t loc_i = 1; loc_i <= locHist->GetNbinsX(); ++loc_i)
14 Int_t locThisBinEntries = locHist->GetBinContent(loc_i);
15 locEntries += locThisBinEntries;
16 locTotal += double(locThisBinEntries)*locHist->GetBinCenter(loc_i);
20 return (locTotal /
double(locEntries));
29 TDirectory *
locDirectory = (TDirectory*)gDirectory->FindObjectAny(
"RF");
35 gDirectory->cd(
"AbsoluteDeltaT_RF_OtherRFs");
44 double locTimeOffset_TOF = 0.0;
45 double locTimeOffset_FDC =
Calc_Mean(locHist_RFDeltaT_FDC_TOF);
46 double locTimeOffset_PSC =
Calc_Mean(locHist_RFDeltaT_PSC_TOF);
47 double locTimeOffset_TAGH =
Calc_Mean(locHist_RFDeltaT_TAGH_TOF);
50 cout <<
"Extracted offsets for TOF/TAGH/PSC/FDC are: 0.0, " << locTimeOffset_TAGH <<
", " << locTimeOffset_PSC <<
", " << locTimeOffset_FDC << endl;
54 ostringstream locCommandStream;
55 locCommandStream <<
"ccdb -v " << locVariation <<
" dump PHOTON_BEAM/RF/time_offset -r " << locRunNumber;
56 FILE* locInputFile = gSystem->OpenPipe(locCommandStream.str().c_str(),
"r");
57 if(locInputFile == NULL)
62 if(fgets(buff,
sizeof(buff), locInputFile) == NULL)
66 if(fgets(buff,
sizeof(buff), locInputFile) == NULL)
68 istringstream locConstantsStream(buff);
71 gSystem->ClosePipe(locInputFile);
74 double locOldTimeOffset_TOF = 0.0, locOldTimeOffset_TAGH = 0.0, locOldTimeOffset_PSC = 0.0, locOldTimeOffset_FDC = 0.0;
75 if(!(locConstantsStream >> locOldTimeOffset_TOF))
77 if(!(locConstantsStream >> locOldTimeOffset_TAGH))
79 if(!(locConstantsStream >> locOldTimeOffset_PSC))
81 if(!(locConstantsStream >> locOldTimeOffset_FDC))
85 cout <<
"Old time offsets for TOF/TAGH/PSC/FDC are: " << locOldTimeOffset_TOF <<
", " << locOldTimeOffset_TAGH <<
", " << locOldTimeOffset_PSC <<
", " << locOldTimeOffset_FDC << endl;
88 locTimeOffset_TOF += locOldTimeOffset_TOF;
89 locTimeOffset_TAGH += locOldTimeOffset_TAGH;
90 locTimeOffset_PSC += locOldTimeOffset_PSC;
91 locTimeOffset_FDC += locOldTimeOffset_FDC;
94 cout <<
"New coarse time offsets for TOF/TAGH/PSC/FDC are: " << locTimeOffset_TOF <<
", " << locTimeOffset_TAGH <<
", " << locTimeOffset_PSC <<
", " << locTimeOffset_FDC << endl;
97 ofstream locOutputFileStream;
98 locOutputFileStream.open(
"rf_coarse_time_offsets.txt");
99 locOutputFileStream <<
"0.0 " << std::setprecision(8) << locTimeOffset_TAGH <<
" " << locTimeOffset_PSC <<
" " << locTimeOffset_FDC << endl;
100 locOutputFileStream.close();
104 if(TVirtualPad::Pad() == NULL)
105 locCanvas =
new TCanvas(
"RF_CoarseTimeOffsets",
"RF_CoarseTimeOffsets", 1200, 800);
107 locCanvas = gPad->GetCanvas();
108 locCanvas->Divide(3, 2);
114 if(locHist_RFDeltaT_TAGH_TOF != NULL)
116 locHist_RFDeltaT_TAGH_TOF->GetXaxis()->SetTitleSize(0.05);
117 locHist_RFDeltaT_TAGH_TOF->GetYaxis()->SetTitleSize(0.05);
118 locHist_RFDeltaT_TAGH_TOF->GetYaxis()->SetLabelSize(0.05);
119 locHist_RFDeltaT_TAGH_TOF->Draw();
125 if(locHist_RFDeltaT_PSC_TOF != NULL)
127 locHist_RFDeltaT_PSC_TOF->GetXaxis()->SetTitleSize(0.05);
128 locHist_RFDeltaT_PSC_TOF->GetYaxis()->SetTitleSize(0.05);
129 locHist_RFDeltaT_PSC_TOF->GetYaxis()->SetLabelSize(0.05);
130 locHist_RFDeltaT_PSC_TOF->Draw();
136 if(locHist_RFDeltaT_FDC_TOF != NULL)
138 locHist_RFDeltaT_FDC_TOF->GetXaxis()->SetTitleSize(0.05);
139 locHist_RFDeltaT_FDC_TOF->GetYaxis()->SetTitleSize(0.05);
140 locHist_RFDeltaT_FDC_TOF->GetYaxis()->SetLabelSize(0.05);
141 locHist_RFDeltaT_FDC_TOF->Draw();
147 if(locHist_RFDeltaT_FDC_TAGH != NULL)
149 locHist_RFDeltaT_FDC_TAGH->GetXaxis()->SetTitleSize(0.05);
150 locHist_RFDeltaT_FDC_TAGH->GetYaxis()->SetTitleSize(0.05);
151 locHist_RFDeltaT_FDC_TAGH->GetYaxis()->SetLabelSize(0.05);
152 locHist_RFDeltaT_FDC_TAGH->Draw();
158 if(locHist_RFDeltaT_FDC_PSC != NULL)
160 locHist_RFDeltaT_FDC_PSC->GetXaxis()->SetTitleSize(0.05);
161 locHist_RFDeltaT_FDC_PSC->GetYaxis()->SetTitleSize(0.05);
162 locHist_RFDeltaT_FDC_PSC->GetYaxis()->SetLabelSize(0.05);
163 locHist_RFDeltaT_FDC_PSC->Draw();
169 if(locHist_RFDeltaT_PSC_TAGH != NULL)
171 locHist_RFDeltaT_PSC_TAGH->GetXaxis()->SetTitleSize(0.05);
172 locHist_RFDeltaT_PSC_TAGH->GetYaxis()->SetTitleSize(0.05);
173 locHist_RFDeltaT_PSC_TAGH->GetYaxis()->SetLabelSize(0.05);
174 locHist_RFDeltaT_PSC_TAGH->Draw();
TH1I * locHist_RFDeltaT_PSC_TOF
TH1I * locHist_RFDeltaT_TAGH_TOF
TH1I * locHist_RFDeltaT_PSC_TAGH
int RFMacro_CoarseTimeOffsets(int locRunNumber, string locVariation="default")
TH1I * locHist_RFDeltaT_FDC_TAGH
TDirectory * locDirectory
TH1I * locHist_RFDeltaT_FDC_PSC
double Calc_Mean(TH1I *locHist)
TH1I * locHist_RFDeltaT_FDC_TOF