Got similar results to my previous post with Octave, using ROOT.
Had some hiccups. Initial testing of ROOT C macro failed due to that particular sample data file being empty! The file input was based on this basic.C example. After getting the samples into the ntuple,
while (1) {
in >> runID >> sID >> energy >> pixelID;
if (!in.good()) break;
ntuple->Fill(runID,sID,energy,pixelID);
nlines++;
}
I could do a simple linear plot just to check,
ntuple->Draw("pixelID","energy");
Then I created the same sort of 2D matrix as in octave - perhaps this is not necessary, but this is the way I did it :)
for (int i=0;i<8;i++)
for (int j=0;j<8;j++)
{
energy2D[i][j]=0; // initializing to zero, since
// some i,j are not mentioned in the next loop
}
for (int i=0;i<nlines;i++) {
ntuple->GetEntry(i);
//pmtNumber pmtx is an 8x8 array,
// assumed numbered rowwise.
//for i=0:7, j=0:7,
//i*8+j=pmtx. So
jj= int(pmtx) % 8; //here we need to cast the float pmtx as an int
ii= (pmtx -jj) / 8;
energy2D[ii][jj]=enx
}
for (int i=0;i<8;i++)
for (int j=0;j<8;j++) {
h2->Fill(i,j,energy2D[i][j]);
}
h2->Draw("lego2");
Had some hiccups. Initial testing of ROOT C macro failed due to that particular sample data file being empty! The file input was based on this basic.C example. After getting the samples into the ntuple,
while (1) {
in >> runID >> sID >> energy >> pixelID;
if (!in.good()) break;
ntuple->Fill(runID,sID,energy,pixelID);
nlines++;
}
I could do a simple linear plot just to check,
ntuple->Draw("pixelID","energy");
Then I created the same sort of 2D matrix as in octave - perhaps this is not necessary, but this is the way I did it :)
for (int i=0;i<8;i++)
for (int j=0;j<8;j++)
{
energy2D[i][j]=0; // initializing to zero, since
// some i,j are not mentioned in the next loop
}
for (int i=0;i
ntuple->GetEntry(i);
//pmtNumber pmtx is an 8x8 array,
// assumed numbered rowwise.
//for i=0:7, j=0:7,
//i*8+j=pmtx. So
jj= int(pmtx) % 8; //here we need to cast the float pmtx as an int
ii= (pmtx -jj) / 8;
energy2D[ii][jj]=enx
}
for (int i=0;i<8;i++)
for (int j=0;j<8;j++) {
h2->Fill(i,j,energy2D[i][j]);
}
h2->Draw("lego2");
No comments:
Post a Comment