Commit 2f24fab2 authored by Vratislav Chudoba's avatar Vratislav Chudoba

Parametrization of EpsilonT(), ... solved

parent 2f96c67e
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include "TCanvas.h" #include "TCanvas.h"
#include "TGaxis.h" #include "TGaxis.h"
BeAnalysis::BeAnalysis() : che(0), lowExpFile(0), upExpFile(0), spectra(1) { BeAnalysis::BeAnalysis() : che(0), lowExpFile(0), upExpFile(0), spectra(0) {
// TODO Auto-generated constructor stub // TODO Auto-generated constructor stub
for (Int_t i = 0; i < 6; i++) { for (Int_t i = 0; i < 6; i++) {
...@@ -22,45 +22,53 @@ BeAnalysis::BeAnalysis() : che(0), lowExpFile(0), upExpFile(0), spectra(1) { ...@@ -22,45 +22,53 @@ BeAnalysis::BeAnalysis() : che(0), lowExpFile(0), upExpFile(0), spectra(1) {
SetCuts(); SetCuts();
SetChainsToDraw(); SetChainsToDraw();
noIntervals = 5; epsilonT = 0;
epsilonT = new Bool_t[noIntervals];
for (Int_t i = 0; i < noIntervals; i++) {
epsilonT[i] = 0;
}
epsilonT[0] = 1;
epsilonT[2] = 1;
noIntervals = 5;
cosThetaT = new Bool_t[noIntervals]; // epsilonT = new Bool_t[noIntervals];
for (Int_t i = 0; i < noIntervals; i++) { // for (Int_t i = 0; i < noIntervals; i++) {
cosThetaT[i] = 0; // epsilonT[i] = 0;
} // }
cosThetaT[0] = 1; // epsilonT[0] = 1;
cosThetaT[2] = 1; // epsilonT[2] = 1;
cosThetaT[4] = 1;
cosThetaT = 0;
epsilonY = new Bool_t[noIntervals];
for (Int_t i = 0; i < noIntervals; i++) { // cosThetaT = new Bool_t[noIntervals];
epsilonY[i] = 0; // for (Int_t i = 0; i < noIntervals; i++) {
} // cosThetaT[i] = 0;
epsilonY[0] = 1; // }
epsilonY[2] = 1; // cosThetaT[0] = 1;
// cosThetaT[2] = 1;
cosThetaY = new Bool_t[noIntervals]; // cosThetaT[4] = 1;
for (Int_t i = 0; i < noIntervals; i++) {
cosThetaY[i] = 0; epsilonY = 0;
}
cosThetaY[0] = 1; // epsilonY = new Bool_t[noIntervals];
cosThetaY[2] = 1; // for (Int_t i = 0; i < noIntervals; i++) {
cosThetaY[4] = 1; // epsilonY[i] = 0;
// }
thetaAT = new Bool_t[noIntervals]; // epsilonY[0] = 1;
for (Int_t i = 0; i < noIntervals; i++) { // epsilonY[2] = 1;
thetaAT[i] = 0;
} cosThetaY = 0;
thetaAT[0] = 1; // cosThetaY = new Bool_t[noIntervals];
thetaAT[2] = 1; // for (Int_t i = 0; i < noIntervals; i++) {
thetaAT[4] = 1; // cosThetaY[i] = 0;
// }
// cosThetaY[0] = 1;
// cosThetaY[2] = 1;
// cosThetaY[4] = 1;
thetaAT = 0;
// thetaAT = new Bool_t[noIntervals];
// for (Int_t i = 0; i < noIntervals; i++) {
// thetaAT[i] = 0;
// }
// thetaAT[0] = 1;
// thetaAT[2] = 1;
// thetaAT[4] = 1;
kVerbose = 1; kVerbose = 1;
kRangeProportionIn = 2.0; kRangeProportionIn = 2.0;
...@@ -297,15 +305,17 @@ void BeAnalysis::SetNoSimEvents(Long64_t *noSimEvents) { ...@@ -297,15 +305,17 @@ void BeAnalysis::SetNoSimEvents(Long64_t *noSimEvents) {
} }
void BeAnalysis::SetRatiosGStoEX() { void BeAnalysis::SetRatiosGStoEX(TString sRatioAl0, TString sRatioNoAl0,
TString sRatioAl180, TString sRatioNoAl180,
TString sRatioAl90, TString sRatioNoAl90) {
sRatioAl0 = "sRatio>0.051 && sRatio<0.101"; // sRatioAl0 = "sRatio>0.051 && sRatio<0.101";
// TCut sRatioAl0 = "sRatio>0.060 && sRatio<0.110"; // // TCut sRatioAl0 = "sRatio>0.060 && sRatio<0.110";
sRatioNoAl0 = "sRatio>0.050 && sRatio<0.100"; // sRatioNoAl0 = "sRatio>0.050 && sRatio<0.100";
sRatioAl180 = "sRatio>0.047 && sRatio<0.097"; // sRatioAl180 = "sRatio>0.047 && sRatio<0.097";
sRatioNoAl180 = "sRatio>0.048 && sRatio<0.098"; // sRatioNoAl180 = "sRatio>0.048 && sRatio<0.098";
sRatioAl90 = "sRatio>0.051 && sRatio<0.101"; // sRatioAl90 = "sRatio>0.051 && sRatio<0.101";
sRatioNoAl90 = "sRatio>0.051 && sRatio<0.101"; // sRatioNoAl90 = "sRatio>0.051 && sRatio<0.101";
sRatio[0] = sRatioAl0; sRatio[0] = sRatioAl0;
sRatio[1] = sRatioNoAl0; sRatio[1] = sRatioNoAl0;
...@@ -422,6 +432,10 @@ void BeAnalysis::Spectra() { ...@@ -422,6 +432,10 @@ void BeAnalysis::Spectra() {
void BeAnalysis::EpsilonT() { void BeAnalysis::EpsilonT() {
if(!epsilonT) {
Error("BeAnalysis::EpsilonT", "Energy intervals were not set.");
return;
}
TCanvas *canEpsilonT[noIntervals]; TCanvas *canEpsilonT[noIntervals];
for (Int_t i = 0; i<noIntervals; i++) { //energy intervals (canvases) for (Int_t i = 0; i<noIntervals; i++) { //energy intervals (canvases)
...@@ -438,9 +452,20 @@ void BeAnalysis::EpsilonT() { ...@@ -438,9 +452,20 @@ void BeAnalysis::EpsilonT() {
canEpsilonT[i]->SetTitle(canvasTitle.Data()); canEpsilonT[i]->SetTitle(canvasTitle.Data());
canEpsilonT[i]->Divide(2, 3); canEpsilonT[i]->Divide(2, 3);
// cProtons.Print();
// cQ.Print();
// crBeE[i].Print();
// crAngles.Print();
che->SetLineColor(kBlack); che->SetLineColor(kBlack);
for (Int_t j = 0; j < 6; j++) { //different files for (Int_t j = 0; j < 6; j++) { //different files
if (!kChains[j]) continue; if (!kChains[j]) continue;
// sRatio[j].Print();
// cout << sEventsECuts[i][j] << endl;
// cout << eEventsECuts[i][j] << endl;
canEpsilonT[i]->cd(j+1); canEpsilonT[i]->cd(j+1);
chs[j]->SetLineColor(kGray+1); chs[j]->SetLineColor(kGray+1);
chs[j]->SetFillColor(kGray+1); chs[j]->SetFillColor(kGray+1);
...@@ -452,14 +477,16 @@ void BeAnalysis::EpsilonT() { ...@@ -452,14 +477,16 @@ void BeAnalysis::EpsilonT() {
drawCommand.Form("fTpp/fBeIM>>%s", heName.Data()); drawCommand.Form("fTpp/fBeIM>>%s", heName.Data());
che->Draw(drawCommand.Data(), cProtons && cQ && cBeE[i] && cAngles, "E same", eEventsECuts[i][j]); che->Draw(drawCommand.Data(), cProtons && cQ && cBeE[i] && cAngles, "E same", eEventsECuts[i][j]);
heeT[i][j] = (TH1F*)gPad->FindObject(heName.Data()); heeT[i][j] = (TH1F*)gPad->FindObject(heName.Data());
// continue;
hseT[i][j]->Draw(); hseT[i][j]->Draw();
hseT[i][j]->SetTitle(""); hseT[i][j]->SetTitle("");
hseT[i][j]->SetXTitle("\\varepsilon"); hseT[i][j]->SetXTitle("\\varepsilon");
hseT[i][j]->GetXaxis()->SetTitleOffset(0.95); // hseT[i][j]->GetXaxis()->SetTitleOffset(0.95);
// hseT[i][j]->GetXaxis()->SetTitleSize(0.11);
hseT[i][j]->GetXaxis()->CenterTitle(); hseT[i][j]->GetXaxis()->CenterTitle();
hseT[i][j]->SetYTitle("counts"); hseT[i][j]->SetYTitle("counts");
hseT[i][j]->GetYaxis()->SetTitleOffset(0.7); // hseT[i][j]->GetYaxis()->SetTitleOffset(0.7);
hseT[i][j]->GetYaxis()->CenterTitle(); hseT[i][j]->GetYaxis()->CenterTitle();
heeT[i][j]->Draw("E same"); heeT[i][j]->Draw("E same");
if (kAutoRange) { if (kAutoRange) {
...@@ -484,16 +511,16 @@ void BeAnalysis::EpsilonT() { ...@@ -484,16 +511,16 @@ void BeAnalysis::EpsilonT() {
hieT[i][j]->Scale(scale); hieT[i][j]->Scale(scale);
//draw an axis on the right side //draw an axis on the right side
TGaxis *axis = new TGaxis(gPad->GetUxmax(),gPad->GetUymin(), // TGaxis *axis = new TGaxis(gPad->GetUxmax(),gPad->GetUymin(),
gPad->GetUxmax(), gPad->GetUymax(),0,rightmax,510,"+L"); // gPad->GetUxmax(), gPad->GetUymax(),0,rightmax,510,"+L");
axis->SetLineColor(kRed); // axis->SetLineColor(kRed);
axis->SetLabelColor(kRed); // axis->SetLabelColor(kRed);
axis->Draw(); // axis->Draw();
canEpsilonT[i]->Update(); canEpsilonT[i]->Update();
if (kVerbose) { if (kVerbose) {
Info("sfAngInt_epsilonT.cxx", "cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f", Info("BeAnalysis::EpsilonT", "cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f",
i, j, heeT[i][j]->Integral(0,heeT[i][j]->GetNbinsX()), i, j, heeT[i][j]->Integral(0,heeT[i][j]->GetNbinsX()),
hseT[i][j]->Integral(0,hseT[i][j]->GetNbinsX()), hseT[i][j]->Integral(0,hseT[i][j]->GetNbinsX()),
heeT[i][j]->Integral(0,heeT[i][j]->GetNbinsX())/hseT[i][j]->Integral(0,hseT[i][j]->GetNbinsX()) ); heeT[i][j]->Integral(0,heeT[i][j]->GetNbinsX())/hseT[i][j]->Integral(0,hseT[i][j]->GetNbinsX()) );
...@@ -518,6 +545,11 @@ void BeAnalysis::EpsilonT() { ...@@ -518,6 +545,11 @@ void BeAnalysis::EpsilonT() {
void BeAnalysis::CosThetaTk() { void BeAnalysis::CosThetaTk() {
if(!cosThetaT) {
Error("BeAnalysis::CosThetaTk", "Energy intervals were not set.");
return;
}
TCanvas *cThetaT[noIntervals]; TCanvas *cThetaT[noIntervals];
for (Int_t i = 0; i<noIntervals; i++) { //energy intervals (canvases) for (Int_t i = 0; i<noIntervals; i++) { //energy intervals (canvases)
...@@ -583,7 +615,7 @@ void BeAnalysis::CosThetaTk() { ...@@ -583,7 +615,7 @@ void BeAnalysis::CosThetaTk() {
cThetaT[i]->Update(); cThetaT[i]->Update();
if (kVerbose) { if (kVerbose) {
Info("sfAngInt_cosThetaTk.cxx", "cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f", Info("BeAnalysis::CosThetaTk", "cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f",
i, j, hecoskT[i][j]->Integral(0,hecoskT[i][j]->GetNbinsX()), i, j, hecoskT[i][j]->Integral(0,hecoskT[i][j]->GetNbinsX()),
hscoskT[i][j]->Integral(0,hscoskT[i][j]->GetNbinsX()), hscoskT[i][j]->Integral(0,hscoskT[i][j]->GetNbinsX()),
hecoskT[i][j]->Integral(0,hecoskT[i][j]->GetNbinsX())/hscoskT[i][j]->Integral(0,hscoskT[i][j]->GetNbinsX()) ); hecoskT[i][j]->Integral(0,hecoskT[i][j]->GetNbinsX())/hscoskT[i][j]->Integral(0,hscoskT[i][j]->GetNbinsX()) );
...@@ -606,6 +638,11 @@ void BeAnalysis::CosThetaTk() { ...@@ -606,6 +638,11 @@ void BeAnalysis::CosThetaTk() {
void BeAnalysis::EpsilonY() { void BeAnalysis::EpsilonY() {
if(!epsilonY) {
Error("BeAnalysis::EpsilonY", "Energy intervals were not set.");
return;
}
TCanvas *canEpsilonY[noIntervals]; TCanvas *canEpsilonY[noIntervals];
for (Int_t i = 0; i<noIntervals; i++) { //energy intervals (canvases) for (Int_t i = 0; i<noIntervals; i++) { //energy intervals (canvases)
...@@ -668,7 +705,7 @@ void BeAnalysis::EpsilonY() { ...@@ -668,7 +705,7 @@ void BeAnalysis::EpsilonY() {
canEpsilonY[i]->Update(); canEpsilonY[i]->Update();
if (kVerbose) { if (kVerbose) {
Info("sfAngInt_epsilonY.cxx", "cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f", Info("BeAnalysis::EpsilonY", "cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f",
i, j, heeY[i][j]->Integral(0,heeY[i][j]->GetNbinsX()), i, j, heeY[i][j]->Integral(0,heeY[i][j]->GetNbinsX()),
hseY[i][j]->Integral(0,hseY[i][j]->GetNbinsX()), hseY[i][j]->Integral(0,hseY[i][j]->GetNbinsX()),
heeY[i][j]->Integral(0,heeY[i][j]->GetNbinsX())/hseY[i][j]->Integral(0,hseY[i][j]->GetNbinsX()) ); heeY[i][j]->Integral(0,heeY[i][j]->GetNbinsX())/hseY[i][j]->Integral(0,hseY[i][j]->GetNbinsX()) );
...@@ -693,6 +730,11 @@ void BeAnalysis::EpsilonY() { ...@@ -693,6 +730,11 @@ void BeAnalysis::EpsilonY() {
void BeAnalysis::CosThetaYk() { void BeAnalysis::CosThetaYk() {
if(!cosThetaY) {
Error("BeAnalysis::CosThetaYk", "Energy intervals were not set.");
return;
}
TCanvas *cThetaY[noIntervals]; TCanvas *cThetaY[noIntervals];
for (Int_t i = 0; i<noIntervals; i++) { //energy intervals (canvases) for (Int_t i = 0; i<noIntervals; i++) { //energy intervals (canvases)
...@@ -756,7 +798,7 @@ void BeAnalysis::CosThetaYk() { ...@@ -756,7 +798,7 @@ void BeAnalysis::CosThetaYk() {
cThetaY[i]->Update(); cThetaY[i]->Update();
if (kVerbose) { if (kVerbose) {
Info("sfAngInt_cosThetaYk.cxx", "cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f", Info("BeAnalysis::CosThetaYk", "cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f",
i, j, hecoskY[i][j]->Integral(0,hecoskY[i][j]->GetNbinsX()), i, j, hecoskY[i][j]->Integral(0,hecoskY[i][j]->GetNbinsX()),
hscoskY[i][j]->Integral(0,hscoskY[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()) ); hecoskY[i][j]->Integral(0,hecoskY[i][j]->GetNbinsX())/hscoskY[i][j]->Integral(0,hscoskY[i][j]->GetNbinsX()) );
...@@ -781,6 +823,11 @@ void BeAnalysis::CosThetaYk() { ...@@ -781,6 +823,11 @@ void BeAnalysis::CosThetaYk() {
void BeAnalysis::ThetaAT() { void BeAnalysis::ThetaAT() {
if(!thetaAT) {
Error("BeAnalysis::ThetaAT", "Energy intervals were not set.");
return;
}
TCanvas *cThetaAT[noIntervals]; TCanvas *cThetaAT[noIntervals];
for (Int_t i = 0; i<noIntervals; i++) { //energy intervals (canvases) for (Int_t i = 0; i<noIntervals; i++) { //energy intervals (canvases)
...@@ -853,7 +900,7 @@ void BeAnalysis::ThetaAT() { ...@@ -853,7 +900,7 @@ void BeAnalysis::ThetaAT() {
cThetaAT[i]->Update(); cThetaAT[i]->Update();
if (kVerbose) { if (kVerbose) {
Info("sfAngInt_thetaAT.cxx", "cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f", Info("BeAnalysis::ThetaAT", "cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f",
i, j, hethetaAT[i][j]->Integral(0,hethetaAT[i][j]->GetNbinsX()), i, j, hethetaAT[i][j]->Integral(0,hethetaAT[i][j]->GetNbinsX()),
hsthetaAT[i][j]->Integral(0,hsthetaAT[i][j]->GetNbinsX()), hsthetaAT[i][j]->Integral(0,hsthetaAT[i][j]->GetNbinsX()),
hethetaAT[i][j]->Integral(0,hethetaAT[i][j]->GetNbinsX())/hsthetaAT[i][j]->Integral(0,hsthetaAT[i][j]->GetNbinsX()) ); hethetaAT[i][j]->Integral(0,hethetaAT[i][j]->GetNbinsX())/hsthetaAT[i][j]->Integral(0,hsthetaAT[i][j]->GetNbinsX()) );
...@@ -872,54 +919,101 @@ void BeAnalysis::ThetaAT() { ...@@ -872,54 +919,101 @@ void BeAnalysis::ThetaAT() {
} }
void BeAnalysis::ExpEventsECuts() { //void BeAnalysis::ExpEventsECuts(Long64_t **noExpEvents) {
eEventsECuts[0][0] = 3950000; //void BeAnalysis::ExpEventsECuts(Int_t (&noExpEvents)[5][6]) {
eEventsECuts[0][1] = 3950000; //void BeAnalysis::ExpEventsECuts(Int_t (*noExpEvents)[5][6]) {
eEventsECuts[0][2] = 3800000; void BeAnalysis::ExpEventsECuts(Long64_t noExpEvents[5][6]) {
eEventsECuts[0][3] = 3850000;
eEventsECuts[0][4] = 3950000;
eEventsECuts[0][5] = 3900000;
eEventsECuts[1][0] = eMaxEvents; // eMaxEvents = 5000000;
eEventsECuts[1][1] = eMaxEvents;
eEventsECuts[1][2] = 4100000; if (!noExpEvents) {
eEventsECuts[1][3] = eMaxEvents; for (Int_t i = 0; i < 5; i++) {
eEventsECuts[1][4] = eMaxEvents; for (Int_t j = 0; j < 6; j++) {
eEventsECuts[1][5] = eMaxEvents; eEventsECuts[i][j] = eMaxEvents;
}
}
Warning("BeAnalysis::ExpEventsECuts", "Default numbers of experimental events were set.");
return;
}
eEventsECuts[2][0] = 3050000; for (Int_t i = 0; i < 5; i++) {
eEventsECuts[2][1] = 3150000; for (Int_t j = 0; j < 6; j++) {
eEventsECuts[2][2] = 3200000; eEventsECuts[i][j] = (Long64_t)noExpEvents[i][j];
eEventsECuts[2][3] = 3200000; }
eEventsECuts[2][4] = 3250000; }
eEventsECuts[2][5] = 3350000; return;
eEventsECuts[3][0] = 3850000;
eEventsECuts[3][1] = 3950000;
eEventsECuts[3][2] = 3900000;
eEventsECuts[3][3] = 3900000;
eEventsECuts[3][4] = 4000000;
eEventsECuts[3][5] = 4000000;
eEventsECuts[4][0] = 4100000; // eEventsECuts[0][0] = 3950000;
eEventsECuts[4][1] = 4100000; // eEventsECuts[0][1] = 3950000;
eEventsECuts[4][2] = 4000000; // eEventsECuts[0][2] = 3800000;
eEventsECuts[4][3] = 4100000; // eEventsECuts[0][3] = 3850000;
eEventsECuts[4][4] = eMaxEvents; // eEventsECuts[0][4] = 3950000;
eEventsECuts[4][5] = eMaxEvents; // eEventsECuts[0][5] = 3900000;
//
// eEventsECuts[1][0] = eMaxEvents;
// eEventsECuts[1][1] = eMaxEvents;
// eEventsECuts[1][2] = 4100000;
// eEventsECuts[1][3] = eMaxEvents;
// eEventsECuts[1][4] = eMaxEvents;
// eEventsECuts[1][5] = eMaxEvents;
//
// eEventsECuts[2][0] = 3050000;
// eEventsECuts[2][1] = 3150000;
// eEventsECuts[2][2] = 3200000;
// eEventsECuts[2][3] = 3200000;
// eEventsECuts[2][4] = 3250000;
// eEventsECuts[2][5] = 3350000;
//
// eEventsECuts[3][0] = 3850000;
// eEventsECuts[3][1] = 3950000;
// eEventsECuts[3][2] = 3900000;
// eEventsECuts[3][3] = 3900000;
// eEventsECuts[3][4] = 4000000;
// eEventsECuts[3][5] = 4000000;
//
// eEventsECuts[4][0] = 4100000;
// eEventsECuts[4][1] = 4100000;
// eEventsECuts[4][2] = 4000000;
// eEventsECuts[4][3] = 4100000;
// eEventsECuts[4][4] = eMaxEvents;
// eEventsECuts[4][5] = eMaxEvents;
} }
void BeAnalysis::SimEventsECuts() { void BeAnalysis::SimEventsECuts(Long64_t noSimEvents[5][6]) {
// sMaxEvents;
if (!noSimEvents) {
for (Int_t i = 0; i < 5; i++) {
for (Int_t j = 0; j < 6; j++) {
sEventsECuts[i][j] = sMaxEvents;
}
}
Warning("BeAnalysis::SimEventsECuts", "Default numbers of experimental events were set.");
return;
}
for (Int_t i = 0; i < 5; i++) { for (Int_t i = 0; i < 5; i++) {
for (Int_t j = 0; j < 6; j++) { for (Int_t j = 0; j < 6; j++) {
sEventsECuts[i][j] = sMaxEvents; sEventsECuts[i][j] = noSimEvents[i][j];
} }
} }
return;
sEventsECuts[1][1] = 2630000; // for (Int_t i = 0; i < 5; i++) {
sEventsECuts[1][4] = 2660000; // for (Int_t j = 0; j < 6; j++) {
sEventsECuts[1][5] = 2660000; // sEventsECuts[i][j] = sMaxEvents;
// }
// }
//
// sEventsECuts[1][1] = 2630000;
// sEventsECuts[1][4] = 2660000;
// sEventsECuts[1][5] = 2660000;
} }
...@@ -996,6 +1090,100 @@ void BeAnalysis::SetNoSimFiles(Int_t* minFnumber, Int_t* maxFnumber) { ...@@ -996,6 +1090,100 @@ void BeAnalysis::SetNoSimFiles(Int_t* minFnumber, Int_t* maxFnumber) {
return; return;
} }
void BeAnalysis::SetEpsilonTintervals(Bool_t intervals[6]) {
epsilonT = new Bool_t[noIntervals];
if (!intervals) {
for (Int_t i = 0; i < 6; i++) {
epsilonT[i] = 1;
}
Warning("BeAnalysis::SetEpsilonTintervals", "All intervals epsilonT will be drawn");
return;
}
for (Int_t i = 0; i < 6; i++) {
// cout << intervals[i] << endl;
epsilonT[i] = intervals[i];
}
return;
}
void BeAnalysis::SetCosThetaTkIntervals(Bool_t intervals[6]) {
cosThetaT = new Bool_t[noIntervals];
if (!intervals) {
for (Int_t i = 0; i < 6; i++) {
cosThetaT[i] = 1;
}
Warning("BeAnalysis::SetCosThetaTkIntervals", "All intervals epsilonT will be drawn");
return;
}
for (Int_t i = 0; i < 6; i++) {
// cout << intervals[i] << endl;
cosThetaT[i] = intervals[i];
}
return;
}
void BeAnalysis::SetEpsilonYintervals(Bool_t intervals[6]) {
epsilonY = new Bool_t[noIntervals];
if (!intervals) {
for (Int_t i = 0; i < 6; i++) {
epsilonY[i] = 1;
}
Warning("BeAnalysis::SetEpsilonYintervals", "All intervals epsilonT will be drawn");
return;
}
for (Int_t i = 0; i < 6; i++) {
// cout << intervals[i] << endl;
epsilonY[i] = intervals[i];
}
return;
}
void BeAnalysis::SetCosThetaYkIntervals(Bool_t intervals[6]) {
cosThetaY = new Bool_t[noIntervals];
if (!intervals) {
for (Int_t i = 0; i < 6; i++) {
cosThetaY[i] = 1;
}
Warning("BeAnalysis::SetCosThetaYkIntervals", "All intervals epsilonT will be drawn");
return;
}
for (Int_t i = 0; i < 6; i++) {
// cout << intervals[i] << endl;
cosThetaY[i] = intervals[i];
}
return;
}
void BeAnalysis::SetThetaATintervals(Bool_t intervals[6]) {
thetaAT = new Bool_t[noIntervals];
if (!intervals) {
for (Int_t i = 0; i < 6; i++) {
thetaAT[i] = 1;
}
Warning("BeAnalysis::SetThetaATintervals", "All intervals epsilonT will be drawn");
return;
}
for (Int_t i = 0; i < 6; i++) {
// cout << intervals[i] << endl;
thetaAT[i] = intervals[i];
}
return;
}
void BeAnalysis::SaveFigures(TCanvas *canvas, TString variable, Int_t interval) { void BeAnalysis::SaveFigures(TCanvas *canvas, TString variable, Int_t interval) {
if (!kSaveFigures) return; if (!kSaveFigures) return;
......
...@@ -50,11 +50,22 @@ public: ...@@ -50,11 +50,22 @@ public:
void SetNoExpEvents(Long64_t *noExpEvents = 0); void SetNoExpEvents(Long64_t *noExpEvents = 0);
void SetNoSimEvents(Long64_t *noSimEvents = 0); void SetNoSimEvents(Long64_t *noSimEvents = 0);
void SetRatiosGStoEX(); void SetRatiosGStoEX(TString sRatioAl0, TString sRatioNoAl0,
void ExpEventsECuts(); TString sRatioAl180, TString sRatioNoAl180,
void SimEventsECuts(); TString sRatioAl90, TString sRatioNoAl90);
// void ExpEventsECuts(Long64_t **noExpEvents = 0);
// void ExpEventsECuts(Int_t (&noExpEvents)[5][6]);
// void ExpEventsECuts(Int_t (*noExpEvents)[5][6]);
void ExpEventsECuts(Long64_t noExpEvents[5][6] = 0);
void SimEventsECuts(Long64_t noSimEvents[5][6] = 0);
void EpsilonTRange(); void EpsilonTRange();
void SetEpsilonTintervals(Bool_t intervals[6] = 0);
void SetCosThetaTkIntervals(Bool_t intervals[6] = 0);
void SetEpsilonYintervals(Bool_t intervals[6] = 0);
void SetCosThetaYkIntervals(Bool_t intervals[6] = 0);
void SetThetaATintervals(Bool_t intervals[6] = 0);
void Spectra(); void Spectra();
void EpsilonT(); void EpsilonT();
void CosThetaTk(); void CosThetaTk();
...@@ -66,10 +77,11 @@ public: ...@@ -66,10 +77,11 @@ public:
// //
private: //private:
TChain *che; //chain with experimental trees TChain *che; //chain with experimental trees
TChain *chs[6]; //array of chains with simulation trees TChain *chs[6]; //array of chains with simulation trees
TTree *ti[6]; //array of chains with simulation input TTree *ti[6]; //array of chains with simulation input
private:
Int_t lowExpFile; Int_t lowExpFile;
Int_t upExpFile; Int_t upExpFile;
...@@ -125,9 +137,9 @@ private: ...@@ -125,9 +137,9 @@ private:
TCut sRatioNoAl90; TCut sRatioNoAl90;
TCut sRatio[6]; TCut sRatio[6];
Long64_t eEventsECuts[5][6]; Long64_t eEventsECuts[5][6]; //!
Long64_t sEventsECuts[5][6]; Long64_t sEventsECuts[5][6]; //!
Double_t eTRange[5][6]; Double_t eTRange[5][6]; //!
//cuts //cuts
TCut cBe20; TCut cBe20;
......
...@@ -11,7 +11,16 @@ void ES1_7590() ...@@ -11,7 +11,16 @@ void ES1_7590()
ana.SetCMAngularRange(75, 90); ana.SetCMAngularRange(75, 90);
ana.SetChainsToDraw(0, 1, 1, 0, 0, 0); ana.SetChainsToDraw(1, 1, 1, 1, 0, 0);
// ana.SetChainsToDraw();
Bool_t epsilonT[6] = {0,0,1,0,0};
Bool_t cosThetaT[6] = {0,1,0,0,0};
Bool_t epsilonY[6] = {0,0,0,1,0};
Bool_t cosThetaY[6] = {0,1,0,0,0};
Bool_t thetaAT[6] = {0,0,0,0,0};
ana.SetExpChain("../../../be/rootdata/correlations/v5_exp/Be.", 0, 40); ana.SetExpChain("../../../be/rootdata/correlations/v5_exp/Be.", 0, 40);
...@@ -24,9 +33,9 @@ void ES1_7590() ...@@ -24,9 +33,9 @@ void ES1_7590()
cout << sEvents << endl; cout << sEvents << endl;
ana.SetNoSimEvents(sEvents); ana.SetNoSimEvents(sEvents);
const Int_t lowSimFile[6] = {0, 0, 0, 0, 0, 0}; Int_t lowSimFile[6] = {0, 0, 0, 0, 0, 0};
// const Int_t upSimFile[6] = {5, 5, 5, 5, 5, 5}; // Int_t upSimFile[6] = {5, 5, 5, 5, 5, 5};
const Int_t upSimFile[6] = {12, 12, 12, 12, 12, 12}; Int_t upSimFile[6] = {12, 12, 12, 12, 12, 12};
ana.SetNoSimFiles(lowSimFile, upSimFile); ana.SetNoSimFiles(lowSimFile, upSimFile);
ana.SetSimChains("../../../be/rootdata/correlations/v5_7590/Sim_mix_br_al_0_65-100_", ana.SetSimChains("../../../be/rootdata/correlations/v5_7590/Sim_mix_br_al_0_65-100_",
"../../../be/rootdata/correlations/v5_7590/Sim_mix_br_noal_0_65-100_", "../../../be/rootdata/correlations/v5_7590/Sim_mix_br_noal_0_65-100_",
...@@ -49,70 +58,76 @@ void ES1_7590() ...@@ -49,70 +58,76 @@ void ES1_7590()
ana.Spectra(); ana.Spectra();
ana.EpsilonT();
sw.Print(); ana.SetRatiosGStoEX("sRatio>0.075 && sRatio<0.125",
sw.Continue(); "sRatio>0.076 && sRatio<0.126",
"sRatio>0.070 && sRatio<0.120",
"sRatio>0.070 && sRatio<0.120",
"sRatio>0.075 && sRatio<0.125",
"sRatio>0.076 && sRatio<0.126");
ana.SetCuts();
Long64_t eEventsECuts[5][6] = {eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents,
eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents,
eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents,
eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents,
eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents};
// ana.ExpEventsECuts();
ana.ExpEventsECuts(eEventsECuts);
const Long64_t sMaxEvents = 3000000;
Long64_t sEventsECuts[5][6] = {/*sMaxEvents, sMaxEvents, sMaxEvents, sMaxEvents, sMaxEvents, sMaxEvents,*/
2020000, 2040000, 2130000, 2080000, 2060000, 2080000,
2000000, 2020000, 2000000, 2010000, 1990000, 1970000,
2320000, 2300000, 2340000, 2310000, 2300000, 2290000,
2060000, 2070000, 2110000, 2110000, 2070000, 2060000,
2050000, 2050000, 2110000, 2110000, 2050000, 2050000};
ana.SimEventsECuts(sEventsECuts);
TCut sRatioAl0 = "sRatio>0.075 && sRatio<0.125";
TCut sRatioNoAl0 = "sRatio>0.076 && sRatio<0.126";
TCut sRatioAl180 = "sRatio>0.070 && sRatio<0.120";
// TCut sRatioAl180 = "sRatio>0.050 && sRatio<0.100";
TCut sRatioNoAl180 = "sRatio>0.070 && sRatio<0.120";
// TCut sRatioNoAl180 = "sRatio>0.010 && sRatio<0.150";
TCut sRatioAl90 = "sRatio>0.075 && sRatio<0.125";
TCut sRatioNoAl90 = "sRatio>0.076 && sRatio<0.126";
TCut sRatio[6] = {sRatioAl0, sRatioNoAl0, sRatioAl180, sRatioNoAl180, sRatioAl90, sRatioNoAl90};
return;
ana.SetRangeProportion(1.1, 1);
// const Double_t eTRange[5][6] = {280, 280, 280, 280, 280, 280,
// 350, 350, 350, 350, 350, 350,
// 350, 350, 350, 350, 350, 350,
// 630, 630, 630, 630, 630, 630,
// 700, 700, 700, 700, 700, 700};
ana.SetEpsilonTintervals(epsilonT);
// ana.SetEpsilonTintervals();
ana.EpsilonT();
// const Int_t kMinAngle = 75; // ana.SetCosThetaTkIntervals(cosThetaT);
// const Int_t kMaxAngle = 90; // ana.CosThetaTk();
// //
// const Int_t lowfile = 0; // ana.SetEpsilonYintervals(epsilonY);
// const Int_t upfile = 40; // ana.EpsilonY();
//
// const Int_t lowSimFile[6] = {0, 0, 0, 0, 0, 0}; // ana.SetCosThetaYkIntervals(cosThetaY);
//// const Int_t upSimFile[6] = {5, 5, 5, 5, 5, 5}; // ana.CosThetaYk();
// const Int_t upSimFile[6] = {12, 12, 12, 12, 12, 12};
const Bool_t shapeFit = 0;
// TCut cAngles = "fBeThetaCM1>75*TMath::DegToRad() && fBeThetaCM1<90*TMath::DegToRad()";
// TCut crAngles = "f6BeThetaCM1>75*TMath::DegToRad() && f6BeThetaCM1<90*TMath::DegToRad()";
//simulations
//aligned, 0 degrees
//// TString chainAl0name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_al_0_65-100_";
// TString inputTreeAl0name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_al_0_65-100_000.root";
// //isotropic, 0 degrees
//// TString chainNoAl0name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_noal_0_65-100_";
// TString inputTreeNoAl0name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_noal_0_65-100_000.root";
// //aligned, 180 degrees
//// TString chainAl180name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_al_180_65-100_";
// TString inputTreeAl180name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_al_180_65-100_000.root";
// //isotropic, 180 degrees
//// TString chainNoAl180name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_noal_180_65-100_";
// TString inputTreeNoAl180name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_noal_180_65-100_000.root";
// //isotropic, 90 degrees
//// TString chainAl90name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_al_90_65-100_";
// TString inputTreeAl90name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_al_90_65-100_000.root";
// //isotropic, 90 degrees
//// TString chainNoAl90name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_noal_90_65-100_";
// TString inputTreeNoAl90name = "/data2/be/rootdata/correlations/v5_7590/Sim_mix_br_noal_90_65-100_000.root";
//open tree with MC simulations
// gROOT->ProcessLine(".x corr_templates/sfAngInt_opensimtree.cxx");
// TChain *che = BeWork::OpenChain("/data2/be/rootdata/correlations/v5_exp/Be.",
// lowfile, upfile, "beonly"); //original file
// Info("statesRatioFitting.cxx", "%d events in chain \"%s\" containing experimental data",
// che->GetEntries(), che->GetName());
// gROOT->ProcessLine(".x corr_templates/sfAngInt_cuts.cxx");
//auxiliary strings
TString drawCommand;
TString hsName;
TString heName;
TString hiName;
ana.SetThetaATintervals(thetaAT);
// ana.SetThetaATintervals();
ana.ThetaAT();
sw.Print(); sw.Print();
sw.Continue(); sw.Continue();
Info("ES1_7590.cxx", "Finished.");
return;
const Bool_t savePictures = 0; const Bool_t savePictures = 0;
TString ppath = "pictures/correlations/v5_7590/"; TString ppath = "pictures/correlations/v5_7590/";
TString configuration = "v5_7590"; TString configuration = "v5_7590";
...@@ -123,91 +138,13 @@ void ES1_7590() ...@@ -123,91 +138,13 @@ void ES1_7590()
// TString pictFormat = ".jpg"; // TString pictFormat = ".jpg";
const Bool_t kVerbose = 1; const Bool_t kVerbose = 1;
const Bool_t kAutoRange = 1;
// const Float_t kRangeProportion = 1.2;
const Float_t kRangeProportion = 1.1;
// const Float_t kRangeProportionIn = 1.1;
const Float_t kRangeProportionIn = 2.0; const Float_t kRangeProportionIn = 2.0;
const Bool_t kChains[6] = {0,0,0,1,0,1};
// const Bool_t kChains[6] = {1,1,1,1,1,1};
const Bool_t spectra = 0;
const Int_t nointervals = 5;
// const Bool_t cosThetaT[nointervals] = {1,1,1,1,1};
const Bool_t cosThetaT[nointervals] = {0,0,0,0,0};
const Bool_t epsilonT[nointervals] = {0,0,1,0,0};
// const Bool_t epsilonT[nointervals] = {1,1,1,1,1};
const Bool_t epsilonY[nointervals] = {0,0,0,0,0};
// const Bool_t epsilonY[nointervals] = {1,1,1,1,1};
const Bool_t cosThetaY[nointervals] = {0,0,0,0,0};
// const Bool_t cosThetaY[nointervals] = {1,1,1,1,1};
//quasibinary kinematics
const Bool_t thetaAT[nointervals] = {0,0,0,0,0};
// const Bool_t thetaAT[nointervals] = {1,1,1,1,1};
const Bool_t thetaP1T[nointervals] = {0,0,0,0,0};
// const Bool_t thetaP1T[nointervals] = {1,1,1,1,1};
const Bool_t thetaP2Y[nointervals] = {0,0,0,0,0};
//0-2 MeV, 2-3.1 MeV
TCut sRatioAl0 = "sRatio>0.075 && sRatio<0.125";
TCut sRatioNoAl0 = "sRatio>0.076 && sRatio<0.126";
TCut sRatioAl180 = "sRatio>0.070 && sRatio<0.120";
// TCut sRatioAl180 = "sRatio>0.050 && sRatio<0.100";
TCut sRatioNoAl180 = "sRatio>0.070 && sRatio<0.120";
// TCut sRatioNoAl180 = "sRatio>0.010 && sRatio<0.150";
TCut sRatioAl90 = "sRatio>0.075 && sRatio<0.125";
TCut sRatioNoAl90 = "sRatio>0.076 && sRatio<0.126";
TCut sRatio[6] = {sRatioAl0, sRatioNoAl0, sRatioAl180, sRatioNoAl180, sRatioAl90, sRatioNoAl90};
//integral fit
// const Long64_t eMaxEvents = 5000000;
// Long64_t eEventsAl0 = eMaxEvents;
// Long64_t eEventsNoAl0 = eMaxEvents;
// Long64_t eEventsAl180 = eMaxEvents;
// Long64_t eEventsNoAl180 = eMaxEvents;
// Long64_t eEventsAl90 = eMaxEvents;
// Long64_t eEventsNoAl90 = eMaxEvents;
Long64_t eEventsECuts[5][6] = {eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents,
eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents,
eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents,
eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents,
eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents, eMaxEvents};
// const Long64_t eEvents[6] = {eEventsAl0, eEventsNoAl0, eEventsAl180, eEventsNoAl180, eEventsAl90, eEventsNoAl90};
// const TChain *chs[6] = {chsAl0, chsNoAl0, chsAl180, chsNoAl180, chsAl90, chsNoAl90};
// const TTree *ti[6] = {tiAl0, tiNoAl0, tiAl180, tiNoAl180, tiAl90, tiNoAl90};
// const Long64_t sMaxEvents = 3000000;
// Long64_t sEventsAl0 = 2050000;
// Long64_t sEventsNoAl0 = 2050000;
// Long64_t sEventsAl180 = 2050000;
// Long64_t sEventsNoAl180 = 2050000;
// Long64_t sEventsAl90 = 1900000;
// Long64_t sEventsNoAl90 = 1950000;
// const Long64_t sEvents[6] = {sEventsAl0, sEventsNoAl0, sEventsAl180, sEventsNoAl180, sEventsAl0, sEventsNoAl0};
const Long64_t sMaxEvents = 3000000;
Long64_t sEventsECuts[5][6] = {/*sMaxEvents, sMaxEvents, sMaxEvents, sMaxEvents, sMaxEvents, sMaxEvents,*/
2020000, 2040000, 2130000, 2080000, 2060000, 2080000,
2000000, 2020000, 2000000, 2010000, 1990000, 1970000,
2320000, 2300000, 2340000, 2310000, 2300000, 2290000,
2060000, 2070000, 2110000, 2110000, 2070000, 2060000,
2050000, 2050000, 2110000, 2110000, 2050000, 2050000};
TString canvasTitle;
TString canvasName;
//spectra //spectra
const Double_t sRange[6] = {2000, 2000, 2000, 2000, 2000, 2000}; // const Double_t sRange[6] = {2000, 2000, 2000, 2000, 2000, 2000};
if (spectra) { // if (spectra) {
gROOT->ProcessLine(".x corr_templates/sfAngInt_spectra_v5.cxx"); // gROOT->ProcessLine(".x corr_templates/sfAngInt_spectra_v5.cxx");
} // }
// "T" system // "T" system
const Double_t eTRange[5][6] = {280, 280, 280, 280, 280, 280, const Double_t eTRange[5][6] = {280, 280, 280, 280, 280, 280,
...@@ -217,54 +154,6 @@ void ES1_7590() ...@@ -217,54 +154,6 @@ void ES1_7590()
700, 700, 700, 700, 700, 700}; 700, 700, 700, 700, 700, 700};
gROOT->ProcessLine(".x corr_templates/sfAngInt_epsilonT.cxx"); gROOT->ProcessLine(".x corr_templates/sfAngInt_epsilonT.cxx");
const Double_t coskTRange[5][6] = {300, 300, 300, 300, 300, 300,
350, 350, 350, 350, 350, 350,
350, 350, 350, 350, 350, 350,
900, 900, 900, 900, 900, 900,
1100, 1100, 1100, 1100, 1100, 1100};
gROOT->ProcessLine(".x corr_templates/sfAngInt_cosThetaTk.cxx");
// "Y" system
const Double_t eYRange[5][6] = {350, 350, 350, 350, 350, 350,
400, 400, 400, 400, 400, 400,
450, 450, 450, 450, 450, 450,
1000, 1000, 1000, 1000, 1000, 1000,
1300, 1300, 1300, 1300, 1300, 1300};
gROOT->ProcessLine(".x corr_templates/sfAngInt_epsilonY.cxx");
const Double_t coskYRange[5][6] = {230, 230, 230, 230, 230, 230,
350, 350, 350, 350, 350, 350,
350, 350, 350, 350, 350, 350,
600, 600, 600, 600, 600, 600,
650, 650, 650, 650, 650, 650};
gROOT->ProcessLine(".x corr_templates/sfAngInt_cosThetaYk.cxx");
//quasibinary kinematics: diproton
const Double_t tP1Range[5][6] = {80, 80, 80, 80, 80, 80,
120, 120, 120, 120, 120, 120,
160, 120, 160, 120, 160, 120,
250, 200, 250, 200, 250, 200,
240, 240, 240, 240, 240, 240};
gROOT->ProcessLine(".x corr_templates/sfAngInt_thetaP1T.cxx");
const Double_t tARange[5][6] = {80, 80, 80, 80, 80, 80,
130, 130, 130, 130, 130, 130,
200, 120, 200, 120, 200, 120,
300, 200, 300, 200, 300, 200,
270, 270, 270, 270, 270, 270};
gROOT->ProcessLine(".x corr_templates/sfAngInt_thetaAT.cxx");
//quasibinary kinematics: 5Li
const Double_t tP2YRange[5][6] = {50, 50, 50, 50, 50, 50,
75, 75, 75, 75, 75, 75,
110, 70, 110, 70, 110, 70,
300, 300, 300, 300, 300, 300,
200, 200, 200, 200, 200, 200};
gROOT->ProcessLine(".x corr_templates/sfAngInt_thetaP2Y.cxx");
Info("correlations_v5_7590.cxx", "Finished.");
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment