From 9d4118df02844613ee76cb4f67a5623f4cfc1e5d Mon Sep 17 00:00:00 2001 From: Vratislav Chudoba Date: Fri, 21 Jul 2017 10:43:32 +0300 Subject: [PATCH] CosThetaYk()implemented. --- Be/BeAnalysis.cpp | 92 +++++++++++++++++++++++++++++++++++ Be/BeAnalysis.h | 1 + macros/BeCorrPRC/lib_test.cxx | 5 +- 3 files changed, 96 insertions(+), 2 deletions(-) diff --git a/Be/BeAnalysis.cpp b/Be/BeAnalysis.cpp index 2e1e7c6..06e8b5e 100644 --- a/Be/BeAnalysis.cpp +++ b/Be/BeAnalysis.cpp @@ -46,6 +46,13 @@ BeAnalysis::BeAnalysis() : che(0), spectra(1) { epsilonY[0] = 1; epsilonY[2] = 1; + cosThetaY = new Bool_t[noIntervals]; + for (Int_t i = 0; i < noIntervals; i++) { + cosThetaY[i] = 0; + } + cosThetaY[0] = 1; + cosThetaY[2] = 1; + cosThetaY[4] = 1; kVerbose = 1; kRangeProportionIn = 2.0; @@ -676,6 +683,91 @@ void BeAnalysis::EpsilonY() { } void BeAnalysis::CosThetaYk() { + + TCanvas *cThetaY[noIntervals]; + for (Int_t i = 0; iSetTitle(canvasTitle.Data()); + cThetaY[i]->Divide(2, 3); + + che->SetLineColor(kBlack); + for (Int_t j = 0; j < 6; j++) { //different files + cThetaY[i]->cd(j+1); + chs[j]->SetLineColor(kGray+1); + chs[j]->SetFillColor(kGray+1); + hsName.Form("hscoskY%d_%d", i, j); + drawCommand.Form("fCosThetaYk>>%s(50,-1,1)", hsName.Data()); + chs[j]->Draw(drawCommand.Data(), cQ && crBeE[i] && crAngles && sRatio[j], "", sEvents[j]); + hscoskY[i][j] = (TH1F*)gPad->FindObject(hsName.Data()); + heName.Form("hecoskY%d_%d", i, j); + drawCommand.Form("fCosThetaYk>>%s(50,-1,1)", heName.Data()); + che->Draw(drawCommand.Data(), cQ && cBeE[i] && cAngles, "E same", eEvents[j]); +// TH1F *hecoskY[i][j] = (TH1F*)gPad->FindObject(heName.Data()); + hecoskY[i][j] = (TH1F*)gPad->FindObject(heName.Data()); + + hscoskY[i][j]->Draw(); + // hscoskY[i][j]->GetYaxis()->SetRangeUser(0, coskYRange[i][j]); + hecoskY[i][j]->Draw("E same"); + if (kAutoRange) { + Float_t leftMaxMC = kRangeProportion*hecoskY[i][j]->GetMaximum(); + Float_t leftMaxE = kRangeProportion*hscoskY[i][j]->GetMaximum(); + hscoskY[i][j]->GetYaxis()->SetRangeUser(0, leftMaxE); + leftMaxMC > leftMaxE ? hscoskY[i][j]->GetYaxis()->SetRangeUser(0, leftMaxMC) : hscoskY[i][j]->GetYaxis()->SetRangeUser(0, leftMaxE); + } + else { + hscoskY[i][j]->GetYaxis()->SetRangeUser(0, eTRange[i][j]); + } + + + + cThetaY[i]->Update(); + + hiName.Form("hicoskY%d_%d", i, j); + drawCommand.Form("sCosThetaYk>>%s", hiName.Data()); + ti[j]->Draw(drawCommand.Data(), ciBeE[i] && sRatio[j], "same"); + hicoskY[i][j] = (TH1F*)gPad->FindObject(hiName.Data()); + Float_t rightmax = 1.1*hicoskY[i][j]->GetMaximum(); + Float_t scale = cThetaY[i]->GetPad(j+1)->GetUymax()/rightmax; + hicoskY[i][j]->SetLineColor(kRed); + hicoskY[i][j]->Scale(scale); + + //draw an axis on the right side + TGaxis *axis = new TGaxis(gPad->GetUxmax(),gPad->GetUymin(), + gPad->GetUxmax(), gPad->GetUymax(),0,rightmax,510,"+L"); + axis->SetLineColor(kRed); + axis->SetLabelColor(kRed); + axis->Draw(); + + cThetaY[i]->Update(); + + if (kVerbose) { + Info("sfAngInt_cosThetaYk.cxx", "cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f", + i, j, hecoskY[i][j]->Integral(0,hecoskY[i][j]->GetNbinsX()), + hscoskY[i][j]->Integral(0,hscoskY[i][j]->GetNbinsX()), + hecoskY[i][j]->Integral(0,hecoskY[i][j]->GetNbinsX())/hscoskY[i][j]->Integral(0,hscoskY[i][j]->GetNbinsX()) ); + } + + + }//for j + /*if (savePictures) { + canvasName.Form("%sfig%dcosThetakY:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data()); + cThetaY[i]->SaveAs(canvasName.Data()); + cThetaY[i]->cd(); + cThetaY[i]->Close(); + }*/ + // }//if + }//for i + } void BeAnalysis::ThetaP1T() { diff --git a/Be/BeAnalysis.h b/Be/BeAnalysis.h index c9caa17..0f85191 100644 --- a/Be/BeAnalysis.h +++ b/Be/BeAnalysis.h @@ -69,6 +69,7 @@ private: Bool_t *epsilonT; //! Bool_t *cosThetaT; //! Bool_t *epsilonY; //! + Bool_t *cosThetaY; //! Bool_t kAutoRange; Float_t kRangeProportion; diff --git a/macros/BeCorrPRC/lib_test.cxx b/macros/BeCorrPRC/lib_test.cxx index 7a8f401..62f04aa 100755 --- a/macros/BeCorrPRC/lib_test.cxx +++ b/macros/BeCorrPRC/lib_test.cxx @@ -16,9 +16,10 @@ void lib_test() { ana.ExpEventsECuts(); ana.SimEventsECuts(); ana.EpsilonTRange(); -// ana.EpsilonT(); - ana.CosThetaTk(); +// ana.EpsilonT(); +// ana.CosThetaTk(); ana.EpsilonY(); + ana.CosThetaYk(); } -- 2.18.1