1 | #define PI 3.1415
|
---|
2 | #define D2R PI/180.
|
---|
3 | #define R2D 180./PI
|
---|
4 |
|
---|
5 | void useTables( string sInFile, string sTableFile )
|
---|
6 | {
|
---|
7 |
|
---|
8 | gStyle->SetOptStat(111111);
|
---|
9 | gStyle->SetOptFit(111111);
|
---|
10 |
|
---|
11 | gStyle->SetOptStat(0);
|
---|
12 |
|
---|
13 | TFile *fTableFile = new TFile( sTableFile.c_str() );
|
---|
14 | if( fTableFile->IsZombie() )
|
---|
15 | {
|
---|
16 | cout << "File Error " << sTableFile.c_str() << endl;
|
---|
17 | exit(-1);
|
---|
18 | }
|
---|
19 |
|
---|
20 | TFile *fInFile = new TFile( sInFile.c_str() );
|
---|
21 | if( fInFile->IsZombie() )
|
---|
22 | {
|
---|
23 | cout << "File Error " << sInFile.c_str() << endl;
|
---|
24 | exit(-1);
|
---|
25 | }
|
---|
26 |
|
---|
27 | TTree *hTree = (TTree*)fInFile->Get("hillastree");
|
---|
28 |
|
---|
29 | float fMCEnergy;
|
---|
30 | float fMCZd;
|
---|
31 | double fLength;
|
---|
32 | double fWidth;
|
---|
33 | double fDistance;
|
---|
34 | double fSize;
|
---|
35 |
|
---|
36 | hTree->SetBranchAddress("MCEnergy",&fMCEnergy);
|
---|
37 | hTree->SetBranchAddress("MCZd",&fMCZd);
|
---|
38 | hTree->SetBranchAddress("Length",&fLength);
|
---|
39 | hTree->SetBranchAddress("Width",&fWidth);
|
---|
40 | hTree->SetBranchAddress("Size",&fSize);
|
---|
41 | hTree->SetBranchAddress("Distance",&fDistance);
|
---|
42 |
|
---|
43 | TH2F *hTableEnergy = (TH2F*)fTableFile->Get("hTableEnergy");
|
---|
44 | TH2F *hTableLength = (TH2F*)fTableFile->Get("hTableLength");
|
---|
45 | TH2F *hTableWidth = (TH2F*)fTableFile->Get("hTableWidth");
|
---|
46 | TH2F *hTableNorm = (TH2F*)fTableFile->Get("hTableNorm");
|
---|
47 |
|
---|
48 | TH1F *hRes = new TH1F("hRes","Energy Resolution",30,-2.,2.);
|
---|
49 | hRes->GetXaxis()->SetTitle("(Energy-True)/True");
|
---|
50 |
|
---|
51 | int BIG = int(hTree->GetEntries()/2.);
|
---|
52 |
|
---|
53 | for( int i = BIG; i < hTree->GetEntries(); i++ )
|
---|
54 | {
|
---|
55 |
|
---|
56 | hTree->GetEntry(i);
|
---|
57 |
|
---|
58 | if( fabs(fMCZd*R2D - 10.) < 5.0 )
|
---|
59 | {
|
---|
60 | Int_t iX = hTableEnergy->GetXaxis()->FindBin(log10(fSize));
|
---|
61 | Int_t iY = hTableEnergy->GetYaxis()->FindBin(fDistance);
|
---|
62 |
|
---|
63 | float energy = hTableEnergy->GetBinContent(iX,iY);
|
---|
64 |
|
---|
65 | if( energy != 0. ) hRes->Fill((pow(10.,energy)-fMCEnergy)/fMCEnergy);
|
---|
66 |
|
---|
67 | }
|
---|
68 |
|
---|
69 | }
|
---|
70 |
|
---|
71 | hRes->Draw();
|
---|
72 | hRes->Fit("gaus");
|
---|
73 |
|
---|
74 | }
|
---|