Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
Be_libraries
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vratislav Chudoba
Be_libraries
Commits
2f96c67e
Commit
2f96c67e
authored
Jul 21, 2017
by
Vratislav Chudoba
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Parametrization of Spectra() solved.
parent
a389fc81
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
671 additions
and
388 deletions
+671
-388
BeAnalysis.cpp
Be/BeAnalysis.cpp
+362
-378
BeAnalysis.h
Be/BeAnalysis.h
+39
-10
ES1_7590.cxx
macros/BeCorrPRC/ES1_7590.cxx
+270
-0
No files found.
Be/BeAnalysis.cpp
View file @
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
),
spectra
(
1
)
{
BeAnalysis
::
BeAnalysis
()
:
che
(
0
),
lowExpFile
(
0
),
upExpFile
(
0
),
spectra
(
1
)
{
// 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
++
)
{
...
@@ -54,14 +54,6 @@ BeAnalysis::BeAnalysis() : che(0), spectra(1) {
...
@@ -54,14 +54,6 @@ BeAnalysis::BeAnalysis() : che(0), spectra(1) {
cosThetaY
[
2
]
=
1
;
cosThetaY
[
2
]
=
1
;
cosThetaY
[
4
]
=
1
;
cosThetaY
[
4
]
=
1
;
// thetaP1T = new Bool_t[noIntervals];
// for (Int_t i = 0; i < noIntervals; i++) {
// thetaP1T[i] = 0;
// }
// thetaP1T[0] = 1;
// thetaP1T[2] = 1;
// thetaP1T[4] = 1;
thetaAT
=
new
Bool_t
[
noIntervals
];
thetaAT
=
new
Bool_t
[
noIntervals
];
for
(
Int_t
i
=
0
;
i
<
noIntervals
;
i
++
)
{
for
(
Int_t
i
=
0
;
i
<
noIntervals
;
i
++
)
{
thetaAT
[
i
]
=
0
;
thetaAT
[
i
]
=
0
;
...
@@ -73,6 +65,10 @@ BeAnalysis::BeAnalysis() : che(0), spectra(1) {
...
@@ -73,6 +65,10 @@ BeAnalysis::BeAnalysis() : che(0), spectra(1) {
kVerbose
=
1
;
kVerbose
=
1
;
kRangeProportionIn
=
2.0
;
kRangeProportionIn
=
2.0
;
kSaveFigures
=
0
;
figurePath
=
""
;
figureFormat
=
""
;
}
}
BeAnalysis
::~
BeAnalysis
()
{
BeAnalysis
::~
BeAnalysis
()
{
...
@@ -81,80 +77,67 @@ BeAnalysis::~BeAnalysis() {
...
@@ -81,80 +77,67 @@ BeAnalysis::~BeAnalysis() {
void
BeAnalysis
::
OpenSimChains
()
{
void
BeAnalysis
::
OpenSimChains
()
{
const
Int_t
lowSimFile
[
6
]
=
{
0
,
0
,
0
,
0
,
0
,
0
};
// const Int_t lowSimFile[6] = {0, 0, 0, 0, 0, 0};
const
Int_t
upSimFile
[
6
]
=
{
14
,
14
,
14
,
14
,
14
,
14
};
// const Int_t upSimFile[6] = {14, 14, 14, 14, 14, 14};
//
TString
chainAl0name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_0_50-85_"
;
// TString chainAl0name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_0_50-85_";
TString
inputTreeAl0name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_0_50-85_000.root"
;
// TString inputTreeAl0name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_0_50-85_000.root";
//isotropic, 0 degrees
// //isotropic, 0 degrees
TString
chainNoAl0name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_0_50-85_"
;
// TString chainNoAl0name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_0_50-85_";
TString
inputTreeNoAl0name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_0_50-85_000.root"
;
// TString inputTreeNoAl0name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_0_50-85_000.root";
//aligned, 180 degrees
// //aligned, 180 degrees
TString
chainAl180name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_180_50-85_"
;
// TString chainAl180name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_180_50-85_";
TString
inputTreeAl180name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_180_50-85_000.root"
;
// TString inputTreeAl180name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_180_50-85_000.root";
//isotropic, 180 degrees
// //isotropic, 180 degrees
TString
chainNoAl180name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_180_50-85_"
;
// TString chainNoAl180name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_180_50-85_";
TString
inputTreeNoAl180name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_180_50-85_000.root"
;
// TString inputTreeNoAl180name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_180_50-85_000.root";
//isotropic, 90 degrees
// //isotropic, 90 degrees
TString
chainAl90name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_90_50-85_"
;
// TString chainAl90name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_90_50-85_";
TString
inputTreeAl90name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_90_50-85_000.root"
;
// TString inputTreeAl90name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_al_90_50-85_000.root";
//isotropic, 90 degrees
// //isotropic, 90 degrees
TString
chainNoAl90name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_90_50-85_"
;
// TString chainNoAl90name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_90_50-85_";
TString
inputTreeNoAl90name
=
"../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_90_50-85_000.root"
;
// TString inputTreeNoAl90name = "../../../be/rootdata/correlations/v5_6075/Sim_mix_br_noal_90_50-85_000.root";
// TChain *chsAl0 = BeWork::OpenChain(chainAl0name.Data(),
chs
[
0
]
=
BeWork
::
OpenChain
(
chainAl0name
.
Data
(),
for
(
Int_t
i
=
0
;
i
<
6
;
i
++
)
{
lowSimFile
[
0
],
upSimFile
[
0
],
"simbe"
,
4
,
"sbeam"
);
chs
[
i
]
=
BeWork
::
OpenChain
(
simFiles
[
i
].
Data
(),
Info
(
"statesRatioFitting.cxx"
,
"%lld events in chain
\"
%s
\"
containing simulated data"
,
chs
[
0
]
->
GetEntries
(),
chs
[
0
]
->
GetName
());
lowSimFile
[
i
],
upSimFile
[
i
],
"simbe"
,
4
,
"sbeam"
);
ti
[
0
]
=
BeWork
::
OpenTree
(
inputTreeAl0name
.
Data
(),
"sbeam"
,
2
);
Info
(
"statesRatioFitting.cxx"
,
"%lld events in chain
\"
%s
\"
containing simulated data"
,
chs
[
i
]
->
GetEntries
(),
chs
[
i
]
->
GetName
());
// tiAl0->SetLineWidth(2);
ti
[
i
]
=
BeWork
::
OpenTree
(
inputFiles
[
i
].
Data
(),
"sbeam"
,
2
);
}
// TChain *chsNoAl0 = BeWork::OpenChain(chainNoAl0name.Data(),
chs
[
1
]
=
BeWork
::
OpenChain
(
chainNoAl0name
.
Data
(),
// chs[1] = BeWork::OpenChain(chainNoAl0name.Data(),
lowSimFile
[
1
],
upSimFile
[
1
],
"simbe"
,
4
,
"sbeam"
);
// lowSimFile[1], upSimFile[1], "simbe", 4, "sbeam");
Info
(
"statesRatioFitting.cxx"
,
"%lld events in chain
\"
%s
\"
containing simulated data"
,
chs
[
1
]
->
GetEntries
(),
chs
[
1
]
->
GetName
());
// Info("statesRatioFitting.cxx", "%lld events in chain \"%s\" containing simulated data", chs[1]->GetEntries(), chs[1]->GetName());
ti
[
1
]
=
BeWork
::
OpenTree
(
inputTreeNoAl0name
.
Data
(),
"sbeam"
,
2
);
// ti[1] = BeWork::OpenTree(inputTreeNoAl0name.Data(), "sbeam", 2);
// tiNoAl0->SetLineWidth(2);
//
//
// chs[2] = BeWork::OpenChain(chainAl180name.Data(),
// TChain *chsAl180 = BeWork::OpenChain(chainAl180name.Data(),
// lowSimFile[2], upSimFile[2], "simbe", 4, "sbeam");
chs
[
2
]
=
BeWork
::
OpenChain
(
chainAl180name
.
Data
(),
// Info("statesRatioFitting.cxx", "%lld events in chain \"%s\" containing simulated data", chs[2]->GetEntries(), chs[2]->GetName());
lowSimFile
[
2
],
upSimFile
[
2
],
"simbe"
,
4
,
"sbeam"
);
// ti[2] = BeWork::OpenTree(inputTreeAl180name.Data(), "sbeam", 2);
Info
(
"statesRatioFitting.cxx"
,
"%lld events in chain
\"
%s
\"
containing simulated data"
,
chs
[
2
]
->
GetEntries
(),
chs
[
2
]
->
GetName
());
//
ti
[
2
]
=
BeWork
::
OpenTree
(
inputTreeAl180name
.
Data
(),
"sbeam"
,
2
);
// chs[3] = BeWork::OpenChain(chainNoAl180name.Data(),
// tiAl180->SetLineWidth(2);
// lowSimFile[3], upSimFile[3], "simbe", 4, "sbeam");
// Info("statesRatioFitting.cxx", "%lld events in chain \"%s\" containing simulated data", chs[3]->GetEntries(), chs[3]->GetName());
// TChain *chsNoAl180 = BeWork::OpenChain(chainNoAl180name.Data(),
// ti[3] = BeWork::OpenTree(inputTreeNoAl180name.Data(), "sbeam", 2);
chs
[
3
]
=
BeWork
::
OpenChain
(
chainNoAl180name
.
Data
(),
//
lowSimFile
[
3
],
upSimFile
[
3
],
"simbe"
,
4
,
"sbeam"
);
// chs[4] = BeWork::OpenChain(chainAl90name.Data(),
Info
(
"statesRatioFitting.cxx"
,
"%lld events in chain
\"
%s
\"
containing simulated data"
,
chs
[
3
]
->
GetEntries
(),
chs
[
3
]
->
GetName
());
// lowSimFile[4], upSimFile[4], "simbe", 4, "sbeam");
ti
[
3
]
=
BeWork
::
OpenTree
(
inputTreeNoAl180name
.
Data
(),
"sbeam"
,
2
);
// Info("statesRatioFitting.cxx", "%lld events in chain \"%s\" containing simulated data", chs[4]->GetEntries(), chs[4]->GetName());
// tiNoAl180->SetLineWidth(2);
// ti[4] = BeWork::OpenTree(inputTreeAl90name.Data(), "sbeam", 2);
//
// TChain *chsAl90 = BeWork::OpenChain(chainAl90name.Data(),
// chs[5] = BeWork::OpenChain(chainNoAl90name.Data(),
chs
[
4
]
=
BeWork
::
OpenChain
(
chainAl90name
.
Data
(),
// lowSimFile[5], upSimFile[5], "simbe", 4, "sbeam");
lowSimFile
[
4
],
upSimFile
[
4
],
"simbe"
,
4
,
"sbeam"
);
// Info("statesRatioFitting.cxx", "%lld events in chain \"%s\" containing simulated data", chs[5]->GetEntries(), chs[5]->GetName());
Info
(
"statesRatioFitting.cxx"
,
"%lld events in chain
\"
%s
\"
containing simulated data"
,
chs
[
4
]
->
GetEntries
(),
chs
[
4
]
->
GetName
());
// ti[5] = BeWork::OpenTree(inputTreeNoAl90name.Data(), "sbeam", 2);
ti
[
4
]
=
BeWork
::
OpenTree
(
inputTreeAl90name
.
Data
(),
"sbeam"
,
2
);
// tiAl90->SetLineWidth(2);
// TChain *chsNoAl90 = BeWork::OpenChain(chainNoAl90name.Data(),
chs
[
5
]
=
BeWork
::
OpenChain
(
chainNoAl90name
.
Data
(),
lowSimFile
[
5
],
upSimFile
[
5
],
"simbe"
,
4
,
"sbeam"
);
Info
(
"statesRatioFitting.cxx"
,
"%lld events in chain
\"
%s
\"
containing simulated data"
,
chs
[
5
]
->
GetEntries
(),
chs
[
5
]
->
GetName
());
ti
[
5
]
=
BeWork
::
OpenTree
(
inputTreeNoAl90name
.
Data
(),
"sbeam"
,
2
);
// tiNoAl90->SetLineWidth(2);
}
}
void
BeAnalysis
::
OpenExpChain
()
{
void
BeAnalysis
::
OpenExpChain
()
{
Int_t
lowExpFile
=
0
;
Int_t
upExpFile
=
40
;
//experimental chain
//experimental chain
che
=
BeWork
::
OpenChain
(
"../../../be/rootdata/correlations/Be."
,
che
=
BeWork
::
OpenChain
(
expFiles
.
Data
(),
lowExpFile
,
upExpFile
,
"beonly"
);
//original file
lowExpFile
,
upExpFile
,
"beonly"
);
//original file
Info
(
"BeAnalysis::OpenExpChain"
,
"%lld events in chain
\"
%s
\"
containing experimental data"
,
Info
(
"statesRatioFitting.cxx"
,
"%lld events in chain
\"
%s
\"
containing experimental data"
,
che
->
GetEntries
(),
che
->
GetName
());
che
->
GetEntries
(),
che
->
GetName
());
}
}
...
@@ -239,6 +222,7 @@ void BeAnalysis::SetCuts() {
...
@@ -239,6 +222,7 @@ void BeAnalysis::SetCuts() {
void
BeAnalysis
::
SetCMAngularRange
(
Int_t
minAngle
,
Int_t
maxAngle
)
{
void
BeAnalysis
::
SetCMAngularRange
(
Int_t
minAngle
,
Int_t
maxAngle
)
{
kMinAngle
=
minAngle
;
kMinAngle
=
minAngle
;
kMaxAngle
=
maxAngle
;
kMaxAngle
=
maxAngle
;
SetCMAngularCuts
();
}
}
void
BeAnalysis
::
SetChainsToDraw
(
Bool_t
ch0
,
Bool_t
ch1
,
Bool_t
ch2
,
Bool_t
ch3
,
Bool_t
ch4
,
void
BeAnalysis
::
SetChainsToDraw
(
Bool_t
ch0
,
Bool_t
ch1
,
Bool_t
ch2
,
Bool_t
ch3
,
Bool_t
ch4
,
...
@@ -258,43 +242,58 @@ void BeAnalysis::SetRangeProportion(Float_t rangeProportion, Bool_t autoRange) {
...
@@ -258,43 +242,58 @@ void BeAnalysis::SetRangeProportion(Float_t rangeProportion, Bool_t autoRange) {
kAutoRange
=
autoRange
;
kAutoRange
=
autoRange
;
}
}
void
BeAnalysis
::
SetNoExpEvents
()
{
void
BeAnalysis
::
SetNoExpEvents
(
Long64_t
*
noExpEvents
)
{
eMaxEvents
=
5000000
;
eMaxEvents
=
5000000
;
eEventsAl0
=
eMaxEvents
;
if
(
!
noExpEvents
)
{
eEventsNoAl0
=
eMaxEvents
;
for
(
Int_t
i
=
0
;
i
<
6
;
i
++
)
{
eEventsAl180
=
eMaxEvents
;
eEvents
[
i
]
=
eMaxEvents
;
eEventsNoAl180
=
eMaxEvents
;
}
eEventsAl90
=
eMaxEvents
;
Warning
(
"BeAnalysis::SetNoExpEvents"
,
"Default numbers of experimental events were set."
);
eEventsNoAl90
=
eMaxEvents
;
return
;
}
eEvents
[
0
]
=
eEventsAl0
;
for
(
Int_t
i
=
0
;
i
<
6
;
i
++
)
{
eEvents
[
1
]
=
eEventsNoAl0
;
eEvents
[
i
]
=
noExpEvents
[
i
];
eEvents
[
2
]
=
eEventsAl180
;
// cout << eEvents[i] << endl;
eEvents
[
3
]
=
eEventsNoAl180
;
}
eEvents
[
4
]
=
eEventsAl90
;
return
;
eEvents
[
5
]
=
eEventsNoAl90
;
}
}
void
BeAnalysis
::
SetNoSimEvents
()
{
void
BeAnalysis
::
SetNoSimEvents
(
Long64_t
*
noSimEvents
)
{
sMaxEvents
=
3000000
;
sMaxEvents
=
3000000
;
sEventsAl0
=
sMaxEvents
;
if
(
!
noSimEvents
)
{
sEventsNoAl0
=
2700000
;
for
(
Int_t
i
=
0
;
i
<
6
;
i
++
)
{
sEventsAl180
=
sMaxEvents
;
sEvents
[
i
]
=
sMaxEvents
;
sEventsNoAl180
=
2700000
;
cout
<<
sEvents
[
i
]
<<
endl
;
sEventsAl90
=
2690000
;
}
sEventsNoAl90
=
2710000
;
Warning
(
"BeAnalysis::SetNoSimEvents"
,
"Default numbers of simulated events were set."
);
return
;
}
sEvents
[
0
]
=
sEventsAl0
;
for
(
Int_t
i
=
0
;
i
<
6
;
i
++
)
{
sEvents
[
1
]
=
sEventsNoAl0
;
sEvents
[
i
]
=
noSimEvents
[
i
];
sEvents
[
2
]
=
sEventsAl180
;
cout
<<
sEvents
[
i
]
<<
endl
;
sEvents
[
3
]
=
sEventsNoAl180
;
}
sEvents
[
4
]
=
sEventsAl90
;
return
;
sEvents
[
5
]
=
sEventsNoAl90
;
// sEventsAl0 = sMaxEvents;
// sEventsNoAl0 = 2700000;
// sEventsAl180 = sMaxEvents;
// sEventsNoAl180 = 2700000;
// sEventsAl90 = 2690000;
// sEventsNoAl90 = 2710000;
//
// sEvents[0] = sEventsAl0;
// sEvents[1] = sEventsNoAl0;
// sEvents[2] = sEventsAl180;
// sEvents[3] = sEventsNoAl180;
// sEvents[4] = sEventsAl90;
// sEvents[5] = sEventsNoAl90;
}
}
...
@@ -318,8 +317,14 @@ void BeAnalysis::SetRatiosGStoEX() {
...
@@ -318,8 +317,14 @@ void BeAnalysis::SetRatiosGStoEX() {
}
}
void
BeAnalysis
::
SetCMAngularCuts
()
{
void
BeAnalysis
::
SetCMAngularCuts
()
{
cAngles
=
"fBeThetaCM1>60*TMath::DegToRad() && fBeThetaCM1<75*TMath::DegToRad()"
;
crAngles
=
"f6BeThetaCM1>60*TMath::DegToRad() && f6BeThetaCM1<75*TMath::DegToRad()"
;
TString
sAngles
,
srAngles
;
sAngles
.
Form
(
"fBeThetaCM1>%d*TMath::DegToRad() && fBeThetaCM1<%d*TMath::DegToRad()"
,
kMinAngle
,
kMaxAngle
);
srAngles
.
Form
(
"f6BeThetaCM1>%d*TMath::DegToRad() && f6BeThetaCM1<%d*TMath::DegToRad()"
,
kMinAngle
,
kMaxAngle
);
cAngles
=
sAngles
.
Data
();
crAngles
=
srAngles
.
Data
();
}
}
void
BeAnalysis
::
Spectra
()
{
void
BeAnalysis
::
Spectra
()
{
...
@@ -328,10 +333,19 @@ void BeAnalysis::Spectra() {
...
@@ -328,10 +333,19 @@ void BeAnalysis::Spectra() {
return
;
return
;
}
}
if
(
!
che
)
return
;
if
(
!
che
)
{
Error
(
"BeAnalysis::Spectra"
,
"Chain with experimental data was not initialized."
);
return
;
}
for
(
Int_t
i
=
0
;
i
<
6
;
i
++
)
{
if
(
!
chs
[
i
])
{
Error
(
"BeAnalysis::Spectra"
,
"Chain No. %d with simulated data was not initialized."
,
i
);
return
;
}
}
TCanvas
*
cSpectra
=
new
TCanvas
();
TCanvas
*
cSpectra
=
new
TCanvas
();
// TString canvasTitle;
TH1F
*
hsSpectra
[
6
];
TH1F
*
hsSpectra
[
6
];
TH1F
*
heSpectra
[
6
];
TH1F
*
heSpectra
[
6
];
...
@@ -357,7 +371,13 @@ void BeAnalysis::Spectra() {
...
@@ -357,7 +371,13 @@ void BeAnalysis::Spectra() {
heName
.
Form
(
"heSpectra%d"
,
j
);
heName
.
Form
(
"heSpectra%d"
,
j
);
drawCommand
.
Form
(
"fBeIM>>%s(200,0,10)"
,
heName
.
Data
());
drawCommand
.
Form
(
"fBeIM>>%s(200,0,10)"
,
heName
.
Data
());
// che->Draw(drawCommand.Data(), cQ && cBeWork && cAngles, "same", eEvents[j]);
// che->Draw(drawCommand.Data(), cQ && cBeWork && cAngles, "same", eEvents[j]);
che
->
Draw
(
drawCommand
.
Data
(),
cProtons
&&
cQ
&&
cBeWork
&&
cAngles
,
""
,
eEvents
[
j
]);
che
->
Draw
(
drawCommand
.
Data
(),
cProtons
&&
cQ
&&
cBeWork
&&
cAngles
,
""
,
eEvents
[
j
]);
//// cout << drawCommand << "\t" << eEvents[j] << endl;
//// che->Draw(drawCommand.Data(), cProtons && cQ && cBeWork && cAngles, "", eEvents[j]);
// che->Draw("fBeIM", "", "");
// continue;
heSpectra
[
j
]
=
(
TH1F
*
)
gPad
->
FindObject
(
heName
.
Data
());
heSpectra
[
j
]
=
(
TH1F
*
)
gPad
->
FindObject
(
heName
.
Data
());
// heSpectra[j]->Draw("");
// heSpectra[j]->Draw("");
...
@@ -378,7 +398,6 @@ void BeAnalysis::Spectra() {
...
@@ -378,7 +398,6 @@ void BeAnalysis::Spectra() {
if
(
kAutoRange
)
{
if
(
kAutoRange
)
{
Float_t
leftMaxMC
=
kRangeProportion
*
hsSpectra
[
j
]
->
GetMaximum
();
Float_t
leftMaxMC
=
kRangeProportion
*
hsSpectra
[
j
]
->
GetMaximum
();
Float_t
leftMaxE
=
kRangeProportion
*
heSpectra
[
j
]
->
GetMaximum
();
Float_t
leftMaxE
=
kRangeProportion
*
heSpectra
[
j
]
->
GetMaximum
();
// hsSpectra[j]->GetYaxis()->SetRangeUser(0, leftMaxE);
leftMaxMC
>
leftMaxE
?
heSpectra
[
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxMC
)
:
heSpectra
[
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxE
);
leftMaxMC
>
leftMaxE
?
heSpectra
[
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxMC
)
:
heSpectra
[
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxE
);
}
}
...
@@ -386,35 +405,16 @@ void BeAnalysis::Spectra() {
...
@@ -386,35 +405,16 @@ void BeAnalysis::Spectra() {
hSdiff
[
j
]
=
new
TH1F
(
*
heSpectra
[
j
]);
hSdiff
[
j
]
=
new
TH1F
(
*
heSpectra
[
j
]);
hSdiff
[
j
]
->
Add
(
hsSpectra
[
j
],
-
1
);
hSdiff
[
j
]
->
Add
(
hsSpectra
[
j
],
-
1
);
hSdiff
[
j
]
->
SetLineColor
(
kRed
);
hSdiff
[
j
]
->
SetLineColor
(
kRed
);
// hSdiff[j]->Draw("same");
cSpectra
->
Update
();
cSpectra
->
Update
();
cout
<<
endl
;
cout
<<
endl
;
Info
(
"statesRatioFitting"
,
"MC %d"
,
j
+
1
);
Info
(
"statesRatioFitting"
,
"MC %d"
,
j
+
1
);
// Info("statesRatioFitting", "ground state: %3.1f (exp)/ %3.1f (sim) = %3.3f", heSpectra[j]->Integral(0,20), hsSpectra[j]->Integral(0,20), heSpectra[j]->Integral(0,20)/hsSpectra[j]->Integral(0,20) );
// Info("statesRatioFitting", "left slope: %3.1f (exp)/ %3.1f (sim) = %3.3f\n", heSpectra[j]->Integral(20,32), hsSpectra[j]->Integral(20,32), heSpectra[j]->Integral(20,32)/hsSpectra[j]->Integral(20,32) );
//0-2 MeV, 2-3.1 MeV
// Info("statesRatioFitting", "ground state: %3.1f (exp)/ %3.1f (sim) = %3.3f", heSpectra[j]->Integral(0,40), hsSpectra[j]->Integral(0,40), heSpectra[j]->Integral(0,40)/hsSpectra[j]->Integral(0,40) );
// Info("statesRatioFitting", "left slope: %3.1f (exp)/ %3.1f (sim) = %3.3f\n", heSpectra[j]->Integral(40,64), hsSpectra[j]->Integral(40,64), heSpectra[j]->Integral(40,64)/hsSpectra[j]->Integral(40,64) );
//0-2 MeV, 2.5-3.5 MeV
Info
(
"statesRatioFitting"
,
"ground state: %3.1f (sim)/ %3.1f (exp) = %3.3f"
,
hsSpectra
[
j
]
->
Integral
(
0
,
40
),
heSpectra
[
j
]
->
Integral
(
0
,
40
),
hsSpectra
[
j
]
->
Integral
(
0
,
40
)
/
heSpectra
[
j
]
->
Integral
(
0
,
40
)
);
Info
(
"statesRatioFitting"
,
"ground state: %3.1f (sim)/ %3.1f (exp) = %3.3f"
,
hsSpectra
[
j
]
->
Integral
(
0
,
40
),
heSpectra
[
j
]
->
Integral
(
0
,
40
),
hsSpectra
[
j
]
->
Integral
(
0
,
40
)
/
heSpectra
[
j
]
->
Integral
(
0
,
40
)
);
Info
(
"statesRatioFitting"
,
"left slope: %3.1f (sim)/ %3.1f (exp) = %3.3f
\n
"
,
hsSpectra
[
j
]
->
Integral
(
50
,
70
),
heSpectra
[
j
]
->
Integral
(
50
,
70
),
hsSpectra
[
j
]
->
Integral
(
50
,
70
)
/
heSpectra
[
j
]
->
Integral
(
50
,
70
)
);
Info
(
"statesRatioFitting"
,
"left slope: %3.1f (sim)/ %3.1f (exp) = %3.3f
\n
"
,
hsSpectra
[
j
]
->
Integral
(
50
,
70
),
heSpectra
[
j
]
->
Integral
(
50
,
70
),
hsSpectra
[
j
]
->
Integral
(
50
,
70
)
/
heSpectra
[
j
]
->
Integral
(
50
,
70
)
);
//0-1.3 MeV, 2-3.1 MeV
// Info("statesRatioFitting", "ground state: %3.1f (exp)/ %3.1f (sim) = %3.3f", heSpectra[j]->Integral(0,26), hsSpectra[j]->Integral(0,26), heSpectra[j]->Integral(0,26)/hsSpectra[j]->Integral(0,26) );
// Info("statesRatioFitting", "left slope: %3.1f (exp)/ %3.1f (sim) = %3.3f\n", heSpectra[j]->Integral(40,64), hsSpectra[j]->Integral(40,64), heSpectra[j]->Integral(40,64)/hsSpectra[j]->Integral(40,64) );
}
//for j
}
//for j
/*if (savePictures) {
SaveFigures
(
cSpectra
,
"Spectra"
,
1
);
canvasName.Form("%sfigSpectra:%s%s", ppath.Data(), configuration.Data(), pictFormat.Data());
cout << canvasName.Data() << endl;
cSpectra->SaveAs(canvasName.Data());
cSpectra->cd();
cSpectra->Close();
}//if save pictures*/
Info
(
"sfAngInt_spectra.cxx"
,
"Finished."
);
Info
(
"sfAngInt_spectra.cxx"
,
"Finished."
);
...
@@ -431,92 +431,87 @@ void BeAnalysis::EpsilonT() {
...
@@ -431,92 +431,87 @@ void BeAnalysis::EpsilonT() {
TH1F
*
hieT
[
noIntervals
][
6
];
TH1F
*
hieT
[
noIntervals
][
6
];
if
(
!
epsilonT
[
i
])
continue
;
if
(
!
epsilonT
[
i
])
continue
;
// {
canEpsilonT
[
i
]
=
new
TCanvas
();
canEpsilonT
[
i
]
=
new
TCanvas
();
canvasTitle
.
Form
(
"epsilon in %s T-system;
\t
(%d,%d) degrees"
,
(
const
char
*
)
cBeE
[
i
],
kMinAngle
,
kMaxAngle
);
canvasTitle
.
Form
(
"epsilon in %s T-system;
\t
(%d,%d) degrees"
,
(
const
char
*
)
cBeE
[
i
],
kMinAngle
,
kMaxAngle
);
canEpsilonT
[
i
]
->
SetTitle
(
canvasTitle
.
Data
());
canEpsilonT
[
i
]
->
SetTitle
(
canvasTitle
.
Data
());
canEpsilonT
[
i
]
->
Divide
(
2
,
3
);
canEpsilonT
[
i
]
->
Divide
(
2
,
3
);
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
;
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
);
hsName
.
Form
(
"hseT%d_%d"
,
i
,
j
);
hsName
.
Form
(
"hseT%d_%d"
,
i
,
j
);
drawCommand
.
Form
(
"fTpp/f6BeIM>>%s(30,0,1)"
,
hsName
.
Data
());
// drawCommand.Form("fTpp/f6BeIM>>%s(50,0,1)", hsName.Data());
chs
[
j
]
->
Draw
(
drawCommand
.
Data
(),
cProtons
&&
cQ
&&
crBeE
[
i
]
&&
crAngles
&&
sRatio
[
j
],
""
,
sEventsECuts
[
i
][
j
]);
drawCommand
.
Form
(
"fTpp/f6BeIM>>%s(30,0,1)"
,
hsName
.
Data
());
hseT
[
i
][
j
]
=
(
TH1F
*
)
gPad
->
FindObject
(
hsName
.
Data
());
// chs[j]->Draw(drawCommand.Data(), cQ && crBeE[i] && crAngles && sRatio[j], "", sEventsECuts[i][j]);
heName
.
Form
(
"heeT%d_%d"
,
i
,
j
);
chs
[
j
]
->
Draw
(
drawCommand
.
Data
(),
cProtons
&&
cQ
&&
crBeE
[
i
]
&&
crAngles
&&
sRatio
[
j
],
""
,
sEventsECuts
[
i
][
j
]);
drawCommand
.
Form
(
"fTpp/fBeIM>>%s"
,
heName
.
Data
());
hseT
[
i
][
j
]
=
(
TH1F
*
)
gPad
->
FindObject
(
hsName
.
Data
());
che
->
Draw
(
drawCommand
.
Data
(),
cProtons
&&
cQ
&&
cBeE
[
i
]
&&
cAngles
,
"E same"
,
eEventsECuts
[
i
][
j
]);
heName
.
Form
(
"heeT%d_%d"
,
i
,
j
);
heeT
[
i
][
j
]
=
(
TH1F
*
)
gPad
->
FindObject
(
heName
.
Data
());
// drawCommand.Form("fTpp/fBeIM>>%s(50,0,1)", heName.Data());
drawCommand
.
Form
(
"fTpp/fBeIM>>%s"
,
heName
.
Data
());
hseT
[
i
][
j
]
->
Draw
();
// che->Draw(drawCommand.Data(), cQ && cBeE[i] && cAngles, "E same", eEventsECuts[i][j]);
hseT
[
i
][
j
]
->
SetTitle
(
""
);
che
->
Draw
(
drawCommand
.
Data
(),
cProtons
&&
cQ
&&
cBeE
[
i
]
&&
cAngles
,
"E same"
,
eEventsECuts
[
i
][
j
]);
hseT
[
i
][
j
]
->
SetXTitle
(
"
\\
varepsilon"
);
heeT
[
i
][
j
]
=
(
TH1F
*
)
gPad
->
FindObject
(
heName
.
Data
());
hseT
[
i
][
j
]
->
GetXaxis
()
->
SetTitleOffset
(
0.95
);
hseT
[
i
][
j
]
->
GetXaxis
()
->
CenterTitle
();
hseT
[
i
][
j
]
->
Draw
();
hseT
[
i
][
j
]
->
SetYTitle
(
"counts"
);
hseT
[
i
][
j
]
->
SetTitle
(
""
);
hseT
[
i
][
j
]
->
GetYaxis
()
->
SetTitleOffset
(
0.7
);
hseT
[
i
][
j
]
->
SetXTitle
(
"
\\
varepsilon"
);
hseT
[
i
][
j
]
->
GetYaxis
()
->
CenterTitle
();
hseT
[
i
][
j
]
->
GetXaxis
()
->
SetTitleOffset
(
0.95
);
heeT
[
i
][
j
]
->
Draw
(
"E same"
);
hseT
[
i
][
j
]
->
GetXaxis
()
->
CenterTitle
();
if
(
kAutoRange
)
{
hseT
[
i
][
j
]
->
SetYTitle
(
"counts"
);
Float_t
leftMaxMC
=
kRangeProportion
*
hseT
[
i
][
j
]
->
GetMaximum
();
// hseT[i][j]->GetYaxis()->SetTitleOffset(1.09);
Float_t
leftMaxE
=
kRangeProportion
*
heeT
[
i
][
j
]
->
GetMaximum
();
hseT
[
i
][
j
]
->
GetYaxis
()
->
SetTitleOffset
(
0.7
);
hseT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxE
);
hseT
[
i
][
j
]
->
GetYaxis
()
->
CenterTitle
();
leftMaxMC
>
leftMaxE
?
hseT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxMC
)
:
hseT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxE
);
heeT
[
i
][
j
]
->
Draw
(
"E same"
);
}
if
(
kAutoRange
)
{
else
{
Float_t
leftMaxMC
=
kRangeProportion
*
hseT
[
i
][
j
]
->
GetMaximum
();
hseT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
eTRange
[
i
][
j
]);
Float_t
leftMaxE
=
kRangeProportion
*
heeT
[
i
][
j
]
->
GetMaximum
();
}
hseT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxE
);
canEpsilonT
[
i
]
->
Update
();
leftMaxMC
>
leftMaxE
?
hseT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxMC
)
:
hseT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxE
);
}
else
{
hiName
.
Form
(
"hieT%d_%d"
,
i
,
j
);
hseT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
eTRange
[
i
][
j
]);
drawCommand
.
Form
(
"sTpp/E_IM>>%s"
,
hiName
.
Data
());
}
ti
[
j
]
->
Draw
(
drawCommand
.
Data
(),
ciBeE
[
i
]
&&
sRatio
[
j
],
"same"
);
canEpsilonT
[
i
]
->
Update
();
hieT
[
i
][
j
]
=
(
TH1F
*
)
gPad
->
FindObject
(
hiName
.
Data
());
Float_t
rightmax
=
kRangeProportionIn
*
hieT
[
i
][
j
]
->
GetMaximum
();
Float_t
scale
=
canEpsilonT
[
i
]
->
GetPad
(
j
+
1
)
->
GetUymax
()
/
rightmax
;
hiName
.
Form
(
"hieT%d_%d"
,
i
,
j
);
hieT
[
i
][
j
]
->
SetLineColor
(
kRed
);
// drawCommand.Form("sTpp/E_IM>>%s(50,0,1)", hiName.Data());
hieT
[
i
][
j
]
->
Scale
(
scale
);
drawCommand
.
Form
(
"sTpp/E_IM>>%s"
,
hiName
.
Data
());
ti
[
j
]
->
Draw
(
drawCommand
.
Data
(),
ciBeE
[
i
]
&&
sRatio
[
j
],
"same"
);
//draw an axis on the right side
hieT
[
i
][
j
]
=
(
TH1F
*
)
gPad
->
FindObject
(
hiName
.
Data
());
TGaxis
*
axis
=
new
TGaxis
(
gPad
->
GetUxmax
(),
gPad
->
GetUymin
(),
Float_t
rightmax
=
kRangeProportionIn
*
hieT
[
i
][
j
]
->
GetMaximum
();
gPad
->
GetUxmax
(),
gPad
->
GetUymax
(),
0
,
rightmax
,
510
,
"+L"
);
Float_t
scale
=
canEpsilonT
[
i
]
->
GetPad
(
j
+
1
)
->
GetUymax
()
/
rightmax
;
axis
->
SetLineColor
(
kRed
);
hieT
[
i
][
j
]
->
SetLineColor
(
kRed
);
axis
->
SetLabelColor
(
kRed
);
hieT
[
i
][
j
]
->
Scale
(
scale
);
axis
->
Draw
();
//draw an axis on the right side
canEpsilonT
[
i
]
->
Update
();
TGaxis
*
axis
=
new
TGaxis
(
gPad
->
GetUxmax
(),
gPad
->
GetUymin
(),
gPad
->
GetUxmax
(),
gPad
->
GetUymax
(),
0
,
rightmax
,
510
,
"+L"
);
if
(
kVerbose
)
{
axis
->
SetLineColor
(
kRed
);
Info
(
"sfAngInt_epsilonT.cxx"
,
"cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f"
,
axis
->
SetLabelColor
(
kRed
);
i
,
j
,
heeT
[
i
][
j
]
->
Integral
(
0
,
heeT
[
i
][
j
]
->
GetNbinsX
()),
axis
->
Draw
();
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
())
);
canEpsilonT
[
i
]
->
Update
();
}
if
(
kVerbose
)
{
}
//for j
Info
(
"sfAngInt_epsilonT.cxx"
,
"cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f"
,
if
(
kVerbose
)
cout
<<
endl
;
i
,
j
,
heeT
[
i
][
j
]
->
Integral
(
0
,
heeT
[
i
][
j
]
->
GetNbinsX
()),
hseT
[
i
][
j
]
->
Integral
(
0
,
hseT
[
i
][
j
]
->
GetNbinsX
()),
SaveFigures
(
canEpsilonT
[
i
],
"epsilonT"
,
i
);
heeT
[
i
][
j
]
->
Integral
(
0
,
heeT
[
i
][
j
]
->
GetNbinsX
())
/
hseT
[
i
][
j
]
->
Integral
(
0
,
hseT
[
i
][
j
]
->
GetNbinsX
())
);
}
/*if (savePictures) {
}
//for j
if
(
kVerbose
)
cout
<<
endl
;
/*if (savePictures) {
canvasName.Form("%sfig%depsilonT:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data());
canvasName.Form("%sfig%depsilonT:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data());
cout << canvasName.Data() << endl;
cout << canvasName.Data() << endl;
canEpsilonT[i]->SaveAs(canvasName.Data());
canEpsilonT[i]->SaveAs(canvasName.Data());
canEpsilonT[i]->cd();
canEpsilonT[i]->cd();
canEpsilonT[i]->Close();
canEpsilonT[i]->Close();
}//if save pictures*/
}//if save pictures*/
// }//if
// }//if
}
//for i
}
//for i
}
}
...
@@ -596,6 +591,8 @@ void BeAnalysis::CosThetaTk() {
...
@@ -596,6 +591,8 @@ void BeAnalysis::CosThetaTk() {
}
//for j
}
//for j
SaveFigures
(
cThetaT
[
i
],
"cosThetakT"
,
i
);
/*if (savePictures) {
/*if (savePictures) {
canvasName.Form("%sfig%dcosThetakT:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data());
canvasName.Form("%sfig%dcosThetakT:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data());
cThetaT[i]->SaveAs(canvasName.Data());
cThetaT[i]->SaveAs(canvasName.Data());
...
@@ -652,10 +649,6 @@ void BeAnalysis::EpsilonY() {
...
@@ -652,10 +649,6 @@ void BeAnalysis::EpsilonY() {
}
}
canEpsilonY
[
i
]
->
Update
();
canEpsilonY
[
i
]
->
Update
();
// ti[j]->Draw("sTap/E_IM", ciBeE[i] && sRatio[j], "same", iEvents[j]);
hiName
.
Form
(
"hieY%d_%d"
,
i
,
j
);
hiName
.
Form
(
"hieY%d_%d"
,
i
,
j
);
drawCommand
.
Form
(
"sTap/E_IM>>%s(50,0,1)"
,
hiName
.
Data
());
drawCommand
.
Form
(
"sTap/E_IM>>%s(50,0,1)"
,
hiName
.
Data
());
ti
[
j
]
->
Draw
(
drawCommand
.
Data
(),
ciBeE
[
i
]
&&
sRatio
[
j
],
"same"
);
ti
[
j
]
->
Draw
(
drawCommand
.
Data
(),
ciBeE
[
i
]
&&
sRatio
[
j
],
"same"
);
...
@@ -672,8 +665,6 @@ void BeAnalysis::EpsilonY() {
...
@@ -672,8 +665,6 @@ void BeAnalysis::EpsilonY() {
axis
->
SetLabelColor
(
kRed
);
axis
->
SetLabelColor
(
kRed
);
axis
->
Draw
();
axis
->
Draw
();
canEpsilonY
[
i
]
->
Update
();
canEpsilonY
[
i
]
->
Update
();
if
(
kVerbose
)
{
if
(
kVerbose
)
{
...
@@ -685,6 +676,8 @@ void BeAnalysis::EpsilonY() {
...
@@ -685,6 +676,8 @@ void BeAnalysis::EpsilonY() {
}
//for j
}
//for j
SaveFigures
(
canEpsilonY
[
i
],
"EpsilonY"
,
i
);
/*if (savePictures) {
/*if (savePictures) {
canvasName.Form("%sfig%dEpsilonY:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data());
canvasName.Form("%sfig%dEpsilonY:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data());
cout << canvasName.Data() << endl;
cout << canvasName.Data() << endl;
...
@@ -701,7 +694,7 @@ void BeAnalysis::EpsilonY() {
...
@@ -701,7 +694,7 @@ void BeAnalysis::EpsilonY() {
void
BeAnalysis
::
CosThetaYk
()
{
void
BeAnalysis
::
CosThetaYk
()
{
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)
TH1F
*
hscoskY
[
noIntervals
][
6
];
TH1F
*
hscoskY
[
noIntervals
][
6
];
TH1F
*
hecoskY
[
noIntervals
][
6
];
TH1F
*
hecoskY
[
noIntervals
][
6
];
...
@@ -728,11 +721,9 @@ void BeAnalysis::CosThetaYk() {
...
@@ -728,11 +721,9 @@ void BeAnalysis::CosThetaYk() {
heName
.
Form
(
"hecoskY%d_%d"
,
i
,
j
);
heName
.
Form
(
"hecoskY%d_%d"
,
i
,
j
);
drawCommand
.
Form
(
"fCosThetaYk>>%s(50,-1,1)"
,
heName
.
Data
());
drawCommand
.
Form
(
"fCosThetaYk>>%s(50,-1,1)"
,
heName
.
Data
());
che
->
Draw
(
drawCommand
.
Data
(),
cQ
&&
cBeE
[
i
]
&&
cAngles
,
"E same"
,
eEvents
[
j
]);
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
());
hecoskY
[
i
][
j
]
=
(
TH1F
*
)
gPad
->
FindObject
(
heName
.
Data
());
hscoskY
[
i
][
j
]
->
Draw
();
hscoskY
[
i
][
j
]
->
Draw
();
// hscoskY[i][j]->GetYaxis()->SetRangeUser(0, coskYRange[i][j]);
hecoskY
[
i
][
j
]
->
Draw
(
"E same"
);
hecoskY
[
i
][
j
]
->
Draw
(
"E same"
);
if
(
kAutoRange
)
{
if
(
kAutoRange
)
{
Float_t
leftMaxMC
=
kRangeProportion
*
hecoskY
[
i
][
j
]
->
GetMaximum
();
Float_t
leftMaxMC
=
kRangeProportion
*
hecoskY
[
i
][
j
]
->
GetMaximum
();
...
@@ -744,8 +735,6 @@ void BeAnalysis::CosThetaYk() {
...
@@ -744,8 +735,6 @@ void BeAnalysis::CosThetaYk() {
hscoskY
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
eTRange
[
i
][
j
]);
hscoskY
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
eTRange
[
i
][
j
]);
}
}
cThetaY
[
i
]
->
Update
();
cThetaY
[
i
]
->
Update
();
hiName
.
Form
(
"hicoskY%d_%d"
,
i
,
j
);
hiName
.
Form
(
"hicoskY%d_%d"
,
i
,
j
);
...
@@ -775,6 +764,10 @@ void BeAnalysis::CosThetaYk() {
...
@@ -775,6 +764,10 @@ void BeAnalysis::CosThetaYk() {
}
//for j
}
//for j
SaveFigures
(
cThetaY
[
i
],
"cosThetakY"
,
i
);
/*if (savePictures) {
/*if (savePictures) {
canvasName.Form("%sfig%dcosThetakY:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data());
canvasName.Form("%sfig%dcosThetakY:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data());
cThetaY[i]->SaveAs(canvasName.Data());
cThetaY[i]->SaveAs(canvasName.Data());
...
@@ -782,181 +775,100 @@ void BeAnalysis::CosThetaYk() {
...
@@ -782,181 +775,100 @@ void BeAnalysis::CosThetaYk() {
cThetaY[i]->Close();
cThetaY[i]->Close();
}*/
}*/
// }//if
// }//if
}
//for i
}
//for i
}
}
//void BeAnalysis::ThetaP1T() {
//
// const Double_t tP1Range[5][6] = {90, 90, 90, 90, 90, 90,
// 140, 140, 140, 140, 140, 140,
// 130, 130, 130, 130, 130, 130,
// 190, 190, 190, 190, 190, 190,
// 200, 200, 200, 200, 200, 200};
//
//
// TCanvas *cThetaP1T[noIntervals];
// for (Int_t i = 0; i<noIntervals; i++) { //energy intervals (canvases)
//
// TH1F *hsthetaP1T[noIntervals][6];
// TH1F *hethetaP1T[noIntervals][6];
// TH1F *hithetaP1T[noIntervals][6];
//
// if (!thetaP1T[i]) continue;
// // {
//
// cThetaP1T[i] = new TCanvas();
//
// canvasTitle.Form("cos theta p1 in %s T-system;\t(%d,%d) degrees", (const char*)cBeE[i], kMinAngle, kMaxAngle);
// cThetaP1T[i]->SetTitle(canvasTitle.Data());
// cThetaP1T[i]->Divide(2, 3);
//
// che->SetLineColor(kBlack);
// for (Int_t j = 0; j < 6; j++) { //different files
// cThetaP1T[i]->cd(j+1);
// chs[j]->SetLineColor(kGray+1);
// chs[j]->SetFillColor(kGray+1);
// hsName.Form("hsthetaP1T%d_%d", i, j);
// drawCommand.Form("fP1ThetaCM>>%s(50,0,3.14)", hsName.Data());
// chs[j]->Draw(drawCommand.Data(), cQ && crBeE[i] && crAngles && crEpsilonT && sRatio[j], "", sEvents[j]);
// hsthetaP1T[i][j] = (TH1F*)gPad->FindObject(hsName.Data());
// heName.Form("hethetaP1T%d_%d", i, j);
// drawCommand.Form("fP1ThetaCM>>%s(50,0,3.14)", heName.Data());
// che->Draw(drawCommand.Data(), cQ && cBeE[i] && cAngles && cEpsilonT, "E same", eEvents[j]);
// hethetaP1T[i][j] = (TH1F*)gPad->FindObject(heName.Data());
//
// hsthetaP1T[i][j]->Draw();
// hsthetaP1T[i][j]->GetYaxis()->SetRangeUser(0, tP1Range[i][j]);
// hethetaP1T[i][j]->Draw("E same");
// cThetaP1T[i]->Update();
//
//
// hiName.Form("hithetaP1T%d_%d", i, j);
// drawCommand.Form("sP1CM.Theta()>>%s", hiName.Data());
// ti[j]->Draw(drawCommand.Data(), ciEpsilon && ciBeE[i] && sRatio[j], "same");
// hithetaP1T[i][j] = (TH1F*)gPad->FindObject(hiName.Data());
// Float_t rightmax = 1.1*hithetaP1T[i][j]->GetMaximum();
// Float_t scale = cThetaP1T[i]->GetPad(j+1)->GetUymax()/rightmax;
// hithetaP1T[i][j]->SetLineColor(kRed);
// hithetaP1T[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();
//
// cThetaP1T[i]->Update();
//
//
// }//for j
// /*if (savePictures) {
// canvasName.Form("%sfig%dthetaP1T:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data());
// cThetaP1T[i]->SaveAs(canvasName.Data());
// cThetaP1T[i]->cd();
// cThetaP1T[i]->Close();
// }*/
// // }//if
// }//for i
//
//}
void
BeAnalysis
::
ThetaAT
()
{
void
BeAnalysis
::
ThetaAT
()
{
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)
TH1F
*
hsthetaAT
[
noIntervals
][
6
];
TH1F
*
hsthetaAT
[
noIntervals
][
6
];
TH1F
*
hethetaAT
[
noIntervals
][
6
];
TH1F
*
hethetaAT
[
noIntervals
][
6
];
TH1F
*
hithetaAT
[
noIntervals
][
6
];
TH1F
*
hithetaAT
[
noIntervals
][
6
];
if
(
!
thetaAT
[
i
])
continue
;
if
(
!
thetaAT
[
i
])
continue
;
// {
cThetaAT
[
i
]
=
new
TCanvas
();
cThetaAT
[
i
]
=
new
TCanvas
();
canvasTitle
.
Form
(
"cos theta alpha in %s T-system;
\t
(%d,%d) degrees"
,
(
const
char
*
)
cBeE
[
i
],
kMinAngle
,
kMaxAngle
);
canvasTitle
.
Form
(
"cos theta alpha in %s T-system;
\t
(%d,%d) degrees"
,
(
const
char
*
)
cBeE
[
i
],
kMinAngle
,
kMaxAngle
);
cThetaAT
[
i
]
->
SetTitle
(
canvasTitle
.
Data
());
cThetaAT
[
i
]
->
SetTitle
(
canvasTitle
.
Data
());
cThetaAT
[
i
]
->
Divide
(
2
,
3
);
cThetaAT
[
i
]
->
Divide
(
2
,
3
);
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
;
cThetaAT
[
i
]
->
cd
(
j
+
1
);
cThetaAT
[
i
]
->
cd
(
j
+
1
);
hsName
.
Form
(
"hsthetaAT%d_%d"
,
i
,
j
);
hsName
.
Form
(
"hsthetaAT%d_%d"
,
i
,
j
);
hsthetaAT
[
i
][
j
]
=
new
TH1F
(
hsName
.
Data
(),
"title"
,
50
,
0
,
3.14
);
hsthetaAT
[
i
][
j
]
=
new
TH1F
(
hsName
.
Data
(),
"title"
,
50
,
0
,
3.14
);
hsthetaAT
[
i
][
j
]
->
SetLineColor
(
kGray
+
1
);
// hsthetaAT[i][j] = new TH1F(hsName.Data(), "title", 50, -1, 1);
hsthetaAT
[
i
][
j
]
->
SetFillColor
(
kGray
+
1
);
hsthetaAT
[
i
][
j
]
->
SetLineColor
(
kGray
+
1
);
drawCommand
.
Form
(
"fAThetaCM>>%s"
,
hsthetaAT
[
i
][
j
]
->
GetName
());
hsthetaAT
[
i
][
j
]
->
SetFillColor
(
kGray
+
1
);
chs
[
j
]
->
Draw
(
drawCommand
.
Data
(),
cQ
&&
crBeE
[
i
]
&&
crAngles
&&
crEpsilonT
&&
sRatio
[
j
],
"goff"
,
sEventsECuts
[
i
][
j
]);
drawCommand
.
Form
(
"fAThetaCM>>%s"
,
hsthetaAT
[
i
][
j
]
->
GetName
());
heName
.
Form
(
"hethetaAT%d_%d"
,
i
,
j
);
// drawCommand.Form("cos(fAThetaCM)>>%s", hsthetaAT[i][j]->GetName());
hethetaAT
[
i
][
j
]
=
new
TH1F
(
heName
.
Data
(),
"title"
,
50
,
0
,
3.14
);
chs
[
j
]
->
Draw
(
drawCommand
.
Data
(),
cQ
&&
crBeE
[
i
]
&&
crAngles
&&
crEpsilonT
&&
sRatio
[
j
],
"goff"
,
sEventsECuts
[
i
][
j
]);
drawCommand
.
Form
(
"fAThetaCM>>%s"
,
hethetaAT
[
i
][
j
]
->
GetName
());
heName
.
Form
(
"hethetaAT%d_%d"
,
i
,
j
);
che
->
Draw
(
drawCommand
.
Data
(),
cQ
&&
cBeE
[
i
]
&&
cAngles
&&
cEpsilonT
,
"goff"
,
eEventsECuts
[
i
][
j
]);
hethetaAT
[
i
][
j
]
=
new
TH1F
(
heName
.
Data
(),
"title"
,
50
,
0
,
3.14
);
// hethetaAT[i][j] = new TH1F(heName.Data(), "title", 50, -1, 1);
hsthetaAT
[
i
][
j
]
->
Draw
();
drawCommand
.
Form
(
"fAThetaCM>>%s"
,
hethetaAT
[
i
][
j
]
->
GetName
());
hsthetaAT
[
i
][
j
]
->
SetTitle
(
""
);
// drawCommand.Form("cos(fAThetaCM)>>%s", hethetaAT[i][j]->GetName());
hsthetaAT
[
i
][
j
]
->
SetXTitle
(
"
\\
theta_{
\\
alpha} [rad]"
);
che
->
Draw
(
drawCommand
.
Data
(),
cQ
&&
cBeE
[
i
]
&&
cAngles
&&
cEpsilonT
,
"goff"
,
eEventsECuts
[
i
][
j
]);
hsthetaAT
[
i
][
j
]
->
GetXaxis
()
->
SetTitleOffset
(
0.95
);
hsthetaAT
[
i
][
j
]
->
GetXaxis
()
->
CenterTitle
();
hsthetaAT
[
i
][
j
]
->
Draw
();
hsthetaAT
[
i
][
j
]
->
SetYTitle
(
"counts"
);
hsthetaAT
[
i
][
j
]
->
SetTitle
(
""
);
// hsthetaAT[i][j]->GetYaxis()->SetTitleOffset(1.09);
hsthetaAT
[
i
][
j
]
->
SetXTitle
(
"
\\
theta_{
\\
alpha} [rad]"
);
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
SetTitleOffset
(
0.7
);
hsthetaAT
[
i
][
j
]
->
GetXaxis
()
->
SetTitleOffset
(
0.95
);
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
CenterTitle
();
hsthetaAT
[
i
][
j
]
->
GetXaxis
()
->
CenterTitle
();
hsthetaAT
[
i
][
j
]
->
SetYTitle
(
"counts"
);
hethetaAT
[
i
][
j
]
->
Draw
(
"E same"
);
// hsthetaAT[i][j]->GetYaxis()->SetTitleOffset(1.09);
if
(
kAutoRange
)
{
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
SetTitleOffset
(
0.7
);
Float_t
leftMaxMC
=
kRangeProportion
*
hethetaAT
[
i
][
j
]
->
GetMaximum
();
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
CenterTitle
();
Float_t
leftMaxE
=
kRangeProportion
*
hsthetaAT
[
i
][
j
]
->
GetMaximum
();
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxE
);
hethetaAT
[
i
][
j
]
->
Draw
(
"E same"
);
leftMaxMC
>
leftMaxE
?
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxMC
)
:
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxE
);
if
(
kAutoRange
)
{
}
Float_t
leftMaxMC
=
kRangeProportion
*
hethetaAT
[
i
][
j
]
->
GetMaximum
();
else
{
Float_t
leftMaxE
=
kRangeProportion
*
hsthetaAT
[
i
][
j
]
->
GetMaximum
();
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
eTRange
[
i
][
j
]);
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxE
);
}
leftMaxMC
>
leftMaxE
?
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxMC
)
:
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
leftMaxE
);
cThetaAT
[
i
]
->
Update
();
}
else
{
hiName
.
Form
(
"hithetaAT%d_%d"
,
i
,
j
);
hsthetaAT
[
i
][
j
]
->
GetYaxis
()
->
SetRangeUser
(
0
,
eTRange
[
i
][
j
]);
drawCommand
.
Form
(
"sACM.Theta()>>%s(50,0,3.14)"
,
hiName
.
Data
());
}
ti
[
j
]
->
Draw
(
drawCommand
.
Data
(),
ciEpsilon
&&
ciBeE
[
i
]
&&
sRatio
[
j
],
"same"
);
cThetaAT
[
i
]
->
Update
();
hithetaAT
[
i
][
j
]
=
(
TH1F
*
)
gPad
->
FindObject
(
hiName
.
Data
());
Float_t
rightmax
=
1.1
*
hithetaAT
[
i
][
j
]
->
GetMaximum
();
hiName
.
Form
(
"hithetaAT%d_%d"
,
i
,
j
);
Float_t
scale
=
cThetaAT
[
i
]
->
GetPad
(
j
+
1
)
->
GetUymax
()
/
rightmax
;
drawCommand
.
Form
(
"sACM.Theta()>>%s(50,0,3.14)"
,
hiName
.
Data
());
hithetaAT
[
i
][
j
]
->
SetLineColor
(
kRed
);
// drawCommand.Form("cos(sACM.Theta())>>%s(50,-1,1)", hiName.Data());
hithetaAT
[
i
][
j
]
->
Scale
(
scale
);
ti
[
j
]
->
Draw
(
drawCommand
.
Data
(),
ciEpsilon
&&
ciBeE
[
i
]
&&
sRatio
[
j
],
"same"
);
hithetaAT
[
i
][
j
]
=
(
TH1F
*
)
gPad
->
FindObject
(
hiName
.
Data
());
Float_t
rightmax
=
1.1
*
hithetaAT
[
i
][
j
]
->
GetMaximum
();
//draw an axis on the right side
Float_t
scale
=
cThetaAT
[
i
]
->
GetPad
(
j
+
1
)
->
GetUymax
()
/
rightmax
;
TGaxis
*
axis
=
new
TGaxis
(
gPad
->
GetUxmax
(),
gPad
->
GetUymin
(),
hithetaAT
[
i
][
j
]
->
SetLineColor
(
kRed
);
gPad
->
GetUxmax
(),
gPad
->
GetUymax
(),
0
,
rightmax
,
510
,
"+L"
);
hithetaAT
[
i
][
j
]
->
Scale
(
scale
);
axis
->
SetLineColor
(
kRed
);
axis
->
SetLabelColor
(
kRed
);
axis
->
Draw
();
//draw an axis on the right side
TGaxis
*
axis
=
new
TGaxis
(
gPad
->
GetUxmax
(),
gPad
->
GetUymin
(),
cThetaAT
[
i
]
->
Update
();
gPad
->
GetUxmax
(),
gPad
->
GetUymax
(),
0
,
rightmax
,
510
,
"+L"
);
axis
->
SetLineColor
(
kRed
);
if
(
kVerbose
)
{
axis
->
SetLabelColor
(
kRed
);
Info
(
"sfAngInt_thetaAT.cxx"
,
"cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f"
,
axis
->
Draw
();
i
,
j
,
hethetaAT
[
i
][
j
]
->
Integral
(
0
,
hethetaAT
[
i
][
j
]
->
GetNbinsX
()),
hsthetaAT
[
i
][
j
]
->
Integral
(
0
,
hsthetaAT
[
i
][
j
]
->
GetNbinsX
()),
cThetaAT
[
i
]
->
Update
();
hethetaAT
[
i
][
j
]
->
Integral
(
0
,
hethetaAT
[
i
][
j
]
->
GetNbinsX
())
/
hsthetaAT
[
i
][
j
]
->
Integral
(
0
,
hsthetaAT
[
i
][
j
]
->
GetNbinsX
())
);
}
if
(
kVerbose
)
{
Info
(
"sfAngInt_thetaAT.cxx"
,
"cut%d; case%d: %3.1f (exp)/ %3.1f (sim) = %3.3f"
,
}
//for j
i
,
j
,
hethetaAT
[
i
][
j
]
->
Integral
(
0
,
hethetaAT
[
i
][
j
]
->
GetNbinsX
()),
hsthetaAT
[
i
][
j
]
->
Integral
(
0
,
hsthetaAT
[
i
][
j
]
->
GetNbinsX
()),
SaveFigures
(
cThetaAT
[
i
],
"thetaAT"
,
i
);
hethetaAT
[
i
][
j
]
->
Integral
(
0
,
hethetaAT
[
i
][
j
]
->
GetNbinsX
())
/
hsthetaAT
[
i
][
j
]
->
Integral
(
0
,
hsthetaAT
[
i
][
j
]
->
GetNbinsX
())
);
/*if (savePictures) {
}
}
//for j
/*if (savePictures) {
canvasName.Form("%sfig%dthetaAT:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data());
canvasName.Form("%sfig%dthetaAT:%s%s", ppath.Data(), i, configuration.Data(), pictFormat.Data());
cThetaAT[i]->SaveAs(canvasName.Data());
cThetaAT[i]->SaveAs(canvasName.Data());
cThetaAT[i]->cd();
cThetaAT[i]->cd();
cThetaAT[i]->Close();
cThetaAT[i]->Close();
}*/
}*/
// }//if
}
//for i
}
//for i
}
}
...
@@ -1023,3 +935,75 @@ void BeAnalysis::EpsilonTRange() {
...
@@ -1023,3 +935,75 @@ void BeAnalysis::EpsilonTRange() {
}
}
void
BeAnalysis
::
SetFigures
(
TString
figPath
,
TString
figFormat
,
Bool_t
kSave
)
{
kSaveFigures
=
kSave
;
figureFormat
=
figFormat
;
figurePath
=
figPath
;
}
void
BeAnalysis
::
SetExpChain
(
TString
files
,
Int_t
minFnumber
,
Int_t
maxFnumber
)
{
lowExpFile
=
minFnumber
;
upExpFile
=
maxFnumber
;
expFiles
=
files
;
}
void
BeAnalysis
::
SetSimChains
(
TString
chainAl0name
,
TString
chainNoAl0name
,
TString
chainAl180name
,
TString
chainNoAl180name
,
TString
chainAl90name
,
TString
chainNoAl90name
)
{
simFiles
[
0
]
=
chainAl0name
;
simFiles
[
1
]
=
chainNoAl0name
;
simFiles
[
2
]
=
chainAl180name
;
simFiles
[
3
]
=
chainNoAl180name
;
simFiles
[
4
]
=
chainAl90name
;
simFiles
[
5
]
=
chainNoAl90name
;
}
void
BeAnalysis
::
SetInputChains
(
TString
inputAl0name
,
TString
inputNoAl0name
,
TString
inputAl180name
,
TString
inputNoAl180name
,
TString
inputAl90name
,
TString
inputNoAl90name
)
{
inputFiles
[
0
]
=
inputAl0name
;
inputFiles
[
1
]
=
inputNoAl0name
;
inputFiles
[
2
]
=
inputAl180name
;
inputFiles
[
3
]
=
inputNoAl180name
;
inputFiles
[
4
]
=
inputAl90name
;
inputFiles
[
5
]
=
inputNoAl90name
;
}
void
BeAnalysis
::
SetNoSimFiles
(
Int_t
*
minFnumber
,
Int_t
*
maxFnumber
)
{
eMaxEvents
=
5000000
;
if
(
!
(
minFnumber
&&
maxFnumber
))
{
for
(
Int_t
i
=
0
;
i
<
6
;
i
++
)
{
lowSimFile
[
i
]
=
0
;
upSimFile
[
i
]
=
14
;
}
Info
(
"BeAnalysis::SetNoSimFiles"
,
"Default numbers of simfiles were set."
);
return
;
}
for
(
Int_t
i
=
0
;
i
<
6
;
i
++
)
{
lowSimFile
[
i
]
=
minFnumber
[
i
];
upSimFile
[
i
]
=
maxFnumber
[
i
];
}
return
;
}
void
BeAnalysis
::
SaveFigures
(
TCanvas
*
canvas
,
TString
variable
,
Int_t
interval
)
{
if
(
!
kSaveFigures
)
return
;
canvasName
.
Form
(
"%sfig%d%s:%d%d%s"
,
figurePath
.
Data
(),
interval
,
variable
.
Data
(),
kMinAngle
,
kMaxAngle
,
figureFormat
.
Data
());
canvas
->
SaveAs
(
canvasName
.
Data
());
canvas
->
cd
();
canvas
->
Close
();
}
Be/BeAnalysis.h
View file @
2f96c67e
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
//#include <TObject.h>
//#include <TObject.h>
#include "TChain.h"
#include "TChain.h"
#include "TCut.h"
#include "TCut.h"
#include "TCanvas.h"
using
std
::
cout
;
using
std
::
cout
;
using
std
::
endl
;
using
std
::
endl
;
...
@@ -23,6 +24,14 @@ public:
...
@@ -23,6 +24,14 @@ public:
virtual
~
BeAnalysis
();
virtual
~
BeAnalysis
();
ClassDef
(
BeAnalysis
,
1
);
ClassDef
(
BeAnalysis
,
1
);
void
SetExpChain
(
TString
files
,
Int_t
minFnumber
,
Int_t
maxFnumber
);
void
SetSimChains
(
TString
chainAl0name
,
TString
chainNoAl0name
,
TString
chainAl180name
,
TString
chainNoAl180name
,
TString
chainAl90name
,
TString
chainNoAl90name
);
void
SetInputChains
(
TString
inputAl0name
,
TString
inputNoAl0name
,
TString
inputAl180name
,
TString
inputNoAl180name
,
TString
inputAl90name
,
TString
inputNoAl90name
);
void
SetNoSimFiles
(
Int_t
*
minFnumber
=
0
,
Int_t
*
maxFnumber
=
0
);
void
OpenSimChains
();
void
OpenSimChains
();
void
OpenExpChain
();
void
OpenExpChain
();
...
@@ -34,11 +43,13 @@ public:
...
@@ -34,11 +43,13 @@ public:
void
SetCuts
();
void
SetCuts
();
void
SetCMAngularRange
(
Int_t
minAngle
,
Int_t
maxAngle
);
void
SetCMAngularRange
(
Int_t
minAngle
,
Int_t
maxAngle
);
private
:
void
SetCMAngularCuts
();
void
SetCMAngularCuts
();
public
:
void
SetRangeProportion
(
Float_t
rangeProportion
=
1
.
1
,
Bool_t
autoRange
=
1
);
void
SetRangeProportion
(
Float_t
rangeProportion
=
1
.
1
,
Bool_t
autoRange
=
1
);
void
SetNoExpEvents
();
void
SetNoExpEvents
(
Long64_t
*
noExpEvents
=
0
);
void
SetNoSimEvents
();
void
SetNoSimEvents
(
Long64_t
*
noSimEvents
=
0
);
void
SetRatiosGStoEX
();
void
SetRatiosGStoEX
();
void
ExpEventsECuts
();
void
ExpEventsECuts
();
void
SimEventsECuts
();
void
SimEventsECuts
();
...
@@ -49,15 +60,25 @@ public:
...
@@ -49,15 +60,25 @@ public:
void
CosThetaTk
();
void
CosThetaTk
();
void
EpsilonY
();
void
EpsilonY
();
void
CosThetaYk
();
void
CosThetaYk
();
void
ThetaP1T
();
void
ThetaAT
();
void
ThetaAT
();
void
SetFigures
(
TString
figPath
=
"figures/"
,
TString
figFormat
=
".eps"
,
Bool_t
kSave
=
1
);
//
//
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
Int_t
lowExpFile
;
Int_t
upExpFile
;
TString
expFiles
;
TString
simFiles
[
6
];
TString
inputFiles
[
6
];
Int_t
lowSimFile
[
6
];
Int_t
upSimFile
[
6
];
Int_t
kMinAngle
;
Int_t
kMinAngle
;
Int_t
kMaxAngle
;
Int_t
kMaxAngle
;
...
@@ -71,7 +92,6 @@ private:
...
@@ -71,7 +92,6 @@ private:
Bool_t
*
epsilonY
;
//!
Bool_t
*
epsilonY
;
//!
Bool_t
*
cosThetaY
;
//!
Bool_t
*
cosThetaY
;
//!
// Bool_t *thetaP1T; //!
Bool_t
*
thetaAT
;
//!
Bool_t
*
thetaAT
;
//!
Bool_t
kAutoRange
;
Bool_t
kAutoRange
;
...
@@ -80,12 +100,12 @@ private:
...
@@ -80,12 +100,12 @@ private:
Float_t
kRangeProportionIn
;
Float_t
kRangeProportionIn
;
Long64_t
eMaxEvents
;
Long64_t
eMaxEvents
;
Long64_t
eEventsAl0
;
//
Long64_t eEventsAl0;
Long64_t
eEventsNoAl0
;
//
Long64_t eEventsNoAl0;
Long64_t
eEventsAl180
;
//
Long64_t eEventsAl180;
Long64_t
eEventsNoAl180
;
//
Long64_t eEventsNoAl180;
Long64_t
eEventsAl90
;
//
Long64_t eEventsAl90;
Long64_t
eEventsNoAl90
;
//
Long64_t eEventsNoAl90;
Long64_t
eEvents
[
6
];
Long64_t
eEvents
[
6
];
Long64_t
sMaxEvents
;
Long64_t
sMaxEvents
;
...
@@ -175,8 +195,17 @@ private:
...
@@ -175,8 +195,17 @@ private:
TString
hsName
;
TString
hsName
;
TString
heName
;
TString
heName
;
TString
hiName
;
TString
hiName
;
TString
canvasName
;
TString
canvasTitle
;
TString
canvasTitle
;
Bool_t
kSaveFigures
;
TString
figurePath
;
TString
figureFormat
;
private
:
void
SaveFigures
(
TCanvas
*
canvas
,
TString
variable
,
Int_t
interval
);
};
};
#endif
/* BE_BEANALYSIS_H_ */
#endif
/* BE_BEANALYSIS_H_ */
macros/BeCorrPRC/ES1_7590.cxx
0 → 100644
View file @
2f96c67e
void
ES1_7590
()
{
//open chain with Be events only and draw E_Be
//order: al0, noal0, al180, noal180
TStopwatch
sw
;
sw
.
Start
();
BeAnalysis
ana
;
ana
.
SetCMAngularRange
(
75
,
90
);
ana
.
SetChainsToDraw
(
0
,
1
,
1
,
0
,
0
,
0
);
ana
.
SetExpChain
(
"../../../be/rootdata/correlations/v5_exp/Be."
,
0
,
40
);
const
Long64_t
eMaxEvents
=
5000000
;
Long64_t
eEvents
[
6
]
=
{
eMaxEvents
,
eMaxEvents
,
eMaxEvents
,
eMaxEvents
,
eMaxEvents
,
eMaxEvents
};
ana
.
SetNoExpEvents
(
eEvents
);
const
Long64_t
sMaxEvents
=
3000000
;
Long64_t
sEvents
[
6
]
=
{
2050000
,
2050000
,
2050000
,
2050000
,
1900000
,
1950000
};
cout
<<
sEvents
<<
endl
;
ana
.
SetNoSimEvents
(
sEvents
);
const
Int_t
lowSimFile
[
6
]
=
{
0
,
0
,
0
,
0
,
0
,
0
};
// const Int_t upSimFile[6] = {5, 5, 5, 5, 5, 5};
const
Int_t
upSimFile
[
6
]
=
{
12
,
12
,
12
,
12
,
12
,
12
};
ana
.
SetNoSimFiles
(
lowSimFile
,
upSimFile
);
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_al_180_65-100_"
,
"../../../be/rootdata/correlations/v5_7590/Sim_mix_br_noal_180_65-100_"
,
"../../../be/rootdata/correlations/v5_7590/Sim_mix_br_al_90_65-100_"
,
"../../../be/rootdata/correlations/v5_7590/Sim_mix_br_noal_90_65-100_"
);
ana
.
SetInputChains
(
"../../../be/rootdata/correlations/v5_7590/Sim_mix_br_al_0_65-100_000.root"
,
"../../../be/rootdata/correlations/v5_7590/Sim_mix_br_noal_0_65-100_000.root"
,
"../../../be/rootdata/correlations/v5_7590/Sim_mix_br_al_180_65-100_000.root"
,
"../../../be/rootdata/correlations/v5_7590/Sim_mix_br_noal_180_65-100_000.root"
,
"../../../be/rootdata/correlations/v5_7590/Sim_mix_br_al_90_65-100_000.root"
,
"../../../be/rootdata/correlations/v5_7590/Sim_mix_br_noal_90_65-100_000.root"
);
ana
.
OpenExpChain
();
ana
.
OpenSimChains
();
ana
.
Spectra
();
ana
.
EpsilonT
();
sw
.
Print
();
sw
.
Continue
();
return
;
// const Int_t kMinAngle = 75;
// const Int_t kMaxAngle = 90;
//
// const Int_t lowfile = 0;
// const Int_t upfile = 40;
// const Int_t lowSimFile[6] = {0, 0, 0, 0, 0, 0};
//// const Int_t upSimFile[6] = {5, 5, 5, 5, 5, 5};
// 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
;
sw
.
Print
();
sw
.
Continue
();
const
Bool_t
savePictures
=
0
;
TString
ppath
=
"pictures/correlations/v5_7590/"
;
TString
configuration
=
"v5_7590"
;
// TString pictFormat = ".ps";
// gStyle->SetHistLineWidth(1);
TString
pictFormat
=
".eps"
;
// TString pictFormat = ".gif";
// TString pictFormat = ".jpg";
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
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
const
Double_t
sRange
[
6
]
=
{
2000
,
2000
,
2000
,
2000
,
2000
,
2000
};
if
(
spectra
)
{
gROOT
->
ProcessLine
(
".x corr_templates/sfAngInt_spectra_v5.cxx"
);
}
// "T" system
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
};
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."
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment