Skip to content
Snippets Groups Projects

Resolve "Copy and mapping macro"

Merged Veronika Barbasova requested to merge 42-copy-and-mapping-macro into main
Compare and
2 files
+ 143
0
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 75
0
#include <THnSparse.h>
#include <TFile.h>
#include <TH1D.h>
Int_t AnalysisSparse(TString output = "output.root")
{
std::vector<std::string> data;
data.push_back("LHC16f_lowB");
data.push_back("LHC17g");
data.push_back("LHC22o_pass4_minBias_small");
data.push_back("LHC22o_pass4_minBias_medium");
data.push_back("LHC22o_pass6_minBias_small");
std::vector<std::string> mc;
mc.push_back("LHC21g3a");
mc.push_back("LHC21g5a");
mc.push_back("LHC22b1a");
mc.push_back("LHC23k2f");
mc.push_back("LHC24b1b");
std::vector<TAxis*> axes;
axes.push_back(new TAxis(100, 0., 100.));
axes.push_back(new TAxis(8, 65., 73.));
const int nbins = 2 + axes.size();
Int_t bins[nbins];
Double_t min[nbins];
Double_t max[nbins];
bins[0] = data.size();
min[0] = 0;
max[0] = data.size();
bins[1] = mc.size();
min[1] = 0;
max[1] = mc.size();
int i = 2;
for (auto& a : axes) {
bins[i] = a->GetNbins();
min[i] = a->GetXmin();
max[i] = a->GetXmax();
i++;
}
THnSparseD* analysisSparse = new THnSparseD("analysisSparse", "Analysis Sparse", nbins, bins, min, max);
i = 1;
for (auto& d : data) {
analysisSparse->GetAxis(0)->SetBinLabel(i, d.c_str());
i++;
}
i = 1;
for (auto& m : mc) {
analysisSparse->GetAxis(1)->SetBinLabel(i, m.c_str());
i++;
}
TH1* h = analysisSparse->Projection(1);
for (int i = 1; i <= analysisSparse->GetAxis(1)->GetNbins(); i++)
h->GetXaxis()->SetBinLabel(i, analysisSparse->GetAxis(1)->GetBinLabel(i));
TCanvas* c = new TCanvas();
c->cd(1);
h->Draw();
TFile* fOut = TFile::Open(output.Data(), "RECREATE");
analysisSparse->Write();
fOut->Close();
return 0;
}
\ No newline at end of file