BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
efficiency.C
Go to the documentation of this file.
1#include <Rtypes.h>
2#include <TCanvas.h>
3#include <TChain.h>
4#include <TClonesArray.h>
5#include <TH2F.h>
6#include <TString.h>
7
8R__ADD_INCLUDE_PATH($VMCWORKDIR)
9#include "macro/run/bmnloadlibs.C"
10
11using namespace std;
12
13// Experimental data ...
14
16{
18 eTools->SetOutputFile("effOut_reco.root");
19
20 eTools->SetGeometryFile(""); // path to geometry
21 eTools->isL1Input(kTRUE);
22
23 vector<TString> beams{"Ar"};
24 vector<TString> targets{"Al", "Cu", "Sn", "Pb"};
25 vector<TString> triggers{"BT+FD2", "BT+FD3", "BT+BD2", "BT+BD3", "BT+BD1+FD2"};
26
27 // Setting beam, target and triggers to be processed ...
28 eTools->SetBeams(beams);
29 eTools->SetTargets(targets);
30 eTools->SetTriggers(triggers);
31
32 // Setting manually a list of files to be processed (if necessary) ...
33 // Do not forget to unset (commment) beams, targets, triggers set before !!!
34 // vector <Int_t> list{4649, 4651, 4652, 4653, 4654, 4656, 4657, 4658};
35 // eTools->SetFilelist(list);
36
37 eTools->SetDstPath(""); // Path to data
38
39 // Setting Y slices for GEM ...
40 pair<Double_t, Double_t> r1 = make_pair(-1., 15.);
41 pair<Double_t, Double_t> r2 = make_pair(15., 30.);
42 pair<Double_t, Double_t> r3 = make_pair(30., 50.);
43
44 vector<pair<Double_t, Double_t>> ranges;
45 ranges.push_back(r1);
46 ranges.push_back(r2);
47 ranges.push_back(r3);
48
49 map<Int_t, vector<pair<Double_t, Double_t>>> gPairMap;
50
51 const Int_t nGemStats = 6;
52 for (Int_t iGemStat = 0; iGemStat < nGemStats; iGemStat++)
53 gPairMap[iGemStat] = ranges;
54
55 eTools->SetGemYRanges(gPairMap);
56
57 // Setting Y slices for SILICON ...
58 map<Int_t, vector<pair<Double_t, Double_t>>> sPairMapY;
59
60 // Stat 0 (y-ranges)
61 ranges.clear();
62 pair<Double_t, Double_t> r11y = make_pair(1., 3.);
63 pair<Double_t, Double_t> r12y = make_pair(3., 5.);
64 pair<Double_t, Double_t> r13y = make_pair(5., 8.);
65 ranges.push_back(r11y);
66 ranges.push_back(r12y);
67 ranges.push_back(r13y);
68 sPairMapY[0] = ranges;
69
70 // Stat 1 (y-ranges)
71 ranges.clear();
72 pair<Double_t, Double_t> r21y = make_pair(1., 3.);
73 pair<Double_t, Double_t> r22y = make_pair(3., 5.);
74 pair<Double_t, Double_t> r23y = make_pair(5., 8.);
75 ranges.push_back(r21y);
76 ranges.push_back(r22y);
77 ranges.push_back(r23y);
78 sPairMapY[1] = ranges;
79
80 // Stat 2 (y-ranges)
81 ranges.clear();
82 pair<Double_t, Double_t> r31y = make_pair(1., 4.);
83 pair<Double_t, Double_t> r32y = make_pair(4., 7.);
84 pair<Double_t, Double_t> r33y = make_pair(7., 10.);
85 ranges.push_back(r31y);
86 ranges.push_back(r32y);
87 ranges.push_back(r33y);
88 sPairMapY[2] = ranges;
89
90 eTools->SetSiliconYRanges(sPairMapY);
91
92 // Processing ...
93 eTools->Process();
94
95 delete eTools;
96}
97
98// Monte Carlo data ...
99
101{
102 BmnEfficiencyTools* eTools = new BmnEfficiencyTools(dst);
103 eTools->SetOutputFile("effOut_mc.root");
104
105 eTools->SetGeometryFile(""); // path to geometry
106 eTools->isL1Input(kTRUE);
107
108 pair<Double_t, Double_t> r1 = make_pair(-1., 15.);
109 pair<Double_t, Double_t> r2 = make_pair(15., 30.);
110 pair<Double_t, Double_t> r3 = make_pair(30., 50.);
111
112 vector<pair<Double_t, Double_t>> ranges;
113 ranges.push_back(r1);
114 ranges.push_back(r2);
115 ranges.push_back(r3);
116
117 map<Int_t, vector<pair<Double_t, Double_t>>> gPairMap;
118
119 const Int_t nGemStats = 6;
120 for (Int_t iGemStat = 0; iGemStat < nGemStats; iGemStat++)
121 gPairMap[iGemStat] = ranges;
122
123 eTools->SetGemYRanges(gPairMap);
124
125 // Setting Y slices for SILICON ...
126 map<Int_t, vector<pair<Double_t, Double_t>>> sPairMap;
127
128 // Stat 0
129 ranges.clear();
130 pair<Double_t, Double_t> r11 = make_pair(1., 3.);
131 pair<Double_t, Double_t> r12 = make_pair(3., 5.);
132 pair<Double_t, Double_t> r13 = make_pair(5., 8.);
133 ranges.push_back(r11);
134 ranges.push_back(r12);
135 ranges.push_back(r13);
136 sPairMap[0] = ranges;
137
138 // Stat 1
139 ranges.clear();
140 pair<Double_t, Double_t> r21 = make_pair(1., 3.);
141 pair<Double_t, Double_t> r22 = make_pair(3., 5.);
142 pair<Double_t, Double_t> r23 = make_pair(5., 8.);
143 ranges.push_back(r21);
144 ranges.push_back(r22);
145 ranges.push_back(r23);
146 sPairMap[1] = ranges;
147
148 // Stat 2
149 ranges.clear();
150 pair<Double_t, Double_t> r31 = make_pair(1., 4.);
151 pair<Double_t, Double_t> r32 = make_pair(4., 7.);
152 pair<Double_t, Double_t> r33 = make_pair(7., 10.);
153 ranges.push_back(r31);
154 ranges.push_back(r32);
155 ranges.push_back(r33);
156 sPairMap[2] = ranges;
157
158 eTools->SetSiliconYRanges(sPairMap);
159
160 eTools->Process();
161
162 delete eTools;
163}
int Int_t
constexpr Bool_t kTRUE
#define R__ADD_INCLUDE_PATH(PATH)
void isL1Input(Bool_t flag)
void SetDstPath(TString path)
void SetBeams(vector< TString > beams)
void SetOutputFile(TString f)
void SetTargets(vector< TString > targs)
void SetGeometryFile(TString file)
void SetTriggers(vector< TString > triggs)
void SetGemYRanges(map< Int_t, vector< pair< Double_t, Double_t > > > rMap)
void SetSiliconYRanges(map< Int_t, vector< pair< Double_t, Double_t > > > rMap)
void efficiency()
Definition efficiency.C:15
Definition json.hpp:4446