SND@LHC Software
Loading...
Searching...
No Matches
sndAvgDSFiducialCut.cxx
Go to the documentation of this file.
2
3#include "TChain.h"
4
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
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}
bool isValid() const
Definition MuFilterHit.h:38
int GetSystem()
Definition MuFilterHit.h:41
bool isVertical()
Int_t GetDetectorID() const
Definition SndlhcHit.h:36
static TClonesArray * muFilterDigiHitCollection
avgDSFiducialCut(double vertical_min_cut, double vertical_max_cut, double horizontal_min_cut, double horizontal_max_cut, TChain *tree)
std::vector< double > plot_var
Definition sndBaseCut.h:14
std::vector< double > range_end
Definition sndBaseCut.h:13
std::vector< double > range_start
Definition sndBaseCut.h:12
std::vector< int > nbins
Definition sndBaseCut.h:11