20void hist041_TProfile2Poly_realistic(
Int_t numEvents = 100000)
24 TCanvas *
c2 =
new TCanvas(
"c2",
"Merge Individual moving charge plots", 800, 400);
26 c1->Divide(NUM_LS, 3);
45 for (
float i = minx; i < maxx; i += binsz) {
46 for (
float j = miny; j < maxy; j += binsz) {
47 tot_merge->AddBin(i, j, i + binsz, j + binsz);
48 for (
int l = 0;
l < NUM_LS; ++
l) {
49 tot_avg_ls[
l].AddBin(i, j, i + binsz, j + binsz);
59 dir.
Append(
"/hist/data/tprofile2poly_tutorial.data");
64 std::cerr << dir.
Data() << std::endl;
65 std::cerr <<
"Error code: " << std::strerror(errno) << std::endl;
68 std::cout <<
" WE ARE AFTER LOADING DATA " << std::endl;
70 std::vector<std::pair<Double_t, Double_t>> allCoords;
72 while (infile >>
a >>
b)
73 allCoords.emplace_back(
a,
b);
75 if (allCoords.size() % 3 != 0) {
76 cout <<
"[ERROR] Bad file" << endl;
81 for (
int i = 0; i < allCoords.size(); i += 3) {
82 x[0] = allCoords[i + 0].first;
83 y[0] = allCoords[i + 0].second;
84 x[1] = allCoords[i + 1].first;
85 y[1] = allCoords[i + 1].second;
86 x[2] = allCoords[i + 2].first;
87 y[2] = allCoords[i + 2].second;
89 det_avg_merge->AddBin(3,
x,
y);
90 det_err_merge->AddBin(3,
x,
y);
92 for (
int l = 0;
l < NUM_LS; ++
l) {
93 det_avg_ls[
l].AddBin(3,
x,
y);
94 det_err_ls[
l].AddBin(3,
x,
y);
98 std::cout <<
" WE ARE AFTER ADDING BINS " << std::endl;
109 for (
int i = 0; i <= NUM_LS - 1; ++i) {
110 std::cout <<
"[In Progress] LumiSection " << i << std::endl;
111 for (
int j = 0; j < numEvents; ++j) {
126 if (r2 > 3. - yoffset1 && r2 < 8. - yoffset1 && r1 > 1. + xoffset1 && r1 < 5. + xoffset1) {
130 if (r2 > -10 + yoffset2 && r2 < -8 + yoffset2 && r1 > -6 + xoffset2 && r1 < 8 + xoffset2) {
134 tot_avg_ls[i].Fill(r1, r2, val);
135 det_avg_ls[i].Fill(r1, r2, val);
136 det_err_ls[i].Fill(r1, r2, val);
142 title =
"Global View: Avg in LS " + std::to_string(i);
143 tot_avg_ls[i].SetTitle(title.c_str());
144 tot_avg_ls[i].SetStats(
false);
145 tot_avg_ls[i].Draw(
"COLZ");
148 c1->cd((i + 1) + NUM_LS);
149 title =
"Detector View: Avg in LS " + std::to_string(i);
150 det_avg_ls[i].SetTitle(title.c_str());
151 det_avg_ls[i].SetStats(
false);
152 det_avg_ls[i].Draw(
"COLZ");
155 c1->cd((i + 1) + (NUM_LS * 2));
156 title =
"Detector View: Error in LS " + std::to_string(i);
157 det_err_ls[i].SetTitle(title.c_str());
158 det_err_ls[i].SetStats(
false);
159 det_err_ls[i].SetContentToError();
160 det_err_ls[i].Draw(
"COLZ");
164 std::vector<TProfile2Poly *> tot_avg_v;
165 std::vector<TProfile2Poly *> det_avg_v;
166 for (
int t = 0; t < NUM_LS; t++) {
167 tot_avg_v.push_back(&tot_avg_ls[t]);
168 det_avg_v.push_back(&det_avg_ls[t]);
171 std::cout <<
"[In Progress] Merging" << std::endl;
173 tot_merge->Merge(tot_avg_v);
175 tot_merge->SetTitle(
"Total average merge");
176 tot_merge->Draw(
"COLZ");
178 det_avg_merge->Merge(det_avg_v);
180 det_avg_merge->SetTitle(
"Detector average merge");
181 det_avg_merge->SetContentToAverage();
182 det_avg_merge->Draw(
"COLZ");
184 det_err_merge->Merge(det_avg_v);
186 det_err_merge->SetTitle(
"Detector error merge");
187 det_err_merge->SetContentToError();
188 det_err_merge->Draw(
"COLZ");
int Int_t
Signed integer 4 bytes (int).
double Double_t
Double 8 bytes.
2D Histogram with Polygonal Bins
2D Profile Histogram with Polygonal Bins.
This is the base class for the ROOT Random number generators.
virtual Double_t Gaus(Double_t mean=0, Double_t sigma=1)
Samples a random number from the standard Normal (Gaussian) Distribution with the given mean and sigm...
const char * Data() const
TString & Append(const char *cs)