43 Fatal(
"BmnQaMonitor::BmnQaMonitor(TString dir)",
"Histogram directory is empty or does no exist!!!");
83 vector<TString> listOfReleases =
fSteering->GetListOfReleases();
93 listForRel->
SetName(listOfReleases[iRelease].Data());
100 listForRel->
Add(listForPeriod);
107 const Int_t nFiles = borderFiles.second - borderFiles.first + 1;
111 listForPeriod->
Add(listForSetup);
113 bri[iRelease][iRun][iSetup] =
new BmnRunInfo*[nFiles];
115 for (
Int_t iFile = borderFiles.first; iFile < borderFiles.second + 1; iFile++) {
117 new TFile(
Form(
"%s/%s/run%d/%s/qa_%d.root",
fHistoDir.Data(), listOfReleases[iRelease].Data(),
127 bri[iRelease][iRun][iSetup][iFile - borderFiles.first] =
new BmnRunInfo(run);
128 listForSetup->
Add((
TObject*)bri[iRelease][iRun][iSetup][iFile - borderFiles.first]);
151 if (nRows == -1 && nColumns == -1)
154 fCanvases[iDim][iCanvas]->Divide(nColumns, nRows);
162 vector<TH1F*> h1Curr = currHistos->
Get1D();
163 vector<TH2F*> h2Curr = currHistos->
Get2D();
166 vector<TH1F*> h1Ref = refHistos->
Get1D();
167 vector<TH2F*> h2Ref = refHistos->
Get2D();
169 vector<TNamed*> hCurr;
170 vector<TNamed*> hRef;
175 for (
auto it : h1Curr)
176 hCurr.push_back((
TNamed*)it);
177 for (
auto it : h2Curr)
178 hCurr.push_back((
TNamed*)it);
179 for (
auto it : h1Ref)
180 hRef.push_back((
TNamed*)it);
181 for (
auto it : h2Ref)
182 hRef.push_back((
TNamed*)it);
186 vector<TString> detectors =
fSteering->GetDetectors(period, setup);
187 detectors.push_back(
"TRIGGERS");
188 detectors.push_back(
"DST");
193 Int_t padCounter = 1;
196 for (
auto det : detectors) {
197 if (!nameCanvas.
Contains(det.Data()))
200 for (
auto itCurr : hCurr)
201 for (
auto itRef : hRef) {
205 if (currName != refName)
216 for (
auto it :
vec) {
226 itRef->SetName(baseName.
Data());
240 itRef->SetName(refName.
Data());
248 if (maxRef > maxCurr) {
280 if (tmp->GetRunNumber() == run) {
291 vector<TH1F*> h1 = allHistos->
Get1D();
292 vector<TH2F*> h2 = allHistos->
Get2D();
308 vector<TString> detectors =
fSteering->GetDetectors(period, setup);
309 detectors.push_back(
"TRIGGERS");
310 detectors.push_back(
"DST");
318 Int_t padCounter = 1;
321 for (
auto det : detectors) {
322 if (!nameCanvas.
Contains(det.Data()))
354 if (tmp->GetRunNumber() == run) {
364 const Char_t* cgiStr =
Form(
"fastcgi:%d", 9000);
365 const Char_t* httpStr =
Form(
"http:%d;noglobal", 8080);
381 TString prefix = (iDim == 0) ?
"1d" :
"2d";
385 Form(
"%s_%s",
fSteering->GetListOfCanvases()[iCanvas].Data(), prefix.
Data()), 800, 800);
425 if (iRun == 0 && iSetup == 1)
430 if (detectors.size() == 0 && triggs.size() == 0)
434 for (
auto det : detectors) {
437 else if (det ==
"SILICON")
439 else if (det ==
"CSC" && iRun != 0)
441 else if (det ==
"TOF400")
443 else if (det ==
"TOF700")
445 else if (det ==
"MWPC")
447 else if (det ==
"DCH")
449 else if (det ==
"ECAL")
451 else if (det ==
"ZDC")
463 if (iRun == 0 && iSetup == 1)
514 TString cmdTitle0 =
"SelectRelease";
515 TString cmdTitle1 =
"SelectPeriod";
516 TString cmdTitle2 =
"SelectSetup";
517 TString cmdTitle3 =
"SelectRun";
518 TString cmdTitle4 =
"SelectReference";
538 TString cmd3 =
"/" +
fName +
"/->ShowCurrentHistos(%arg1%)";
542 TString cmd4 =
"/" +
fName +
"/->ShowReferenceHistos(%arg1%)";
572 cout <<
"BmnQaMonitor::GetHistosFromFile(), No histos to be displayed" << endl;
582 cout <<
"File does not exist! Exiting ... " << endl;
623 cout <<
"Run #" << run <<
" processed " << endl;
char * Form(const char *fmt,...)
BmnOfflineQaSteering * fSteering
AllHistos * GetReferenceRun(UInt_t run)
void ShowReferenceHistos(Int_t)
BmnCalorimeterDetQa *** zdc
BmnTrigDetQa *** triggers
BmnCoordinateDetQa *** csc
void GetHistoNames(T *man)
AllHistos * GetCurrentRun(UInt_t run)
void RegisterUserCommands()
void ShowCurrentHistos(Int_t)
void GetHistosToBeRegistered(T *man)
BmnCalorimeterDetQa *** ecal
BmnCoordinateDetQa *** silicon
vector< TString > * fRefHistosNames
AllHistos * GetRun(UInt_t)
vector< TString > fHistoNames
BmnCoordinateDetQa *** gem
virtual void SetLineColor(Color_t lcolor)
virtual void SetTextAlign(Short_t align=11)
virtual void SetTextColor(Color_t tcolor=1)
virtual void SetTextSize(Float_t tsize=1)
virtual void SetRangeUser(Double_t ufirst, Double_t ulast)
TVirtualPad * cd(Int_t subpadnumber=0) override
void SetName(const char *name)
T * Get(const char *namecycle)
virtual Bool_t IsOpen() const
virtual TH1 * DrawNormalized(Option_t *option="", Double_t norm=1) const
virtual Double_t GetSumOfWeights() const
virtual Double_t GetMaximum(Double_t maxval=FLT_MAX) const
void Draw(Option_t *option="") override
virtual Double_t Integral(Int_t binx1, Int_t binx2, Option_t *option="") const
TLatex * DrawLatex(Double_t x, Double_t y, const char *text)
void Add(TObject *obj) override
TObject * Remove(const TObjLinkPtr_t &lnk)
TObject * At(Int_t idx) const override
const char * GetName() const override
void Clear(Option_t *option="") override
virtual void Fatal(const char *method, const char *msgfmt,...) const
virtual void Draw(Option_t *option="")
void Modified(Bool_t flag=true) override
const char * GetName() const override
const char * Data() const
static TString Format(const char *fmt,...)
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual void Modified(Bool_t flag=1)=0
virtual TList * GetListOfPrimitives() const=0
virtual TObject * GetPrimitive(const char *name) const=0
void Clear(Option_t *option="") override=0
UniRun.h Class for the table: run_.
static UniRun * GetRun(int period_number, int run_number)
get run from the database