20void tprofile2polyRealistic(
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");
60 infile.open(dir.
Data());
64 std::cerr << dir.
Data() << std::endl;
65 std::cerr <<
"Error code: " << strerror(errno) << std::endl;
68 std::cout <<
" WE ARE AFTER LOADING DATA " << std::endl;
70 vector<pair<Double_t, Double_t>> allCoords;
72 while (infile >>
a >>
b) {
73 pair<Double_t, Double_t> coord(
a,
b);
74 allCoords.push_back(coord);
77 if (allCoords.size() % 3 != 0) {
78 cout <<
"[ERROR] Bad file" << endl;
83 for (
Int_t i = 0; i < allCoords.size(); i += 3) {
84 x[0] = allCoords[i + 0].first;
85 y[0] = allCoords[i + 0].second;
86 x[1] = allCoords[i + 1].first;
87 y[1] = allCoords[i + 1].second;
88 x[2] = allCoords[i + 2].first;
89 y[2] = allCoords[i + 2].second;
91 det_avg_merge->AddBin(3,
x,
y);
92 det_err_merge->AddBin(3,
x,
y);
94 for (
int l=0;
l<NUM_LS; ++
l) {
95 det_avg_ls[
l].AddBin(3,
x,
y);
96 det_err_ls[
l].AddBin(3,
x,
y);
100 std::cout <<
" WE ARE AFTER ADDING BINS " << std::endl;
111 for (
int i = 0; i <= NUM_LS-1; ++i) {
112 std::cout <<
"[In Progress] LumiSection " << i << std::endl;
113 for (
int j = 0; j < numEvents; ++j) {
128 if (r2 > 3. - yoffset1 && r2 < 8. - yoffset1 &&
129 r1 > 1. + xoffset1 && r1 < 5. + xoffset1 ) {
133 if (r2 > -10 + yoffset2 && r2 < -8 + yoffset2 &&
134 r1 > -6 + xoffset2 && r1 < 8 + xoffset2 ) {
138 tot_avg_ls[i].Fill(r1, r2, val);
139 det_avg_ls[i].Fill(r1, r2, val);
140 det_err_ls[i].Fill(r1, r2, val);
147 title =
"Global View: Avg in LS " + to_string(i);
148 tot_avg_ls[i].SetTitle(title.c_str());
149 tot_avg_ls[i].SetStats(
false);
150 tot_avg_ls[i].Draw(
"COLZ");
153 c1->cd((i+1)+NUM_LS);
154 title =
"Detector View: Avg in LS " + to_string(i);
155 det_avg_ls[i].SetTitle(title.c_str());
156 det_avg_ls[i].SetStats(
false);
157 det_avg_ls[i].Draw(
"COLZ");
161 c1->cd((i+1)+(NUM_LS*2));
162 title =
"Detector View: Error in LS " + to_string(i);
163 det_err_ls[i].SetTitle(title.c_str());
164 det_err_ls[i].SetStats(
false);
165 det_err_ls[i].SetContentToError();
166 det_err_ls[i].Draw(
"COLZ");
170 std::vector<TProfile2Poly*> tot_avg_v;
171 std::vector<TProfile2Poly*> det_avg_v;
172 for (
Int_t t=0; t<NUM_LS; t++){
173 tot_avg_v.push_back(&tot_avg_ls[t]);
174 det_avg_v.push_back(&det_avg_ls[t]);
177 std::cout <<
"[In Progress] Merging" << std::endl;
181 tot_merge->Merge(tot_avg_v);
183 title =
"Total average merge";
184 tot_merge->SetTitle(title.c_str());
185 tot_merge->Draw(
"COLZ");
187 det_avg_merge->Merge(det_avg_v);
189 title =
"Detector average merge";
190 det_avg_merge->SetTitle(title.c_str());
191 det_avg_merge->SetContentToAverage();
192 det_avg_merge->Draw(
"COLZ");
194 det_err_merge->Merge(det_avg_v);
196 title =
"Detector error merge";
197 det_err_merge->SetTitle(title.c_str());
198 det_err_merge->SetContentToError();
199 det_err_merge->Draw(
"COLZ");
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)