1 |
|
---|
2 |
|
---|
3 | void computeCoeff()
|
---|
4 | {
|
---|
5 | MEffAreaAndCoeffCalc calc;
|
---|
6 | calc.AddFile("/data/star_gamma_test.root");
|
---|
7 |
|
---|
8 | /************************************************/
|
---|
9 | /* Build spectrum */
|
---|
10 | /* now it's just a cross check with the same MC */
|
---|
11 | /************************************************/
|
---|
12 | const Int_t ebins = 20; // number of bins to build spectrum
|
---|
13 | const Double_t emin=10;
|
---|
14 | const Double_t emax=200;
|
---|
15 | const Int_t tbins = 2;
|
---|
16 | const Double_t thetab[tbins+1] = {0,10,20};
|
---|
17 | calc.SetEbins(ebins);
|
---|
18 | calc.SetEmin(emin);
|
---|
19 | calc.SetEmax(emax);
|
---|
20 | calc.SetThetaBinning(tbins,thetab);
|
---|
21 |
|
---|
22 | // define the funtion of the desired spectrum
|
---|
23 | calc.SetFunction("4.e9*pow(x,-2.6+1)");
|
---|
24 | calc.ComputeAllFactors();
|
---|
25 |
|
---|
26 | const UInt_t ncutfiles=1;
|
---|
27 | Char_t* cutName[ncutfiles]={"/data/star_gamma_test.root"};
|
---|
28 |
|
---|
29 | TChain* ccut = new TChain("Events");
|
---|
30 | for(Int_t i = 0; i < ncutfiles; i++)
|
---|
31 | ccut->Add(cutName[i]);
|
---|
32 | ccut->SetAlias("logestenergy","log10(MHillas.fSize/0.18/15.)");
|
---|
33 | ccut->SetAlias("theta","MMcEvt.fTelescopeTheta*180./3.14159");
|
---|
34 |
|
---|
35 |
|
---|
36 | const Double_t logemin = TMath::Log10(emin);
|
---|
37 | const Double_t logemax = TMath::Log10(emax);
|
---|
38 | TH1D* hspec = new TH1D("hspec","Spectrum",ebins,logemin,logemax);
|
---|
39 | hspec->Sumw2();
|
---|
40 | ccut->Draw("logestenergy>>hspec","theta<10","goff");
|
---|
41 |
|
---|
42 | for(Int_t i=0;i<ebins;i++)
|
---|
43 | {
|
---|
44 | const Float_t uncorrval = hspec->GetBinContent(i+1);
|
---|
45 | const Float_t effa = calc.GetEffectiveAreaHisto()->GetBinContent(i+1,1);
|
---|
46 | const Float_t unfold = calc.GetCoefficientHisto()->GetBinContent(i+1,1);
|
---|
47 | Float_t corrval;
|
---|
48 | if(effa)
|
---|
49 | corrval = uncorrval*unfold/effa*1e9;
|
---|
50 | else
|
---|
51 | corrval = 0;
|
---|
52 | hspec->SetBinContent(i+1,corrval);
|
---|
53 | }
|
---|
54 |
|
---|
55 | // SAVE RESULTS
|
---|
56 | TFile file("prueba.root","RECREATE");
|
---|
57 | hspec->Write();
|
---|
58 | calc.GetEffectiveAreaHisto()->Write();
|
---|
59 | calc.GetCoefficientHisto()->Write();
|
---|
60 | return;
|
---|
61 | }
|
---|