SND@LHC Software
Loading...
Searching...
No Matches
sndAvgDSFiducialCut.cxx
Go to the documentation of this file.
1
#include "
sndAvgDSFiducialCut.h
"
2
3
#include "TChain.h"
4
5
namespace
snd::analysis_cuts
{
6
avgDSFiducialCut::avgDSFiducialCut
(
double
vertical_min_cut,
double
vertical_max_cut,
double
horizontal_min_cut,
double
horizontal_max_cut, TChain * tree) :
MuFilterBaseCut
(tree){
7
vertical_min
= vertical_min_cut;
8
vertical_max
= vertical_max_cut;
9
horizontal_min
= horizontal_min_cut;
10
horizontal_max
= horizontal_max_cut;
11
12
cutName
=
"Avg DS Ver bar in ["
+std::to_string(
vertical_min
)+
","
+std::to_string(
vertical_max
)+
"] Hor in ["
+std::to_string(
horizontal_min
)+
","
+std::to_string(
horizontal_max
)+
"]"
;
13
14
shortName
=
"AvgDSbar"
;
15
nbins
= std::vector<int>{60, 60};
16
range_start
= std::vector<double>{60, 0};
17
range_end
= std::vector<double>{120, 60};
18
plot_var
= std::vector<double>{-1, -1};
19
}
20
21
bool
avgDSFiducialCut::passCut
(){
22
23
double
avg_ver = 0.;
24
unsigned
int
n_ver = 0;
25
double
avg_hor = 0.;
26
unsigned
int
n_hor = 0;
27
28
MuFilterHit
* hit;
29
TIter hitIterator(
muFilterDigiHitCollection
);
30
31
while
( (hit = (
MuFilterHit
*) hitIterator.Next()) ){
32
if
(hit->
isValid
()){
33
if
(hit->
GetSystem
() != 3)
continue
;
34
35
int
x = hit->
GetDetectorID
() % 1000;
36
37
if
(hit->
isVertical
()){
38
avg_ver += x;
39
n_ver++;
40
}
else
{
41
avg_hor += x;
42
n_hor++;
43
}
44
}
45
}
46
47
if
((n_ver+n_hor) == 0) {
48
plot_var
[0] = -1;
49
plot_var
[1] = -1;
50
return
false
;
51
}
52
53
if
(n_ver) {
54
avg_ver /= n_ver;
55
plot_var
[0] = avg_ver;
56
}
else
{
57
plot_var
[0] = -1;
58
}
59
60
if
(n_hor) {
61
avg_hor /= n_hor;
62
plot_var
[1] = avg_hor;
63
}
else
{
64
plot_var
[1] = -1;
65
}
66
67
if
(n_ver == 0)
return
false
;
68
if
(n_hor == 0)
return
false
;
69
70
if
(avg_hor <
horizontal_min
)
return
false
;
71
if
(avg_hor >
horizontal_max
)
return
false
;
72
if
(avg_ver <
vertical_min
)
return
false
;
73
if
(avg_ver >
vertical_max
)
return
false
;
74
75
return
true
;
76
}
77
}
MuFilterHit
Definition
MuFilterHit.h:11
MuFilterHit::isValid
bool isValid() const
Definition
MuFilterHit.h:38
MuFilterHit::GetSystem
int GetSystem()
Definition
MuFilterHit.h:41
MuFilterHit::isVertical
bool isVertical()
Definition
MuFilterHit.cxx:139
SndlhcHit::GetDetectorID
Int_t GetDetectorID() const
Definition
SndlhcHit.h:36
snd::analysis_cuts::MuFilterBaseCut
Definition
sndMuFilterBaseCut.h:12
snd::analysis_cuts::MuFilterBaseCut::muFilterDigiHitCollection
static TClonesArray * muFilterDigiHitCollection
Definition
sndMuFilterBaseCut.h:15
snd::analysis_cuts::avgDSFiducialCut::horizontal_min
double horizontal_min
Definition
sndAvgDSFiducialCut.h:12
snd::analysis_cuts::avgDSFiducialCut::vertical_max
double vertical_max
Definition
sndAvgDSFiducialCut.h:12
snd::analysis_cuts::avgDSFiducialCut::passCut
bool passCut()
Definition
sndAvgDSFiducialCut.cxx:21
snd::analysis_cuts::avgDSFiducialCut::horizontal_max
double horizontal_max
Definition
sndAvgDSFiducialCut.h:12
snd::analysis_cuts::avgDSFiducialCut::avgDSFiducialCut
avgDSFiducialCut(double vertical_min_cut, double vertical_max_cut, double horizontal_min_cut, double horizontal_max_cut, TChain *tree)
Definition
sndAvgDSFiducialCut.cxx:6
snd::analysis_cuts::avgDSFiducialCut::vertical_min
double vertical_min
Definition
sndAvgDSFiducialCut.h:12
snd::analysis_cuts::baseCut::plot_var
std::vector< double > plot_var
Definition
sndBaseCut.h:14
snd::analysis_cuts::baseCut::shortName
std::string shortName
Definition
sndBaseCut.h:10
snd::analysis_cuts::baseCut::range_end
std::vector< double > range_end
Definition
sndBaseCut.h:13
snd::analysis_cuts::baseCut::cutName
std::string cutName
Definition
sndBaseCut.h:9
snd::analysis_cuts::baseCut::range_start
std::vector< double > range_start
Definition
sndBaseCut.h:12
snd::analysis_cuts::baseCut::nbins
std::vector< int > nbins
Definition
sndBaseCut.h:11
snd::analysis_cuts
Definition
sndAvgDSFiducialCut.cxx:5
sndAvgDSFiducialCut.h
analysis
cuts
sndAvgDSFiducialCut.cxx
Generated by
1.9.8