BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
RadLenAna.C
Go to the documentation of this file.
1/* Macro draws histograms of radiation length scan of the BM@N setup
2 * Output result values are "effective radiation lengths" which are calculated
3 * as radiation length (cm) divided by distance (cm).
4 */
5
6#include "TMath.h"
7#include "TROOT.h"
8
9#include <TChain.h>
10#include <TClonesArray.h>
11#include <TH2F.h>
12#include <TVector3.h>
13R__ADD_INCLUDE_PATH($VMCWORKDIR)
14
15using namespace TMath;
16
17void DrawHisto(TH2F* h, TString xName, TString yName);
18void DrawHisto(TH1F* h, TString xName, TString yName, TCanvas* c);
19
20void RadLenAna(TString infile1 = "RadLenSim.root")
21{
22
23 const Float_t xMin = -500.0;
24 const Float_t xMax = +500.0;
25 const Int_t xNbin = 3000;
26 const Float_t yMin = -400.0;
27 const Float_t yMax = +400.0;
28 const Int_t yNbin = 3000;
29 const Float_t zMin = -500.0;
30 const Float_t zMax = +1200.0;
31 const Int_t zNbin = 4000;
32 const Float_t rMin = 0.0;
33 const Float_t rMax = +500.0;
34 const Int_t rNbin = 3000;
35 const Float_t distMin = 0.0;
36 const Float_t distMax = +1200.0;
37 const Int_t distNbin = 4000;
38 const Float_t thetaMin = 0.0;
39 const Float_t thetaMax = +180.0;
40 const Int_t thetaNbin = 3000;
41 const Float_t phiMin = -180.0;
42 const Float_t phiMax = +180.0;
43 const Int_t phiNbin = 3000;
44 const Float_t etaMin = -10.0;
45 const Float_t etaMax = +10.0;
46 const Int_t etaNbin = 3000;
47
48 TH2F* hXY = new TH2F("hXY", "Material budget in the BM@N", xNbin, xMin, xMax, yNbin, yMin, yMax);
49 TH2F* hXZ = new TH2F("hXZ", "Material budget in the BM@N", zNbin, zMin, zMax, xNbin, xMin, xMax);
50 TH2F* hXR = new TH2F("hXR", "Material budget in the BM@N", xNbin, xMin, xMax, rNbin, rMin, rMax);
51 TH2F* hXDist = new TH2F("hXDist", "Material budget in the BM@N", xNbin, xMin, xMax, distNbin, distMin, distMax);
52 TH2F* hXTheta =
53 new TH2F("hXTheta", "Material budget in the BM@N", xNbin, xMin, xMax, thetaNbin, thetaMin, thetaMax);
54 TH2F* hXPhi = new TH2F("hXPhi", "Material budget in the BM@N", xNbin, xMin, xMax, phiNbin, phiMin, phiMax);
55 TH2F* hXEta = new TH2F("hXEta", "Material budget in the BM@N", xNbin, xMin, xMax, etaNbin, etaMin, etaMax);
56
57 TH2F* hYZ = new TH2F("hYZ", "Material budget in the BM@N", zNbin, zMin, zMax, yNbin, yMin, yMax);
58 TH2F* hYR = new TH2F("hYR", "Material budget in the BM@N", yNbin, yMin, yMax, rNbin, rMin, rMax);
59 TH2F* hYDist = new TH2F("hYDist", "Material budget in the BM@N", yNbin, yMin, yMax, distNbin, distMin, distMax);
60 TH2F* hYTheta =
61 new TH2F("hYTheta", "Material budget in the BM@N", yNbin, yMin, yMax, thetaNbin, thetaMin, thetaMax);
62 TH2F* hYPhi = new TH2F("hYPhi", "Material budget in the BM@N", yNbin, yMin, yMax, phiNbin, phiMin, phiMax);
63 TH2F* hYEta = new TH2F("hYEta", "Material budget in the BM@N", yNbin, yMin, yMax, etaNbin, etaMin, etaMax);
64
65 TH2F* hZR = new TH2F("hZR", "Material budget in the BM@N", zNbin, zMin, zMax, rNbin, rMin, rMax);
66 TH2F* hZDist = new TH2F("hZDist", "Material budget in the BM@N", zNbin, zMin, zMax, distNbin, distMin, distMax);
67 TH2F* hZTheta =
68 new TH2F("hZTheta", "Material budget in the BM@N", zNbin, zMin, zMax, thetaNbin, thetaMin, thetaMax);
69 TH2F* hZPhi = new TH2F("hZPhi", "Material budget in the BM@N", zNbin, zMin, zMax, phiNbin, phiMin, phiMax);
70 TH2F* hZEta = new TH2F("hZEta", "Material budget in the BM@N", zNbin, zMin, zMax, etaNbin, etaMin, etaMax);
71
72 TH2F* hRDist = new TH2F("hRDist", "Material budget in the BM@N", rNbin, rMin, rMax, distNbin, distMin, distMax);
73 TH2F* hRTheta =
74 new TH2F("hRTheta", "Material budget in the BM@N", rNbin, rMin, rMax, thetaNbin, thetaMin, thetaMax);
75 TH2F* hRPhi = new TH2F("hRPhi", "Material budget in the BM@N", rNbin, rMin, rMax, phiNbin, phiMin, phiMax);
76 TH2F* hREta = new TH2F("hREta", "Material budget in the BM@N", rNbin, rMin, rMax, etaNbin, etaMin, etaMax);
77
78 TH2F* hDistTheta = new TH2F("hDistTheta", "Material budget in the BM@N", distNbin, distMin, distMax, thetaNbin,
79 thetaMin, thetaMax);
80 TH2F* hDistPhi =
81 new TH2F("hDistPhi", "Material budget in the BM@N", distNbin, distMin, distMax, phiNbin, phiMin, phiMax);
82 TH2F* hDistEta =
83 new TH2F("hDistEta", "Material budget in the BM@N", distNbin, distMin, distMax, etaNbin, etaMin, etaMax);
84
85 TH2F* hThetaPhi =
86 new TH2F("hThetaPhi", "Material budget in the BM@N", thetaNbin, thetaMin, thetaMax, phiNbin, phiMin, phiMax);
87 TH2F* hThetaEta =
88 new TH2F("hThetaEta", "Material budget in the BM@N", thetaNbin, thetaMin, thetaMax, etaNbin, etaMin, etaMax);
89
90 TH2F* hPhiEta =
91 new TH2F("hPhiEta", "Material budget in the BM@N", phiNbin, phiMin, phiMax, etaNbin, etaMin, etaMax);
92
93 // TH2F* hZX = new TH2F("hZX", "Material budget in the BM@N", 4000, -500., 1500., 3000, -500., 500.);
94 // TH2F* hZY = new TH2F("hZY", "Material budget in the BM@N", 4000, -500., 1500., 3000, -500., 500.);
95 // TH2F* hEtaDist = new TH2F("hEtaDist", "Material budget in the BM@N", 3000, -10., 10., 3000, 0., 1500.);
96
97 // TH2F* hZX_narrow = new TH2F("hZX_narrow", "Material budget in the BM@N, |y| < 10.0 cm", 4000, -500., 1500.,
98 // 3000, -500., 500.);
99 // TH2F* hZY_narrow = new TH2F("hZY_narrow", "Material budget in the BM@N, |y| < 10.0 cm", 4000, -500., 1500., 3000,
100 // -500., 500.);
101
102 // const Int_t nBinsZ = 1000;
103 // const Int_t nBinsEta = 100;
104 // const Int_t nBinsTheta = 500;
105 // const Int_t nBinsPhi = 500;
106
107 // TH1F* hZ = new TH1F("hZ", "Material budget in the BM@N for |x| < 1.0 cm & |y| < 1.0 cm", nBinsZ, 0., 1000.);
108 // TH1F* hZsum = new TH1F("hZsum", "Integrated material budget in the BM@N for |x| < 1.0 cm & |y| < 1.0 cm", nBinsZ,
109 // 0., 1000.); Int_t aZ[nBinsZ]; for (Int_t i = 0; i < nBinsZ; ++i) aZ[i] = 0;
110
111 // TH1F* hEta = new TH1F("hEta", "Material budget in the BM@N", nBinsEta, -2., 3.);
112 // Int_t aEta[nBinsEta];
113 // for (Int_t i = 0; i < nBinsEta; ++i) aEta[i] = 0;
114
115 // Int_t aThetaPhi[nBinsPhi][nBinsTheta];
116 // for (Int_t i = 0; i < nBinsPhi; ++i)
117 // for (Int_t j = 0; j < nBinsTheta; ++j)
118 // aThetaPhi[i][j] = 0;
119 // TH2F* hThetaPhi = new TH2F("hThetaPhi", "Material budget in the BM@N", nBinsPhi, -180, 180, nBinsTheta, 0.,
120 // 180.);
121
122 // Int_t aTheta[nBinsEta];
123 // for (Int_t i = 0; i < nBinsEta; ++i) aTheta[i] = 0;
124 // TH1F* hTheta = new TH1F("hTheta", "Material budget in the BM@N", nBinsEta, 0., 180.);
125
126 TChain* tree = new TChain("bmndata");
127 tree->Add(infile1);
128
129 // Activate branches
130 TClonesArray* fRadLenPs = NULL;
131 tree->SetBranchAddress("RadLen", &fRadLenPs);
132 TClonesArray* fMCTracks = NULL;
133 tree->SetBranchAddress("MCTrack", &fMCTracks);
134
135 Int_t events = tree->GetEntries();
136 cout << " Processing RadLenSimZR..." << endl;
137 cout << " Number of events in file = " << events << endl;
138
139 TVector3 PosIn, PosOut, DistVec;
140
141 for (Int_t iEv = 0; iEv < events; iEv++) {
142 tree->GetEntry(iEv);
143
144 Int_t fNpoints = fRadLenPs->GetEntriesFast();
145
146 for (Int_t pointIndex = 0; pointIndex < fNpoints; pointIndex++) {
147 FairRadLenPoint* RadLenP = (FairRadLenPoint*)fRadLenPs->At(pointIndex);
148 Float_t Len = RadLenP->GetRadLength();
149 PosIn = RadLenP->GetPosition();
150 PosOut = RadLenP->GetPositionOut();
151 DistVec = PosIn - PosOut;
152 Float_t Dist = DistVec.Mag();
153 Float_t R = DistVec.Perp();
154 Float_t LenEff = Dist / Len;
155
156 Float_t X = PosIn.X();
157 Float_t Y = PosIn.Y();
158 Float_t Z = PosIn.Z();
159 Float_t Theta = PosIn.Theta();
160 Float_t Eta = -Log(Tan(Theta / 2));
161 Float_t Phi = PosIn.Phi();
162 Phi *= TMath::RadToDeg();
163 Theta *= TMath::RadToDeg();
164
165 // hXY->Fill(X, Y, LenEff);
166 // //if (Abs(Y) < 10) hZX_narrow->Fill(Z, X, LenEff);
167 // hZX->Fill(Z, X, LenEff);
168 // //if (Abs(X) < 10) hZY_narrow->Fill(Z, Y, LenEff);
169 // hZY->Fill(Z, Y, LenEff);
170 // hEtaDist->Fill(Eta, PosIn.Mag(), LenEff);
171 // hThetaPhi->Fill(Phi * TMath::RadToDeg(), Theta * TMath::RadToDeg(), LenEff);
172 // //if (Abs(X) < 10 && Abs(Y) < 10) hZ->Fill(Z, LenEff);
173
174 // LenEff = 1.0; // tmp
175
176 hXY->Fill(X, Y, LenEff);
177 hXZ->Fill(Z, X, LenEff);
178 hXR->Fill(X, R, LenEff);
179 hXDist->Fill(X, Dist, LenEff);
180 hXTheta->Fill(X, Theta, LenEff);
181 hXPhi->Fill(X, Phi, LenEff);
182 hXEta->Fill(X, Eta, LenEff);
183 hYZ->Fill(Z, Y, LenEff);
184 hYR->Fill(Y, R, LenEff);
185 hYDist->Fill(Y, Dist, LenEff);
186 hYTheta->Fill(Y, Theta, LenEff);
187 hYPhi->Fill(Y, Phi, LenEff);
188 hYEta->Fill(Y, Eta, LenEff);
189 hZR->Fill(Z, R, LenEff);
190 hZDist->Fill(Z, Dist, LenEff);
191 hZTheta->Fill(Z, Theta, LenEff);
192 hZPhi->Fill(Z, Phi, LenEff);
193 hZEta->Fill(Z, Eta, LenEff);
194 hRDist->Fill(R, Dist, LenEff);
195 hRTheta->Fill(R, Theta, LenEff);
196 hRPhi->Fill(R, Phi, LenEff);
197 hREta->Fill(R, Eta, LenEff);
198 hDistTheta->Fill(Dist, Theta, LenEff);
199 hDistPhi->Fill(Dist, Phi, LenEff);
200 hDistEta->Fill(Dist, Eta, LenEff);
201 hThetaPhi->Fill(Theta, Phi, LenEff);
202 hThetaEta->Fill(Theta, Eta, LenEff);
203 hPhiEta->Fill(Phi, Eta, LenEff);
204
205 // if (pointIndex % 100000 == 0) cout << pointIndex * 100.0 / fNpoints << "% processed" << endl;
206 }
207 if (iEv % 5000 == 0)
208 cout << iEv + 1 << " out of " << events << " events processed" << endl;
209 }
210
211 // for (Int_t iEv = 0; iEv < events; iEv++) {
212 // tree->GetEntry(iEv);
213
214 // for (Int_t iTr = 0; iTr < fMCTracks->GetEntriesFast(); iTr++) {
215
216 // CbmMCTrack* mcTrack = (CbmMCTrack*) fMCTracks->At(iTr);
217 // Double_t sumEta = 0.0;
218 // Double_t sumRadLenEff = 0.0;
219 // Int_t nPnts = 0;
220 // Float_t Eta = 0.0;
221 // Float_t Phi = 0.0;
222 // Float_t Theta = 0.0;
223
224 // for (Int_t pointIndex = 0; pointIndex < fRadLenPs->GetEntriesFast(); pointIndex++) {
225 // FairRadLenPoint* RadLenP = (FairRadLenPoint*) fRadLenPs->At(pointIndex);
226 // if (RadLenP->GetTrackID() != iTr) continue;
227 // Float_t Len = RadLenP->GetRadLength();
228 // PosIn = RadLenP->GetPosition();
229 // PosOut = RadLenP->GetPositionOut();
230 // DistVec = PosIn - PosOut;
231 // Float_t Dist = DistVec.Mag();
232 // Float_t LenEff = Dist / Len;
233 // Float_t X = PosIn.X();
234 // Float_t Y = PosIn.Y();
235 // Float_t Z = PosIn.Z();
236 // Theta = PosIn.Theta();
237 // Eta = -Log(Tan(Theta / 2));
238 // Theta *= TMath::RadToDeg();
239 // Phi = PosIn.Phi() * TMath::RadToDeg();
240
241 // sumRadLenEff += LenEff;
242 // nPnts++;
243
244 // if (Abs(X) < 1 && Abs(Y) < 1) {
245 // Int_t binZ = hZ->GetXaxis()->FindBin(Z);
246 // aZ[binZ]++;
247 // hZ->Fill(Z, LenEff);
248 // }
249 // //if (pointIndex % 10000 == 0) cout << pointIndex * 100.0 / fRadLenPs->GetEntriesFast() << "%
250 // processed" << endl;
251 // }
252 // if (nPnts > 0) {
253 // // if (iTr % 10 == 0) cout << "n points on track " << iTr << ": " << nPnts << endl;
254 // Int_t binPhi2D = hThetaPhi->GetXaxis()->FindBin(Phi);
255 // Int_t binTheta2D = hThetaPhi->GetYaxis()->FindBin(Theta);
256 // Int_t binEta = hEta->GetXaxis()->FindBin(Eta);
257 // Int_t binTheta = hTheta->GetXaxis()->FindBin(Theta);
258
259 // aEta[binEta]++;
260 // aTheta[binTheta]++;
261 // hEta->Fill(Eta, sumRadLenEff);
262 // hTheta->Fill(Theta, sumRadLenEff);
263 // aThetaPhi[binPhi2D][binTheta2D]++;
264 // hThetaPhi->Fill(Phi, Theta, sumRadLenEff);
265 // }
266 // }
267 // if (iEv % 5000 == 0) cout << iEv + 1 << " out of " << events << " events processed" << endl;
268 // }
269
270 // hEta->SetBinContent(nBinsEta, 0.0);
271 // hEta->SetBinError(nBinsEta, 0.0);
272 // hTheta->SetBinContent(nBinsEta, 0.0);
273 // hTheta->SetBinError(nBinsEta, 0.0);
274
275 // hZ->SetBinContent(nBinsZ, 0.0);
276 // hZ->SetBinError(nBinsZ, 0.0);
277 // hZ->SetBinContent(0, 0.0);
278 // hZ->SetBinError(0, 0.0);
279
280 // Double_t integrZ = 0.0;
281 // for (Int_t i = 0; i < nBinsZ; ++i) {
282 // if (aZ[i] != 0) {
283 // hZ->SetBinContent(i, hZ->GetBinContent(i) / aZ[i]);
284 // hZ->SetBinError(i, 0.0);
285 // integrZ += hZ->GetBinContent(i);
286 // }
287 // hZsum->SetBinContent(i, integrZ);
288 // }
289
290 // for (Int_t i = 0; i < nBinsEta; ++i) {
291 // if (aEta[i] != 0) {
292 // hEta->SetBinContent(i, hEta->GetBinContent(i) / aEta[i]);
293 // hEta->SetBinError(i, 0.0);
294 // }
295 // if (aTheta[i] != 0) {
296 // hTheta->SetBinContent(i, hTheta->GetBinContent(i) / aTheta[i]);
297 // hTheta->SetBinError(i, 0.0);
298 // }
299 // }
300
301 // for (Int_t i = 0; i < nBinsPhi; ++i) {
302 // hThetaPhi->SetBinContent(i, nBinsTheta, 0.0);
303 // hThetaPhi->SetBinError(i, nBinsTheta, 0.0);
304 // hThetaPhi->SetBinContent(i, 0, 0.0);
305 // hThetaPhi->SetBinError(i, 0, 0.0);
306 // }
307 // for (Int_t i = 0; i < nBinsTheta; ++i) {
308 // hThetaPhi->SetBinContent(nBinsPhi, i, 0.0);
309 // hThetaPhi->SetBinError(nBinsPhi, i, 0.0);
310 // hThetaPhi->SetBinContent(0, i, 0.0);
311 // hThetaPhi->SetBinError(0, i, 0.0);
312 // }
313
314 // for (Int_t i = 0; i < nBinsPhi; ++i)
315 // for (Int_t j = 0; j < nBinsTheta; ++j)
316 // if (aThetaPhi[i][j] != 0) {
317 // hThetaPhi->SetBinContent(i, j, hThetaPhi->GetBinContent(i, j) / aThetaPhi[i][j]);
318 // hThetaPhi->SetBinError(i, j, 0.0);
319 // }
320
321 gStyle->SetOptStat(0);
322
323 // TCanvas* c1 = new TCanvas(hXY->GetName(), hXY->GetName(), 800, 600);
324 // DrawHisto(hXY, "X, cm", "Y, cm", c1);
325 // TCanvas* c2 = new TCanvas(hZX->GetName(), hZX->GetName(), 1000, 800);
326 // DrawHisto(hZX, "Z, cm", "X, cm", c2);
327 // TCanvas* c3 = new TCanvas(hZX_narrow->GetName(), hZX_narrow->GetName(), 1000, 800);
328 // DrawHisto(hZX_narrow, "Z, cm", "X, cm", c3);
329 // TCanvas* c4 = new TCanvas(hZY->GetName(), hZY->GetName(), 1000, 600);
330 // DrawHisto(hZY, "Z, cm", "Y, cm", c4);
331 // TCanvas* c5 = new TCanvas(hZY_narrow->GetName(), hZY_narrow->GetName(), 1000, 600);
332 // DrawHisto(hZY_narrow, "Z, cm", "Y, cm", c5);
333 // TCanvas* c6 = new TCanvas(hEtaDist->GetName(), hEtaDist->GetName(), 1000, 500);
334 // DrawHisto(hEtaDist, "#eta", "Distance from IP, cm", c6);
335
336 // TCanvas* c7 = new TCanvas(hZ->GetName(), hZ->GetName(), 1000, 500);
337 // DrawHisto(hZ, "Z, cm", "Radiation length, X/X0", c7);
338 // TCanvas* c71 = new TCanvas(hZsum->GetName(), hZsum->GetName(), 1000, 500);
339 // DrawHisto(hZsum, "Z, cm", "Integrated radiation length, X/X0", c71);
340
341 // TCanvas* c8 = new TCanvas(hEta->GetName(), hEta->GetName(), 1000, 1000);
342 // DrawHisto(hEta, "#eta", "Radiation length, X/X0", c8);
343 // TCanvas* c9 = new TCanvas(hThetaPhi->GetName(), hThetaPhi->GetName(), 1000, 1000);
344 // DrawHisto(hThetaPhi, "#phi, deg", "#theta, deg", c9);
345 // TCanvas* c10 = new TCanvas(hTheta->GetName(), hTheta->GetName(), 1000, 1000);
346 // DrawHisto(hTheta, "#theta, deg", "Radiation length, X/X0", c10);
347
348 DrawHisto(hXY, "X, cm", "Y, cm");
349 DrawHisto(hXZ, "Z, cm", "X, cm");
350 DrawHisto(hXR, "X, cm", "R, cm");
351 DrawHisto(hXDist, "X, cm", "Distance from IP, cm");
352 DrawHisto(hXTheta, "X, cm", "#theta, deg");
353 DrawHisto(hXPhi, "X, cm", "#phi, deg");
354 DrawHisto(hXEta, "X, cm", "#eta");
355 DrawHisto(hYZ, "Z, cm", "Y, cm");
356 DrawHisto(hYR, "Y, cm", "R, cm");
357 DrawHisto(hYDist, "Y, cm", "Distance from IP, cm");
358 DrawHisto(hYTheta, "Y, cm", "#theta, deg");
359 DrawHisto(hYPhi, "Y, cm", "#phi, deg");
360 DrawHisto(hYEta, "Y, cm", "#eta");
361 DrawHisto(hZR, "Z, cm", "R, cm");
362 DrawHisto(hZDist, "Z, cm", "Distance from IP, cm");
363 DrawHisto(hZTheta, "Z, cm", "#theta, deg");
364 DrawHisto(hZPhi, "Z, cm", "#phi, deg");
365 DrawHisto(hZEta, "Z, cm", "#eta");
366 DrawHisto(hRDist, "R, cm", "Distance from IP, cm");
367 DrawHisto(hRTheta, "R, cm", "#theta, deg");
368 DrawHisto(hRPhi, "R, cm", "#phi, deg");
369 DrawHisto(hREta, "R, cm", "#eta");
370 DrawHisto(hDistTheta, "Distance from IP, cm", "#theta, deg");
371 DrawHisto(hDistPhi, "Distance from IP, cm", "#phi, deg");
372 DrawHisto(hDistEta, "Distance from IP, cm", "#eta");
373 DrawHisto(hThetaPhi, "#theta, deg", "#phi, deg");
374 DrawHisto(hThetaEta, "#theta, deg", "#eta");
375 DrawHisto(hPhiEta, "#phi, deg", "#eta");
376}
377
378void DrawHisto(TH2F* h, TString xName, TString yName)
379{
380 TCanvas* c = new TCanvas(h->GetName(), h->GetName(), 1000, 1000);
381 h->GetXaxis()->SetTitle(xName);
382 h->GetXaxis()->SetTitleOffset(0.8);
383 h->GetXaxis()->CenterTitle();
384 h->GetYaxis()->SetTitle(yName);
385 h->GetYaxis()->SetTitleOffset(0.8);
386 h->GetYaxis()->CenterTitle();
387 h->GetZaxis()->SetTitle("Radiation length, X/X0");
388 h->GetZaxis()->SetTitleOffset(0.7);
389 // c->SetLogz();
390 // h->SetMaximum(10.);
391 h->Draw("colz");
392 c->SaveAs(Form("%s.pdf", h->GetName()));
393}
394
395void DrawHisto(TH1F* h, TString xName, TString yName, TCanvas* c)
396{
397 h->GetXaxis()->SetTitle(xName);
398 h->GetXaxis()->SetTitleOffset(0.8);
399 h->GetXaxis()->CenterTitle();
400 h->GetYaxis()->SetTitle(yName);
401 h->GetYaxis()->SetTitleOffset(0.8);
402 h->GetYaxis()->CenterTitle();
403 // h->SetMaximum(10.);
404 h->Draw("L");
405 c->SaveAs(Form("%s.pdf", h->GetName()));
406}
Float_t Dist(Float_t x1, Float_t y1, Float_t x2, Float_t y2)
Definition BmnMath.cxx:432
int Int_t
float Float_t
#define R__ADD_INCLUDE_PATH(PATH)
char * Form(const char *fmt,...)
R__EXTERN TStyle * gStyle
virtual void SetTitleOffset(Float_t offset=1)
void CenterTitle(Bool_t center=kTRUE)
Int_t SetBranchAddress(const char *bname, T **add, TBranch **ptr=nullptr)
virtual Int_t Add(const char *name, Long64_t nentries=TTree::kMaxEntries)
Long64_t GetEntries() const override
Int_t GetEntry(Long64_t entry=0, Int_t getall=0) override
TAxis * GetZaxis()
TAxis * GetXaxis()
TAxis * GetYaxis()
void Draw(Option_t *option="") override
virtual Int_t Fill(const char *namex, const char *namey, Double_t w)
virtual void SetTitle(const char *title="")
const char * GetName() const override
Int_t GetEntriesFast() const
TObject * At(Int_t idx) const override
void SaveAs(const char *filename="", Option_t *option="") const override
Double_t Z() const
Double_t Phi() const
Double_t Y() const
Double_t X() const
Double_t Mag() const
Double_t Theta() const
Double_t Perp() const
void DrawHisto(TH2F *h, TString xName, TString yName)
Definition RadLenAna.C:378
void RadLenAna(TString infile1="RadLenSim.root")
Definition RadLenAna.C:20
Double_t Log(Double_t x)
constexpr Double_t R()
Double_t Tan(Double_t)
constexpr Double_t RadToDeg()