BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
lambdaAnalRun7.C
Go to the documentation of this file.
1#include <Rtypes.h>
2#include <TCanvas.h>
3#include <TFile.h>
4#include <TH1F.h>
5#include <TH2F.h>
6
7R__ADD_INCLUDE_PATH($VMCWORKDIR)
8#include "macro/run/bmnloadlibs.C"
9
10using namespace std;
11using namespace TMath;
12
13// Lambda anal. relatively to path bins ...
14
15void lambdaAnalRun7(TString tar, TString dirMc, TString dirData)
16{
17 BmnLambdaAnalRun7* lAna = new BmnLambdaAnalRun7(dirMc, dirData, tar);
18 // lAna->SetNFiles(10);
19
20 vector<TString> targets{"Pb", "Sn", "Cu", "Al"};
21
22 // Common cuts ...
23 for (TString target : targets)
24 lAna->SetCuts(target, 1.2, 0.3, 2.2, 0.7); // Path cut is not set!
25
26 // Setting trigg. efficiencies (if available) ...
27 /*
28 lAna->SetTriggerEffData("BT+FD3", "eff_BT+FD3.root");
29 lAna->SetTriggerEffData("BT+FD2", "eff_BT+FD2.root");
30 lAna->SetTriggerEffData("BT+BD3", "eff_BT+BD3.root");
31 lAna->SetTriggerEffData("BT+BD2", "eff_BT+BD2.root");
32 lAna->SetTriggerEffData("BT+BD1+FD2", "eff_BT+BD1+FD2.root");
33 */
34
35 // Setting Pt and Y bins for lambda's ...
36 vector<pair<Double_t, Double_t>> ptBins;
37
38 ptBins.push_back(make_pair(0.1, 0.35));
39 ptBins.push_back(make_pair(0.35, 0.6));
40 ptBins.push_back(make_pair(0.6, 1.3));
41 lAna->SetPtBins(ptBins);
42
43 vector<pair<Double_t, Double_t>> yBins;
44
45 yBins.push_back(make_pair(0.5, 1.3));
46 yBins.push_back(make_pair(1.3, 1.7));
47 yBins.push_back(make_pair(1.7, 2.3));
48 lAna->SetYBins(yBins);
49
50 vector<pair<Double_t, Double_t>> pathBins;
51 pathBins.push_back(make_pair(8., 50.));
52 pathBins.push_back(make_pair(12., 50.));
53 pathBins.push_back(make_pair(16., 50.));
54 pathBins.push_back(make_pair(20., 50.));
55 pathBins.push_back(make_pair(24., 50.));
56
57 lAna->SetPathBins(pathBins);
58
59 lAna->doTargetAnal(tar);
60
61 delete lAna;
62}
63
65{
66 //
67 BmnLambdaAnalRun7* lAna = new BmnLambdaAnalRun7(dir);
68 lAna->SetIsMc(isMc);
69
70 vector<TString> targets{"Pb", "Sn", "Cu", "Al"};
71
72 // Common cuts ...
73 for (TString target : targets)
74 lAna->SetCuts(target, 1.2, 0.3, 2.2, 0.7, 12.);
75
76 // Setting trigg. efficiencies (if available) ...
77 /*
78 lAna->SetTriggerEffData("BT+FD3", "eff_BT+FD3.root");
79 lAna->SetTriggerEffData("BT+FD2", "eff_BT+FD2.root");
80 lAna->SetTriggerEffData("BT+BD3", "eff_BT+BD3.root");
81 lAna->SetTriggerEffData("BT+BD2", "eff_BT+BD2.root");
82 lAna->SetTriggerEffData("BT+BD1+FD2", "eff_BT+BD1+FD2.root");
83 */
84
85 // Setting Pt and Y bins for lambda's ...
86 vector<pair<Double_t, Double_t>> ptBins;
87
88 ptBins.push_back(make_pair(0.1, 0.35));
89 ptBins.push_back(make_pair(0.35, 0.6));
90 ptBins.push_back(make_pair(0.6, 1.3));
91 lAna->SetPtBins(ptBins);
92
93 vector<pair<Double_t, Double_t>> yBins;
94
95 yBins.push_back(make_pair(0.5, 1.3));
96 yBins.push_back(make_pair(1.3, 1.7));
97 yBins.push_back(make_pair(1.7, 2.3));
98 lAna->SetYBins(yBins);
99
100 lAna->doTargetAnal(tar);
101
102 delete lAna;
103}
104
105// To be used for bin optimization if necessary ...
106
107void lambdaAnalRun7(TString dataPath, Bool_t doBinOptimizationPt, Bool_t doBinOptimizationY, Double_t min, Double_t max)
108{
109 BmnLambdaAnalRun7* lAna = new BmnLambdaAnalRun7(dataPath);
110 lAna->SetNFiles(10);
111
112 vector<TString> targets{"Pb", "Sn", "Cu", "Al"};
113
114 // Common cuts ...
115 for (TString target : targets)
116 lAna->SetCuts(target, 1.2, 0.3, 2.2, 0.7, 12.);
117
118 // Setting trigg. efficiencies ...
119 /*
120 lAna->SetTriggerEffData("BT+FD3", "eff_BT+FD3.root");
121 lAna->SetTriggerEffData("BT+FD2", "eff_BT+FD2.root");
122 lAna->SetTriggerEffData("BT+BD3", "eff_BT+BD3.root");
123 lAna->SetTriggerEffData("BT+BD2", "eff_BT+BD2.root");
124 lAna->SetTriggerEffData("BT+BD1+FD2", "eff_BT+BD1+FD2.root");
125 */
126
127 if (doBinOptimizationPt && doBinOptimizationY)
128 return;
129
130 if (doBinOptimizationPt) {
131 // Optimizing Pt ranges ...
132 vector<pair<Double_t, Double_t>> ptBin;
133 ptBin.push_back(make_pair(min, max));
134 lAna->SetPtBins(ptBin);
135 } else if (doBinOptimizationY) {
136 // Optimizing Y ranges ...
137 vector<pair<Double_t, Double_t>> yBin;
138 yBin.push_back(make_pair(min, max));
139 lAna->SetYBins(yBin);
140 }
141
142 lAna->doTargetAnal(targets);
143
144 // Save results for further anal. ...
145 FILE* f = fopen(Form("%s_min%G_max%G.dat", (doBinOptimizationPt) ? "Pt" : "Y", min, max), "w+");
146
147 auto it = (doBinOptimizationPt) ? lAna->GetSignalPtBinMap().begin() : lAna->GetSignalYBinMap().begin();
148 fprintf(f, "min %G max %G signal %G error %G\n", min, max, it->second.first, it->second.second);
149
150 fclose(f);
151
152 delete lAna;
153}
154
155// Lambda anal. for a set of targets
156
158{
159 BmnLambdaAnalRun7* lAna = new BmnLambdaAnalRun7(dataPath);
160 // lAna->SetNFiles(5);
161
162 vector<TString> targets{"Pb", "Sn", "Cu", "Al"};
163
164 // Common cuts ...
165 for (TString target : targets)
166 lAna->SetCuts(target, 1.2, 0.3, 2.2, 0.7, 12.);
167
168 // Setting trigg. efficiencies ...
169 /*
170 lAna->SetTriggerEffData("BT+FD3", "eff_BT+FD3.root");
171 lAna->SetTriggerEffData("BT+FD2", "eff_BT+FD2.root");
172 lAna->SetTriggerEffData("BT+BD3", "eff_BT+BD3.root");
173 lAna->SetTriggerEffData("BT+BD2", "eff_BT+BD2.root");
174 lAna->SetTriggerEffData("BT+BD1+FD2", "eff_BT+BD1+FD2.root");
175 */
176
177 lAna->doAllTargetsAnal();
178
179 delete lAna;
180}
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition P4_F32vec4.h:30
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition P4_F32vec4.h:31
bool Bool_t
double Double_t
#define R__ADD_INCLUDE_PATH(PATH)
char * Form(const char *fmt,...)
void SetIsMc(Bool_t flag)
map< Int_t, pair< Double_t, Double_t > > GetSignalYBinMap()
void SetPathBins(vector< pair< Double_t, Double_t > > bins)
void doTargetAnal(TString target)
void SetCuts(TString target, Double_t DCA0, Double_t DCA1, Double_t DCA2, Double_t DCA12, Double_t PATH=-1, Int_t nHitsPos=2, Int_t nHitsNeg=2)
map< Int_t, pair< Double_t, Double_t > > GetSignalPtBinMap()
void SetPtBins(vector< pair< Double_t, Double_t > > bins)
void SetYBins(vector< pair< Double_t, Double_t > > bins)
void lambdaAnalRun7(TString tar, TString dirMc, TString dirData)
Definition json.hpp:4446