ROOT logo
Char_t *partname[3] = {"pion", "kaon", "proton"};
Char_t *chargename[2] = {"positive", "negative"};
Char_t *chargename2[2] = {"plus", "minus"};

mcSpectra(Char_t *filename)
{

  TFile *fin = TFile::Open(filename);
  TH1D *hspectrumMB[3][2];
  TH1D *hspectrumCent[3][2][6];
  TH1 *h;
  THnSparseF *hsparse;
  TFile *fout = TFile::Open("mcSpectra.root", "RECREATE");

  for (Int_t ipart = 0; ipart < 3; ipart++)
    for (Int_t icharge = 0; icharge < 2; icharge++) {
      hsparse = (THnSparseF *)fin->Get(Form("hHisto_hPrimaryTracks_%s_%s", partname[ipart], chargename[icharge]));
      h = hsparse->Projection(1);
      h->SetName(Form("mb_%s_%s", partname[ipart], chargename2[icharge]));
      h->Sumw2();
      for (Int_t ipt = 0; ipt < h->GetNbinsX(); ipt++) {
	h->SetBinContent(ipt + 1, h->GetBinContent(ipt + 1) / h->GetBinWidth(ipt + 1));
	h->SetBinError(ipt + 1, h->GetBinError(ipt + 1) / h->GetBinWidth(ipt + 1));
      }
      fout->cd();
      h->Write();
      for (Int_t icent = 0; icent < 6; icent++) {
	hsparse->GetAxis(0)->SetRange(icent + 1, icent + 1);
	h = hsparse->Projection(1);
	h->SetName(Form("cent%d_%s_%s", icent, partname[ipart], chargename2[icharge]));
	h->Sumw2();
	for (Int_t ipt = 0; ipt < h->GetNbinsX(); ipt++) {
	  h->SetBinContent(ipt + 1, h->GetBinContent(ipt + 1) / h->GetBinWidth(ipt + 1));
	  h->SetBinError(ipt + 1, h->GetBinError(ipt + 1) / h->GetBinWidth(ipt + 1));
	}
	fout->cd();
	h->Write();
      }
    }

}
 mcSpectra.C:1
 mcSpectra.C:2
 mcSpectra.C:3
 mcSpectra.C:4
 mcSpectra.C:5
 mcSpectra.C:6
 mcSpectra.C:7
 mcSpectra.C:8
 mcSpectra.C:9
 mcSpectra.C:10
 mcSpectra.C:11
 mcSpectra.C:12
 mcSpectra.C:13
 mcSpectra.C:14
 mcSpectra.C:15
 mcSpectra.C:16
 mcSpectra.C:17
 mcSpectra.C:18
 mcSpectra.C:19
 mcSpectra.C:20
 mcSpectra.C:21
 mcSpectra.C:22
 mcSpectra.C:23
 mcSpectra.C:24
 mcSpectra.C:25
 mcSpectra.C:26
 mcSpectra.C:27
 mcSpectra.C:28
 mcSpectra.C:29
 mcSpectra.C:30
 mcSpectra.C:31
 mcSpectra.C:32
 mcSpectra.C:33
 mcSpectra.C:34
 mcSpectra.C:35
 mcSpectra.C:36
 mcSpectra.C:37
 mcSpectra.C:38
 mcSpectra.C:39
 mcSpectra.C:40
 mcSpectra.C:41
 mcSpectra.C:42