6 line.DrawLine(x,ymin,x,ymax);
11 arr.DrawArrow(x,ymax,x+dx,ymax,0.01,
"|>");
17 leg->SetBorderSize(0);
18 leg->SetTextSize(0.04);
20 leg->SetY1(leg->GetY2()-leg->GetNRows()*0.05);
29 TLatex *
l =
new TLatex(x,y,text);
32 l->SetTextColor(kBlack);
42 TString lasttime =
TString::Format(
"Last updated on: %s", tnow.AsString());
43 TLatex *ltx =
MiscText(0.6,0.96,0.03,lasttime);
53 strcpy(str,instr.c_str());
59 for(
int i=0;
i<strlen(str);
i++){
63 strStripped[
c] = str[
i];
70 strStripped[
c] =
'\0';
79 int GMToffset = (t.Convert(
true) - t.Convert());
80 gSystem->Setenv(
"TZ",
"UTC");
81 TString stdP1 =
"run>11495&&par==1";
83 int maxt = t.Convert();
84 int mint = TDatime(20130729,0).Convert();
90 if(ptype==0) dt *= 30;
92 TString tsel =
TString::Format(
"&& lastsec > %d && lastsec < %d",maxt - dt + 2*GMToffset, maxt + 2*GMToffset);
96 TString tlab =
"Date (dd/mm/yy - Central Time)";
97 TString tform =
"%d/%m/%y";
98 TString suf =
"Month";
104 tlab =
"Date (dd/mm - Central Time)";
114 tlab =
"Central Time (hour:min)";
120 TString metricstr =
"TMath::Min(midmiprate,39.999)";
122 TString
title =
"Median MIP Hit Rate (Hz)";
127 gStyle->SetTimeOffset(0);
129 if(sel==
"") sel =
"1";
131 if(title==
"") title = metricstr;
133 TString selpre =
"((" + sel +
") && preliminary)";
135 TChain *
mytree =
new TChain(
"mytree");
136 mytree->Add(filenames);
139 TCanvas *
c1 =
new TCanvas(
"c1",
"c1",1000,600);
140 c1->SetBottomMargin(0.12);
141 c1->SetLeftMargin(0.12);
142 c1->SetRightMargin(0.07);
143 c1->SetTopMargin(0.07);
145 TLegend *
leg =
new TLegend(0.15,0.65,0.65,0.9);
146 TLegend *legpre =
new TLegend(0.67,0.65,0.95,0.9);
147 mytree->Draw(metricstr,sel,
"hist");
149 hAll = (TH1F*)(mytree->GetHistogram())->
Clone(
"");
151 if(xmin == -9999 || xmax == -9999){
153 xmin = hAll->GetXaxis()->GetXmin();
154 xmax = hAll->GetXaxis()->GetXmax();
164 if(
int(xmax-xmin)%nbins!=0){
166 xmax += (nbins -
int(xmax-xmin)%
nbins)/2;
167 xmin -= (nbins -
int(xmax-xmin)%
nbins);
171 nbins = (xmax -
xmin) / nbins;
177 hAll =
new TH1F(
"hAll",
"hAll",nbins,xmin,xmax);
178 mytree->Draw(metricstr+
">>hAll",sel,
"hist");
181 hAll->SetLineColor(1);
182 hAll->SetLineWidth(2);
183 hAll->SetTitle(
";"+title+
";Subruns");
184 hAll->GetXaxis()->SetTitleOffset(1);
185 hAll->GetYaxis()->SetTitleOffset(1);
186 hAll->GetXaxis()->CenterTitle();
187 hAll->GetYaxis()->CenterTitle();
188 hAll->GetXaxis()->SetNdivisions();
189 hAll->GetYaxis()->SetNdivisions();
190 hAll->SetMinimum(0.1);
191 hAll->SetStats(kFALSE);
192 double max = hAll->GetMaximum();
193 hAll->SetMaximum(
pow(10,1.5*(
log10(max)+1)-1));
194 leg->AddEntry(hAll,
"Good Subruns",
"f");
196 mytree->Draw(metricstr,
"!(pass_all && ngoodcdb==14 && !preliminary) && "+sel,
"hist same");
197 mytree->GetHistogram()->SetLineColor(1);
198 mytree->GetHistogram()->SetLineWidth(2);
199 mytree->GetHistogram()->SetFillColor(
kRed-4);
200 leg->AddEntry(mytree->GetHistogram(),
"Partial Detector",
"f");
202 mytree->Draw(metricstr,
"!(pass_all && !preliminary) && "+sel,
"hist same");
203 mytree->GetHistogram()->SetLineColor(1);
204 mytree->GetHistogram()->SetLineWidth(2);
205 mytree->GetHistogram()->SetFillColor(
kOrange+7);
206 leg->AddEntry(mytree->GetHistogram(),
"Failed Reco",
"f");
208 mytree->Draw(metricstr,
"!(pass_time && pass_runlen && pass_hits && pass_db && pass_empty && !preliminary) && "+sel,
"hist same");
209 mytree->GetHistogram()->SetLineColor(1);
210 mytree->GetHistogram()->SetLineWidth(2);
211 mytree->GetHistogram()->SetFillColor(
kGreen+1);
212 leg->AddEntry(mytree->GetHistogram(),
"Failed Diblock",
"f");
214 mytree->Draw(metricstr,
"!(pass_time && pass_runlen && pass_hits && pass_empty && !preliminary) && "+sel,
"hist same");
215 mytree->GetHistogram()->SetLineColor(1);
216 mytree->GetHistogram()->SetLineWidth(2);
217 mytree->GetHistogram()->SetFillColor(4);
218 leg->AddEntry(mytree->GetHistogram(),
"Failed Hit Rate",
"f");
220 mytree->Draw(metricstr,
"!(pass_time && pass_runlen && pass_empty && !preliminary) && "+sel,
"hist same");
221 mytree->GetHistogram()->SetLineColor(1);
222 mytree->GetHistogram()->SetLineWidth(2);
223 mytree->GetHistogram()->SetFillColor(kMagenta+2);
224 leg->AddEntry(mytree->GetHistogram(),
"Failed Live Time",
"f");
226 mytree->Draw(metricstr,
"!(pass_time && pass_empty && !preliminary) && "+sel,
"hist same");
227 mytree->GetHistogram()->SetLineColor(1);
228 mytree->GetHistogram()->SetLineWidth(2);
229 mytree->GetHistogram()->SetFillColor(kBlack);
230 leg->AddEntry(mytree->GetHistogram(),
"Failed Other",
"f");
231 mytree->Draw(metricstr,selpre,
"hist same");
232 mytree->GetHistogram()->SetLineColor(1);
233 mytree->GetHistogram()->SetLineWidth(2);
234 mytree->GetHistogram()->SetFillColor(18);
235 legpre->AddEntry(mytree->GetHistogram(),
" ",
"f");
237 mytree->Draw(metricstr,
"!(pass_all && ngoodcdb==14) && "+selpre,
"hist same");
238 mytree->GetHistogram()->SetLineColor(1);
239 mytree->GetHistogram()->SetLineWidth(2);
240 mytree->GetHistogram()->SetFillColor(kPink-4);
241 legpre->AddEntry(mytree->GetHistogram(),
" ",
"f");
243 mytree->Draw(metricstr,
"!pass_all && "+selpre,
"hist same");
244 mytree->GetHistogram()->SetLineColor(1);
245 mytree->GetHistogram()->SetLineWidth(2);
246 mytree->GetHistogram()->SetFillColor(
kOrange-9);
247 legpre->AddEntry(mytree->GetHistogram(),
" ",
"f");
249 mytree->Draw(metricstr,
"!(pass_time && pass_runlen && pass_hits && pass_db && pass_empty) && "+selpre,
"hist same");
250 mytree->GetHistogram()->SetLineColor(1);
251 mytree->GetHistogram()->SetLineWidth(2);
252 mytree->GetHistogram()->SetFillColor(
kGreen-9);
253 legpre->AddEntry(mytree->GetHistogram(),
" Preliminary",
"f");
255 mytree->Draw(metricstr,
"!(pass_time && pass_runlen && pass_hits && pass_empty) && "+selpre,
"hist same");
256 mytree->GetHistogram()->SetLineColor(1);
257 mytree->GetHistogram()->SetLineWidth(2);
258 mytree->GetHistogram()->SetFillColor(kAzure-4);
259 legpre->AddEntry(mytree->GetHistogram(),
" ",
"f");
261 mytree->Draw(metricstr,
"!(pass_time && pass_runlen && pass_empty) && "+selpre,
"hist same");
262 mytree->GetHistogram()->SetLineColor(1);
263 mytree->GetHistogram()->SetLineWidth(2);
264 mytree->GetHistogram()->SetFillColor(kMagenta-6);
265 legpre->AddEntry(mytree->GetHistogram(),
" ",
"f");
267 mytree->Draw(metricstr,
"!(pass_time && pass_empty) && "+selpre,
"hist same");
268 mytree->GetHistogram()->SetLineColor(1);
269 mytree->GetHistogram()->SetLineWidth(2);
270 mytree->GetHistogram()->SetFillColor(kGray+2);
271 legpre->AddEntry(mytree->GetHistogram(),
" ",
"f");
275 legpre->SetNColumns(2);
277 legpre->SetColumnSeparation(-0.05);
280 MiscText(0.15,0.94,0.055,
"Far Detector");
283 DrawArrow(18,-2,0.1,0.9*hAll->GetBinContent(hAll->GetMaximumBin()));
284 DrawArrow(28,2,0.1,0.9*hAll->GetBinContent(hAll->GetMaximumBin()));
286 c1->SaveAs(
"pngfiles/FarDet-t02-P1GoodDataSelMipRate"+suf+
".png");
std::map< std::string, double > xmax
void DrawArrow(double x, double dx, double ymin, double ymax)
void SetLeg(TLegend *leg)
void StripSpecialChar(string &instr)
void GoodDataSelMipRate(int ptype=0)
fvar< T > floor(const fvar< T > &x)
void Format(TGraph *gr, int lcol, int lsty, int lwid, int mcol, int msty, double msiz)
TLatex * MiscText(float x, float y, float size, TString text)
T max(sqlite3 *const db, std::string const &table_name, std::string const &column_name)
fvar< T > ceil(const fvar< T > &x)
void UpdateStamp(int ptype, int maxt)