BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnTriggerEfficiencyRun7.h
Go to the documentation of this file.
2#include <BmnLambdaAnalRun7.h>
3#include <BmnTwoParticleDecay.h>
4#include <TGraph.h>
5
6using namespace std;
7
8#ifndef BMNTRIGEFFRUN7_H
9#define BMNTRIGEFFRUN7_H 1
10
12{
13 public:
15
18 , fEoSNode("root://ncm.jinr.ru/")
20 , fSpectraFile("")
21 , nFdCounts(1000)
22 , nBdCounts(1000)
23 , nMultBins(18)
24 {
25 // Preparing default multiplicity ranges (nTracks in prim. vertex) ...
26 const Int_t minMult = 2;
27 const Int_t maxMult = 20;
28 Int_t multStep = (maxMult - minMult) / nMultBins;
29
30 for (Int_t iBin = 0; iBin < nMultBins; iBin++) {
31 Int_t step = iBin * multStep + minMult;
32
33 fMultMap[iBin] = make_pair(step, step + multStep);
34 }
35 }
36
38
39 // Setters ...
40
41 void SetTrigger(TString trigg) { fTrigger = trigg; }
42
43 void SetMultiplicityMap(vector<pair<Int_t, Int_t>> bins)
44 {
45 fMultMap.clear();
46
47 nMultBins = bins.size();
48
49 for (size_t iBin = 0; iBin < bins.size(); iBin++)
50 fMultMap[iBin] = bins.at(iBin);
51 }
52
54
55 void SetEffFiles(TString f) { fEffFiles.push_back(f); }
56
57 // Getters ...
58
59 // Anals ...
60 void triggerEfficiency();
61
62 private:
64
67
69 vector<TString> fEffFiles; // to be set if needed !!!
70
72 {
73 base = 0,
75 };
76
80
81 map<Int_t, pair<Int_t, Int_t>> fMultMap;
82
83 // Spectrum histos ...
84 TH1F*** hSpectra; // [triggCond][multCondition]
85
86 // Multiplicity histos ...
87 TH1F** hMult; // [triggCond]
88
89 // Redefinition aimed at getting trigger condition when doing file list ...
90 vector<TString> createFilelist(vector<TString>);
91
92 // Redefinition aimed at getting trigger condition in anal ...
94
96 {
97 for (auto it : fMultMap) {
98 Int_t bin = it.first;
99 Int_t min = it.second.first;
100 Int_t max = it.second.second;
101
102 if (multValue >= min && multValue < max)
103 return bin;
104 }
105 // If multBin not found ...
106 return -1;
107 }
108
109 private:
111 {
112 if (h->GetEntries() == 0)
113 return;
114
115 // Collecting all bin contents ...
116 Double_t contentAll = 0.;
117
118 for (Int_t iBin = 1; iBin < h->GetNbinsX() + 1; iBin++)
119 contentAll += h->GetBinContent(iBin);
120
121 // Normalizing histo ...
122 for (Int_t iBin = 1; iBin < h->GetNbinsX() + 1; iBin++) {
123 h->SetBinContent(iBin, h->GetBinContent(iBin) / contentAll);
124 h->SetBinError(iBin, 0.);
125 }
126
127 h->GetYaxis()->SetRangeUser(0., 1.1 * h->GetMaximum());
128 }
129
131};
132
133#endif
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
int Int_t
constexpr Bool_t kFALSE
double Double_t
#define ClassDef(name, id)
vector< TString > createFilelist()
map< Int_t, pair< Int_t, Int_t > > fMultMap
void SetMultiplicityMap(vector< pair< Int_t, Int_t > > bins)
Int_t FinMultBin(Int_t multValue)
void ReadFile(TString, BmnParticlePairCut *cut0)
virtual void SetRangeUser(Double_t ufirst, Double_t ulast)
virtual Double_t GetMaximum(Double_t maxval=FLT_MAX) const
virtual Int_t GetNbinsX() const
virtual void SetBinError(Int_t bin, Double_t error)
TAxis * GetYaxis()
virtual void SetBinContent(Int_t bin, Double_t content)
virtual Double_t GetEntries() const
virtual Double_t GetBinContent(Int_t bin) const
Definition json.hpp:4446