Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
go4egor
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
go4egor
Commits
6d91d5b3
Commit
6d91d5b3
authored
Sep 11, 2018
by
Vratislav Chudoba
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
System of coordinates in MWPC's inverted
parent
b387d691
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
178 additions
and
75 deletions
+178
-75
fillChain.cxx
analysis/fillChain.cxx
+86
-63
showBananasHe.cxx
analysis/showBananasHe.cxx
+59
-0
showBeam.cxx
analysis/showBeam.cxx
+33
-12
No files found.
analysis/fillChain.cxx
View file @
6d91d5b3
...
@@ -24,7 +24,7 @@ Int_t GetClustersMWPC(unsigned short n, unsigned short *x)
...
@@ -24,7 +24,7 @@ Int_t GetClustersMWPC(unsigned short n, unsigned short *x)
return
clusters
;
return
clusters
;
}
//--------------------------------------------------------------------
}
//--------------------------------------------------------------------
Double_t
GetClusterPositionMWPC
(
unsigned
short
n
,
unsigned
short
*
x
,
Float_t
planeOffset
=
0.
)
Double_t
GetClusterPositionMWPC
(
unsigned
short
n
,
unsigned
short
*
x
,
Float_t
wireStep
,
Float_t
planeOffset
=
0.
)
{
{
Double_t
position
=
-
100.
;
Double_t
position
=
-
100.
;
...
@@ -34,7 +34,9 @@ Double_t GetClusterPositionMWPC(unsigned short n, unsigned short *x, Float_t pla
...
@@ -34,7 +34,9 @@ Double_t GetClusterPositionMWPC(unsigned short n, unsigned short *x, Float_t pla
// if(n == 0) clusters = 0.;
// if(n == 0) clusters = 0.;
if
(
n
>
0
&&
n
<=
32
)
if
(
n
>
0
&&
n
<=
32
)
{
{
position
=
(
x
[
0
]
+
n
/
2.
+
0.5
)
*
1.25
-
20.
+
planeOffset
;
// x2p = (revent->x2[0] + 0.5 - 16)*kMWPCwireStepX2 + MWPC2_X_offset;
position
=
(
x
[
0
]
+
n
/
2.
+
0.5
-
16
)
*
wireStep
+
planeOffset
;
// cout << n << endl;
// cout << n << endl;
}
}
return
position
;
return
position
;
...
@@ -271,16 +273,24 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
...
@@ -271,16 +273,24 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
// Parameters related to geometry
// Parameters related to geometry
///////////////////////////////////////////////////
///////////////////////////////////////////////////
//all distances in mm
//MWPC
const
Float_t
kMWPCz1
=
-
815.
;
//z coordinate of the center of MWPC1
const
Float_t
kMWPCz2
=
-
270.
;
//z coordinate of the center of MWPC2
//MWPC //todo: convert to minus
//step between two wires;
const
Float_t
l12
=
546.
;
//z coordinate of the center of MWPC1
//sign mean onward (+) or rearward (-) to physical axis
const
Float_t
lt
=
270.
;
//z coordinate of the center of MWPC2
const
Float_t
kMWPCwireStepX1
=
-
1.25
;
const
Float_t
kMWPCwireStepY1
=
1.25
;
//step between two wires
const
Float_t
kMWPCwireStepX2
=
-
1.25
;
//step between two wires
const
Float_t
kMWPCwireStepY2
=
1.25
;
//step between two wires
//offsets taken from S. Krupko
//offsets taken from S. Krupko
const
Float_t
MWPC1_X_offset
=
-
1.
0
;
const
Float_t
MWPC1_X_offset
=
-
1.
19
;
const
Float_t
MWPC1_Y_offset
=
-
2.1
375
;
const
Float_t
MWPC1_Y_offset
=
-
2.1
2
;
const
Float_t
MWPC2_X_offset
=
0.2
;
const
Float_t
MWPC2_X_offset
=
0.2
;
const
Float_t
MWPC2_Y_offset
=
-
1.
125
;
const
Float_t
MWPC2_Y_offset
=
-
1.
02
;
//left telescope
//left telescope
const
Float_t
z1mm
=
230.
;
const
Float_t
z1mm
=
230.
;
...
@@ -289,8 +299,8 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
...
@@ -289,8 +299,8 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
const
Float_t
yThinOffset
=
-
1.8
;
const
Float_t
yThinOffset
=
-
1.8
;
//
todo
: add sign taking into account direction of numbering
//
TODO
: add sign taking into account direction of numbering
const
Int_t
kSQL_X_strips
=
32
;
const
Int_t
kSQL_X_strips
=
-
32
;
const
Int_t
kSQL_Y_strips
=
16
;
const
Int_t
kSQL_Y_strips
=
16
;
const
Int_t
kSQL_20_strips
=
16
;
const
Int_t
kSQL_20_strips
=
16
;
...
@@ -393,6 +403,8 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
...
@@ -393,6 +403,8 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
if
(
trigger
!=
3
)
continue
;
if
(
trigger
!=
3
)
continue
;
//reset values to be written
SQ20Esum
=
0.
;
SQ20Esum
=
0.
;
SQLXEsum
=
0.
;
SQLXEsum
=
0.
;
SQLYEsum
=
0.
;
SQLYEsum
=
0.
;
...
@@ -415,6 +427,25 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
...
@@ -415,6 +427,25 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
CsI_L_veto
=
kFALSE
;
CsI_L_veto
=
kFALSE
;
expectedThinStrip
=
-
1
;
expectedThinStrip
=
-
1
;
x1p
=
-
100.
;
y1p
=
-
100.
;
x2p
=
-
100.
;
y2p
=
-
100.
;
xt
=
-
100.
;
yt
=
-
100.
;
x1c
=
-
100.
;
y1c
=
-
100.
;
x2c
=
-
100.
;
y2c
=
-
100.
;
xtc
=
-
100.
;
ytc
=
-
100.
;
x1MultC
=
0
;
y1MultC
=
0
;
x2MultC
=
0
;
y2MultC
=
0
;
///////////////////////////////////////////////
///////////////////////////////////////////////
//beam diagnostics
//beam diagnostics
...
@@ -444,83 +475,79 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
...
@@ -444,83 +475,79 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
///////////////////////////////////////////////
///////////////////////////////////////////////
x1p
=
-
100.
;
y1p
=
-
100.
;
x2p
=
-
100.
;
y2p
=
-
100.
;
xt
=
-
100.
;
yt
=
-
100.
;
x1c
=
-
100.
;
y1c
=
-
100.
;
x2c
=
-
100.
;
y2c
=
-
100.
;
xtc
=
-
100.
;
ytc
=
-
100.
;
x1MultC
=
0
;
y1MultC
=
0
;
x2MultC
=
0
;
y2MultC
=
0
;
Bool_t
flagMWPC
=
1
;
Bool_t
flagMWPC
=
1
;
tF5
=
0.125
*
(
revent
->
tF5
[
0
]
+
revent
->
tF5
[
1
]
+
revent
->
tF5
[
2
]
+
revent
->
tF5
[
3
])
/
4.
;
tF5
=
0.125
*
(
revent
->
tF5
[
0
]
+
revent
->
tF5
[
1
]
+
revent
->
tF5
[
2
]
+
revent
->
tF5
[
3
])
/
4.
;
// tF5 = 0.125*revent->tF5[0];
// tF5 = 0.125*revent->tF5[0];
//check for MWPC timing
//TODO: parametrization of time thresholds
if
(
revent
->
nx1
>
10
||
revent
->
ny1
>
10
||
revent
->
nx2
>
10
||
revent
->
ny2
>
10
)
flagMWPC
=
0
;
if
(
revent
->
nx1
>
10
||
revent
->
ny1
>
10
||
revent
->
nx2
>
10
||
revent
->
ny2
>
10
)
flagMWPC
=
0
;
if
((
0.125
*
revent
->
tMWPC
[
0
]
-
tF5
)
<
60
||
(
0.125
*
revent
->
tMWPC
[
0
]
-
tF5
)
>
77
)
flagMWPC
=
0
;
if
((
0.125
*
revent
->
tMWPC
[
0
]
-
tF5
)
<
60
||
(
0.125
*
revent
->
tMWPC
[
0
]
-
tF5
)
>
77
)
flagMWPC
=
0
;
if
((
0.125
*
revent
->
tMWPC
[
1
]
-
tF5
)
<
60
||
(
0.125
*
revent
->
tMWPC
[
1
]
-
tF5
)
>
80
)
flagMWPC
=
0
;
if
((
0.125
*
revent
->
tMWPC
[
1
]
-
tF5
)
<
60
||
(
0.125
*
revent
->
tMWPC
[
1
]
-
tF5
)
>
80
)
flagMWPC
=
0
;
if
((
0.125
*
revent
->
tMWPC
[
2
]
-
tF5
)
<
70
||
(
0.125
*
revent
->
tMWPC
[
2
]
-
tF5
)
>
90
)
flagMWPC
=
0
;
if
((
0.125
*
revent
->
tMWPC
[
2
]
-
tF5
)
<
70
||
(
0.125
*
revent
->
tMWPC
[
2
]
-
tF5
)
>
90
)
flagMWPC
=
0
;
if
((
0.125
*
revent
->
tMWPC
[
3
]
-
tF5
)
<
60
||
(
0.125
*
revent
->
tMWPC
[
3
]
-
tF5
)
>
80
)
flagMWPC
=
0
;
if
((
0.125
*
revent
->
tMWPC
[
3
]
-
tF5
)
<
60
||
(
0.125
*
revent
->
tMWPC
[
3
]
-
tF5
)
>
80
)
flagMWPC
=
0
;
if
(
flagMWPC
==
0
)
continue
;
//MWPC: work with wire multiplicity equal to 1
//MWPC: work with wire multiplicity equal to 1
if
(
flagMWPC
!=
0
)
{
if
(
flagMWPC
!=
0
)
{
if
(
revent
->
x1
[
0
]
<
1000
&&
revent
->
y1
[
0
]
<
1000
&&
revent
->
nx1
==
1
&&
revent
->
ny1
==
1
)
{
if
(
revent
->
x1
[
0
]
<
1000
&&
revent
->
y1
[
0
]
<
1000
&&
revent
->
nx1
==
1
&&
revent
->
ny1
==
1
)
{
x1p
=
(
revent
->
x1
[
0
]
+
0.5
)
*
1.25
-
20.
+
MWPC1_X_offset
;
//
x1p = (revent->x1[0]+0.5)*1.25-20. + MWPC1_X_offset;
y1p
=
(
revent
->
y1
[
0
]
+
0.5
)
*
1.25
-
20.
+
MWPC1_Y_offset
;
//
y1p = (revent->y1[0]+0.5)*1.25-20. + MWPC1_Y_offset;
// (x[0]+n/2.+0.5)*1.25-20.;
x1p
=
(
revent
->
x1
[
0
]
+
0.5
-
16
)
*
kMWPCwireStepX1
+
MWPC1_X_offset
;
y1p
=
(
revent
->
y1
[
0
]
+
0.5
-
16
)
*
kMWPCwireStepY1
+
MWPC1_Y_offset
;
}
}
if
(
revent
->
x2
[
0
]
<
1000
&&
revent
->
y2
[
0
]
<
1000
&&
revent
->
nx2
==
1
&&
revent
->
ny2
==
1
)
{
if
(
revent
->
x2
[
0
]
<
1000
&&
revent
->
y2
[
0
]
<
1000
&&
revent
->
nx2
==
1
&&
revent
->
ny2
==
1
)
{
x2p
=
(
revent
->
x2
[
0
]
+
0.5
)
*
1.25
-
20.
+
MWPC2_X_offset
;
// x2p = (revent->x2[0]+0.5)*1.25-20. + MWPC2_X_offset;
y2p
=
(
revent
->
y2
[
0
]
+
0.5
)
*
1.25
-
20.
+
MWPC2_Y_offset
;
// y2p = (revent->y2[0]+0.5)*1.25-20. + MWPC2_Y_offset;
x2p
=
(
revent
->
x2
[
0
]
+
0.5
-
16
)
*
kMWPCwireStepX2
+
MWPC2_X_offset
;
y2p
=
(
revent
->
y2
[
0
]
+
0.5
-
16
)
*
kMWPCwireStepY2
+
MWPC2_Y_offset
;
}
}
if
(
x1p
>
-
50.
&&
y1p
>
-
50.
&&
x2p
>
-
50.
&&
y2p
>
-
50.
)
{
if
(
x1p
>
-
50.
&&
y1p
>
-
50.
&&
x2p
>
-
50.
&&
y2p
>
-
50.
)
{
xt
=
x1p
-
(
x1p
-
x2p
)
*
((
l12
+
lt
)
/
l12
);
//
xt = x1p - (x1p - x2p)*((l12+lt)/l12);
yt
=
y1p
-
(
y1p
-
y2p
)
*
((
l12
+
lt
)
/
l12
);
//
yt = y1p - (y1p - y2p)*((l12+lt)/l12);
// xt = (l12*x1p + (l12+lt)*(x2p-x1p))/(l12 - (x2p-x1p)*TMath::Tan(TMath::DegToRad()*12.));
// xt = (l12*x1p + (l12+lt)*(x2p-x1p))/(l12 - (x2p-x1p)*TMath::Tan(TMath::DegToRad()*12.));
// yt = (y2p-y1p)*(xt-x1p)/(x2p-x1p) + y1p;
// yt = (y2p-y1p)*(xt-x1p)/(x2p-x1p) + y1p;
xt
=
x1p
-
(
x2p
-
x1p
)
*
kMWPCz1
/
(
kMWPCz2
-
kMWPCz1
);
yt
=
y1p
-
(
y2p
-
y1p
)
*
kMWPCz1
/
(
kMWPCz2
-
kMWPCz1
);
}
}
}
//if wire multiplicity == 1
}
//if wire multiplicity == 1
// cout << flagMWPC << endl;
// cout << flagMWPC << endl;
//MWPC: work with cluster multiplicity equal to
2
//MWPC: work with cluster multiplicity equal to
1
if
(
flagMWPC
!=
0
)
{
if
(
flagMWPC
!=
0
)
{
x1MultC
=
GetClustersMWPC
(
revent
->
nx1
,
revent
->
x1
);
x1MultC
=
GetClustersMWPC
(
revent
->
nx1
,
revent
->
x1
);
x2MultC
=
GetClustersMWPC
(
revent
->
nx2
,
revent
->
x2
);
x2MultC
=
GetClustersMWPC
(
revent
->
nx2
,
revent
->
x2
);
y1MultC
=
GetClustersMWPC
(
revent
->
ny1
,
revent
->
y1
);
y1MultC
=
GetClustersMWPC
(
revent
->
ny1
,
revent
->
y1
);
y2MultC
=
GetClustersMWPC
(
revent
->
ny2
,
revent
->
y2
);
y2MultC
=
GetClustersMWPC
(
revent
->
ny2
,
revent
->
y2
);
//set wire step as input parameter for the function
if
(
x1MultC
==
1
&&
y1MultC
==
1
)
{
if
(
x1MultC
==
1
&&
y1MultC
==
1
)
{
x1c
=
GetClusterPositionMWPC
(
revent
->
nx1
,
revent
->
x1
,
MWPC1_X_offset
);
x1c
=
GetClusterPositionMWPC
(
revent
->
nx1
,
revent
->
x1
,
kMWPCwireStepX1
,
MWPC1_X_offset
);
y1c
=
GetClusterPositionMWPC
(
revent
->
ny1
,
revent
->
y1
,
MWPC1_Y_offset
);
y1c
=
GetClusterPositionMWPC
(
revent
->
ny1
,
revent
->
y1
,
kMWPCwireStepY1
,
MWPC1_Y_offset
);
}
}
if
(
x2MultC
==
1
&&
y2MultC
==
1
)
{
if
(
x2MultC
==
1
&&
y2MultC
==
1
)
{
x2c
=
GetClusterPositionMWPC
(
revent
->
nx2
,
revent
->
x2
,
MWPC2_X_offset
);
x2c
=
GetClusterPositionMWPC
(
revent
->
nx2
,
revent
->
x2
,
kMWPCwireStepX2
,
MWPC2_X_offset
);
y2c
=
GetClusterPositionMWPC
(
revent
->
ny2
,
revent
->
y2
,
MWPC2_Y_offset
);
y2c
=
GetClusterPositionMWPC
(
revent
->
ny2
,
revent
->
y2
,
kMWPCwireStepY2
,
MWPC2_Y_offset
);
}
}
if
(
x1c
>
-
50.
&&
y1c
>
-
50.
&&
x2c
>
-
50.
&&
y2c
>
-
50.
)
{
if
(
x1c
>
-
50.
&&
y1c
>
-
50.
&&
x2c
>
-
50.
&&
y2c
>
-
50.
)
{
xtc
=
x1c
-
(
x1c
-
x2c
)
*
((
l12
+
lt
)
/
l12
);
//
xtc = x1c - (x1c - x2c)*((l12+lt)/l12);
ytc
=
y1c
-
(
y1c
-
y2c
)
*
((
l12
+
lt
)
/
l12
);
//
ytc = y1c - (y1c - y2c)*((l12+lt)/l12);
// xtc = (l12*x1c + (l12+lt)*(x2c-x1c))/(l12 - (x2c-x1c)*TMath::Tan(TMath::DegToRad()*12.));
// xtc = (l12*x1c + (l12+lt)*(x2c-x1c))/(l12 - (x2c-x1c)*TMath::Tan(TMath::DegToRad()*12.));
// ytc = (y2c-y1c)*(xtc-x1c)/(x2c-x1c) + y1c;
// ytc = (y2c-y1c)*(xtc-x1c)/(x2c-x1c) + y1c;
xt
=
x1c
-
(
x2c
-
x1c
)
*
kMWPCz1
/
(
kMWPCz2
-
kMWPCz1
);
yt
=
y1c
-
(
y2c
-
y1c
)
*
kMWPCz1
/
(
kMWPCz2
-
kMWPCz1
);
}
}
}
}
...
@@ -642,7 +669,9 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
...
@@ -642,7 +669,9 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
// cout << endl;
// cout << endl;
///////////////////////////////////////////////
///////////////////////////////////////////////
//correction for thickness inhomogeneity
// correction for thickness inhomogeneity
// when not taking into account hitting
// particle tracking
///////////////////////////////////////////////
///////////////////////////////////////////////
Double_t
currThickness
;
Double_t
currThickness
;
...
@@ -653,35 +682,22 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
...
@@ -653,35 +682,22 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
// cout << "y bin: " << yi+1 << "\t\t";
// cout << "y bin: " << yi+1 << "\t\t";
if
(
SQLYE
[
yi
]
>
0
)
{
if
(
SQLYE
[
yi
]
>
0
)
{
for
(
Int_t
xi
=
0
;
xi
<
kSQL_X_strips
;
xi
++
)
{
for
(
Int_t
xi
=
0
;
xi
<
TMath
::
Abs
(
kSQL_X_strips
)
;
xi
++
)
{
if
(
SQLXE
[
xi
]
>
0
)
{
if
(
SQLXE
[
xi
]
>
0
)
{
//TODO: check the mapping here at first
currThickness
=
hThickness
->
GetBinContent
(
xi
+
1
,
yi
+
1
);
currThickness
=
hThickness
->
GetBinContent
(
xi
+
1
,
yi
+
1
);
// if (currThickness<30.) {
// Int_t probableThinStrip = xi-2/2;
// SQ20Ecorr[0] =
// }
for
(
Int_t
x20
=
0
;
x20
<
kSQL_20_strips
;
x20
++
)
{
for
(
Int_t
x20
=
0
;
x20
<
kSQL_20_strips
;
x20
++
)
{
if
(
SQ20E
[
x20
]
>
0
/*SQ20timeMult==1*/
&&
currThickness
<
30.
)
{
if
(
SQ20E
[
x20
]
>
0
/*SQ20timeMult==1*/
&&
currThickness
<
30.
)
{
// SQ20Ecorr[x20] = SQ20E[x20] + 1.;
// currThickness = kSQ20_norm_thickness + (currThickness - kSQ20_norm_thickness)*0.5;
SQ20Ecorr
[
x20
]
=
(
kSQ20_norm_thickness
/
currThickness
)
*
SQ20E
[
x20
];
SQ20Ecorr
[
x20
]
=
(
kSQ20_norm_thickness
/
currThickness
)
*
SQ20E
[
x20
];
SQ20EcorrMult
++
;
SQ20EcorrMult
++
;
// cout << xi << "\t" << yi << "\t" << x20
// << "\t" << currThickness
// << "\t" << SQ20E[x20] << "\t" << SQ20Ecorr[x20] << "\t" << endl;
}
}
}
//for*/
}
//for*/
}
}
// cout << hThickness->GetBinContent(xi+1, yi+1) << "\t";
// if (xi == kSQL_X_strips-1) cout << endl;
}
}
}
}
}
}
...
@@ -692,7 +708,7 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
...
@@ -692,7 +708,7 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
///////////////////////////////////////////////
///////////////////////////////////////////////
//position of hit in left telescope
//
position of hit in left telescope
///////////////////////////////////////////////
///////////////////////////////////////////////
//reset
//reset
...
@@ -707,14 +723,20 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
...
@@ -707,14 +723,20 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
if
(
SQLXtimeMult
==
1
)
{
if
(
SQLXtimeMult
==
1
)
{
for
(
Int_t
i
=
0
;
i
<
32
;
i
++
)
{
for
(
Int_t
i
=
0
;
i
<
32
;
i
++
)
{
if
(
SQLXEtimeFiltered
[
i
]
>
0
)
x1mm
=
-
30.
+
(
i
+
1.
/
2.
)
*
60.
/
32.
;
if
(
SQLXEtimeFiltered
[
i
]
>
0
)
{
//todo: check the system of coordinates
x1mm
=
-
30.
+
(
i
+
1.
/
2.
)
*
60.
/
32.
;
}
}
}
}
}
// cout << SQLYtimeMult << endl;
// cout << SQLYtimeMult << endl;
if
(
SQLYtimeMult
==
1
)
{
if
(
SQLYtimeMult
==
1
)
{
for
(
Int_t
i
=
0
;
i
<
16
;
i
++
)
{
for
(
Int_t
i
=
0
;
i
<
16
;
i
++
)
{
if
(
SQLYEtimeFiltered
[
i
]
>
0
)
y1mm
=
-
30.
+
(
i
+
1.
/
2.
)
*
60.
/
16.
;
if
(
SQLYEtimeFiltered
[
i
]
>
0
)
{
//todo: check the system of coordinates
y1mm
=
-
30.
+
(
i
+
1.
/
2.
)
*
60.
/
16.
;
}
}
}
}
}
...
@@ -739,6 +761,7 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
...
@@ -739,6 +761,7 @@ void fillTree(const TString beam = "he", Int_t nofile = 0, const Int_t noevents
yThin
=
vHit1mm
.
Y
()
+
yt
;
yThin
=
vHit1mm
.
Y
()
+
yt
;
//calculation of corrected energy
//calculation of corrected energy
//TODO: check the mapping here at second
currThickness
=
hThickness
->
GetBinContent
(
mapXbin
+
1
,
mapYbin
+
1
);
currThickness
=
hThickness
->
GetBinContent
(
mapXbin
+
1
,
mapYbin
+
1
);
for
(
Int_t
x20
=
0
;
x20
<
kSQL_20_strips
;
x20
++
)
{
for
(
Int_t
x20
=
0
;
x20
<
kSQL_20_strips
;
x20
++
)
{
...
...
analysis/showBananasHe.cxx
View file @
6d91d5b3
...
@@ -546,6 +546,65 @@ void showBananasHe(Long64_t drawEntries = 100000, const TString beam = "he", TSt
...
@@ -546,6 +546,65 @@ void showBananasHe(Long64_t drawEntries = 100000, const TString beam = "he", TSt
// return;
// return;
/////////////////////////////////////////////////////////////////////
// c17
TCanvas
*
c17
=
new
TCanvas
(
"c17"
,
"dE-E corrected (second approximation, clusters, cleaned, check for thin strip); target center"
,
1600
,
800
);
c17
->
Divide
(
4
,
2
);
firstThinStrip
=
5
;
// cout << tr->GetEntries() << " events." << endl;
cout
<<
trCal
->
GetEntries
()
<<
" calibrated events."
<<
endl
;
// drawEntries = 1000000000;
cout
<<
drawEntries
<<
" entries in input chain will be processed."
<<
endl
;
gStyle
->
SetOptStat
();
c17
->
cd
(
1
);
trCal
->
Draw
(
"SQ20Ecorr[0]:SQ20Ecorr[0]+SQLXEsum>>h13(150, 0, 35, 150, 0, 5)"
,
""
,
"col"
,
1000
);
for
(
Int_t
i
=
0
;
i
<
8
;
i
++
)
{
c17
->
cd
(
i
+
1
);
if
(
opt
.
Contains
(
"logz"
))
gPad
->
SetLogz
();
drawnEventsCorr2nd
[
i
]
=
0
;
varName
.
Form
(
"SQ20EcorrHitC[%d]:SQ20EcorrHitC[%d]+SQLXEtimeFilteredSum"
,
i
+
firstThinStrip
,
i
+
firstThinStrip
);
condition
.
Form
(
""
"SQ20EcorrHitC[%d]>0"
" && SQ20EcorrHitC[%d]<%f "
// "&& SQLXEsum>1.1"
" && SQLXEsum<%f "
"&& SQLXtimeMult==1"
"&& SQLXEtimeFilteredSum>0.5"
"&& SQ20EcorrHitCMult"
"&& CsI_L_veto==0"
"&& abs(expectedThinStrip-%d)<=1"
"&& trigger==3"
"&& abs(xt)<10. && abs(yt)<10."
"&& xThin<25. && yThin<24."
,
i
+
firstThinStrip
,
i
+
firstThinStrip
,
max20deposit
,
max1mmDeposit
,
i
+
firstThinStrip
);
drawnEventsCorr2nd
[
i
]
=
trCal
->
Draw
(
varName
,
condition
,
""
,
drawEntries
);
trCalBe
->
SetMarkerStyle
(
20
);
trCalBe
->
SetMarkerColor
(
kRed
);
trCalBe
->
SetMarkerSize
(
.4
);
trCalBe
->
Draw
(
varName
,
condition
,
"same"
,
drawEntries
);
TH2F
*
h
=
(
TH2F
*
)
gPad
->
GetPrimitive
(
"htemp"
);
h
->
SetStats
();
c17
->
Update
();
}
//*/
// return;
...
...
analysis/showBeam.cxx
View file @
6d91d5b3
...
@@ -42,6 +42,27 @@ void showBeam(const Long64_t drawEntries = 100000, const TString beam = "he")
...
@@ -42,6 +42,27 @@ void showBeam(const Long64_t drawEntries = 100000, const TString beam = "he")
c1
->
cd
(
1
);
c1
->
cd
(
1
);
tr
->
Draw
(
"(F5[0]+F5[1]+F5[2]+F5[3])/4.:( (tF5[0]+tF5[1]+tF5[2]+tF5[3]) - (tF3[0]+tF3[1]+tF3[2]+tF3[3]) )/4.*0.125+89.165;"
,
"tF5[0]>0 && tF5[1]>0 && tF5[2]>0 && tF5[3]>0 "
"&& tF3[0]>0 && tF3[1]>0 && tF3[2]>0 && tF3[3]>0 "
"&& F5[0]>0 && F5[1]>0 && F5[2]>0 && F5[3]>0"
"&& ( (tF5[0]+tF5[1]+tF5[2]+tF5[3]) - (tF3[0]+tF3[1]+tF3[2]+tF3[3]) )/4.*0.125+89.165<200 "
"&& ( (tF5[0]+tF5[1]+tF5[2]+tF5[3]) - (tF3[0]+tF3[1]+tF3[2]+tF3[3]) )/4.*0.125+89.165>100"
"&& (F5[0]+F5[1]+F5[2]+F5[3])/4. < 2500"
"&& trigger==1"
,
"col"
,
drawEntries
);
TH2F
*
hTOF1
=
(
TH2F
*
)
gPad
->
GetPrimitive
(
"htemp"
);
// hTOF->SetStats(0);
hTOF1
->
SetTitle
(
"trigger 1"
);
hTOF1
->
SetXTitle
(
"TOF (ns)"
);
hTOF1
->
SetYTitle
(
"dE (a.u.)"
);
hTOF1
->
GetXaxis
()
->
CenterTitle
();
hTOF1
->
GetXaxis
()
->
SetTitleSize
(
0.06
);
hTOF1
->
GetXaxis
()
->
SetTitleOffset
(
0.75
);
hTOF1
->
GetYaxis
()
->
CenterTitle
();
hTOF1
->
GetYaxis
()
->
SetTitleSize
(
0.06
);
hTOF1
->
GetYaxis
()
->
SetTitleOffset
(
0.75
);
c1
->
cd
(
3
);
c1
->
cd
(
3
);
tr
->
Draw
(
"(F5[0]+F5[1]+F5[2]+F5[3])/4.:( (tF5[0]+tF5[1]+tF5[2]+tF5[3]) - (tF3[0]+tF3[1]+tF3[2]+tF3[3]) )/4.*0.125+89.165;"
,
tr
->
Draw
(
"(F5[0]+F5[1]+F5[2]+F5[3])/4.:( (tF5[0]+tF5[1]+tF5[2]+tF5[3]) - (tF3[0]+tF3[1]+tF3[2]+tF3[3]) )/4.*0.125+89.165;"
,
...
@@ -51,19 +72,19 @@ void showBeam(const Long64_t drawEntries = 100000, const TString beam = "he")
...
@@ -51,19 +72,19 @@ void showBeam(const Long64_t drawEntries = 100000, const TString beam = "he")
"&& ( (tF5[0]+tF5[1]+tF5[2]+tF5[3]) - (tF3[0]+tF3[1]+tF3[2]+tF3[3]) )/4.*0.125+89.165<200 "
"&& ( (tF5[0]+tF5[1]+tF5[2]+tF5[3]) - (tF3[0]+tF3[1]+tF3[2]+tF3[3]) )/4.*0.125+89.165<200 "
"&& ( (tF5[0]+tF5[1]+tF5[2]+tF5[3]) - (tF3[0]+tF3[1]+tF3[2]+tF3[3]) )/4.*0.125+89.165>100"
"&& ( (tF5[0]+tF5[1]+tF5[2]+tF5[3]) - (tF3[0]+tF3[1]+tF3[2]+tF3[3]) )/4.*0.125+89.165>100"
"&& (F5[0]+F5[1]+F5[2]+F5[3])/4. < 2500"
"&& (F5[0]+F5[1]+F5[2]+F5[3])/4. < 2500"
"&& trigger==
1
"
,
"&& trigger==
3
"
,
"col"
,
drawEntries
);
"col"
,
drawEntries
);
TH2F
*
hTOF
=
(
TH2F
*
)
gPad
->
GetPrimitive
(
"htemp"
);
TH2F
*
hTOF
3
=
(
TH2F
*
)
gPad
->
GetPrimitive
(
"htemp"
);
hTOF
->
SetStats
(
0
);
//
hTOF->SetStats(0);
hTOF
->
SetTitle
(
"
"
);
hTOF
3
->
SetTitle
(
"trigger 3
"
);
hTOF
->
SetXTitle
(
"TOF (ns)"
);
hTOF
3
->
SetXTitle
(
"TOF (ns)"
);
hTOF
->
SetYTitle
(
"dE (a.u.)"
);
hTOF
3
->
SetYTitle
(
"dE (a.u.)"
);
hTOF
->
GetXaxis
()
->
CenterTitle
();
hTOF
3
->
GetXaxis
()
->
CenterTitle
();
hTOF
->
GetXaxis
()
->
SetTitleSize
(
0.06
);
hTOF
3
->
GetXaxis
()
->
SetTitleSize
(
0.06
);
hTOF
->
GetXaxis
()
->
SetTitleOffset
(
0.75
);
hTOF
3
->
GetXaxis
()
->
SetTitleOffset
(
0.75
);
hTOF
->
GetYaxis
()
->
CenterTitle
();
hTOF
3
->
GetYaxis
()
->
CenterTitle
();
hTOF
->
GetYaxis
()
->
SetTitleSize
(
0.06
);
hTOF
3
->
GetYaxis
()
->
SetTitleSize
(
0.06
);
hTOF
->
GetYaxis
()
->
SetTitleOffset
(
0.75
);
hTOF
3
->
GetYaxis
()
->
SetTitleOffset
(
0.75
);
c1
->
cd
(
2
);
c1
->
cd
(
2
);
tr
->
Draw
(
"(y1[0]-16)*1.25:(x1[0]-16.)*1.25>>hXY1(32, -20., 20., 32, -20., 20.)"
,
"x1[1]<1000 && y1[1]<1000 && trigger==1 && nx1==1 && ny1==1"
,
"col"
,
drawEntries
);
tr
->
Draw
(
"(y1[0]-16)*1.25:(x1[0]-16.)*1.25>>hXY1(32, -20., 20., 32, -20., 20.)"
,
"x1[1]<1000 && y1[1]<1000 && trigger==1 && nx1==1 && ny1==1"
,
"col"
,
drawEntries
);
...
...
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