Hello. I would like to ask what I missed in the following code. It only plots on TH1F *h1_0. Many thanks
const int NCHMOD = 128*12;
int visualize (char* fname, int nch) {
int ch,counts;
float fc;
int j, k;
vector <float> cts;
TH1F *h1_0 = new TH1F ("h1_0", "Front: Top Layer",3*NCHMOD, -0.5,(3*NCHMOD+0.5));
TH1F *h1_1 = new TH1F ("h1_1", "Front: Bottom Layer",3*NCHMOD,3*NCHMOD-0.5, 6*NCHMOD+0.5);
TH1F *h1_2 = new TH1F ("h1_2", "Back: Top Layer", 3*NCHMOD, 6*NCHMOD-0.5, 9*NCHMOD+0.5);
TH1F *h1_3 = new TH1F ("h1_3", "Back: Bottom Layer", 3*NCHMOD, 9*NCHMOD-0.5, 12*NCHMOD+0.5);
h1_0->Sumw2();
h1_1->Sumw2();
h1_2->Sumw2();
h1_3->Sumw2();
FILE* fp=fopen(fname,"r");
if (fp==NULL) {
printf("Could not open file %s\n",fname);
return -1;
}
//canvas creation
Double_t w = 2000;
Double_t h = 2000;
TCanvas *c1 = new TCanvas("c1","c1",w,h);
c1->SetWindowSize( w+(w-c1->GetWw()), h+(h-c1->GetWh()) );
c1->Divide(2,2);
for (int j=0; j<nch; j++) {
fscanf(fp,"%d %f",&j,&fc);
cts.push_back(fc);
}
c1->cd(1);
gPad->cd(1);
for(j=0; j<NCHMOD; j++) {
k = NCHMOD-1-j;
h1_0->SetBinContent(k,cts[j]);
}
for(j= NCHMOD; j< NCHMOD*2; j++) {;
k = NCHMOD*3-1-j;
h1_0->SetBinContent(k,cts[j]);
}
for(j= NCHMOD*2; j< NCHMOD*3; j++) {
k = NCHMOD*5-1-j;
h1_0->SetBinContent(k,cts[j]);
}
h1_0->Draw("hist");
c1->cd(3);
gPad->cd(3);
for(j=NCHMOD*3;j<NCHMOD*4; j++) {
k = j+2*NCHMOD;
h1_1->SetBinContent(k,cts[j]);
//printf("k %d j %d counts %f\n", k,j,cts[j]); //verifying here, it reads correctly
}
for(j=NCHMOD*4;j<NCHMOD*5; j++) {
k=j;
h1_1->SetBinContent(k,cts[j]);
}
for(j=NCHMOD*5;j<NCHMOD*6; j++) {
k=j-2*NCHMOD;
h1_1->SetBinContent(k,cts[j]);
}
h1_1->Draw("hist");
c1->cd(2);
gPad->cd(2);
for(j=NCHMOD*6;j<NCHMOD*7;j++) {
k = NCHMOD*13-1-j;
h1_2->SetBinContent(k,cts[j]);
//h1_2->SetBinContent(k,fc);
}
for(j=NCHMOD*7;j<NCHMOD*8;j++) {
k = NCHMOD*15-1-j;
h1_2->SetBinContent(k,cts[j]);
//h1_2->SetBinContent(k,fc);
}
for(j=NCHMOD*8;j<NCHMOD*9;j++) {
k = NCHMOD*17-1-j;
h1_2->SetBinContent(k,cts[j]);
//h1_2->SetBinContent(k,fc);
}
h1_2->Draw("hist");
c1->cd(4);
gPad->cd(4);
for(j=NCHMOD*9;j<NCHMOD*10;j++) {
k = j+2*NCHMOD;
h1_3->SetBinContent(k,cts[j]);
//h1_3->SetBinContent(k,fc);
}
for(j=NCHMOD*10;j<NCHMOD*11;j++) {
k = j;
h1_3->SetBinContent(k,cts[j]);
//h1_3->SetBinContent(k,fc);
}
for(j=NCHMOD*11;j<NCHMOD*12;j++) {
k = j-2*NCHMOD;
h1_3->SetBinContent(k,cts[j]);
//h1_3->SetBinContent(k,fc);
}
h1_3->Draw("hist");
//}
fclose(fp);
return 0;
}