gini
April 30, 2024, 10:13am
1
Hi,
I am trying to do the energy calibration of a histogram using a second degree polynomial function :
Double_t HP_Ge::channel_Energy(Double_t x)
{
Double_t v;
v = -78.61 + (0.6816*LaBr3Raw[3]) + (1.043*TMath::Power(10,-6)*TMath::Power(LaBr3Raw[3],2));
return v;
}
and the following is what I have :
I dont understand why the calibarted spectrum is like this. I already tried using a different binning for the second histogram but I cannot get it to look nice, but it doesnt work.
Thank you!
couet
April 30, 2024, 10:27am
2
Can you provide a more complete example reproducing this plot ?
gini
April 30, 2024, 10:30am
3
I have a ttree with the raw data, and I use the make class for the calibration .
HP_Ge.h (17.2 KB)
HP_Ge.C (3.8 KB)
I tried with a linear function also to fit but I have similar results
couet
April 30, 2024, 10:40am
4
root [0]
Processing HP_Ge.C...
Error in <TFile::TFile>: file /Users/couet/Downloads/r0207_000a.root does not exist
(HP_Ge) @0x7f79221c0820
root [1] .q
gini
April 30, 2024, 12:02pm
5
As the file size is large, please find the root file in the following link:
Shared with Dropbox
@gini
I guess, it is not really a ROOT
problem.
You may wish to smooth your histogram after you apply calibration function by replacing
v = 0.6861 * x - 82.4698;
with
v = 0.6861 * x - 82.4698 + ((float) rand()/(float) RAND_MAX) ;
Hope this helps.
Ajay
gini
April 30, 2024, 1:34pm
7
@ajaydeo thanks for the reply !
In that case what to do with the polynomial function if I use it to calibrate ?
@gini
As simple as,
v = -78.61 + (0.6816*LaBr3Raw[3]) + (1.043*TMath::Power(10,-6)*TMath::Power(LaBr3Raw[3],2)) + ((float) rand()/(float) RAND_MAX);
Ajay
1 Like
yus
May 2, 2024, 8:02am
9
If I may suggest another improvement (which will not fix anything, but it makes the code cleaner and faster):
consider replacing
1.043*TMath::Power(10,-6)*TMath::Power(LaBr3Raw[3],2)
with just
1.043e-6*TMath::Sq(LaBr3Raw[3])
1 Like