ROOT Version: 6.23/01
Platform: 64 bit Fedora 32
Compiler: gcc version 10.1.1 20200507 (Red Hat 10.1.1-1) (GCC)
Hello,
I have a conceptual problem.
I have a data file from an experiment which contains several signals. I am converting entire data into a ROOT Tree format as follows:
CandleTree->Branch(sig_name[br_loop], &signals[br_loop],sig_format[br_loop]);
Now, when I display (say, using TBrowser
or TTreeViewer
) one of the signals, I get the following:
But, this is not how actual the signal should look. Therefore, from the tree generated above, I sorted the entries into histogram as below:
Long64_t nentries = t1->GetEntriesFast();
for (Int_t i=0; i<nentries; i++) {
t1->GetEntry(i);
for(int j = 0; j < n_signals; j++){
if(signals[j]>0) his[j]->Fill(signals[j]);
}
}
then the histogram corresponding to that branch looks as follows:
Okay, I understand the difference in the entries. The second histogram is filled excluding zeros.
But, apart from entries - Why the two histograms are different when I am filling the data in both the cases?
Please can you help me understand what is happening.
Thank you.
couet
July 29, 2020, 3:35pm
2
Looking at the plots, it seems the two histogram do not have the same bin width. The one below seems to have many more bins than the upper one.
Thank you @couet for you reply. Yes, that possibly could be the reason. Then, how to create a branch to contain histograms with desired bin width?
The second histogram in my first post is made using TH1F(nm,nm,16384,0.,16384.);
while the first histogram (from) has no specific width.
couet
July 30, 2020, 6:49am
4
Yes it has 16384 bins … try:
TH1F(nm,nm,100,0.,16384.);
Thank you.
Actually, I want second histogram (because that correctly represents energy spectrum from the detector) directly from TTreeViewer
.
Or, if at all possible, to generate branches with 16384 bins, with bindiwth=1.
Is this possible?
couet
July 30, 2020, 7:16am
6
The bin width is not a parameter you can set when you book an histogram. It is computed from the histogram limits and the number of bins: (xmax-xmin)/nbins
Okay. May be I was not clear enough earlier. Let me try to rephrase my question.
Is it at all possible to create a branch to store histogram with say nbins = 16384
?
couet
July 30, 2020, 8:07am
8
“brand creation” and “number of bins for the resulting histogram” are two unrelated things. You specify the number of bins at the histogram creation time. Let say:
auto h = new TH1F(nm,nm, 16384,0.,16384.);
t-Draw("x >> h");
I hope that answer your question
That is exactly how I have generated the second histogram in the first post.
One last question: can I generate the second histogram directly from TTreeViewer
by using corresponding branch? If yes, the please explain how?
couet
July 30, 2020, 8:23am
10
In the TTree Viewer there is a field called “histogram”. I guess you can put your histogram there.
I dragged SIG007
branch to x
, and then clocked Draw current selection
box.
With this, I still do not get the behaviour that I am expecting. Please see below
It worked! Thank you very much @couet . Your time and efforts are much appreciated.
system
Closed
August 13, 2020, 3:37pm
14
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.