Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
nptool
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
np
nptool
Commits
ccb30db9
Commit
ccb30db9
authored
1 year ago
by
Hugo Jacob
Browse files
Options
Downloads
Patches
Plain Diff
Adding DrawEx script
parent
40e8e442
No related branches found
No related tags found
1 merge request
!27
Draft: [Epic] Preparation of the environement for the new GaseousDetectorScorers...
Pipeline
#295602
passed
1 year ago
Stage: build-NPLib
Stage: build-NPSimulation
Stage: test
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
Projects/E805/DrawEx.cxx
+362
-0
362 additions, 0 deletions
Projects/E805/DrawEx.cxx
Projects/E805/DrawEx.h
+161
-0
161 additions, 0 deletions
Projects/E805/DrawEx.h
with
523 additions
and
0 deletions
Projects/E805/DrawEx.cxx
0 → 100644
+
362
−
0
View file @
ccb30db9
#include
"DrawEx.h"
bool
TestEntry
(){
GATCONFMASTER
=
**
GATCONFMASTER_
;
if
(
!
(
GATCONFMASTER
.
size
()
>
0
&&
GATCONFMASTER
[
0
]
==
1
))
return
false
;
TACPhysics
=
**
TACPhysics_
;
ZDDPhysics
=
**
ZDDPhysics_
;
bool
TACCondition1
=
false
;
for
(
unsigned
int
i
=
0
;
i
<
TACPhysics
.
TAC_Time
.
size
();
i
++
){
// if(TACPhysics.TAC_Name[i].compare("TAC_CATS_PL") == 0 && abs((int)TACPhysics.TAC_Time[i] - 28000) < 1500 && ZDDPhysics.PL_TS.size() > 0 && abs((int)(TACPhysics.TAC_TS[i] - ZDDPhysics.PL_TS[0]) -61) <4)
if
(
TACPhysics
.
TAC_Name
[
i
].
compare
(
"TAC_CATS_PL"
)
==
0
&&
cut_Cr
->
IsInside
(
TACPhysics
.
TAC_Time
[
i
],
ZDDPhysics
.
ICSum
)
&&
ZDDPhysics
.
PL_TS
.
size
()
>
0
)
TACCondition1
=
true
;
}
if
(
!
TACCondition1
)
return
false
;
//
//if(!( abs(ZDDPhysics.ICSum - 6750) < 200)) // deuton et triton
// return false;
return
true
;
}
void
UnallocateVariables
(){
//for(int i = 0; i < 10; i++){
//PlasticRaw[i] = (*PlasticRaw_ )[i];
//PlasticRawTS[i] = (*PlasticRaw_TS_)[i];
//}
//TAC_CATS_HF = **TAC_CATS_HF_;
//TAC_CATS_HFTS = **TAC_CATS_HF_TS_;
//TAC_CATS_EXOGAM = **TAC_CATS_EXOGAM_;
//TAC_CATS_EXOGAM = **TAC_CATS_EXOGAM_TS_;
//TAC_MMG_CATS2 = **TAC_MMG_CATS2_;
//TAC_MMG_CATS2TS = **TAC_MMG_CATS2_TS_;
//TAC_MMG_CATS1 = **TAC_MMG_CATS1_;
//TAC_MMG_CATS1TS = **TAC_MMG_CATS1_TS_;
//TAC_MMG_EXOGAM = **TAC_MMG_EXOGAM_;
//TAC_MMG_EXOGAMTS = **TAC_MMG_EXOGAM_TS_;
//TAC_CATS1_CATS2 = **TAC_CATS1_CATS2_;
//TAC_CATS1_CATS2TS = **TAC_CATS1_CATS2_TS_;
//TAC_D4_CATS1 = **TAC_D4_CATS1_;
//TAC_D4_CATS1TS = **TAC_D4_CATS1_TS_;
//TAC_PL_1 = **TAC_PL_1_;
//TAC_PL_1TS = **TAC_PL_1_TS_;
//TAC_PL_2 = **TAC_PL_2_;
//TAC_PL_2TS = **TAC_PL_2_TS_;
//TAC_PL_3 = **TAC_PL_3_;
//TAC_PL_3TS = **TAC_PL_3_TS_;
//TAC_PL_4 = **TAC_PL_4_;
//TAC_PL_4TS = **TAC_PL_4_TS_;
//TAC_PL_5 = **TAC_PL_5_;
//TAC_PL_5TS = **TAC_PL_5_TS_;
M2_CsI_E_p
=
**
M2_CsI_E_p_
;
M2_CsI_E_d
=
**
M2_CsI_E_d_
;
M2_CsI_E_t
=
**
M2_CsI_E_t_
;
M2_CsI_E_a
=
**
M2_CsI_E_a_
;
M2_ELab
=
**
M2_ELab_
;
M2_ThetaLab
=
**
M2_ThetaLab_
;
M2_ThetaCM
=
**
M2_ThetaCM_
;
M2_X
=
**
M2_X_
;
M2_Y
=
**
M2_Y_
;
M2_Z
=
**
M2_Z_
;
// M2_dE = **M2_dE_ ;
Must2Physics
=
**
Must2Physics_
;
CATSPhysics
=
**
CATSPhysics_
;
ExogamPhysics
=
**
ExogamPhysics_
;
}
void
DrawEx
(){
// c->Add("./data/NPRoot/Analysis/npa362.root");
// c->Add("./ssd/NPA_33S.root");
// c->Add("./ssd/NPA_34S.root");
// c->Add("./ssd/NPA_359.root");
//c->Add("./ssd/NPA_360.root");
//c->Add("./ssd/NPA_361.root");
//c->Add("./ssd/NPA_362.root");
c
->
Add
(
"./ssd/NPA_364.root"
);
// c->Add("./data/NPRoot/Analysis/NPA_34S.root");
// c->Add("./data/NPRoot/Analysis/NPA_359.root");
//c->Add("./data/NPRoot/Analysis/NPA_360.root");
//c->Add("./data/NPRoot/Analysis/NPA_361.root");
// c->Add("./data/NPRoot/Analysis/NPA_364.root");
// c->Add("./data_local/NPA_364.root");
//c->Add("/gold/nestar/data/GANIL/e805/NPRoot/Analysis/MUST_CSI_CATS_32*");
//c->Add("/gold/nestar/data/GANIL/e805/NPRoot/Analysis/MUST_CSI_CATS_33*");
//c->Add("/gold/nestar/data/GANIL/e805/NPRoot/Analysis/MUST_CSI_CATS_34*");
//c->Add("/gold/nestar/data/GANIL/e805/NPRoot/Analysis/MUST_CSI_CATS_359*");
//c->Add("/gold/nestar/data/GANIL/e805/NPRoot/Analysis/MUST_CSI_CATS_360*");
//c->Add("/gold/nestar/data/GANIL/e805/NPRoot/Analysis/MUST_CSI_CATS_361*");
//c->Add("/gold/nestar/data/GANIL/e805/NPRoot/Analysis/MUST_CSI_CATS_362*");
TreeReader
=
new
TTreeReader
(
c
);
GATCONFMASTER_
=
new
TTreeReaderValue
<
std
::
vector
<
unsigned
int
>>
(
*
TreeReader
,
"GATCONF"
);
// M2_TelescopeM_ = new TTreeReaderValue<unsigned short>(*TreeReader,"M2_TelescopeM");
M2_CsI_E_p_
=
new
TTreeReaderValue
<
std
::
vector
<
double
>>
(
*
TreeReader
,
"M2_CsI_E_p"
);
M2_CsI_E_d_
=
new
TTreeReaderValue
<
std
::
vector
<
double
>>
(
*
TreeReader
,
"M2_CsI_E_d"
);
M2_CsI_E_t_
=
new
TTreeReaderValue
<
std
::
vector
<
double
>>
(
*
TreeReader
,
"M2_CsI_E_t"
);
M2_CsI_E_a_
=
new
TTreeReaderValue
<
std
::
vector
<
double
>>
(
*
TreeReader
,
"M2_CsI_E_a"
);
M2_ELab_
=
new
TTreeReaderValue
<
std
::
vector
<
double
>>
(
*
TreeReader
,
"M2_ELab"
);
M2_ThetaLab_
=
new
TTreeReaderValue
<
std
::
vector
<
double
>>
(
*
TreeReader
,
"M2_ThetaLab"
);
M2_ThetaCM_
=
new
TTreeReaderValue
<
std
::
vector
<
double
>>
(
*
TreeReader
,
"M2_ThetaCM"
);
M2_X_
=
new
TTreeReaderValue
<
std
::
vector
<
double
>>
(
*
TreeReader
,
"M2_X"
);
M2_Y_
=
new
TTreeReaderValue
<
std
::
vector
<
double
>>
(
*
TreeReader
,
"M2_Y"
);
M2_Z_
=
new
TTreeReaderValue
<
std
::
vector
<
double
>>
(
*
TreeReader
,
"M2_Z"
);
// M2_dE_ = new TTreeReaderValue<std::vector<double>>(*TreeReader,"M2_dE");
Must2Physics_
=
new
TTreeReaderValue
<
TMust2Physics
>
(
*
TreeReader
,
"MUST2"
);
CATSPhysics_
=
new
TTreeReaderValue
<
TCATSPhysics
>
(
*
TreeReader
,
"CATS"
);
ZDDPhysics_
=
new
TTreeReaderValue
<
TZDDPhysics
>
(
*
TreeReader
,
"ZDD"
);
ExogamPhysics_
=
new
TTreeReaderValue
<
TExogamPhysics
>
(
*
TreeReader
,
"Exogam"
);
TACPhysics_
=
new
TTreeReaderValue
<
TTACPhysics
>
(
*
TreeReader
,
"TAC"
);
// Cr48_pd.SetExcitationHeavy(0.472);
TH2F
*
hExd_EGam
=
new
TH2F
(
"hExd_EGam"
,
"hExd_EGam"
,
1000
,
-
20
,
20
,
10000
,
0
,
10000
);
TH1F
*
hExd_WithCATS
=
new
TH1F
(
"hExd_w"
,
"hExd_w"
,
450
,
-
5
,
25
);
TH1F
*
hExd_WithCATSb
=
new
TH1F
(
"hExd_wb"
,
"hExd_wb"
,
450
,
-
5
,
25
);
TH1F
*
hExd_WithCATSs
=
new
TH1F
(
"hExd_ws"
,
"hExd_ws"
,
450
,
-
5
,
25
);
TH1F
*
hExd_NoCATS
=
new
TH1F
(
"hExd_n"
,
"hExd_n"
,
450
,
-
5
,
25
);
TH2F
*
hELTLd_s
=
new
TH2F
(
"hELTL_s"
,
"hELTL_s"
,
800
,
0
,
40
,
1000
,
0
,
200
);
TH2F
*
hExTLd
=
new
TH2F
(
"hExTLd"
,
"hExTLd"
,
800
,
0
,
40
,
200
,
-
5
,
15
);
TH1F
*
hExt
=
new
TH1F
(
"hExt"
,
"hExt"
,
450
,
-
5
,
25
);
TH1F
*
hExd_gatedgama
=
new
TH1F
(
"hExd_gatedgama"
,
"hExd_ws"
,
450
,
-
5
,
25
);
std
::
map
<
unsigned
int
,
TH1F
*>
hExd_WithCATS_m
;
std
::
map
<
unsigned
int
,
TH1F
*>
hExd_WithCATSb_m
;
std
::
map
<
unsigned
int
,
TH1F
*>
hExd_WithCATSs_m
;
std
::
map
<
unsigned
int
,
std
::
map
<
unsigned
int
,
TH1F
*>*>
hExd_WithCATSs_CSI
;
std
::
map
<
unsigned
int
,
TH1F
*>
hExd_NoCATS_m
;
std
::
map
<
unsigned
int
,
TH2F
*>
hELTLd_s_m
;
std
::
map
<
unsigned
int
,
TH2F
*>
hExTLd_m
;
std
::
map
<
unsigned
int
,
TH1F
*>
hExt_m
;
for
(
unsigned
int
i
=
1
;
i
<=
4
;
i
++
){
hExd_WithCATS_m
[
i
]
=
new
TH1F
(
Form
(
"hExd_w_%i"
,
i
),
Form
(
"hExd_w_%i"
,
i
),
450
,
-
5
,
25
);
hExd_WithCATSb_m
[
i
]
=
new
TH1F
(
Form
(
"hExd_wb_%i"
,
i
),
Form
(
"hExd_wb_%i"
,
i
),
450
,
-
5
,
25
);
hExd_WithCATSs_m
[
i
]
=
new
TH1F
(
Form
(
"hExd_ws_%i"
,
i
),
Form
(
"hExd_ws_%i"
,
i
),
450
,
-
5
,
25
);
hExd_NoCATS_m
[
i
]
=
new
TH1F
(
Form
(
"hExd_n_%i"
,
i
),
Form
(
"hExd_n_%i"
,
i
),
450
,
-
5
,
25
);
hELTLd_s_m
[
i
]
=
new
TH2F
(
Form
(
"hELTLd_s_%i"
,
i
),
Form
(
"hELTLd_s_%i"
,
i
),
800
,
0
,
40
,
1000
,
0
,
200
);
hExTLd_m
[
i
]
=
new
TH2F
(
Form
(
"hExTLd_%i"
,
i
),
Form
(
"hExTLd_%i"
,
i
),
800
,
0
,
40
,
200
,
-
5
,
15
);
hExt_m
[
i
]
=
new
TH1F
(
Form
(
"hExt_%i"
,
i
),
Form
(
"hExt_%i"
,
i
),
450
,
-
5
,
25
);
hExd_WithCATSs_CSI
[
i
]
=
new
std
::
map
<
unsigned
int
,
TH1F
*>
;
for
(
unsigned
int
j
=
1
;
j
<=
16
;
j
++
){
(
*
hExd_WithCATSs_CSI
[
i
])[
j
]
=
new
TH1F
(
Form
(
"hExd_ws_T%i_CSI%i"
,
i
,
j
),
Form
(
"hExd_ws_T%i_CSI%i"
,
i
,
j
),
300
,
-
5
,
25
);
}
}
// TH1F* hExdNoEloss = new TH1F("hExdNoEloss","hExdNoEloss",450,-5,25);
TH2F
*
hKine
=
new
TH2F
(
"hKine"
,
"hKine"
,
1000
,
0
,
100
,
1000
,
0
,
100
);
c
->
LoadTree
(
0
);
ULong64_t
GetEntries
=
c
->
GetEntries
();
if
(
!
GetEntries
){
printf
(
"ERROR in the Chain !!
\n
"
);
return
;
}
clock_t
start
=
clock
(),
current
,
end
;
while
(
TreeReader
->
Next
()){
Long64_t
cEntry
=
TreeReader
->
GetCurrentEntry
();;
if
(
cEntry
%
100000
==
0
){
current
=
clock
();
Double_t
Frac
=
1.0
*
cEntry
/
GetEntries
;
Double_t
Time
=
((
double
)
(
current
-
start
)
/
CLOCKS_PER_SEC
);
Double_t
TimeLeft
=
Time
*
(
1
/
Frac
-
1.
);
std
::
cout
<<
"
\r
Entry : "
<<
cEntry
<<
"/"
<<
GetEntries
<<
" --- "
<<
Form
(
"%.2f"
,
100.
*
cEntry
/
GetEntries
)
<<
" %"
<<
" --- "
<<
Form
(
"%.00f RunEvt/sec"
,
cEntry
/
Time
)
<<
" --- "
<<
" Time Left : "
<<
Form
(
"%d min "
,(
int
)
TimeLeft
/
60
)
<<
Form
(
"%01.00d sec"
,(
int
)
TimeLeft
%
60
)
<<
std
::
flush
;
}
if
(
TestEntry
()){
UnallocateVariables
();
// std::cout << "TESTEntry" << std::endl;
int
mult
=
Must2Physics
.
Si_E
.
size
();
// std::cout << mult << std::endl;
if
(
M2_CsI_E_d
.
size
()
==
1
&&
mult
==
1
){
double
ELab
=
Must2Physics
.
Si_E
[
0
];
double
ELab_t
=
Must2Physics
.
Si_E
[
0
];
double
ELab_w
,
ELab_n
,
ELab_wb
,
ELab_ws
;
double
TLab_w
,
TLab_n
,
TLab_wb
,
TLab_ws
;
double
Ex_w
,
Ex_n
,
Ex_wb
,
Ex_ws
;
if
(
M2_CsI_E_d
.
at
(
0
)
>
0
)
ELab
+=
M2_CsI_E_d
.
at
(
0
);
if
(
M2_CsI_E_t
.
at
(
0
)
>
0
)
ELab_t
+=
M2_CsI_E_t
.
at
(
0
);
double
t1
;
double
PositionOnTargetX1
;
double
PositionOnTargetY1
;
double
t2
;
double
PositionOnTargetX2
;
double
PositionOnTargetY2
;
// Add energy Loss...
if
(
CATSPhysics
.
PositionX
.
size
()
==
2
&&
CATSPhysics
.
PositionY
.
size
()
==
2
){
TVector3
InteractionPosition
(
M2_X
.
at
(
0
),
M2_Y
.
at
(
0
),
M2_Z
.
at
(
0
));
TVector3
BeamDirection
(
0
,
0
,
1
);
if
(
CATSPhysics
.
PositionX
.
size
()
==
2
){
t1
=
(
-
23
-
1090.1
)
/
(
-
23
-
1587.1
);
t2
=
(
0
-
1090.1
)
/
(
0
-
1587.1
);
if
(
CATSPhysics
.
DetNumber
[
0
]
==
1
&&
CATSPhysics
.
DetNumber
[
1
]
==
2
)
{
double
t
=
(
0
-
(
-
1587.1
))
/
(
-
1090.1
-
(
-
1587.1
));
// double t = (0-(-1587.1))/(1090.1);
PositionOnTargetX1
=
CATSPhysics
.
PositionX
[
0
]
-
2
+
(
CATSPhysics
.
PositionX
[
1
]
-
CATSPhysics
.
PositionX
[
0
]
-
2
)
*
t
;
PositionOnTargetY1
=
CATSPhysics
.
PositionY
[
0
]
+
(
CATSPhysics
.
PositionY
[
1
]
-
CATSPhysics
.
PositionY
[
0
])
*
t
;
// std::cout << PositionOnTargetX2 << " " << CATSPhysics.PositionOnTargetX << std::endl;
TVector3
BeamImpactCATS
(
CATSPhysics
.
PositionOnTargetX
,
CATSPhysics
.
PositionOnTargetY
,
0
);
// TVector3 BeamImpactCATS_s(CATSPhysics.PositionOnTargetX-2,CATSPhysics.PositionOnTargetY,0);
// TVector3 BeamImpactCATS(PositionOnTargetX2,PositionOnTargetY2,0);
TVector3
BeamImpactCATS_s
(
PositionOnTargetX1
,
PositionOnTargetY1
,
0
);
TVector3
BeamImpactCATS_NoCATS
(
0
,
0
,
0
);
TVector3
BeamDirection_CATS
(
CATSPhysics
.
PositionX
[
1
]
-
CATSPhysics
.
PositionX
[
0
],
CATSPhysics
.
PositionY
[
1
]
-
CATSPhysics
.
PositionY
[
0
],
CATSPhysics
.
PositionZ
[
1
]
-
CATSPhysics
.
PositionZ
[
0
]);
//std::cout << BeamDirection_CATS.X() << " " << BeamDirection_CATS.Y() << " " << BeamDirection_CATS.Z() << std::endl;
//TVector3 HitDirection_WithCATS = Must2Physics.GetPositionOfInteraction(0) - BeamImpactCATS;
//TVector3 HitDirection_NoCATS = Must2Physics.GetPositionOfInteraction(0);
TVector3
HitDirection_WithCATS
=
InteractionPosition
-
BeamImpactCATS
;
TVector3
HitDirection_WithCATS_s
=
InteractionPosition
-
BeamImpactCATS_s
;
TVector3
HitDirection_NoCATS
=
InteractionPosition
-
BeamImpactCATS_NoCATS
;
double
ThetaNormalTarget_WithCATS
=
HitDirection_WithCATS
.
Angle
(
TVector3
(
0
,
0
,
1
));
double
ThetaNormalTarget_WithCATS_s
=
HitDirection_WithCATS_s
.
Angle
(
TVector3
(
0
,
0
,
1
));
double
ThetaNormalTarget_NoCATS
=
HitDirection_NoCATS
.
Angle
(
TVector3
(
0
,
0
,
1
));
// std::cout << ThetaNormalTarget_WithCATS << " " << ThetaNormalTarget_NoCATS << " " << CATSPhysics.PositionOnTargetX << " " << CATSPhysics.PositionOnTargetY<< std::endl;
if
(
cut_deuton
->
IsInside
(
M2_CsI_E_d
.
at
(
0
),
Must2Physics
.
Si_E
[
0
])
&&
CATSPhysics
.
PositionX
.
size
()
==
2
&&
CATSPhysics
.
PositionY
.
size
()
==
2
){
// std::cout << "TEST" << std::endl;
//hExdNoEloss->Fill(a.ReconstructRelativistic(ELab, M2_ThetaLab->at(0)*deg));
// ELab = deuteron_CH2.EvaluateInitialEnergy(ELab, TargetThickness*0.5, ThetaNormalTarget_WithCATS);
ELab_n
=
deuteron_CH2
.
EvaluateInitialEnergy
(
ELab
,
TargetThickness
*
0.5
,
ThetaNormalTarget_NoCATS
);
ELab_w
=
deuteron_CH2
.
EvaluateInitialEnergy
(
ELab
,
TargetThickness
*
0.5
,
ThetaNormalTarget_WithCATS
);
ELab_ws
=
deuteron_CH2
.
EvaluateInitialEnergy
(
ELab
,
TargetThickness
*
0.5
,
ThetaNormalTarget_WithCATS_s
);
TLab_n
=
HitDirection_NoCATS
.
Angle
(
BeamDirection
);
TLab_w
=
HitDirection_WithCATS
.
Angle
(
BeamDirection
);
TLab_ws
=
HitDirection_WithCATS_s
.
Angle
(
BeamDirection
);
Ex_n
=
Cr48_pd
.
ReconstructRelativistic
(
ELab_n
,
TLab_n
);
Ex_w
=
Cr48_pd
.
ReconstructRelativistic
(
ELab_w
,
TLab_w
);
Ex_ws
=
Cr48_pd
.
ReconstructRelativistic
(
ELab_ws
,
TLab_ws
);
Ex_wb
=
Cr48_pd
.
ReconstructRelativistic
(
deuteron_CH2
.
EvaluateInitialEnergy
(
ELab
,
TargetThickness
*
0.5
,
ThetaNormalTarget_WithCATS
),
HitDirection_WithCATS
.
Angle
(
BeamDirection_CATS
));
TLorentzVector
PHeavy_pd
=
Cr48_pd
.
LorentzAfterReaction
(
ELab_ws
,
TLab_ws
);
// TLorentzVector PHeavy_pt = Cr48_pt.LorentzAfterReaction(Energy["triton"] , M2_ThetaLab[countMust2]);
// TLorentzVector PHeavy_p3He = Reaction_pd->LorentzAfterReaction(Energy["alpha"] , M2_ThetaLab[countMust2]);
double
Beta_pd
=
PHeavy_pd
.
Beta
();
// std::cout << Beta_pd << std::endl;
// Beta_pt.push_back(PHeavy_pt.Beta());
// Beta_p3He.push_back(PHeavy_p3He.Beta());
int
EXO_AB_size
=
ExogamPhysics
.
E_AB
.
size
();
for
(
unsigned
int
countExo
=
0
;
countExo
<
EXO_AB_size
;
countExo
++
){
// Doing Doppler correction only if one reaction occurs
hExd_EGam
->
Fill
(
Ex_ws
,
Doppler_Correction
(
ExogamPhysics
.
Theta_D
[
countExo
],
ExogamPhysics
.
Phi_D
[
countExo
],
0
,
0
,
Beta_pd
,
ExogamPhysics
.
E_AB
[
countExo
]));
}
if
(
ExogamPhysics
.
E_AB
.
size
()
>
0
)
hExd_gatedgama
->
Fill
(
Ex_w
);
hExd_WithCATS
->
Fill
(
Ex_w
);
hExd_WithCATSb
->
Fill
(
Ex_wb
);
hExd_WithCATSs
->
Fill
(
Ex_ws
);
hExd_NoCATS
->
Fill
(
Ex_n
);
hELTLd_s
->
Fill
(
TLab_ws
*
180
/
3.14
,
ELab_ws
);
hExd_WithCATS_m
[
Must2Physics
.
TelescopeNumber
[
0
]]
->
Fill
(
Ex_w
);
hExd_WithCATSb_m
[
Must2Physics
.
TelescopeNumber
[
0
]]
->
Fill
(
Ex_wb
);
hExd_WithCATSs_m
[
Must2Physics
.
TelescopeNumber
[
0
]]
->
Fill
(
Ex_ws
);
hExd_NoCATS_m
[
Must2Physics
.
TelescopeNumber
[
0
]]
->
Fill
(
Ex_n
);
hELTLd_s_m
[
Must2Physics
.
TelescopeNumber
[
0
]]
->
Fill
(
TLab_ws
*
180
/
3.14
,
ELab_ws
);
hExTLd
->
Fill
(
TLab_n
*
180
/
3.14
,
Ex_n
);
hExTLd_m
[
Must2Physics
.
TelescopeNumber
[
0
]]
->
Fill
(
TLab_n
*
180
/
3.14
,
Ex_n
);
if
(
Must2Physics
.
CsI_N
[
0
]
>
0
)
(
*
hExd_WithCATSs_CSI
[
Must2Physics
.
TelescopeNumber
[
0
]])[
Must2Physics
.
CsI_N
[
0
]]
->
Fill
(
Ex_ws
);
// hKine->Fill(M2_ThetaLab.,ELab);
}
if
(
cut_triton
->
IsInside
(
M2_CsI_E_t
.
at
(
0
),
Must2Physics
.
Si_E
[
0
])){
ELab_t
=
triton_CH2
.
EvaluateInitialEnergy
(
ELab_t
,
TargetThickness
*
0.5
,
ThetaNormalTarget_WithCATS
);
ELab_t
=
Cr48_pt
.
ReconstructRelativistic
(
triton_CH2
.
EvaluateInitialEnergy
(
ELab
,
TargetThickness
*
0.5
,
ThetaNormalTarget_WithCATS
),
HitDirection_WithCATS_s
.
Angle
(
BeamDirection
));
hExt
->
Fill
(
ELab_t
);
hExt_m
[
Must2Physics
.
TelescopeNumber
[
0
]]
->
Fill
(
ELab_t
);
}
}
}
}
}
}
}
TFile
*
fout
=
new
TFile
(
"./data/NPRoot/Analysis/DrawEx10_3_shifted.root"
,
"RECREATE"
);
hExd_gatedgama
->
Write
(
""
);
hExd_EGam
->
Write
(
""
);
hExd_WithCATS
->
Write
(
""
);
hExd_WithCATSb
->
Write
(
""
);
hExd_WithCATSs
->
Write
(
""
);
hExd_NoCATS
->
Write
(
""
);
hELTLd_s
->
Write
(
""
);
hExTLd
->
Write
(
""
);
hExt
->
Write
(
""
);
for
(
unsigned
int
i
=
1
;
i
<=
4
;
i
++
){
hExd_WithCATS_m
[
i
]
->
Write
(
""
);
hExd_WithCATSb_m
[
i
]
->
Write
(
""
);
hExd_WithCATSs_m
[
i
]
->
Write
(
""
);
hExd_NoCATS_m
[
i
]
->
Write
(
""
);
hELTLd_s_m
[
i
]
->
Write
(
""
);
hExTLd_m
[
i
]
->
Write
(
""
);
hExt_m
[
i
]
->
Write
(
""
);
for
(
unsigned
int
j
=
1
;
j
<=
16
;
j
++
){
(
*
hExd_WithCATSs_CSI
[
i
])[
j
]
->
Write
(
""
);
}
}
// hKine->Write("");
Cr48_pd
.
GetKinematicLine3
()
->
Write
(
""
);
fout
->
Close
();
TCanvas
*
c
[
4
];
TCanvas
*
csum
[
4
];
for
(
unsigned
int
i
=
0
;
i
<=
3
;
i
++
){
c
[
i
]
=
new
TCanvas
();
csum
[
i
]
=
new
TCanvas
();
c
[
i
]
->
Divide
(
4
,
4
);
csum
[
i
]
->
Divide
(
2
,
2
);
for
(
unsigned
int
j
=
1
;
j
<=
4
;
j
++
){
csum
[
i
]
->
cd
(
j
);
if
(
j
==
1
){
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
2
]
->
Add
((
*
hExd_WithCATSs_CSI
[
i
+
1
])[
5
]);
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
2
]
->
Draw
(
""
);
}
else
if
(
j
==
2
){
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
3
]
->
Add
((
*
hExd_WithCATSs_CSI
[
i
+
1
])[
6
]);
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
3
]
->
Add
((
*
hExd_WithCATSs_CSI
[
i
+
1
])[
9
]);
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
3
]
->
Draw
(
""
);
}
else
if
(
j
==
3
){
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
4
]
->
Add
((
*
hExd_WithCATSs_CSI
[
i
+
1
])[
7
]);
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
4
]
->
Add
((
*
hExd_WithCATSs_CSI
[
i
+
1
])[
10
]);
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
4
]
->
Add
((
*
hExd_WithCATSs_CSI
[
i
+
1
])[
13
]);
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
4
]
->
Draw
(
""
);
}
else
if
(
j
==
4
){
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
8
]
->
Add
((
*
hExd_WithCATSs_CSI
[
i
+
1
])[
11
]);
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
8
]
->
Add
((
*
hExd_WithCATSs_CSI
[
i
+
1
])[
14
]);
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
8
]
->
Draw
(
""
);
}
}
for
(
unsigned
int
j
=
1
;
j
<=
16
;
j
++
){
c
[
i
]
->
cd
(
j
);
(
*
hExd_WithCATSs_CSI
[
i
+
1
])[
j
]
->
Draw
(
""
);
}
c
[
i
]
->
Draw
(
""
);
csum
[
i
]
->
Draw
(
""
);
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Projects/E805/DrawEx.h
0 → 100644
+
161
−
0
View file @
ccb30db9
#include
"NPReaction.h"
#include
"TChain.h"
#include
"TCutG.h"
#include
"TFile.h"
#include
"TTreeReader.h"
#include
"TTreeReaderArray.h"
#include
"TMust2Physics.h"
#include
"TExogamPhysics.h"
#include
"TZDDPhysics.h"
#include
"TTACPhysics.h"
#include
"TCATSPhysics.h"
unsigned
short
M2_TelescopeM
;
std
::
vector
<
double
>
M2_Ex_p
;
std
::
vector
<
double
>
M2_Ex_d
;
std
::
vector
<
double
>
M2_Ex_t
;
std
::
vector
<
double
>
M2_Ex_a
;
std
::
vector
<
double
>
M2_CsI_E_p
;
std
::
vector
<
double
>
M2_CsI_E_d
;
std
::
vector
<
double
>
M2_CsI_E_t
;
std
::
vector
<
double
>
M2_CsI_E_a
;
std
::
vector
<
double
>
M2_ExNoBeam
;
std
::
vector
<
double
>
M2_ExNoProton
;
std
::
vector
<
double
>
M2_EDC
;
std
::
vector
<
double
>
M2_ELab
;
std
::
vector
<
double
>
M2_ThetaLab
;
std
::
vector
<
double
>
M2_ThetaCM
;
std
::
vector
<
double
>
M2_X
;
std
::
vector
<
double
>
M2_Y
;
std
::
vector
<
double
>
M2_Z
;
std
::
vector
<
double
>
M2_dE
;
TTreeReaderValue
<
unsigned
short
>*
M2_TelescopeM_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_Ex_p_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_Ex_d_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_Ex_t_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_Ex_a_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_CsI_E_p_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_CsI_E_d_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_CsI_E_t_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_CsI_E_a_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_ExNoBeam_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_ExNoProton_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_EDC_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_ELab_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_ThetaLab_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_ThetaCM_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_X_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_Y_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_Z_
;
TTreeReaderValue
<
std
::
vector
<
double
>>*
M2_dE_
;
unsigned
short
IC_ZDDRaw
[
6
];
TTreeReaderArray
<
UShort_t
>*
IC_ZDDRaw_
;
unsigned
long
long
IC_ZDDRawTS
[
6
];
TTreeReaderArray
<
ULong64_t
>*
IC_ZDDRaw_TS_
;
float
ICCal
[
4
];
unsigned
short
TAC_CATS_PL
;
TTreeReaderValue
<
UShort_t
>*
TAC_CATS_PL_
;
unsigned
long
long
TAC_CATS_PLTS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_CATS_PL_TS_
;
unsigned
short
TAC_CATS_HF
;
TTreeReaderValue
<
UShort_t
>*
TAC_CATS_HF_
;
unsigned
long
long
TAC_CATS_HFTS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_CATS_HF_TS_
;
unsigned
short
TAC_CATS_EXOGAM
;
TTreeReaderValue
<
UShort_t
>*
TAC_CATS_EXOGAM_
;
unsigned
long
long
TAC_CATS_EXOGAMTS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_CATS_EXOGAM_TS_
;
unsigned
short
TAC_MMG_CATS2
;
TTreeReaderValue
<
UShort_t
>*
TAC_MMG_CATS2_
;
unsigned
long
long
TAC_MMG_CATS2TS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_MMG_CATS2_TS_
;
unsigned
short
TAC_MMG_CATS1
;
TTreeReaderValue
<
UShort_t
>*
TAC_MMG_CATS1_
;
unsigned
long
long
TAC_MMG_CATS1TS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_MMG_CATS1_TS_
;
unsigned
short
TAC_MMG_EXOGAM
;
TTreeReaderValue
<
UShort_t
>*
TAC_MMG_EXOGAM_
;
unsigned
long
long
TAC_MMG_EXOGAMTS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_MMG_EXOGAM_TS_
;
unsigned
short
TAC_CATS1_CATS2
;
TTreeReaderValue
<
UShort_t
>*
TAC_CATS1_CATS2_
;
unsigned
long
long
TAC_CATS1_CATS2TS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_CATS1_CATS2_TS_
;
unsigned
short
TAC_D4_CATS1
;
TTreeReaderValue
<
UShort_t
>*
TAC_D4_CATS1_
;
unsigned
long
long
TAC_D4_CATS1TS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_D4_CATS1_TS_
;
unsigned
short
TAC_PL_1
;
TTreeReaderValue
<
UShort_t
>*
TAC_PL_1_
;
unsigned
long
long
TAC_PL_1TS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_PL_1_TS_
;
unsigned
short
TAC_PL_2
;
TTreeReaderValue
<
UShort_t
>*
TAC_PL_2_
;
unsigned
long
long
TAC_PL_2TS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_PL_2_TS_
;
unsigned
short
TAC_PL_3
;
TTreeReaderValue
<
UShort_t
>*
TAC_PL_3_
;
unsigned
long
long
TAC_PL_3TS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_PL_3_TS_
;
unsigned
short
TAC_PL_4
;
TTreeReaderValue
<
UShort_t
>*
TAC_PL_4_
;
unsigned
long
long
TAC_PL_4TS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_PL_4_TS_
;
unsigned
short
TAC_PL_5
;
TTreeReaderValue
<
UShort_t
>*
TAC_PL_5_
;
unsigned
long
long
TAC_PL_5TS
;
TTreeReaderValue
<
ULong64_t
>*
TAC_PL_5_TS_
;
std
::
vector
<
unsigned
int
>
GATCONFMASTER
;
TTreeReaderValue
<
std
::
vector
<
unsigned
int
>>*
GATCONFMASTER_
;
unsigned
short
DATATRIG_CATS
;
TTreeReaderValue
<
unsigned
short
>*
DATATRIG_CATS_
;
unsigned
short
PlasticRaw
[
10
];
TTreeReaderArray
<
UShort_t
>*
PlasticRaw_
;
unsigned
long
long
PlasticRawTS
[
10
];
TTreeReaderArray
<
ULong64_t
>*
PlasticRaw_TS_
;
TChain
*
c
=
new
TChain
(
"PhysicsTree"
);
TTreeReader
*
TreeReader
;
TMust2Physics
Must2Physics
;
TExogamPhysics
ExogamPhysics
;
TCATSPhysics
CATSPhysics
;
TZDDPhysics
ZDDPhysics
;
TTACPhysics
TACPhysics
;
TTreeReaderValue
<
TCATSPhysics
>
*
CATSPhysics_
;
TTreeReaderValue
<
TExogamPhysics
>
*
ExogamPhysics_
;
TTreeReaderValue
<
TTACPhysics
>
*
TACPhysics_
;
TTreeReaderValue
<
TZDDPhysics
>
*
ZDDPhysics_
;
TTreeReaderValue
<
TMust2Physics
>
*
Must2Physics_
;
TFile
*
f_cut_deuton
=
new
TFile
(
"./CUT_deuton.root"
);
TCutG
*
cut_deuton
=
(
TCutG
*
)
f_cut_deuton
->
FindObjectAny
(
"CUT_deuton"
);
TFile
*
f_cut_triton
=
new
TFile
(
"./CUT_triton.root"
);
TCutG
*
cut_triton
=
(
TCutG
*
)
f_cut_triton
->
FindObjectAny
(
"CUT_triton"
);
TFile
*
f_cut_Cr
=
new
TFile
(
"./CUT_Cr.root"
);
TCutG
*
cut_Cr
=
(
TCutG
*
)
f_cut_Cr
->
FindObjectAny
(
"CUTCr"
);
//NPL::Reaction Cr48_pd("48Cr(p,d)47Cr@1511MeV");
//NPL::Reaction Cr48_pt("48Cr(p,t)46Cr@1511MeV");
NPL
::
Reaction
Cr48_pd
(
"48Cr(p,d)47Cr@1620MeV"
);
NPL
::
Reaction
Cr48_pt
(
"48Cr(p,t)46Cr@1620MeV"
);
double
TargetThickness
=
53
*
micrometer
;
NPL
::
EnergyLoss
deuteron_CH2
=
NPL
::
EnergyLoss
(
"deuteron_CH2.G4table"
,
"G4table"
,
100
);
NPL
::
EnergyLoss
triton_CH2
=
NPL
::
EnergyLoss
(
"triton_CH2.G4table"
,
"G4table"
,
100
);
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment