CbmRoot
Loading...
Searching...
No Matches
CbmAnaLmvmDrawStudy.cxx
Go to the documentation of this file.
1/* Copyright (C) 2011-2021 Justus-Liebig-Universitaet Giessen, Giessen
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Elena Lebedeva [committer] */
4
6
7#include "CbmDrawHist.h"
8#include "CbmHistManager.h"
9#include "CbmUtils.h"
10
11#include "TCanvas.h"
12#include "TClass.h"
13#include "TEllipse.h"
14#include "TF1.h"
15#include "TFile.h"
16#include "TH1.h"
17#include "TH1D.h"
18#include "TH2D.h"
19#include "TKey.h"
20#include "TMath.h"
21#include "TStyle.h"
22#include "TSystem.h"
23#include "TText.h"
24#include <TLegend.h>
25
26#include <boost/assign/list_of.hpp>
27
28#include <iomanip>
29#include <iostream>
30#include <string>
31
32using namespace std;
33using namespace Cbm;
34using boost::assign::list_of;
35
36
37void CbmAnaLmvmDrawStudy::DrawFromFile(const vector<string>& fileNames, const vector<string>& fileNamesMean,
38 const vector<string>& studyNames, const string& outputDir)
39{
41 TFile* oldFile = gFile;
42 TDirectory* oldDir = gDirectory;
43
44 fOutputDir = outputDir;
45
47
48 fNofStudies = fileNames.size();
49 fHM.resize(fNofStudies);
50 for (int i = 0; i < fNofStudies; i++) {
51 fHM[i] = new CbmHistManager();
52 TFile* file = new TFile(fileNames[i].c_str());
53 LOG_IF(fatal, !file) << "Could not open file " << fileNames[i].c_str();
54 fHM[i]->ReadFromFile(file);
55 }
56
57 // files with mean histograms
58 //fMeanFiles.resize(fileNamesMean.size());
59 //for (int i = 0; i < fileNamesMean.size(); i++){
60 //fMeanFiles[i] = new TFile(fileNamesMean[i].c_str(), "READ");
61 //}
62 fMeanFiles = fileNamesMean;
63 fStudyNames = studyNames;
64
65 DrawMinv();
66
68
70 gFile = oldFile;
71 gDirectory = oldDir;
72}
73
75{
76 for (unsigned int i = 0; i < fCanvas.size(); i++) {
78 }
79}
80
82{
84 TFile* oldFile = gFile;
85 TDirectory* oldDir = gDirectory;
86
87 vector<TH1*> hPtCut, hTtCut;
88 hPtCut.resize(fMeanFiles.size());
89 hTtCut.resize(fMeanFiles.size());
90 int nRebin = 20;
91 for (unsigned int i = 0; i < fMeanFiles.size(); i++) {
92 TFile* f = new TFile(fMeanFiles[i].c_str(), "READ");
93 LOG_IF(fatal, !f) << "Could not open file " << fMeanFiles[i].c_str();
94
95 hPtCut[i] = f->Get<TH1D>("fh_bg_minv_ptcut")->Clone();
96 LOG_IF(fatal, !hPtCut[i]) << "Could not get histogram " << hPtCut[i]->GetName() << "from file "
97 << fMeanFiles[i].c_str();
98 hPtCut[i]->Rebin(nRebin);
99 hPtCut[i]->SetMinimum(1e-6);
100
101 hTtCut[i] = f->Get<TH1D>("fh_bg_minv_ttcut")->Clone();
102 LOG_IF(fatal, !hTtCut[i]) << "Could not get histogram " << hTtCut[i]->GetName() << "from file "
103 << fMeanFiles[i].c_str();
104 hTtCut[i]->Rebin(nRebin);
105 hPtCut[i]->SetMinimum(1e-6);
106 //f->Close();
107 }
108 fHM[0]->CreateCanvas("lmvm_study_minv_bg_ttcut", "lmvm_study_minv_bg_ttcut", 600, 600);
109 DrawH1(hTtCut, fStudyNames, kLinear, kLog, true, 0.70, 0.55, 0.99, 0.99, "");
110
111 fHM[0]->CreateCanvas("lmvm_study_minv_bg_ptcut", "lmvm_study_minv_bg_ptcut", 600, 600);
112 DrawH1(hPtCut, fStudyNames, kLinear, kLog, true, 0.70, 0.55, 0.99, 0.99, "");
113
114
116 gFile = oldFile;
117 gDirectory = oldDir;
118}
119
120
ClassImp(CbmAnaLmvmDrawStudy)
void SetDefaultDrawStyle()
void DrawH1(TH1 *hist, HistScale logx, HistScale logy, const string &drawOpt, Int_t color, Int_t lineWidth, Int_t lineStyle, Int_t markerSize, Int_t markerStyle)
Helper functions for drawing 1D and 2D histograms and graphs.
@ kLinear
Definition CbmDrawHist.h:69
@ kLog
Definition CbmDrawHist.h:68
Histogram manager.
std::vector< std::string > fStudyNames
void DrawFromFile(const std::vector< std::string > &fileNames, const std::vector< std::string > &fileNamesMean, const std::vector< std::string > &studyNames, const std::string &outputDir="")
Implement functionality of drawing histograms in the macro from the specified files,...
std::vector< TCanvas * > fCanvas
std::vector< std::string > fMeanFiles
std::vector< CbmHistManager * > fHM
Histogram manager.
void SaveCanvasAsImage(TCanvas *c, const string &dir, const string &option)
Definition CbmUtils.cxx:36
Hash for CbmL1LinkKey.